2010-06-14 91 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 
相關問題