Click here to Skip to main content
15,892,059 members
Please Sign up or sign in to vote.
4.00/5 (1 vote)
I created a crystal report which pass two date parameters.
formula is
{GetNoOfDays.PlugOnDate} >= {?StartDate} and {GetNoOfDays.Date} <= {?EndDate}

and I think I passed parameters correctly. but when I select two dates from datepickers and press load button, the default parameter prompt window is shown. I cant find which one is wrong.

code as below...
C#
public partial class WindowReport1 : Window
    {

        ParameterFields paraFields = new ParameterFields();
        ParameterField paraField1 = new ParameterField();
        ParameterDiscreteValue paraDescritValue1;
        ParameterField paraField2 = new ParameterField();
        ParameterDiscreteValue paraDescritValue2;

        public WindowReport1()
        {
            InitializeComponent();
            crystalReportsViewer1.Owner = this;
        }

        private void btnLoad_Click(object sender, RoutedEventArgs e)
        {                          
                    paraField1.Name = "StartDate";
                    paraField1.CurrentValues.Clear();
                    paraDescritValue1 = new ParameterDiscreteValue();
                    paraDescritValue1.Value = datePicker1.SelectedDate;
                    paraField1.CurrentValues.Add(paraDescritValue1);
                    paraFields.Add(paraField1);

                    paraField2.Name = "EndDate";
                    paraField2.CurrentValues.Clear();
                    paraDescritValue2 = new ParameterDiscreteValue();
                    paraDescritValue2.Value = datePicker2.SelectedDate;
                    paraField2.CurrentValues.Add(paraDescritValue1);
                    paraFields.Add(paraField1);

            crystalReportsViewer1.ViewerCore.ParameterFieldInfo = paraFields; 
 
            ReportDocument report = new ReportDocument();
            report.Load("../../CrystalReport1.rpt");
          
            using (comocoLTSDataContext dc = new comocoLTSDataContext())
            {
                report.SetDataSource(from c in dc.VNoOfDays
                                     select new { c.VesselRef, c.ContainerNo,                                           c.PlugOnDate, c.PlugOnTime, c.Date, c.Time, });
            }
            
            crystalReportsViewer1.ViewerCore.ReportSource = report;
            //crystalReportsViewer1.ViewerCore.RefreshReport();
 
        }}}

can anyone give quick solution as it is urgent, please.....

[Edit]Code block added[/Edit]
Posted
Updated 3-Nov-12 0:57am
v2

Hi,

I can see one mistake in the code,

Please check updated code below,
C#
paraFields.Add(paraField1);

Inseted of above code you need to update it with
C#
paraFields.Add(paraField2);

When you are adding your second parameter you are basically adding first parameter multiple times.

Hope you resolve your issue.
 
Share this answer
 
Comments
kasun.s 3-Nov-12 7:36am    
oh...I didn't see it, I fixed both
paraField2.CurrentValues.Add(paraDescritValue2);
paraFields.Add(paraField2);
but issue didn't solved. always prompt enter parameters window.
AmitGajjar 3-Nov-12 7:39am    
Check http://www.codeproject.com/Articles/29734/How-To-Prevent-Enter-Parameter-Value-Dialog-Poppin article

this may help you.
kasun.s 3-Nov-12 23:21pm    
Dear friend, I already read this. this is only support for asp.net not for WPF, means some definitions doesnt contains like ".ParameterFieldInfo[0]"
please try again to give me a reply.
Dear friends,

finally I found the solution. we have to "set the parameter value into the report after binding data". Otherwise we will get a prompt to enter data.
so I found very simple code to do that.

// First bind data....
ReportDocument report = new ReportDocument();
report.Load("../../CrystalReport1.rpt");

using (comocoLTSDataContext dc = new comocoLTSDataContext())
{
report.SetDataSource(from c in dc.VNoOfDays
select new { c.VesselRef, c.ContainerNo, c.PlugOnDate, c.PlugOnTime, c.Date, c.Time, });
}
//then set parameter values....
report.SetParameterValue("StartDate", datePicker1.SelectedDate);
report.SetParameterValue("EndDate", datePicker2.SelectedDate);

crystalReportsViewer1.ViewerCore.ParameterFieldInfo = paraFields;

crystalReportsViewer1.ViewerCore.ReportSource = report;

thank you all.....
 
Share this answer
 

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