簡體   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