我的 VB 应用程序通过 ODBC 打印报告。我使用数据库专家添加了表格并设计了水晶报表。我的查询应该放在哪里?
这是我的查询
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 & "'
![enter image description here](https://i.stack.imgur.com/m3INK.png)
在 Crystal 报表向导中,找到使用用户名和密码创建的 odbc。
然后你会看到一个命令文本,你可以把你的查询放在那里。
此代码适用于 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();
您的水晶报表参数名称必须与您的代码隐藏中的相同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)