2017-01-27 72 views
-1

我有一个运行我的主要报告的存储过程。如何从主水晶报告的SubReport中传递参数?

  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,但我真的不' t知道:

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

每当我运行我的程序时出现一个对话框并要求输入参数值!之后又出现了我的登录凭证。

请帮忙!

+0

如果答案是有关您的问题,然后标记为回答。 –

回答

0

好吧,我知道了,

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

按照以下步骤从主报告中的参数传递到子报告

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