从报表中的两个表中查询

2021-11-20 00:00:00 crystal-reports vb.net mysql

我的 VB 应用程序通过 ODBC 打印报告.我使用数据库专家添加了表格并设计了水晶报表.我在哪里查询?这是我的查询

My VB application prints a report via ODBC. I added the tables using database expert and designed the Crystal Report. Where do I put my query? here is my query

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 & "'

推荐答案

在 Crystal 报表向导中,找到使用用户名和密码创建的 odbc.

In Crystal report wizard, locate your odbc created with username and password.

然后你会看到一个命令文本,你可以把你的查询放在那里.

Then you will see a Command text, You can put your Query in there.

此代码用于 VB.NET

This code for 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();

您的水晶报表参数名称必须与您的代码隐藏中相同.

Your crystal report parameter name must be the same with in your Code Behind.

相关文章