Bonjour,

J'utilise VB.NET avec un reporting sous Crystal Report et j'ai probablement un petit soucis de compréhension et je cherche dond de l'aide.

J'ai un Etat R_Test.rpt dans lequel je fais une connection à une base de données Access 2003 MaBase.mdb. J'ai par la suite crée mon état et disposer les différents champs de ma base de données à afficher. Ensuite je crée un formulaire dans lequel j'y incorpore un CrystalReportViewer MonViewer.

Au démarrage de mon formulaire j'ai ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
   Dim MonEtat As New R_Test
   Me.MonViewer.ReportSource = MonEtat
Le résultat est parfait, mon rapport affiche bien les données de ma table. Maintenant je désirerai faire en sorte que mon rapport n'affiche que certaines données (ex : les enregistrements où id = MonParamètre).

Comment dois je procéder ?


Voici ce que j'ai tenté :

J'ai retiré ma connexion à la base de données dans mon fichier .rpt et dans mon code VB.NET de mon formulaire j'ai ajouté ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
Dim MonEtat As New R_Facture
Dim Sql As String
Dim ObjCommand As OleDb.OleDbCommand
Dim ObjDataAdapter As OleDb.OleDbDataAdapter
Dim ObjDataSet As DataSet
Dim id as Integer
 
'là j'utilise une constante pour le test mais par la suite ça dépendra de
 l'action de l'utilisateur
Id = 1
Sql = "Select MonChamp From MaTable Where id = " & id
 
ObjCommand = New OleDb.OleDbCommand(Sql)
ObjCommand.Connection = Cnx
ObjDataAdapter = New OleDb.OleDbDataAdapter(ObjCommand)
ObjDataSet = New DataSet
ObjDataAdapter.Fill(ObjDataSet, "Test")
 
MonEtat.SetDataSource(ObjDataSet)
Me.CrystalR_Facture.ReportSource = MonEtat
Pas de problème d'éxecution mais le résultat n'est pas celui attendu, mon rapport n'affiche aucune donnée de ma base de données tout simplement pcq dans mon fichier .rpt tous les champs de base de données que j'avais ajouté ont disparu au moment de la suppression de la connexion à la base de données dans mon fichier .rpt.

Est ce que je tiens le bon fil ? Dans quel cas comment je fais pour recréer ces champs de base de données sur mon fichier .rpt sachant que je ne peux plus cliquer/glisser les champs de la base de données du fait que j'ai supprimé la connexion à la base de données.


Est ce que je me suis bien expliqué ?


Merci