在 JasperReports 中傳遞查詢參數
JasperReports 允許使用參數動態控制查詢的各個方面,例如 WHERE 和 ORDER BY 子句。當您希望使用者靈活地指定資料檢索方式時,這非常有用。
參數引用語法
參數引用有兩種語法表達式:$P{}
和 $P!{}
。
$P{paramName}
用來取代 WHERE 子句中的參數。例如,如果您有一個名為 "eventName" 的 java.lang.String 類型參數,您可以在 WHERE 子句中這樣使用它:<code class="language-sql">WHERE name=$P{eventName}</code>
$P!{paramName}
用來取代查詢中任何位置的參數,包括 WHERE 和 ORDER BY 子句。例如,如果您有一個名為 "order" 的 java.lang.String 類型參數,您可以在 ORDER BY 子句中使用它:<code class="language-sql">ORDER BY $P!{order}</code>
處理參數型別
$P{}
語法是“智慧的”,它會正確處理不同的參數類型。例如,如果您有一個 java.lang.String 類型的參數,引擎會將 $P{paramName}
替換為引號的值。如果您有一個 java.lang.Integer 類型的參數,引擎會將 $P{paramName}
替換為數值。
範例用法
要將資料庫中的欄位作為參數傳遞,您可以使用 $P!{}
語法。例如,下列查詢使用 $P!{clause}
參數指定 WHERE 子句,使用 $P!{order}
參數指定 ORDER BY 子句:
<code class="language-sql">SELECT name, phone, email FROM company WHERE $P!{clause} = $P{key} ORDER BY $P!{order}</code>
在此範例中,$P!{clause}
參數是 java.lang.String 類型,$P!{order}
參數是 java.lang.String 類型。
以上是如何在 JasperReports 中向查詢傳遞參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!