我制作了一个静态 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 报告的“脚本”选项卡中的日期。 但我不知道如何从这里访问查询字符串变量或如何设置报告 参数变量。
谢谢 -汤米
最佳答案
您的报告参数可能具有“DateTime”数据类型。因此,仅传递日期是不够的。当您使用 OOTB 参数请求页面时,这是在幕后考虑的。将参数数据类型更改为“日期”,或者在通过页面提供给报告的参数中附加拍号(即 2009-01-01 00:00:00)。任何一种方法都应该可以解决问题。
祝你好运!
关于query-string - 如何通过查询字符串将日期值传递给 BIRT 报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3036602/