0

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} を目に見える入力コントロールにしたくありませんが、最初にレポートを実行するときにデフォルト値を使用したいと考えています。何かご意見は?

4

1 に答える 1

1

私はそれを理解しました-サブレポートにパラメーターを渡すメインレポートがあります。サブレポートでパラメーター $P{profit_loss_sort} のデフォルト値を設定しましたが、メイン レポートでは設定しませんでした。

メイン レポートでデフォルト値を設定し、「表示」ボックスのチェックを外すと、JasperServer レポートでその入力コントロールが非表示になり、ハイパーリンクを使用して並べ替えることができます。

于 2012-06-22T14:28:39.003 に答える