Click here to Skip to main content
15,889,462 members
Please Sign up or sign in to vote.
4.00/5 (2 votes)
See more:
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.
C#
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();
Posted
Updated 12-Feb-14 6:10am
v4

1 solution

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");
 
Share this answer
 
Comments
shahaz akber1 9-Feb-14 15:27pm    
i have try but i am unable to add above code according to my situation. i got following error "index was outside the bounds of the array"
plz guide me ....
Faisalabadians 13-Feb-14 2:47am    
I could not find "cryRpt.Load" in your code, are you loading report? that's the problem hope so.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900