使用datetimepicker过滤水晶报表中的数据

Div*_*ivi 2 c# datetimepicker crystal-reports

我正在使用Crystal Reports C#windows application.i中的报告从localhost服务器获取数据到crystal report.我的表单中有2个datetimepicker.

datetimepicker1 = dtpfrom

datetimepicker2 - dtpto

在此输入图像描述

Crystalreport

在此输入图像描述

现在我想要的是,当从中选择一些日期和到datetimepicker时,数据之间的数据显示在水晶报告中请帮我解决我不知道如何开始.我正在通过谷歌搜索搜索我没有得到水晶报告中的datetimepicker显示数据之间的任何事情.有任何想法吗?

在这里我尝试:

MySqlConnection conn = new MySqlConnection(MyCon);
            CrystalReport1 objcr = new CrystalReport1();
            MySqlDataAdapter da = new MySqlDataAdapter("select * from data where date>='" + DateTime.Parse(dtpfrom.Text) + "' and date<='" + DateTime.Parse(dtpto.Text) + "' ", conn);
            DataTable dt = new DataTable();
            da.Fill(dt);
            objcr.SetDataSource(dt);
            crystalReportViewer1.ReportSource = objcr;
            crystalReportViewer1.RefreshReport();
Run Code Online (Sandbox Code Playgroud)

但我收到了一个错误

CrystalDecisions.ReportAppServer.DataSetConversion.dll中出现未解决的"CrystalDecisions.CrystalReports.Engine.DataSourceException"类型异常

附加信息:无法加载数据库信息.

在线:

objcr.SetDataSource(dt);
Run Code Online (Sandbox Code Playgroud)

Art*_*thi 6

@divi

使用datetimepicker过滤报表中的数据不适用于您的编码

请执行下列操作:

在字段资源管理器中创建一个新参数fromdate,todate - >参数字段(右键单击) - >新建 在此输入图像描述

像这样使得todate也

在此输入图像描述

然后右键单击报告.

选择报告 - >选择公式 - >记录...

做以下

在此输入图像描述

然后单击该窗体中的保存并关闭按钮.

知道这个:

右键单击报告 - >数据库 - >设置数据源位置...

在此输入图像描述

现在代码

 ReportDocument report = new ReportDocument();
            report.Load("C:\\Users\\Desktop\\CrystalReport1.rpt");

            TableLogOnInfo Table = new TableLogOnInfo();
            ConnectionInfo Connection = new ConnectionInfo();
            Tables Tables;

            ParameterFieldDefinitions Parameters;
            ParameterFieldDefinition Parameter;
            ParameterValues Values = new ParameterValues();
            ParameterDiscreteValue DiscreteValue = new ParameterDiscreteValue();

            DiscreteValue.Value = dateTimePicker1.Text;
            Parameters = report.DataDefinition.ParameterFields;
            Parameter = Parameters["fromdate"];
            Values = Parameter.CurrentValues;

            Values.Clear();
            Values.Add(DiscreteValue);
            Parameter.ApplyCurrentValues(Values);

            DiscreteValue.Value = dateTimePicker2.Text;
            Parameters = report.DataDefinition.ParameterFields;
            Parameter = Parameters["todate"];
            Values = Parameter.CurrentValues;

            Values.Add(DiscreteValue);
            Parameter.ApplyCurrentValues(Values);

            Connection.ServerName = "Your servername in Set Datasource Location";
            Connection.DatabaseName = "Your databasename in Set Datasource Location";
            Connection.UserID = "your username";
            Connection.Password = "your password";

            Tables = report.Database.Tables;
            foreach (CrystalDecisions.CrystalReports.Engine.Table table in Tables)
            {
                Table = table.LogOnInfo;
                Table.ConnectionInfo = Connection;
                table.ApplyLogOnInfo(Table);
            }

            crystalReportViewer1.ReportSource = report;
            crystalReportViewer1.Refresh();
Run Code Online (Sandbox Code Playgroud)

希望这有助于解决您的问题.