2

我制作了一个静态 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”无效。“dateTime”类型的值“06-08-2010”无效。

如果我完全删除查询字符串,那么 BIRT 会提示我输入开始日期和结束日期(附截图),这是怎么回事。我输入了与表单尝试发送的完全相同的数据并且它有效!?

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

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

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

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

谢谢-汤米

4

4 回答 4

2

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

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

因此,如果您传入日期/时间,因为它应该可以工作

&mydate=2009-11-22 00:00:00.0
于 2011-11-14T21:57:50.783 回答
2

您的报告参数可能具有“日期时间”的数据类型。因此,您仅传递日期是不够的。当您使用 OOTB 参数请求页面时,这是在幕后考虑的。将参数数据类型更改为“日期”或将时间签名附加到通过您的页面提供给报告的参数(即 2009-01-01 00:00:00)。任何一种方法都应该可以解决问题。

祝你好运!

于 2010-06-14T22:45:57.587 回答
0

如果您传递的开始日期参数是 2000-01-01,为什么它会给您一条错误消息,说 06-08-2010 无效?看起来好像在报告中的其他地方设置了日期参数,或者作为默认值,或者可能在事件脚本中。

于 2010-06-15T12:47:23.973 回答
0

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

还要检查这个解决方案,在Eclipse 社区论坛上找到:

在 URL 中试试这个:

&mydate=22/11/2009&__islocale=mydate

将 mydate 替换为您的参数名称。__isLocale 参数指定该参数已本地化。

于 2011-01-30T16:25:00.343 回答