質問:
SQL の値を設定するにはどうすればよいですかJasperReport の生成中に Java で動的に「IN」述語パラメータを使用しますか?パラメーターには、実行時に決定される複数の整数値を指定できます。
回答:
JasperReports は、このシナリオを処理するために特別な変数 $X を提供します。 $X{IN,customer_role,roles} を使用すると、クエリは次のように変換されます。
select * from customer where $X{IN,customer_role,roles}
ここで、customer_role は列名、roles はパラメータ名です。
例:
Map<String, Object> parameters = new HashMap<>(); parameters.put("roles", Arrays.asList(1, 2, 3)); JasperReport jasperReport = JasperCompileManager.compileReportToFile(templatePath); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource);
roles パラメータを整数の配列として設定すると、クエリはそのリストにロール ID を持つ顧客のみの結果が表示されます。
参考資料:
以上がJasperReports の SQL 'IN' 句に複数の整数値を動的に渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。