Click here to Skip to main content
Rate this: bad
good
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.s310
Edited 3-Nov-12 0:57am
ProgramFOX109.7K
v2
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  
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 at 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 at 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 at 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.

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

  Print Answers RSS
0 Sergey Alexandrovich Kryukov 696
1 OriginalGriff 478
2 Tadit Dash 400
3 sanket saxena 337
4 Peter Leow 228
0 Sergey Alexandrovich Kryukov 11,890
1 OriginalGriff 7,335
2 Peter Leow 5,003
3 Abhinav S 3,943
4 Maciej Los 3,575


Advertise | Privacy | Mobile
Web03 | 2.8.140421.2 | Last Updated 3 Nov 2012
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Use
Layout: fixed | fluid