gpt4 book ai didi

c# - 使用日期时间选择器过滤 Crystal 报表中的数据

转载 作者:行者123 更新时间:2023-11-30 20:20:09 25 4
gpt4 key购买 nike

我正在 Crystal Reports C# windows 应用程序中处理报告。我从本地主机服务器获取数据到 Crystal Report。我的表单中有 2 个日期时间选择器。

datetimepicker1 = dtpfrom

datetimepicker2 - dtpto

enter image description here

Crystal 报表

enter image description here

现在我想要的是,当在 from 和 to datetimepicker 中选择一些日期时, Crystal 报表中显示了两者之间的数据,请帮助我解决我不知道如何开始的问题。我正在通过谷歌搜索我没有得到关于 Crystal 报告中 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();

但是我遇到了一个错误

An unhandled exception of type 'CrystalDecisions.CrystalReports.Engine.DataSourceException' occurred in CrystalDecisions.ReportAppServer.DataSetConversion.dll

Additional information: Failed to load database information.

在线:

objcr.SetDataSource(dt);

最佳答案

@迪维

使用 datetimepicker 过滤报告中的数据未完成您的编码

执行以下操作:

在Field Explorer -> Parameter Field(Right Click)-> New中新建参数fromdate, todate enter image description here

像这样也做今天

enter image description here

然后右键单击报告。

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

执行以下操作

enter image description here

然后单击该表单中的保存并关闭按钮。

了解这一点:

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

enter image description here

现在代码

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

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

关于c# - 使用日期时间选择器过滤 Crystal 报表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37391112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com