iReport professional 4.5.1 で作成し、JasperServer にデプロイしたレポートがあります。レポートには、並べ替え列を指定するために使用されるパラメーターがあります。
名前: Profit_loss_sort
パラメータ クラス: java.lang.String
プロンプトとして使用: はい
デフォルト値 式: "FAC_ID"
次に、$P{profit_loss_sort} を受け取り、それを使用してクエリの ORDER BY 句を作成する別のパラメーターがあります。
名前: Profit_loss_sort_function
パラメータ クラス: java.lang.string
プロンプトとして使用:
デフォルト値なし 式: "ORDER BY "+$P{profit_loss_sort}+" ASC"
$P{profit_loss_sort} が表示に設定されている場合、これは iReport および JasperServer で正常に機能します。各列ラベルにハイパーリンクを設定しました。それらをクリックすると、レポートが各列で並べ替えられます。
$P{profit_loss_sort} の表示ボックスのチェックを外して初めてレポートを実行しようとすると、式が見つからないという Oracle エラーが表示されます (ORA-00936: 式が見つかりません)。クエリの ORDER BY 句が次のとおりであるため、それがわかりません。
$P!{profit_loss_sort_function}
したがって、JasperServer はこれら 2 つのパラメータのデフォルトを使用して、ORDER BY 句を作成する必要があります。実際、「Run JasperServer Report」オプションを使用して iReport からレポートを実行すると、適切に動作し、デフォルトの ORDER BY 句が入力されます。$P{profit_loss_sort} は必須であり、JasperServer 側では、入力コントロールの「常にプロンプト」のチェックを外しました。
$P{profit_loss_sort} を目に見える入力コントロールにしたくありませんが、最初にレポートを実行するときにデフォルト値を使用したいと考えています。何かご意見は?