32

私はJasperReportsの初心者で、いくつかの小さなサンプルに取り組んでいます。「フィールド」、「パラメータ」、「変数」は、動的データを示すために非常に一般的に使用されており、よく似ているようです。では、特にJasperReportsでの違いは何ですか?

変数はJasperレポート内で定義されたものであり、動的に変更できると思います。パラメータは外部ソース(Java..etc)から取得したもので、フィールドはエンティティ(データベーススキーマ、クラスエンティティ)用ですが、私の理解は大丈夫ではないと思います。

4

3 に答える 3

30

パラメータは、JasperReportsへの単純な入力です。パラメータを使用する前に、JasperReportでパラメータを定義する必要があります。変数の値を表示したり、ブール式の一部として使用したり、サブレポートに渡したりすることもできます。これは、SQLクエリへの入力になります。

フィールドは単純な変数定義です。これらは、レポートに渡されるデータソースオブジェクトのインスタンス変数と考えることができます。データソースがマップの場合は、キー名にすることもできます。SQLに基づいてデータセットを作成するようにJasperReportを構成する場合、フィールドはResultSetの列名です。フィールドを使用して、実行されたSQLクエリの結果セットを表示します。

変数は、Jasper Report内に存在する別の種類の変数であり、入力ではありません。これらは、特定のフィールド(上記で定義)の合計または平均を計算するために使用されます。変数を使用して、フィールドで他の多くの事前定義された計算機能を実行できます。

于 2012-06-14T21:41:51.793 に答える
23

私の個人的な経験から、JasperReportsパラメータとフィールドを最も多く使用することになると推測できます。パラメータとフィールドは、コードから入力できるメモリの場所または値です。つまり、レポートを生成するときです。

通常行うことは、レポートの1つまたは複数のパラメーターマップにさまざまな設定を設定することです。要約ページまたは表紙(レポートの最初)がある場合は、パラメーターを使用します。次のようなものです。

parameters.put("authorName", author); //where authorName is a parameter you have created in your JRXML template.

次に、カスタムを使用している場合も"variables"あれば、JasperReportsから提供された変数を使用している場合もあります。これらの便利な変数には、PAGE_COUNTとPAGE_NUMBERがあります。彼らは...レポートのページ数とページ番号を追跡します。もちろん、カスタム変数を持つこともできます。

フィールドは、データが頻繁に変更される場合に使用されます。これらはパラメータと非常に似ていますが、反復ごとにデータが変わる可能性があります。germanCar 同様に、フィールドは、ある反復のオブジェクトのリストと次の反復のオブジェクトのリストである可能性がありjapaneseCarます。Carフィールドを使用して、変更される可能性のあるオブジェクトのリストを保持します。

結論として、パラメーターとフィールドは非常に似ていますが、フィールドはJasperReportDataSource(データソースに入力するときに頻繁に変更される可能性があるため)から入力されますが、レポート自体の生成中にカバーページまたはカスタムJR設定に使用するパラメーターです。彼らはかなり混乱する可能性があります。

これが少し役立つことを願っています!

于 2012-06-14T21:16:20.713 に答える
1

通常、

Parametersレポート入力操作に渡すオブジェクト参照です。理想的には、誰かがparametersレポート生成プロセス中に合格する責任を負う必要があります。この責任は、レポートの生成を要求している親アプリケーションに委任することも、フラグJasperReportを使用してユーザーにプロンプ​​トを表示することもできます。isForPrompting

Fieldsもう1つは、データソースから返される出力のプレースホルダーです。

以下を実行して、レポートにSQL表示しようEMPLOYEE_NAMEとしているとしましょう。EMPLOYEE_ID

SELECT EMPLOYEE_NAME AS EMPLOYEENAME, EMPLOYEE_ID AS EMPLOYEEID FROM EMPLOYEES WHERE DEPARTMENT_NAME = 'SALES';

DEPARTMENT_NAMEをクエリに渡します。したがって、を使用してJasperでこれを実現できParameterます。

クエリはとを返しEMPLOYEENAMEますEMPLOYEEID。参照できるように、誰かにこの値を保持してもらいたいと思います。したがって、2つ作成できますFieldsEmployeeNameそしてそれEmployeeIdを実行します。

VariablesJasperのは、あらゆるプログラミング言語の変数と非常によく似ています。これらは通常、レポート式を評価し、その中に値を保持するために使用されます。

于 2021-11-13T14:56:52.400 に答える