2010-03-29 6 views
0

Im utilisant vb.net et j'ai besoin d'extraire des données de deux tables différentes et de les afficher sous forme de rapport. Ce sont les schémas et les données de mes deux tableaux:Créer un rapport Crystal avec des données extraites de deux tables différentes

CREATE TABLE personal_details (staff_ID integer PRIMARY KEY, title varchar(10), fn varchar(250), ln varchar(250), mn varchar(250), dob varchar(50), hometown varchar(250), securityno varchar(50), phone varchar(15), phone2 varchar(15), phone3 varchar(15), email varchar(250), address varchar(300), confirmation varchar(50), retirement varchar(50), designation varchar(250), region varchar(250)); 
INSERT INTO personal_details VALUES(1,'Mr.','Selom','AMOUZOU','Kokou','Sunday, March 28, 2010','Ho',7736,'024-747-4883','277-383-8383','027-838-3837','[email protected]','Lapaz Kum Hotel','Sunday, March 28, 2010','Sunday, March 28, 2010','Designeur','Brong Ahafo'); 


CREATE TABLE training(
    training_ID integer primary key NOT NULL, 
    staff_ID varchar(100), 
    training_level varchar (60), 
    school_name varchar(100), 
    start_date varchar(100), end_date varchar(100)); 
INSERT INTO training VALUES(1,1,'Primary School','New School','Feb 1955','May 1973'); 
INSERT INTO training VALUES(2,1,'Middle/JSS','Ipmc','Feb 1955','May 1973'); 

Im essayant de récupérer et afficher les données des tableaux ci-dessus de la façon suivante:

Dim rpt As New CrystalReport1() 
      Dim da As New SQLiteDataAdapter 
      Dim ds As New presbydbDataSet 
      ds.EnforceConstraints = False 

If conn.State = ConnectionState.Closed Then 
       conn.Open() 
      End If 

Dim cmd As New SQLiteCommand("SELECT p.fn, t.training_level FROM personal_details p INNER JOIN training t ON p.staff_ID = t.staff_ID", conn) 
      cmd.ExecuteNonQuery() 
      da.SelectCommand = cmd 
      da.Fill(ds) 

      rpt.SetDataSource(ds) 
      CrystalReportViewer1.ReportSource = rpt 
      conn.Close() 

Mon problème est que rien n'affiche sur le rapport sauf si j'enlève les champs d'entraînement ou les champs de détails personnels du rapport. Besoin de votre aide. Merci

Répondre

1

Ma conjecture (puisque vous ne spécifiez pas quel moteur de base de données que vous utilisez) est que vous comparez sans succès le varchar staff_id avec le nombre entier staff_id. Essayez de définir training.staff_id comme un entier.

+0

Merci d'avoir répondu. Je viens de changer le training.staff_ID en entier mais quand même. Je viens aussi de travers un joli tutoriel http://vb.net-informations.com/crystal-report/vb.net_crystal_report_from_multiple_tables.htm Je le lis maintenant. Je reviendrai si je suis toujours confronté à un problème. Merci d'avance – Selom

Questions connexes