繁体   English   中英

如何从主水晶报表在子报表中传递参数?

[英]How to pass parameter in SubReport from Main Crystal Report?

我有一个运行我的主报告的存储过程。

            HPR rpt = new HPR();
            rpt.SetDataSource(objdt.fetch("EXECUTE sp_hpr @DATE ='" + dateTimePicker1.Value.ToString("yyyy-MM-dd 00:00:00") + "'", objdt.strconnection));
            crystalReportViewer1.ReportSource = rpt;
            crystalReportViewer1.Refresh();

上面的查询让我得到了相关的细节。

现在,我只想在主报表页脚中显示一行,首先我在我的存储过程中添加另一个选择查询但它没有用然后有人告诉我使用SubReport ,我做了但我真的不知道:

  1. 如何为也需要 DateTimePicker 的子报表执行第二个存储过程?
  2. 如何在我的子报表中传递 DateTimePicker 的值?

每次我运行我的程序时都会出现一个对话框并要求我输入参数值! 之后,另一个出现在我的登录凭据中。

请帮忙 !

按照以下步骤将参数从主报表传递到子报表

  1. 通过右键单击主报告中字段资源管理器中的“参数字段”部分,在主报告中创建一个新参数 @mainParam。
  2. 以相同的方式在子报表中创建一个新参数@subParam(如果子报表中已有参数,则不需要此参数)
  3. 在主报告的设计窗口中右键单击子报告。 您将能够看到“更改子报告链接”选项。
  4. 单击该选项并选择@mainParam 并使用“>”按钮将其传输到子报告。
  5. 在子报告中选择要映射到的适当字段
  6. 单击确定。

好,我知道了,

            HPR rpt = new HPR();  // Crystal Report Object
            rpt.SetDataSource(objdt.fetch("EXECUTE sp_hpr @DATE ='" + dateTimePicker1.Value.ToString("yyyy-MM-dd 00:00:00") + "'", objdt.strconnection));

            //This is how you run your sub report in main report while passing @date parameter in stored procedure. "rptSub" is your sub report name !

            rpt.Subreports["rptSub"].SetDataSource(objdt.fetch("EXECUTE sp_hpr_avg @DATE ='" + dateTimePicker1.Value.ToString("yyyy-MM-dd 00:00:00") + "'", objdt.strconnection));

            crystalReportViewer1.ReportSource = rpt;
            crystalReportViewer1.Refresh();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM