Utilisation d'un etat crystal report avec des subreport [Résolu]

Paxx 28 Messages postés mercredi 18 mai 2005Date d'inscription 4 décembre 2008 Dernière intervention - 14 avril 2008 à 17:11 - Dernière réponse : lailaElk 1 Messages postés jeudi 22 janvier 2015Date d'inscription 18 janvier 2017 Dernière intervention
- 18 janv. 2017 à 13:30
Bonjour,

J'ai un soucis avec crystal report intégré à visual Studio 2005 (avec du code VB en web).
Lorsque je charge un etat simple par du code en passant par un dataset fortement typé, là, pas de problème, tout s'affiche!
Seulement, lorsque je veux charger un rapport contenant un sous rapport en apelant le rapport global, j'ai droit a un message d'erreur "the report has no tables". Ce qui me parais logique car par le code, j'envoi les informations du dataset dans le rapport global qui n'a pas de quoi les traiter au lieu de les envoyer au sous rapport.
Pour une meilleure compréhension, je dois fournir sur une page un ensemble de tableau. J'ai donc conçu ces tableaux dans différents rapports et voudrai les afficher dans un seul en tant que sous rapports.
En gros ma question est : Comment , par le code, réussir à afficher ces différents tableaux dans un seul rapport.

J'ai essayé ceci :
        subreport.SetDataSource(dstSynthese) // chargement du sous rapport avec les infos du dataset (dstSynthese)
        ReportViewer.ReportSource = report //puis affichage du rapport contenant le sous rapport
Mais dans ce cas la, je tombe sur une page où il m'est demandé un login et password que je ne connais pas.

Quelqu'un verrais-t-il une solution a mon problème?
Afficher la suite 

Votre réponse

14 réponses

Meilleure réponse
Paxx 28 Messages postés mercredi 18 mai 2005Date d'inscription 4 décembre 2008 Dernière intervention - 15 avril 2008 à 11:35
1
Merci
merci pour vos réponses :p

Bon, pour ceux qui seraient confrontés au même soucis, j'ai trouvé la solution, il faut mettre le code suivant :
Dim report As New ReportDocument
            report.Load("C:\Inetpub\wwwroot\RPT\rptP04M00_Rendement.rpt")
            report.OpenSubreport("rptP04S06_TOTAL.rpt")
            report.Subreports.Item(0).SetDataSource(dstSynthese)
            report.OpenSubreport("rptP04S05_AGENT.rpt")
            report.Subreports.Item(1).SetDataSource(dstSynthese)
            report.OpenSubreport("rptP04S04_DS.rpt")
            report.Subreports.Item(2).SetDataSource(dstSynthese)
            ReportViewer.ReportSource = report

Et non pas charger d'abord le sous rapport comme je le faisais avant!

Merci Paxx 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

lailaElk 1 Messages postés jeudi 22 janvier 2015Date d'inscription 18 janvier 2017 Dernière intervention - 18 janv. 2017 à 13:30
merciii infiniment
Commenter la réponse de Paxx
martens 2 Messages postés dimanche 5 novembre 2000Date d'inscription 5 décembre 2008 Dernière intervention - 4 déc. 2008 à 20:19
0
Merci
Salut paxx ton message date de plusieur mois certe ,mais je tenait a te remercier pour ton poste car j'ais fait face au meme problem et malgre plusieur recherche sur le net je n'ais pas trouver de solution. et par hasard je tombe sur la sienne. elle m'a rendu un grand service.
Commenter la réponse de martens
Paxx 28 Messages postés mercredi 18 mai 2005Date d'inscription 4 décembre 2008 Dernière intervention - 4 déc. 2008 à 20:25
0
Merci
pas de soucis, toujours un plaisir d'éviter aux autre de galérer la ou je suis resté bloqué (un bon moment en plus :p)
Commenter la réponse de Paxx
takuma1483 8 Messages postés dimanche 15 février 2009Date d'inscription 5 septembre 2009 Dernière intervention - 4 sept. 2009 à 09:08
0
Merci
bjr a vous
j'aimerais avoir svp des codes indiquant comment imprimer un rapport edite a partir de visual basic 2005,j'arrive assez bien à concevoir l'etat
sur cristal report mais sans code,c'est vraiment galere.Le mieu serait que quelqu'un puisse envoyer un petit projet(codes svp) à partir duquel il aurait utilise un etat de cristalreport
car j'ignore totalement ce par quoi il faut passer apres l'edition du rapport

merci d'avance
Commenter la réponse de takuma1483
FNIAMKE 83 Messages postés vendredi 17 juillet 2009Date d'inscription 27 juin 2016 Dernière intervention - 4 sept. 2009 à 15:47
0
Merci
Bonjour Takuma1483!
Si j'ai bien compris tu conçois ton état sous crystal, mais tu n'arrives pas à partir du code imprimer ton état.

Quelques instructions à suivre:
1- Crée un dataset (Menu Projet - ajouter un nouvel élément)
2- Dans le Dataset Crée une table du même nom que celle de ton report (état).
3- Crée un formulaire sur lequel tu vas ajouter un controle crystalreportviewer
4-Dans le form_load de ton formulaire

Ecrit ce code:
Dim MyDataTable As New DataTable
Dim Crt As New ReportDocument
MyDataTable.tablename="NomTable" 'Nom de ta table de ton état
Crt = New NomEtat 'Où nomEtat est le nom de ton état

Crt.SetDataSource(MyDataTable )
CrystalReportViewer1.ReportSource = Crt

