代码之家  ›  专栏  ›  技术社区  ›  Tommy

如何通过querystring将日期值传递给BIRT报告

  •  2
  • Tommy  · 技术社区  · 15 年前

    我做了一个静态html页面(称为开始.jsp)包含一个窗体,用户可以在其中选择2个日期范围,并且此窗体具有用于这些文本框的日期选择器。当用户提交 传递报表需要的两个参数(开始日期和结束日期)。

    birt viewer/run\u report=业务活动_监控.rpt设计 &

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

    如果我完全删除querystring,那么BIRT会提示我输入 我输入的数据与表单试图发送的数据完全相同,并且可以正常工作!?

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

    我已经在我的BIRT报告中正确地设置了这些报告参数。我也试过换 通过将“Format as”值指定为“custom”YYYY-MM-dd,但这并不起作用。

    我猜解决方案将涉及到将这些字符串转换成birt报告的“script”选项卡中的日期。 但我不知道如何从这里访问querystring变量,也不知道如何设置报表 参数变量。

    谢谢

    4 回复  |  直到 15 年前
        1
  •  2
  •   MystikSpiral    15 年前

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

    祝你好运!

        2
  •  2
  •   EdChum Arthur G    12 年前

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

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

    所以如果你把日期/时间作为它应该做的

    &mydate=2009-11-22 00:00:00.0
    
        3
  •  0
  •   user359040 user359040    15 年前

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

        4
  •  0
  •   muriloq    14 年前

    检查日期格式;记住MM是用来表示月份和 毫米 对于 分钟 .

    另请检查此解决方案,在 Eclipse Community Forums

    &mydate=22/11/2009&u islocale=mydate

    姓名。\u isLocale参数 本地化。