如何通过查询字符串将日期值传递给BIRT报告

时间:2010-06-14 10:53:08

标签: query-string report birt

我创建了一个静态html页面(名为start.jsp),其中包含一个用户选择2个日期范围的表单,此表单包含这些文本框的日期选择器。当用户提交时 表格,应该把它们带到我设计的BIRT报告中。这应该 传递我的报告所需的2个参数(开始日期和结束日期)。

以下是附加到URL的查询字符串 birt-viewer / run__report = Business_Activity_Monitoring.rptdesign & FilterStartDate = 2000-01-01& FilterEndDate = 2009-01-01

我收到无效的日期错误: org.eclipse.birt.report.exception.ViewerValidationException:参数“FilterStartDate”无效。 “06-08-2010”值对于“dateTime”类型无效。

如果我完全删除查询字符串,那么BIRT会提示我输入 开始日期和结束日期(附上截图)。 我输入表单尝试发送的完全相同的数据,它可以工作!?

这证明我的日期字符串格式正确,但如果它们不会接受它们 通过查询字符串发送到BIRT报告?好像它有问题了 事实上,它首先是一个字符串。

我已在BIRT报告中正确设置了这些报告参数。我也试过改变它们 通过将“格式化为”值指定为“自定义”YYYY-MM-dd,但这不起作用。

是否可以通过查询字符串将日期参数发送到birt报告?

我猜测解决方案将涉及将这些字符串转换为birt报告的“脚本”选项卡中的日期。 但我不知道如何从这里访问查询字符串变量或如何设置报告 参数变量。

由于 -Tommy

4 个答案:

答案 0 :(得分:2)

您的报表参数的数据类型可能为“DateTime”。因此,仅仅通过日期是不够的。当您使用OOTB参数请求页面时,这将在封面下进行说明。将参数数据类型更改为“日期”或将时间签名附加到通过页面提供给报告的参数(即2009-01-01 00:00:00)。任何一种方法都应该做到这一点。

祝你好运!

答案 1 :(得分:2)

以下是BIRT用于验证参数的格式:

DEFAULT_DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS"

所以,如果你传递日期/时间,它应该工作

&mydate=2009-11-22 00:00:00.0

答案 2 :(得分:0)

如果您传递的开始日期参数是2000-01-01,为什么它会显示错误消息,说06-08-2010无效?看起来日期参数在报表的其他位置设置,可以是默认值,也可以是事件脚本中的。

答案 3 :(得分:0)

检查您的日期格式;请记住,MM用于月份, mm 用于分钟

同时检查此解决方案,可在Eclipse Community Forums找到:

  

在网址中尝试此操作:

     

&安培;数值指明MyDate = 22 /2009分之11&安培; __ islocale =指明MyDate

     

用你的参数替换mydate   名称。 __isLocale参数   指定参数已经   本地化。