使用日期时间选择器过滤 crystal 报告中的数据
Filter data in crystal report using datetimepicker
我正在 Crystal Reports C# windows application.i 中处理一份报告,从本地主机服务器获取数据到 crystal 报告。我的表单中有 2 个日期时间选择器。
datetimepicker1 = dtpfrom
datetimepicker2 - dtpto
Crystal举报
现在我想要的是,当在 from 和 to datetimepicker 中选择一些日期时,crystal 报告中显示了 between 数据,请帮助我解决我不知道如何开始的问题。我正在通过谷歌搜索在 crystal 报告中显示的日期时间选择器中的数据之间没有得到任何信息。有什么想法吗?
这是我的尝试:
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);
@divi
使用 datetimepicker 过滤报告中的数据未完成编码
执行以下操作:
在Field Explorer -> Parameter Field(右击)-> New中新建参数fromdate, todate
像这样也让今天成为今天
然后右键单击报告。
Select 报告 -> Select离子公式 -> 记录...
执行以下操作
然后单击该表单中的保存并关闭按钮。
知道这个:
右键单击报表 -> 数据库 -> 设置数据源位置...
现码
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();
希望这有助于解决您的问题。
我正在 Crystal Reports C# windows application.i 中处理一份报告,从本地主机服务器获取数据到 crystal 报告。我的表单中有 2 个日期时间选择器。
datetimepicker1 = dtpfrom
datetimepicker2 - dtpto
Crystal举报
现在我想要的是,当在 from 和 to datetimepicker 中选择一些日期时,crystal 报告中显示了 between 数据,请帮助我解决我不知道如何开始的问题。我正在通过谷歌搜索在 crystal 报告中显示的日期时间选择器中的数据之间没有得到任何信息。有什么想法吗?
这是我的尝试:
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);
@divi
使用 datetimepicker 过滤报告中的数据未完成编码
执行以下操作:
在Field Explorer -> Parameter Field(右击)-> New中新建参数fromdate, todate
像这样也让今天成为今天
然后右键单击报告。
Select 报告 -> Select离子公式 -> 记录...
执行以下操作
然后单击该表单中的保存并关闭按钮。
知道这个:
右键单击报表 -> 数据库 -> 设置数据源位置...
现码
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();
希望这有助于解决您的问题。