API version 4

- ‐

PrintRegion

PrintFormに表形式のデータを表示するためのクラスです。

PrintRegionクラスはPrintRecordクラス、TextField/ImageFieldクラスと協調して動作します。

表データを格納するためには、PrintRegion オブジェクトの下位に定められた構造でPrintRecordオブジェクト、TextField/ImageFieldオブジェクトを配置する必要があります。

クラス

説明

PrintHeader

見出し行定義するクラスです。 この下にHeaderFieldを配置します。

HeaderField

見出し列を指定するクラスです。

PrintRecord

行定義するクラスです。 この下にTextField、ImageFieldを配置します。

TextField

文字表示セルを指定するクラスです。

ImageField

画像表示セルを指定するクラスです。

PrintRecordは表示データの1レコードに対応し、PrintRecordの下に配置したTextField/ImageFieldは、横に順番に配置されて1行分の表示になります。

1レコードで2段のレイアウトにすることはできません。

PrintHeaderの下に配置したHeaderFieldは、横に順番に配置されて1行分の見出し表示になります。

HeaderField(見出し列)はPrintRecord中の同じ順番位置のTextField(データ表示列)と一対一対応となり、複数のデータ表示列の見出しを1つにまとめることはできません。

HeaderFieldのwidthプロパティに設定した値がその列の表示幅になり、PrintRecord下の各セルのwidth指定は無視されます。

ただし、HeaderFieldのwidthプロパティが0(未設定)の場合は、PrintRecordの1行目から順番に、対象列のTextField/ImageFieldでwidthが設定されている(値が0でない)ものを探し、最初に見つけた設定値を列の幅とします。


データの流し込み方法

行データを流し込むには、PrintRecordを可変長配列(PrintRecord rec[] { ... })として宣言したうえで、 PrintRegionオブジェクトに対して << 演算子でCSVデータを読み込む方法が簡単です。

可変長配列で宣言したPrintRecordは、読み込んだデータの行数に合わせて自動的に要素数が拡張されます。

PrintRegion printregion1 {
    PrintHeader printheader1 {
            height = 16;
            HeaderField header[3] { width = 70; }
    }
    PrintRecord rec[] {
            height = 16;
            TextField item[3];
    }
}
printregion1 << CSV {
"列1","列2","列3"
AAA,XXX,111
BBB,YYY,222
};

1ページに表示する行数を固定したい場合は pageRows プロパティを指定します(既定値の0の場合、表示可能なPrintRecordの数に合わせて自動改ページされます)。

PrintRecordを固定長配列や単体で複数個宣言し、それぞれに個別のデータを設定する(配列に含めない)方法も可能です。詳細は << 演算子の説明を参照してください。