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

Messages postés
28
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
4 décembre 2008
- - Dernière réponse : lailaElk
Messages postés
1
Date d'inscription
jeudi 22 janvier 2015
Dernière intervention
18 janvier 2017
- 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

12 réponses

Meilleure réponse
Messages postés
28
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
4 décembre 2008
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!

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

lailaElk
Messages postés
1
Date d'inscription
jeudi 22 janvier 2015
Dernière intervention
18 janvier 2017
-
merciii infiniment
Commenter la réponse de Paxx
Messages postés
2
Date d'inscription
dimanche 5 novembre 2000
Dernière intervention
5 décembre 2008
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
Messages postés
28
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
4 décembre 2008
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
Messages postés
8
Date d'inscription
dimanche 15 février 2009
Dernière intervention
5 septembre 2009
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
Messages postés
83
Date d'inscription
vendredi 17 juillet 2009
Dernière intervention
27 juin 2016
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
-
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
Messages postés
8
Date d'inscription
dimanche 15 février 2009
Dernière intervention
5 septembre 2009
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
Messages postés
8
Date d'inscription
dimanche 15 février 2009
Dernière intervention
5 septembre 2009
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
Messages postés
8
Date d'inscription
dimanche 15 février 2009
Dernière intervention
5 septembre 2009
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
Messages postés
8
Date d'inscription
dimanche 15 février 2009
Dernière intervention
5 septembre 2009
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
Messages postés
8
Date d'inscription
dimanche 15 février 2009
Dernière intervention
5 septembre 2009
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
Messages postés
8
Date d'inscription
dimanche 15 février 2009
Dernière intervention
5 septembre 2009
0
Merci
voila tout est bien qui ne finit jamais,le pb majeur :le deploiement
comment le faire?
Commenter la réponse de takuma1483
Messages postés
8
Date d'inscription
dimanche 15 février 2009
Dernière intervention
5 septembre 2009
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.