【问题标题】:Query from two tables in report从报表中的两个表查询
【发布时间】:2017-06-08 05:39:56
【问题描述】:

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

【问题讨论】:

    标签: mysql vb.net crystal-reports


    【解决方案1】:

    在 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();
    

    您的水晶报表参数名称必须与您的代码背后的参数名称相同。

    【讨论】:

    • 谢谢先生。我稍后会试试这个。 :)
    • 这就是我正在寻找的。非常感谢先生。现在我在哪里的查询还有一个问题,WHERE stu.SECTIONNAME = {?sectiontext} And stu.GRADELEVEL = sch.GRADELEVEL AND FACFULLNAME = {?facultyname} AND sch.@987654327 @ = {?glvl} .如何使用表单中的标签更改“{?sectiontext}”、{?facultyname} 和 {?glvl} 的值。
    • 不要犹豫,问一些问题。感谢欣赏
    • 我会尽快告诉你结果。如果我会遇到错误。
    • 欢迎分享我的想法。
    猜你喜欢
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    相关资源
    最近更新 更多