2010-06-14 44 views
1

我已经创建了一个静态html页面(称为start.jsp),其中包含一个表单,其中用户选择2个日期范围,并且此表单具有这些文本框的日期选择器。当用户提交 表单时,应该将它们带到我设计的BIRT报告中。它应该 传递我的报告需要的2个参数(开始日期和结束日期)。如何通过查询字符串将日期值传递给BIRT报告

这里是一个被附加到URL BIRT查看器/ 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

回答

2

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

祝你好运!

+0

谢谢MystikSpiral - 自从我的文章,我自己解决了这个问题,修复是与你提到的有关。我的报告参数是数据类型“日期时间”,我实际上已将其更改为字符串。 解决了这个问题。我的数据集中的SQL查询可以接受一个字符串作为参数 - 只要它格式化为MySQL的日期格式即可。 – Tommy 2010-06-16 10:36:57

0

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

+0

谢谢Mark,我在帖子中使用了不同错误示例的组合。对不起,我很困惑 – Tommy 2010-06-16 10:37:51

+0

哦,我明白了 - 谢谢。 – 2010-06-16 10:44:12

0

检查日期格式;请记住MM用于月份,毫米用于分钟

还要检查该解决方案,在Eclipse Community Forums发现:

Try this in the URL:

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

Replace mydate with your parameter name. The __isLocale parameter specifies that the parameter has been localized.

2

下面是BIRT似乎使用的参数的验证格式:如果您在日期传递

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

所以/时间因为它应该工作

&mydate=2009-11-22 00:00:00.0 
相关问题