Click here to Skip to main content
12,445,025 members (56,168 online)
Rate this:
 
Please Sign up or sign in to 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...
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 3-Nov-12 0:55am
kasun.s315
Updated 3-Nov-12 0:57am
ProgramFOX185.7K
v2
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 1

Hi,

I can see one mistake in the code,

Please check updated code below,
paraFields.Add(paraField1);
Inseted of above code you need to update it with
paraFields.Add(paraField2);
When you are adding your second parameter you are basically adding first parameter multiple times.

Hope you resolve your issue.
  Permalink  
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.
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 2

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.....
  Permalink  

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

  Print Answers RSS
Top Experts
Last 24hrsThis month


Advertise | Privacy | Mobile
Web02 | 2.8.160811.3 | Last Updated 3 Nov 2012
Copyright © CodeProject, 1999-2016
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100