简体   繁体   中英

How to display crystal report by date parameters selected from Win Forms in C#

  • my report comes out blank, when I define date to date parameter.
  • my report source is XML file.

Records Report

在此处输入图片说明

private void button1_Click(object sender, EventArgs e)
  {
        TR = Application.OpenForms.OfType<Records>().ElementAt(0);
        try
        {
            ds = new DataSet2();
            dt = new System.Data.DataTable();
            dt = ConvertDGVtoDataTable(TR.recordsTableDataGridView);
            ds.Tables.Add(dt);
            ds.WriteXmlSchema("RecordsReport.xml");

        try
        {

            ParameterFieldDefinitions crParameterFieldDefinitions;
            ParameterFieldDefinition crParameterFieldDefinition;
            ParameterValues crParameterValues = new ParameterValues();
            ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();

            crParameterDiscreteValue.Value = dateTimePicker1.Value;
            crParameterFieldDefinitions = treport1.DataDefinition.ParameterFields;
            crParameterFieldDefinition = crParameterFieldDefinitions["fromDate"];
            crParameterValues = crParameterFieldDefinition.CurrentValues;

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

            crParameterDiscreteValue.Value = dateTimePicker2.Value;
            crParameterFieldDefinitions = treport1.DataDefinition.ParameterFields;
            crParameterFieldDefinition = crParameterFieldDefinitions["toDate"];
            crParameterValues = crParameterFieldDefinition.CurrentValues;

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

        // Report Form.
        TReportDisplay TRD = new TReportDisplay();
        Treport treport1 = new Treport();

            TRD.crystalReportViewer2.ReportSource = treport1;
            treport1.SetDataSource(ds);
            TRD.Show();
            TRD.crystalReportViewer2.Refresh();
        }
        catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); };
    }

    catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); }
}

My Report has two parameters, fromDate and toDate , both defined as Date Time , Discreet Values. 在此处输入图片说明

my selection record formula is as follows:

在此处输入图片说明

If I remove this formula, then the report will display everything, but if I enter this formula then the report comes out blank.

Solved: In my case I won't use Database values as "Arthi has present here" Filter data in crystal report using datetimepicker

Instead of dateTimePicker1.Value, try the below:

crParameterDiscreteValue.Value = dateTimePicker1.Text;

See this - Filter data in crystal report using datetimepicker

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM