繁体   English   中英

如何将日期范围参数从C#传递到ValueRange晶体报表

[英]How to pass Date range parameter from C# to a ValueRange crystals report

我很难将日期范围从C#传递给Crystal Report。

  • 在这里,我从C#表单StartDateEndDate获得两个值。
  • 我在Crystal Report中有一个参数字段名称DateAllow Range Value

我尝试使一个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未处理:
参数字段当前值不能包含离散值,因为ValueRangeKind属性设置为range。

希望你能理解我的情况。

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对象转换为String。

根据我的经验,我只是不这样做。

我发现传递两个日期而不是范围要好得多,然后在Crystal中使用>=<=

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM