Bonjour tout le monde.
Pour commencer voici les 3 tables utilisées pour remplir le dataset :
Clients | | clt_pres | | prestations |
codeClt | codeClt | codePrestation |
nom | codePrestation| prestation |
adresse | ------------------ -------------------
ville |
---|
Bon, l’objectif souhaité c’est d’afficher les coordonnées d’un client (code, nom, adresse, ville) table “Clients” + les codes des prestations accordées à ce client, table “clt_pres” + puis d’afficher en bas du crystal toutes les prastations existantes avec leurs codes, table “prestations”.
ma forme contient une zone de texte contenant le code du client.
j’ai créé un paramètre qui contient la valeur de la zone de texte pour pouvoir afficher seulement les coordonnées du client souhaité.
ce que j’arrive à afficher c’est ce qui suit :
code nom adresse ville codePrestation
101S XXX XXXXX XX 1
101S XXX XXXXX XX 2
codePrestation prestation
1 assistance
2 domiciliation
Mais ce que je veux afficher c’est :
code nom adresse ville codePrestation
101S XXX XXXXX XX 1-2
codePrestation prestation
1 assistance
2 domiciliation
3 audit
4 comptabilité
Le code que j’ai utilisé est le suivant :
Private Sub CrystalReportViewer1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CrystalReportViewer1.Load
Dim r As New cr_test
Dim s As New ds_test
conn.Open()
adpClt.SelectCommand.Connection = conn
adpClt.SelectCommand.CommandText = "select * from clients"
adpPres.SelectCommand.Connection = conn
adpPres.SelectCommand.CommandText = "select * from prestations"
adpCltPres.SelectCommand.Connection = conn
adpCltPres.SelectCommand.CommandText = "select * from clt_pres"
adpClt.Fill(s, "clients")
adpPres.Fill(s, "prestations")
adpCltPres.Fill(s, "clt_pres")
Dim c As New cr_test
c.SetParameterValue("p1", Par) ' Par contient la valeur de la zone de
' la zone de texte contenant le code du
' client à afficher
c.SetDataSource(s)
Me.CrystalReportViewer1.ReportSource = c
conn.Close()
End Sub
si quelqu’un pourrait m’aider à résoudre ce problème, je serai vraiment reconnaissante.
Merci d’avance.