NB: Il faut que tu remplisses myDatatable par les données de ta requête.

Tu peux me contacter à l'adresse :fniamke@SONACO.com.ci en de problèmes.

Bonne journée et bonne chance pour le match contre le GABON!

NIAMKE Francis
Lahcen Le grand - 10 juin 2015 à 17:36
Bonjour, j'ai aussi presque le même problème, précisément comme suit:
j'ai créé une application contient plusieurs états (reports), j'aimerai utiliser une seule forme pour les afficher.
c'est à dire utiliser un seul Crystal Report Viewer.
Commenter la réponse de FNIAMKE
takuma1483 8 Messages postés dimanche 15 février 2009Date d'inscription 5 septembre 2009 Dernière intervention - 4 sept. 2009 à 23:04
0
Merci
merci Fniamke
si les femmes nous repondaient aussi vite ,on aurait pas besoin de travailer,je me hate de faire du code,et je te repondrai tres prochainement..merci pour l'e_mail
thanks a lot...
Commenter la réponse de takuma1483
takuma1483 8 Messages postés dimanche 15 février 2009Date d'inscription 5 septembre 2009 Dernière intervention - 5 sept. 2009 à 01:33
0
Merci
merci une fois de plus !
je voudrais utiliser le resultat d'une requete
que j'ai ecrit dans access 2003,a partir de cristal report visual studio 2005,comment puis-je proceder?
Commenter la réponse de takuma1483
takuma1483 8 Messages postés dimanche 15 février 2009Date d'inscription 5 septembre 2009 Dernière intervention - 5 sept. 2009 à 01:58
0
Merci
voici ce que j'ai essaye de faire:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim MyDataTable As New DataTable
Dim Crt As New CrystalDecisions.CrystalReports.Engine.ReportDocument
MyDataTable.TableName = "Produit" 'Nom de la table de mon état
Crt = New EtatTuto 'Où EtatTuto est le nom de mon état
Crt.SetDataSource(MyDataTable)
CrystalReportViewer1.ReportSource = Crt
End Sub
ce qui se passe est que le rapport s'affiche mais ne comporte rien concernant ma table
merci de me venir en aide
Commenter la réponse de takuma1483
takuma1483 8 Messages postés dimanche 15 février 2009Date d'inscription 5 septembre 2009 Dernière intervention - 5 sept. 2009 à 02:12
0
Merci
en fait seuls les labels que j'ai insere dans l'entete s'affichent,mais aucun element de la partie detail ne saffiche
un pb de plus svp!!!celui d'utiliser le resultat d'une requete pour l'afficher dans mon report
Commenter la réponse de takuma1483
takuma1483 8 Messages postés dimanche 15 février 2009Date d'inscription 5 septembre 2009 Dernière intervention - 5 sept. 2009 à 02:49
0
Merci
apres une nuit blanche j'ai trouve la solution
dja en vb2005
au lieu de "reportdocument" utilisez CrystalDecisions.CrystalReports.Engine.ReportDocument ,voici le code complet pour ceux que ça pourrait aider:

Dim cnx As OleDb.OleDbConnection
Dim cmd As OleDb.OleDbCommand
Dim objetadapter As OleDb.OleDbDataAdapter
Dim objetset As New DataSet
Dim MyDataTable As New DataTable
cnx = New OleDb.OleDbConnection
cnx.ConnectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "C:\Ancien_Number_One.mdb;Jet OLEDB:Database Password=oss117")
Try
cnx.Open()
Catch ex As Exception
MsgBox(ex.Message)
End Try
cmd = New OleDb.OleDbCommand
cmd.CommandText = "SELECT Num_Serie,Nom_Produit,Prix_Vente,Type FROM Produit"
cmd.Connection = cnx
objetadapter = New OleDb.OleDbDataAdapter(cmd)
objetadapter.Fill(objetset, "Produit")
MyDataTable = objetset.Tables("Produit")'ici on charge l'objetDataTable avec le resultat de la requete sql
Dim Crt As New CrystalDecisions.CrystalReports.Engine.ReportDocument
MyDataTable.TableName = "Produit" 'Nom de la table de mon état
Crt = New EtatTuto 'Où EtatTuto est le nom de mon état
Crt.SetDataSource(MyDataTable)
CrystalReportViewer1.ReportSource = Crt
'pour imprimer le rapport d'etat faire ensuite:

Crt.Load("EtatTuto.rpt")
Crt.PrintToPrinter(1, True, 1, 1)
j'ai constate que crt.load gache tout car l'etat au visuel ne laisse rien paraitre du tout,donc mettez le en commentaire,et faites le constat

thanks a lot Fniamke...
Commenter la réponse de takuma1483
takuma1483 8 Messages postés dimanche 15 février 2009Date d'inscription 5 septembre 2009 Dernière intervention - 5 sept. 2009 à 03:36
0
Merci
voila tout est bien qui ne finit jamais,le pb majeur :le deploiement
comment le faire?
Commenter la réponse de takuma1483
takuma1483 8 Messages postés dimanche 15 février 2009Date d'inscription 5 septembre 2009 Dernière intervention - 5 sept. 2009 à 18:21
0
Merci
salut,
j'ai un pb de deploiement,ce que je voudrais c'est integrer plusieurs prerequis à mon appz
est ce possible de le faire?si oui comment?
reportviewer,windows installer,et autre
merci de m'aider
Commenter la réponse de takuma1483

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.