BIRT レポート・レイアウト・イベント・ハンドラーの外部型
このトピックでは、レポート・レイアウト・イベント・ハンドラーをコーディングする際に使用する、EGL の外部型について概説します。 背景情報については、『EGL BIRT レポート』、『EGL BIRT ハンドラー』、および『BIRT レポート・レイアウト・イベント・ハンドラー』を参照してください。
CellInstance
CellInstance 型の変数は、レポートのテーブルまたはグリッド内にあるセルを参照します。 背景に関する詳細情報の 1 つとして、Report Designer またはイベント・ハンドラーでは、列、行、 または列と行の両方を結合することによってセルを定義できるということがあります。
- columnNumber は、作成するセルの列番号を含む INT 型のフィールドです。
- columnSpan は、セルが使用するテーブルまたはグリッドの列の数を含む INT 型のフィールドです。
- rowSpan は、セルが使用するテーブルまたはグリッドの行の数を含む INT 型のフィールドです。
ReportElementInstance のセクションで説明されている関数およびフィールドも使用できます。
function myFunction( myCell CellInstance, myContext ReportContext )
{ eventType = onCreate, elementName = "myTable", rowNumber = 2 }
if (myCell.columnNumber == 1)
;
end
end
DataInstance
- value は、要素と関連付けられた結合式の値を含む ANY 型のフィールドです。
ReportElementInstance および ReportItemInstance のセクションで説明されているフィールドおよび関数も使用できます。
function myFunction( myData DataInstance, myContext ReportContext )
{ eventType = onCreate, elementName = "DepartmentName"}
if (myData.value == "Sales")
;
end
end
DynamicTextInstance
- text は、レポート・テキストを含む STRING 型のフィールドです。
ReportElementInstance および ReportItemInstance のセクションで説明されているフィールドおよび関数も使用できます。
function myFunction( myText DynamicTextInstance, myContext ReportContext )
{ eventType = onCreate, elementName = "resultOfEvaluation" }
if (myText.text == "<b>Promote!</b>";
;
end
end
GridInstance
GridInstance 型の変数は、単純なテーブル状の構造であるグリッドを参照します。 ReportElementInstance および ReportItemInstance のセクションで説明されている関数のみを使用できます。
function myFunction( myGridInstance GridInstance, myContext ReportContext )
{ eventType = onCreate, elementName = "myGrid" }
;
end
ImageInstance
- Uniform Resource Identifier (URI) 形式の Web アドレスまたはファイル・アドレス (http://www.example.com/myImage.gif または file:///c:/myImage.gif など)。 この場合、BIRT Designer はそのイメージが URI 型であると判断します。
- ファイル名。この場合、ファイルは BIRT のリソース・フォルダーにあると見なされます。 (このフォルダーへの参照を設定するには、「ウィンドウ」->「設定」->「レポート設計」->「リソース」とクリックして、フォルダーを指定します。) この場合、BIRT Designer はそのイメージが File 型であると判断します。
- 設計ファイル自体。 この場合、BIRT Designer はそのイメージが Embedded 型であると判断します。
- データ・セット内の BLOB (バイナリー・ラージ・オブジェクト) 型の列。この場合、BIRT Designer はそのイメージが Dynamic 型であると判断します。
BIRT Designer で作業する際、イメージの型は「イメージ項目の編集」画面で指定します。 BIRT 文書では、URI 型および File 型のイメージをリンク・イメージ として参照します。
この変数では、以下のフィールドを使用できます。
- altText は、出力が HTML のとき、特定の Web ブラウザーでそのイメージを表示できない場合に表示される代替テキスト を含む STRING 型のフィールドです。
- dynamicImageData は、Dynamic 型のイメージのコンテンツを含む BLOB 型のフィールドです。
Java コードでの getter および setter メソッドは、getData および setData です。
- embeddedImageName は、Embedded 型のイメージの名前を含む STRING 型のフィールドです。
この名前はレポート設計ファイルで指定され、イメージの要素名とは異なります。
Java コードでの getter および setter メソッドは、getImageName および setImageName です。
- imageURI は、URI 型のイメージを参照する Web アドレスまたはファイル・アドレスを含む
STRING 型のフィールドです。
Java コードでの getter および setter メソッドは、getURL および setURL です。
- linkedImageURI は、リンク・イメージ (つまり、URI
型または File 型のイメージ) を参照する Web アドレスまたはファイル・アドレスを含む STRING 型のフィールドです。
この変数に値を割り当てることはできません。
Java コードでの getter メソッドは、getURI です。
- mimeType
は、「image/gif」、「image/jpeg」、「image/png」、および「image/tiff」などのメディア・タイプを含む
STRING 型のフィールドです。
Java コードでの getter および setter メソッドは、getMimeType および setMimeType です。
- resourceFolderImageFile は、File 型のイメージの名前を含む STRING 型のフィールドです。
Java コードでの getter および setter メソッドは、getFile および setFile です。
function changeImage( theImage ImageInstance, myContext ReportContext )
{ eventType = onCreate, elementName = "salesGraphic" }
theImage.imageURI == "file:///c:/images/myGraphic01.bmp";
end
function changeImage( theImage ImageInstance, myContext ReportContext )
{ eventType = onCreate, elementName = "salesGraphic02" }
theImage.embeddedImageName = "myGraphic02.bmp";
end
LabelInstance
- text は、ラベル・テキストを含む STRING 型のフィールドです。
ReportElementInstance および ReportItemInstance のセクションで説明されているフィールドおよび関数も使用できます。
function myLabelFunction( theLabel LabelInstance, myContext ReportContext )
{ eventType = onCreate, elementName = "remark_label" }
balance float = theLabel.getRowData().getColumnValue("account_balance");
if( balance > 0 )
theLabel.text = "Balance Due";
theLabel.getStyle().color = "red";
end
end
ListInstance
ListInstance 型の変数は、リストを参照します。 ReportElementInstance および ReportItemInstance のセクションで説明されている関数のみを使用できます。
function myFunction( myList ListInstance, myContext ReportContext )
{ eventType = onCreate, elementName = "employeeList" }
;
end
ReportContext
- setParameterValue は、名前で指定されたレポート・パラメーターの値を設定します。
reportContext.setParameterValue ( parameterName STRING in, parameterValue ANY in ) - 同様に、getParameterValue は、レポート・パラメーターの値を取得します。
reportContext.getParameterValue ( parameterName STRING in) returns (ANY)
ReportContext は、レポート・レイアウト要素の型ではないため、ここで説明する ReportElementInstance および ReportItemInstance のセクションとは関係ありません。
ReportElementInstance
ReportElementInstance 型は Java™ のスーパークラスに相当し、他のすべてのレポート・レイアウト要素の型 (CellInstance、RowInstance、および Java のスーパークラス ReportItemInstance など) よりも上位にあります。 このセクションで説明するフィールドおよび関数は、これらのどの型の変数でも使用できます。
一部のフィールドおよび関数は、カスケーディング・スタイル・シート (CSS) での単位である、cm (センチメートル)、em (特定のフォントで必要になる高さ)、ex (文字「x」のフォント固有の高さ)、in (インチ)、mm (ミリメートル)、pc (パイカ)、% (エンクロージング要素の高さのパーセント)、pt (ポイント)、および px (ピクセル) にアクセスします。 背景の詳細情報については、http://www.w3.org/TR/CSS21/syndata.html を参照してください。
- height は、作成される要素の高さ (上記の単位付き) を含む STRING 型のフィールドです。 このストリングにはスペースを含めません (「12pc」など)。
- width は、作成される要素の幅 (上記の単位付き) を含む STRING 型のフィールドです。 このストリングにはスペースを含めません (「12pc」など)。
- getParent は、親要素を返します。
例えば、呼び出し内で使用されている修飾子がセル内のラベル要素を参照している場合、この関数はセル要素を返します。
element.getParent()returns (ReportElementInstance)示されているように、この関数では ReportElementInstance 型の要素が返されます。 この関数が CellInstance 型の要素を返したとき、その要素の columnNumber フィールドにアクセスする必要がある場合は、戻り値をキャストする必要があります。 以下に例を示します。function myLabelFunction( theLabel LabelInstance, myContext ReportContext ) { eventType = onCreate, elementName = "remark_label" } myReportInstance ReportElementInstance = theLabel.getParent(); if (myReportInstance isa CellInstance ) myCellInstance CellInstance = myReportElementInstance as CellInstance; if (myCellInstance.columnNumber == 1) ; end end end - getRowData は、RowData 型のオブジェクトを返します。
戻りオブジェクトには、BIRT Report Designer
のレポートの「プロパティー・エディター」ビューにリストされている一連の列バインディングが含まれています。
(バインディングは、そのビューの「バインディング」タブにリストされます)。
このオブジェクトは、指定の列バインディングの値を取得する関数 getColumnValue を呼び出すために使用します。
この関数について詳しくは、RowData に関するセクションを参照してください。
element.getRowData() returns (RowData) - getStyle は、使用中の CSS スタイルを示す値を含んだ Style 型のオブジェクトを返します。
これらの値へのアクセスについて詳しくは、Style 型に関するセクションを参照してください。
element.getStyle() returns (Style) - getNamedExpressionValue は、指定の名前付き式の値を返します。
名前付き式は、BIRT Report Designer のレポートの「プロパティー・エディター」ビューにリストされます。
element.getNamedExpressionValue (expressionName STRING in) returns (ANY)この関数を使用して、 レポート設計に定義された JavaScript 式にアクセスできます。 例えば、total というラベルの場合、BalanceTotal という式を、Total.sum(row["account_balance"]) として定義し、onCreate イベントで以下のようにラベル・テキストを設定することができます。function onTotalLabel( l LabelInstance, c ReportContext ) { eventType = onCreate, elementName = "total" } l.text = "Total balance = " + l.getNamedExpressionValue("BalanceTotal"); end
ReportItemInstance
- helpText は、要素と関連付けられたヘルプ・テキストを含む STRING 型のフィールドです。
RowData
RowData は LabelInstance のようなレポート・レイアウト要素の型ではないため、RowData 型のパラメーターを使用するイベント・ハンドラーはありません。 その代わりに、ReportElementInstance セクションの説明にある element.getRowData() を呼び出すと、RowData 型のオブジェクトが返されます。
- getColumnCount は、列バインディングの数を返します。
element.getRowData().getColumnCount() returns (INT) - getColumnName は、索引番号で指定された列バインディングの名前を返します。
element.getRowData().getColumnName( columnNumber INT in )returns (STRING)第 1 列は数字 0 ではなく 1 です。
- 1 つ目の形式の getColumnValue は、名前で指定された列バインディングの値を返します。
element.getRowData().getColumnValue( columnName STRING in )returns (ANY) - 2 つ目の形式の getColumnValue は、索引番号で指定された列バインディングの値を返します。
element.getRowData().getColumnValue( columnNumber INT in ) returns (ANY)第 1 列は数字 0 ではなく 1 です。
RowInstance
RowInstance 型の変数は、レポートのテーブル内にある行を参照します。 ReportElementInstance のセクションで説明されている関数のみを使用できます。
function myFunction( myRow RowInstance, myContext ReportContext )
{ eventType = onCreate, elementName = "myTable", rowType = detail, rowNumber = 2 }
;
end
Style
Style は LabelInstance のようなレポート・レイアウト要素の型ではないため、Style 型のパラメーターを使用するイベント・ハンドラーはありません。 その代わりに、ReportElementInstance セクションの説明にある element.getStyle() を呼び出すと、Style 型のオブジェクトが返されます。
myElement.getStyle().backgroundColor = "red";
myColor STRING;
myColor = myElement.getStyle().backgroundColor;
次の表に示すとおり、この方法で多くの Java フィールドにアクセスできます。
| フィールド名 | 意味 |
|---|---|
| backgroundAttachment | 背景イメージが、ページの残りをスクロール表示するようになっているか、位置固定になっているかを指定します。 値は「scroll」(デフォルト) または「fixed」です。 |
| backgroundColor | 要素の背景色。 |
| backgroundImage | 背景イメージの Web アドレスまたはファイル・アドレス。 |
| backgroundPositionX | 背景イメージの水平位置。値は、「center」、「left」、「right」、または数値および単位からなるストリング (「12pc」など) です。 ストリングにはスペースがありません。単位の詳細については、 ReportElementInstance のセクションを参照してください。 |
| backgroundPositionY | 背景イメージの垂直位置。値は、「center」、「top」、「bottom」、または数値および単位からなるストリング (「12pc」など) です。 ストリングにはスペースがありません。単位の詳細については、 ReportElementInstance のセクションを参照してください。 |
| backgroundRepeat | 背景イメージを並べて表示するかどうかを指定します。値は、「repeat」(デフォルト。ページの水平方向、垂直方向に並べて表示します)、「no-repeat」、「repeat-x」(ページの水平方向に並べて表示します)、または「repeat-y」(ページの垂直方向に並べて表示します) です。 |
| borderBottomColor | 下の枠線の色。 色は、borderBottomStyle が設定されている場合にのみ使用できます。 |
| borderBottomStyle | 下の枠線を表す値 (ある場合)。値は、「solid」、「dotted」、「dashed」、「double」です。 |
| borderBottomWidth | 下の枠線の幅。値は、「thin」、「medium」、「thick」です。 幅は、borderBottomStyle が設定されている場合にのみ使用できます。 |
| borderLeftColor | 左端の枠線の色。 色は、borderLeftStyle が設定されている場合にのみ使用できます。 |
| borderLeftStyle | 左端の枠線を表す値 (ある場合)。値は、「solid」、「dotted」、「dashed」、「double」です。 |
| borderLeftWidth | 左端の枠線の幅。値は、「thin」、「medium」、「thick」です。 幅は、borderLeftStyle が設定されている場合にのみ使用できます。 |
| borderRightColor | 右端の枠線の色。 色は、borderRightStyle が設定されている場合にのみ使用できます。 |
| borderRightStyle | 右端の枠線を表す値 (ある場合)。値は、「solid」、「dotted」、「dashed」、「double」です。 |
| borderRightWidth | 右端の枠線の幅。値は、「thin」、「medium」、「thick」です。 幅は、borderRightStyle が設定されている場合にのみ使用できます。 |
| borderTopColor | 上の枠線の色。 色は、borderTopStyle が設定されている場合にのみ使用できます。 |
| borderTopStyle | 上の枠線を表す値 (ある場合)。値は、「solid」、「dotted」、「dashed」、「double」です。 |
| borderTopWidth | 上の枠線の幅。値は、「thin」、「medium」、「thick」です。 幅は、borderTopStyle が設定されている場合にのみ使用できます。 |
| canShrink | コンテンツがスペース全体を使用しない場合に、HTML 出力内のテキスト・エリアを縮小するかどうかを指定します。値は、「false」(デフォルト) または「true」です。 |
| color | 要素の前景色。 |
| dateFormat | BIRT に定義されている以下の標準日付形式の 1 つ。
また BIRT では、Report Designer で、Java の SimpleDateFormat クラスでサポートされているパターンを基にしたカスタム形式を定義できるようにしています。 「M/d/yyyy, E」という形式を使用した場合であれば、上の例の日付が「10/20/1998 Tues」と表示されます。 |
| displayType | 要素を、別のテキスト・ブロックに表示するか、現在のテキスト・ブロック内の現在の行に表示するか、または表示しないかを指定します。 値は、「block」(デフォルト)、「inline」、および「none」です。 EGL の displayType プロパティーは、その基礎となる Java 固有の display プロパティーと同等のものです。 |
| fontFamily | フォント・ファミリー。値は、「serif」(デフォルト)、「sans-serif」、「cursive」、「fantasy」、「monospace」などです。 |
| fontSize | テキストのフォント・サイズ。 BIRT に定義されている標準サイズの 1 つ。値は、「medium」(デフォルト)、「large」、「larger」、「small」、「smaller」、「x-large」、「x-small」、「xx-large」、または「xx-small」です。 あるいは、数値および単位からなるストリング値 (「12pc」など) を指定します。 ストリングにはスペースがありません。単位の詳細については、 ReportElementInstance のセクションを参照してください。 |
| fontStyle | テキストのフォント・スタイル。値は、「normal」(デフォルト)、「italic」、または「oblique」です。 |
| fontVariant | フォント・バリアント。値は、「normal」(デフォルト)、「small-caps」です。 |
| fontWeight | テキストのフォント幅。値は、「normal」、「bold」、「bolder」、「lighter」、または 100 から 900 までの 100 刻みの値です。 |
| letterSpacing | 文字間のスペース。 デフォルト値は、「normal」(フォント固有値) です。 あるいは、数値および単位からなるストリング値 (「12pc」など) を指定します。 ストリングにはスペースがありません。単位の詳細については、 ReportElementInstance のセクションを参照してください。 |
| lineHeight | 行の高さ。デフォルト値は、「normal」(フォント固有値) です。 あるいは、数値および単位からなるストリング値 (「12pc」など) を指定します。 ストリングにはスペースがありません。単位の詳細については、 ReportElementInstance のセクションを参照してください。 |
| marginBottom | 下の枠線と、水平方向に伸びた次の要素の間のスペース。 ストリングにはブランクがなく、単位 (「12pc」など) を含んでいます。単位の詳細については、 ReportElementInstance のセクションを参照してください。 |
| marginLeft | 左端の枠線と、垂直方向に伸びた前の要素の間のスペース。 ストリングにはブランクがなく、単位 (「12pc」など) を含んでいます。単位の詳細については、 ReportElementInstance のセクションを参照してください。 |
| marginRight | 右端の枠線と、垂直方向に伸びた次の要素の間のスペース。 ストリングにはブランクがなく、単位 (「12pc」など) を含んでいます。単位の詳細については、 ReportElementInstance のセクションを参照してください。 |
| marginTop | 上の枠線と、水平方向に伸びた前の要素の間のスペース。 ストリングにはブランクがなく、単位 (「12pc」など) を含んでいます。単位の詳細については、 ReportElementInstance のセクションを参照してください。 |
| masterPage | マスター・ページを識別するストリング。 |
| numberFormat | BIRT に定義されている以下の標準数字フォーマットの 1 つ。 値は、「General Number」、「Fixed」、「Percent」、および「Scientific」などです。 また BIRT では、Report Designer で、Java の DecimalFormat クラスでサポートされているパターンを基にしたカスタム形式を定義できるようにしています。 「$#,##0.00」というフォーマットを使用した場合であれば、123456 が「$1,234.56」と表示されます。 |
| paddingBottom | 要素の内容と、要素の下の枠線の間のスペース。 ストリングにはブランクがなく、単位 (「12pc」など) を含んでいます。単位の詳細については、 ReportElementInstance のセクションを参照してください。 |
| paddingLeft | 要素の内容と、要素の境界線の左端の枠線の間のスペース。 ストリングにはブランクがなく、単位 (「12pc」など) を含んでいます。単位の詳細については、 ReportElementInstance のセクションを参照してください。 |
| paddingRight | 要素の内容と、要素の境界線の右端の枠線の間のスペース。 ストリングにはブランクがなく、単位 (「12pc」など) を含んでいます。単位の詳細については、 ReportElementInstance のセクションを参照してください。 |
| paddingTop | 要素の内容と、要素の境界線の一番上の枠線の間のスペース。 ストリングにはブランクがなく、単位 (「12pc」など) を含んでいます。単位の詳細については、 ReportElementInstance のセクションを参照してください。 |
| pageBreakAfter | 要素の後で改ページを行うかどうかを指定します。値は、「auto」(デフォルト。他のスペース要件で必要とされた場合に自動で改ページを行うことを示します)、「always」、「avoid」、「always-excluding-first」、「always-excluding-last」です。 |
| pageBreakBefore | 要素の前で改ページを行うかどうかを指定します。値は、「auto」(デフォルト。他のスペース要件で必要とされた場合に自動で改ページを行うことを示します)、「always」、「avoid」、「always-excluding-first」、「always-excluding-last」です。 |
| pageBreakInside | 要素の中で改ページを行うかどうかを指定します。値は、「auto」(デフォルト。他のスペース要件で必要とされた場合に自動で改ページを行うことを示します)、「avoid」です。 |
| showIfBlank | 要素が空の場合、またはそのすべての従属要素が空の場合にも要素を表示するかどうかを指定します。値は、「false」(デフォルト)、「true」です。 |
| stringFormat | BIRT で定義された記号 (@ & | > < など) のシステムを基にしたフォーマット・ストリング。 |
| textAlign | 水平方向の位置合わせを表す値の 1 つ。値は、「left」、「right」、「center」、「justify」です。 |
| textIndent | 要素内のテキストのインデント。 ストリングにはブランクがなく、単位 (「12pc」など) を含んでいます。単位の詳細については、 ReportElementInstance のセクションを参照してください。 |
| textTransform | 要素内に置かれたテキストの変更方法を指定します。値は、「none」(デフォルト。変更は行いません)、「capitalize」(各ワードの先頭文字のみ大文字にします)、「uppercase」(すべての文字を大文字にします)、「lowercase」(すべての文字を小文字にします) です。 |
| verticalAlign | 垂直方向の位置合わせを表す値の 1 つ。値は、「top」、「middle」、「bottom」です。 |
| visibleFormat | レポートを特定のフォーマットで出力する際に、要素を非表示にするかどうかを指定します。値は、「all」、「pdf」、「html」です。 |
| whiteSpace | HTML 出力における要素テキスト内の空白文字の処理方法を指定します。値は、「normal」(デフォルト。余分な空白文字を除去して、要素幅に収まるように、必要に応じて改行を挿入します)、「pre」(要素テキスト内の空白文字を、改行を含めてそのままにします)、「nowrap」(余分な空白文字は除去しますが、改行は挿入しません) です。 ブラウザーのタイプやバージョンによって、具体的な動作は異なることがあります。 |
| wordSpacing | ワード間のスペース。 デフォルト値は、「normal」(フォント固有値) です。 あるいは、数値および単位からなるストリング値 (「12pc」など) を指定します。 ストリングにはスペースがありません。単位の詳細については、 ReportElementInstance のセクションを参照してください。 |
TableInstance
- caption は、テーブルの表題を含む STRING 型のフィールドです。
- repeatHeader は、先頭ページの後のページでテーブル・ヘッダーを繰り返し表示するかどうかを示す BOOLEAN 型のフィールドです。 有効な値は、true (デフォルト) および false です。
function myFunction( myTable TableInstance, myContext ReportContext )
{ eventType = onCreate, elementName = "myTable" }
;
end
TextInstance
- text は、レポート・テキストを含む STRING 型のフィールドです。
ReportElementInstance および ReportItemInstance のセクションで説明されているフィールドおよび関数も使用できます。
function myFunction( myText TextInstance, myContext ReportContext )
{ eventType = onCreate, elementName = "conclusion" }
if (myText.text == "<b>Promote!</b>";
;
end
end