如何在C#中以编程方式将参数传递给子报表 [英] how to Pass Parameter to Subreports Programatically in C#

查看:66
本文介绍了如何在C#中以编程方式将参数传递给子报表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

hi
我正在尝试将参数传递给子报告。我可以使用以下代码传递参数表格主报告。但不能使用子报告中的以下代码传递参数。请指导我。

提前感谢。

hi i am trying to pass parameter to sub report. i can pass parameter form main report by using following code. but can not pass parameter using following code in sub report. please guide me.
thanks in advance.

blancesheetfinal cryRpt = new blancesheetfinal();

            crinfo.IntegratedSecurity = true;

            TableLogOnInfos crLoginfos = new TableLogOnInfos();
            TableLogOnInfo crLoginfo = new TableLogOnInfo();
            Tables Crtables;
            Crtables = cryRpt.Database.Tables;

            foreach (Table crtable in Crtables)
            {
                crLoginfo = crtable.LogOnInfo;
                crLoginfo.ConnectionInfo = crinfo;
                crtable.ApplyLogOnInfo(crLoginfo);
            }
            /////// for first parameter feild
            ParameterFieldDefinitions crParameterFieldDefinitions;
            ParameterFieldDefinition crParameterFieldDefinition;
            ParameterValues crParameterValues = new ParameterValues();
            ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();

            crParameterDiscreteValue.Value = textBox1.Text;
            crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
            crParameterFieldDefinition = crParameterFieldDefinitions["cid"];
            crParameterValues = crParameterFieldDefinition.CurrentValues;

            crParameterValues.Clear();
            crParameterValues.Add(crParameterDiscreteValue);
            crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);

            ///////// parameter for sub report 
            
            ParameterFieldDefinitions ccrParameterFieldDefinitions;
            ParameterFieldDefinition ccrParameterFieldDefinition;
            ParameterValues ccrParameterValues = new ParameterValues();
            ParameterDiscreteValue ccrParameterDiscreteValue = new ParameterDiscreteValue();

            //ccrParameterDiscreteValue.Value = textBox1.Text;
            ccrParameterDiscreteValue.Value = dateTimePicker1.Text;
            ccrParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
            ccrParameterFieldDefinition = ccrParameterFieldDefinitions["date"];
            ccrParameterValues = ccrParameterFieldDefinition.CurrentValues;

            ccrParameterValues.Clear();
            ccrParameterValues.Add(ccrParameterDiscreteValue);
            ccrParameterFieldDefinition.ApplyCurrentValues(ccrParameterValues);
            crystalReportViewer1.ReportSource = cryRpt;
            crystalReportViewer1.Refresh(); 
           
            crystalReportViewer1.ReportSource = cryRpt;
crystalReportViewer1.Refresh();

推荐答案

请尝试如下。



注意:这是一个示例代码。请根据您的情况进行调整。

Please try is as below.

Note:This is a sample code.Please adjust it according to your situation.
ReportDocument cryRpt = new ReportDocument();
cryRpt.Load("rptMainReport.rpt");
cryRpt.SetParameterValue("myRoleId", 2, "subreport name");


这篇关于如何在C#中以编程方式将参数传递给子报表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