Heim >Datenbank >MySQL-Tutorial >Wie erstellt und implementiert man benutzerdefinierte Abfragen für den komplexen Datenabruf in Crystal Reports mit VB.NET und C#?
Erstellen Sie Abfragen für den Abruf komplexer Daten in Berichten
Ihre VB-Anwendung druckt einen Bericht mithilfe von ODBC. Über den Datenbankexperten werden Tabellen hinzugefügt und ein Crystal Report erstellt. Es stellt sich die Frage, wo eine benutzerdefinierte Abfrage platziert werden soll, um bestimmte Daten für den Bericht abzurufen.
Suchen des Abfragefelds in Crystal Report
Navigieren Sie zum Crystal Report-Assistenten und Suchen Sie die ODBC-Verbindung, die Sie mit Benutzername und Passwort erstellt haben. Es wird ein Feld „Befehlstext“ angezeigt, in das Sie Ihre benutzerdefinierte Abfrage eingeben können.
Beispielabfrage
Die bereitgestellte Abfrage ruft Daten aus mehreren Tabellen ab:
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 & "'
VB.NET Code
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#-Code
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();
Denken Sie daran, in Ihrem Code dieselben Parameternamen anzugeben wie im Crystal Report-Design.
Das obige ist der detaillierte Inhalt vonWie erstellt und implementiert man benutzerdefinierte Abfragen für den komplexen Datenabruf in Crystal Reports mit VB.NET und C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!