Crystal Report未将参数传递给子报表

时间:2016-08-29 07:28:46

标签: c# crystal-reports

我有一个可配置的win表单应用程序,我可以在其中设置子报表可以插入主报表的次数,如下所示:

配置页面:(导入子报告的顺序)

SubRep1 SubRep1 SubRep1 SubRep3 SubRep3 SubRep2 SubRep2 SubRep2

所以,在我的主报告中,我将导入/插入3次子报告1次,2次子报告2次和3次子报告2.每个子报告都有一个参数,我通过代码设置一个值,但它只出现在第一个报告的实例......

所以,就像这样:

SubRep1(有一个参数) SubRep1 SubRep1 SubRep3(有一个参数) SubRep3 SubRep2(有一个参数) SubRep2 SubRep2

问题是我需要为每个参数设置一个参数! 我的代码......

SetMainReportParameters(reportParameterList);

                for (int i = 0; i < rlc.ReportLayout.Count; i++)
                {
                    if (rlc.ReportLayout[i].SubreportName == "SectionReportTest1.rpt")
                    {
                        SetSectionOneReportParameters(reportParameterList);
                    }
                    if (rlc.ReportLayout[i].SubreportName == "SectionReportTest2.rpt")
                    {
                        SetSectionTwoReportParameters(reportParameterList);
                    }
                    if (rlc.ReportLayout[i].SubreportName == "SectionReportTest3.rpt")
                    {
                        SetSectionThreeReportParameters(reportParameterList);
                    }
                }

并且在通过时...

//list of every parameter (main and subreports)
                foreach (var current in reportParameterList)
                {
                    if (string.IsNullOrEmpty(current.SubreportName))
                    {
                        document.SetParameterValue(current.Name, current.Value);
                    }
                    else
                    {
                        document.SetParameterValue(current.Name, current.Value, current.SubreportName);
                    }
                }

1 个答案:

答案 0 :(得分:0)

在主报表的*.rpt文件中,您需要在子报表和主报表之间添加链接,并在其中传递参数值。应该可以在模板中子报表对象的上下文菜单中使用。