2010-09-10 59 views
19

我明白如何將參數從主報表傳遞到子報表,因爲子報表對象中存在特定的字段。不過,我想用表或列表對象作爲消費者(而不是子報表)來做同樣的事情。可能嗎?iReport:將主要報表查詢中的參數傳遞給表或列表的數據集查詢

例如,假設我有一個「customerID」參數,可以用主報表查詢填充,但我似乎無法將此參數傳遞給表的數據集的SQL查詢。

我試過了,並繼續嘗試,參數,字段和變量的各種組合,但無濟於事。

這種事情是否需要子報表實現?

(如果它的事項,是不是很明顯,我使用JDBC)

回答

0

我做一個快速的測試報告,進行復制,你在做什麼和它的工作。

這是我採取的步驟。

  • 在您的報告中創建一個參數例如客戶ID

  • 將它傳遞到您的主要報告中的散列圖。

    hashmap.put("customerID", "12345");

  • 在報告中設定的屬性The language of for the dataset querySQL

  • 將屬性Query text設置爲與下圖類似的內容。

    select * from * customers c where c.ID=$P{customerID}

+0

我試過這個,但沒有得到任何成功。 – 2017-08-26 20:24:44

11

不知道你使用的是什麼版本,但我可以做這件事的iReport 3.7.6。

首先我將參數添加到數據集中。

然後,要將值傳遞給參數,請右鍵單擊Report Inspector中的Table,選擇「Edit table datasource」。轉到「參數」選項卡。每個數據集參數都可以從主報告中的參數,字段或變量中獲取其值。

19

主報告傳遞參數給表或列表數據源iReport的 3.6.7+,你需要做以下步驟:

1)創建所需的參數點擊主報告參數部分右邊的主報告------>添加參數-------->將新增參數的屬性(數據類型)設置爲你想要的參數。

2)完全按照步驟1在表/列表的數據源參數部分中創建等效參數。

3)從報表資源管理器中,右鍵單擊在桌子上點擊編輯表數據集 ------>選擇參數標籤 ---------- - >點擊添加 ---------->上組合(即數據集參數名稱)選擇參數(您在步驟1的數據集參數部分創建的)--- --->然後點擊下按鈕(即)賦值表達式,即你在步驟1中添加的參數。

來源:http://hamroblog-sristi.blogspot.fr/2011/04/passing-parameters-from-main-report-to.html

+1

謝謝!就是這個! – YarsRevenge13 2014-04-17 22:34:08

+1

謝謝Ouadie。這就是我一直在努力的一天。我試圖第一次使用iReport和JasperServer。 – mwangi 2016-11-22 13:50:25