【问题标题】:How to pass parameter in SubReport from Main Crystal Report?如何从主水晶报表中传递子报表中的参数?
【发布时间】:2017-01-27 07:06:26
【问题描述】:

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

            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 的值?

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

请帮忙!

【问题讨论】:

  • 如果答案与您的问题相关,则标记为已回答。

标签: c# sql-server winforms crystal-reports parameter-passing


【解决方案1】:

按照这些步骤将参数从主报告传递到子报告

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

【讨论】:

    【解决方案2】:

    好的,我明白了,

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多