繁体   English   中英

如何通过从C#中的Win Forms中选择的日期参数显示Crystal报表

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

  • 当我定义date-date参数时,我的报告空白。
  • 我的报告来源是XML文件。

记录报告

在此处输入图片说明

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()); }
}

我的报表有两个参数, fromDatetoDate ,都定义为Date Time ,谨慎值。 在此处输入图片说明

我的选择记录公式如下:

在此处输入图片说明

如果删除此公式,则报告将显示所有内容,但是如果输入此公式,则报告将显示为空白。

解决:我的情况下,我不会使用数据库值,因为“ Arthi在这里出现” 使用datetimepicker筛选水晶报表中的数据

代替dateTimePicker1.Value,请尝试以下操作:

crParameterDiscreteValue.Value = dateTimePicker1.Text;

看到这个- 使用datetimepicker过滤Crystal报表中的数据

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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