Interrogation de plusieurs tables pour Crystal Reports
Cet article répond à une question courante rencontrée lors de la génération de rapports à l'aide d'ODBC et de Crystal Reports dans Visual Basic. La question demande de l'aide pour incorporer une requête SQL qui joint plusieurs tables dans le rapport.
Placement de la requête
Pour incorporer la requête fournie dans votre rapport Crystal, accédez à l'Assistant de rapport et localisez la connexion ODBC que vous avez établie avec un nom d'utilisateur et un mot de passe. Dans l'assistant, vous trouverez un champ intitulé « Texte de commande ». C'est ici que vous pouvez saisir votre requête SQL.
SELECT ts.`SCHEDIDNO`, ts.`DAYNAME`, DATE_FORMAT(ts.`TIMESTART`, '%h:%i %p') as TIMESTART, DATE_FORMAT(ts.`TIMEEND`, '%h:%i %p') as TIMEEND, ts.`GRADELEVEL`, ts.`SECTIONNAME`, ts.`SUBJECTNAME`, ts.`FACFULLNAME`, ts.`ROOMNAME`, tf.`FACFULLNAME` as PERSONNEL, tf.`DEPARTMENT`, tse.`Adviser` FROM `tblschedule` ts, `tblfaculty` tf, `tblsection` tse WHERE ts.`GRADELEVEL` = " & lblgrade.Text & " AND ts.`SECTIONNAME` = '" & lblsect.Text & "' AND ts.`DEPARTMENTNAME` = tf.`DEPARTMENT` AND tf.`ADMINISTRATOR` = 1 AND tse.`SECTIONNAME` = '" & lblsect.Text & "'
Exemple de code pour référence
Vous trouverez ci-dessous un exemple de code pour vous guider dans l'intégration de votre requête dans le rapport :
VB.NET
Private CRPT As New ReportDocument Private APPPATH As String Private PARAM As New ParameterFields Public PARAM_DESC As New ParameterDiscreteValue Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load APPPATH = Application.StartupPath & "\REPORT\sample.rpt" CRPT.Load(APPPATH) Me.CrystalReportViewer1.ReportSource = CRPT PARAM = CRPT.ParameterFields PARAM_DESC.Value = Format(DatePicker1.Value, "yyyyMMdd") PARAM("DATEP").CurrentValues.Clear() PARAM("DATEP").CurrentValues.Add(PARAM_DESC) Me.CrystalReportViewer1.Refresh() End Sub
C#
CRPT = new ReportDocument(); APPPATH = Environment.CurrentDirectory + "Sample.rpt"; CRPT.Load(APPPATH); Report_Viewer.Refresh(); CRPT.SetParameterValue("syear", Servercls.year); CRPT.SetParameterValue("smonth", Servercls.month); CRPT.SetParameterValue("sday", Servercls.day); CRPT.SetParameterValue("datevalue", Servercls.Datevalue); Report_Viewer.ReportSource = CRPT; sc.configureCrystalReport(); Report_Viewer.Refresh();
Considérations
Assurez-vous que les noms des paramètres dans votre rapport Crystal correspondent à ceux spécifiés dans votre base de code. En mettant en œuvre ces instructions, vous pouvez facilement récupérer des données de plusieurs tables et générer un rapport complet à l'aide de Crystal Reports dans votre application VB.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!