ジャスパーレポートには、次のようなSQL文があります。
SELECT * FROM table $P!{my_where}
私のphpプログラムでは、レポートを次のように呼び出しています。
JasperPHP::process(
base_path() . '/app/reports/report.jasper',
false,
array("pdf"),
array("my_where" => "WHERE field = value"),
\Config::get('database.connections.mysql')
)->execute();
次に、これはエラーメッセージです:
レポート パラメータの形式が間違っています。
簡単な方法でそれを行うと、つまり次のようになります。
レポートでは:
SELECT * FROM table WHERE $P!{field} = $P{value}
PHP の場合:
JasperPHP::process(
base_path() . '/app/reports/report.jasper',
false,
array("pdf"),
array("field" => $my_field, "value" => $my_value),
\Config::get('database.connections.mysql')
)->execute();
問題は、いくつかのフィールドから動的に where 句を作成する必要があるため、「where」パラメーターのみを渡すことが必須です。
何か案が?