2011-09-23 128 views
2

我想在一個變量中使用我的報表查詢的結果計算一次字符串(基本上是一個串聯),然後將其提交給我的子報表。變量計算時間

但對於它的順序計算的那一刻(讓說,操作的是我的變量計算和操作B是我的子報表的調用):

ABABAB ...

什麼我在尋找是AAA ... BBB(這裏每個Bs都有參數A的最後一次計算)。

是否有解決方案,解決我這樣的問題(我猜這是一個計算時間問題)?

謝謝。

+1

你能後的樣本,以便更好地瞭解您的需求? –

回答

2

要在計算變量時進行更改,可以使用resetTypeincrementType屬性。

如果您希望只計算一次(在報告開始時),請設置爲incrementType="Report"。您還必須將variableExpression更改爲initialValueExpression

例子:

<variable name="var1" class="java.lang.String" incrementType="Report"> 
    <initialValueExpression><![CDATA[$F{foo}+$F{bar}]]></initialValueExpression> 
</variable> 
+0

這部分是我正在尋找的。我希望我的變量計算一次(在報告開始時),但我的變量的計算必須在我的報告的數據查詢返回的整個結果集上完成。 –

+0

那讓事情變得更加困難。我建議在報告結尾處計算它並使用evaluateTime屬性來延遲依賴它的字段,但我認爲這不適用於子報表。您可以在運行報告並將其作爲參數傳遞之前計算它嗎? – GenericJon

+0

我不能,我會嘗試使用subdataset。如果它有效,我會給你一個反饋。 –