如何将日期范围参数从 C# 传递到 ValueRange 晶体报告
How to pass Date range parameter from C# to a ValueRange crystals report
我很难将日期范围从 C# 传递到 Crystal 报告。
- 我的 C# 表单中有两个值
StartDate
和 EndDate
。
- 并且我在 Crystal 报告中有一个参数字段名称
Date
和 允许范围值 。
我尝试制作一个string []
来将两个值传递给crystal报告,它提示错误ValueRangeKind。
PrintDocument pd = new PrintDocument();
rpt.PrintOptions.PrinterName = pd.PrinterSettings.PrinterName;
rpt.SetParameterValue("Company", nm);
rpt.SetParameterValue("Location", cbxloc.ToString().Trim().ToUpper());
rpt.SetParameterValue("Product Project", cbxppj.ToString().Trim().ToUpper());
rpt.SetParameterValue("Commodity", cbxcommodity.ToString().Trim().ToUpper());
rpt.SetParameterValue("Date", new string[]{StartDate,EndDate});
这是错误信息:
ParameterFieldException was unhandled:
The parameter field current values cannot
contain discrete values because the ValueRangeKind property is set to
range.
希望您能理解我的情况。
根据我的经验,我不会这样做。
我发现传递两个日期而不是一个范围要好得多,然后在 crystal.
中使用 >=
& <=
C#
ParameterRangeValue myParameterRangeValue = new ParameterRangeValue();
myParameterRangeValue.StartValue = StartDate;
myParameterRangeValue.EndValue = EndDate;
crReport.SetParameterValue("Date", myParameterRangeValue);
VB
Dim myParameterRangeValue As New ParameterRangeValue
myParameterRangeValue.StartValue = StartDate
myParameterRangeValue.EndValue = EndDate
crReport.SetParameterValue("Date", myParameterRangeValue)
您需要创建一个 ParameterRangeValue 对象,填充它,并将其传递给 setter。
您需要将日期作为字符串传递(我没有尝试使用 DateTime 对象,但我认为它不会起作用),因此请确保先将 DateTime 对象转换为字符串。
我很难将日期范围从 C# 传递到 Crystal 报告。
- 我的 C# 表单中有两个值
StartDate
和EndDate
。 - 并且我在 Crystal 报告中有一个参数字段名称
Date
和 允许范围值 。
我尝试制作一个string []
来将两个值传递给crystal报告,它提示错误ValueRangeKind。
PrintDocument pd = new PrintDocument();
rpt.PrintOptions.PrinterName = pd.PrinterSettings.PrinterName;
rpt.SetParameterValue("Company", nm);
rpt.SetParameterValue("Location", cbxloc.ToString().Trim().ToUpper());
rpt.SetParameterValue("Product Project", cbxppj.ToString().Trim().ToUpper());
rpt.SetParameterValue("Commodity", cbxcommodity.ToString().Trim().ToUpper());
rpt.SetParameterValue("Date", new string[]{StartDate,EndDate});
这是错误信息:
ParameterFieldException was unhandled:
The parameter field current values cannot contain discrete values because the ValueRangeKind property is set to range.
希望您能理解我的情况。
根据我的经验,我不会这样做。
我发现传递两个日期而不是一个范围要好得多,然后在 crystal.
中使用>=
& <=
C#
ParameterRangeValue myParameterRangeValue = new ParameterRangeValue();
myParameterRangeValue.StartValue = StartDate;
myParameterRangeValue.EndValue = EndDate;
crReport.SetParameterValue("Date", myParameterRangeValue);
VB
Dim myParameterRangeValue As New ParameterRangeValue
myParameterRangeValue.StartValue = StartDate
myParameterRangeValue.EndValue = EndDate
crReport.SetParameterValue("Date", myParameterRangeValue)
您需要创建一个 ParameterRangeValue 对象,填充它,并将其传递给 setter。 您需要将日期作为字符串传递(我没有尝试使用 DateTime 对象,但我认为它不会起作用),因此请确保先将 DateTime 对象转换为字符串。