4-6-9 可変タイプのデータの出力エリア(サブフォーム)を作成する

帳票の中には、売り上げ台帳の明細、小計、合計などのように、必要に応じて行が挿入されたり、印刷位置が異なったりする可変タイプの帳票があります。このような帳票を作成するために、行によって異なる内容が出力できる領域として「サブフォーム」を作成し、通常のフォームと区別します。さらに、サブフォームの中にデータの出力エリアである「レコード」を作成する必要があります。


可変タイプの帳票例


サブフォームとレコードの例

注意
  • サブフォームは1つのフォーム内に複数個作成できますが、リンクしていないサブフォームを複数制御することはできません。レコードを作成できるサブフォームは、1つのXML様式ファイル内に1つのみです。
  • サブフォーム直下の階層には、以下のアイテムは作成できません。
    • フィールド、イメージ、バーコード、2次元バーコード
    • 属性式を設定したアイテム

必要に応じて、印字レコードがサブフォームの領域を超えた場合の出力先となるリンクサブフォームを作成します。


サブフォームからのはみ出しはリンクサブフォームに出力

サブフォームを配置する

サブフォームの配置は、次の手順で行います。


  1. ツールボックスの[サブフォームの作成]ボタンをクリックし、フォームエディター上の任意の位置にマウスカーソルを移動します。
    マウスカーソルがに変わります。


  2. フォームエディター上で矩形を描くようにマウスをドラッグします。
    サブフォームが配置されます。


  3. プロパティエディターで、配置したサブフォームのプロパティの各種項目を設定します。

サブフォームのプロパティを設定する

サブフォームのプロパティ設定をします。プロパティは[基本設定]、[]、[綴り設定]に分類されています。


サブフォームのプロパティ

参考
  • 色を指定する欄では、用紙のプロパティエディターにある[カラーパレット設定]で登録されている色を選択できます。カラーパレットの設定方法については、「4-11-2 カラーパレットを設定する」を参照してください。
  • サブフォームは「塗り込み透過モード」の対象となります。「塗り込み透過モード」については、「4-11-3 アイテムの設計色を設定する」を参照してください。

共通設定

項目
説明
グラフィックモード
グラフィック機能を有効にするかどうかを指定します。チェックを付けた場合は、グラフィック機能が有効となります。プロパティエディターには[グラフィックモード]の項目が追加表示され、拡張設定を行えるようになります。グラフィックモードの詳細は、「4-2 ベーシックモードとグラフィックモード」を参照してください。
名前 サブフォーム名を入力します。指定していない場合は自動的に「Subform1」から連番で指定されます。英数、カナ、漢字と下線記号(_)が使えます。名前の先頭文字に数字は使用しないでください。入力できる名前の長さは管理者による設定により異なります(初期値は30バイトです)。(Service Pack 6で対応)

基本設定

項目
説明
リンクサブフォーム名

フォームウィンドウ上にサブフォームが複数配置されている場合は、指定できます。
サブフォームにレコードを印字して領域を超えた場合は、通常は改ページを行い、以降新たなページに印刷されますが、リンクサブフォームが設定されていると、同じXML様式ファイル内の指定されたサブフォームに続けて印字されます。
リンクされるサブフォームはその領域だけを設定し、サブフォーム内にレコードなどの設定はしないでください。元のサブフォーム内のレコードがそのまま引き継がれます。

参考

リンク先のサブフォーム名自体が変更された場合は、連動して[リンクサブフォーム名]も自動的に変更されます。

始点X(dot) サブフォームの左上隅のX座標を指定します。
ボタンをクリックすることでも数値を変更できます。
始点Y(dot) サブフォームの左上隅のY座標を指定します。
ボタンをクリックすることでも数値を変更できます。
終点X(dot) サブフォームの右下隅のX座標を指定します。
ボタンをクリックすることでも数値を変更できます。
終点Y(dot) サブフォームの右下隅のY座標を指定します。
ボタンをクリックすることでも数値を変更できます。
展開方向 サブフォーム内に設計したレコードの展開方向を選択します。サブフォーム内に設計したレコードは、前のレコードに接して出力されます。
  • 前のレコードの右側に配置します。
  • 前のレコードの下に配置します。
データがない時、サブフォームを印刷しない リンク元でデータの出力が終了した場合に、リンクサブフォームでサブフォームの枠だけを印刷するかどうかを指定します。
チェックを付けた場合は、データがないときは、サブフォーム枠は印刷されません。
キーフィールドのグループサプレスをキーブレイクと連動させない キーフィールドのグループサプレスをキーブレイクと連動させるかどうかを指定します。チェックを付けた場合は、連動しません。
レコード数に関わらず、枠の大きさは固定にする 明細データがサブフォームの途中で終了した時、サブフォームの枠の大きさまで罫線を出力するかどうかを指定します。
チェックを付けた場合は、サブフォームの枠の大きさまで罫線が出力されます。


出力されるデータ量に、罫線の出力範囲を合わせた場合


出力されるデータ量にかかわらず、罫線を枠の大きさまで出力した場合

参考

複数の明細レコードを作成した場合は、一番上に設計された明細レコードが枠線として繰り返し出力されます。

印刷モード キーブレイクが指定されている場合の、レコードの印刷順を設定します。
  • 明細、小計、中計、大計
    一般的な一覧表は、明細、小計、中計、大計という順番で印刷されます。
  • 大計、中計、小計、明細
    先に合計レコードが表示されるようになります。


    明細、小計、中計、大計順の場合


    大計、中計、小計、明細順の場合

属性式 属性式を設定します。属性式については、「6-3-1 属性式の設定」を参照してください。

項目
説明
外線の有無 枠線の有無を指定します。
チェックを付けた場合は、枠線を表示します。
線種

印刷する罫線の種類を選択します。

制限事項
  • 指定した線種がプリンターで扱えない場合は、プリンターが既定で所有している線種で出力されます。
  • プリンターにより破線の間隔などが違う場合があります。
線幅 線幅を選択します。
自由(dot)]を選択した場合は、次の[線幅(dot)]で線幅を自由に指定します。
線幅(dot)

線幅]で[自由(dot)]を選択した場合は、線幅をドット単位で指定します。
ボタンをクリックすることでも数値を変更できます。

制限事項

線の長さが30,000ピクセルを超える場合は、線幅が正しく表示されない場合があります。

枠の種類 枠の種類を、[四角]、[四辺]のいずれかから指定します。
四辺]を選択した場合は、辺ごとに、線種、表示/非表示、線幅を指定できます。
コーナー区分 矩形の角の形を指定します。
  • 直角
  • カット
  • 逆丸 (グラフィックモードの場合のみ)
コーナー選択(左上)
コーナー選択(左下)
コーナー選択(右上)
コーナー選択(右下)
形を変える角の位置を選択します。
枠の種類]が[四角]のときのみ、指定できます。
チェックを付けた場合は、[コーナー区分]で選択した形状に表示されます。チェックを外した場合は、直角となります。
コーナーの半径(dot) コーナー区分]で[カット]、[]、[逆丸]を選択した時に、コーナーの半径を指定します。
線色のパターン(グラフィックモードの場合のみ) 枠線の塗りのパターンを指定します。
タイルパターン 線色のパターン]で[パターン網掛け]を選択した場合に、タイルのパターンを指定します。
タイル線の幅(dot) 線色のパターン]で[パターン網掛け]を選択した場合に、タイル線の幅を指定します。
タイル線の間隔(dot) 線色のパターン]で[パターン網掛け]を選択した場合に、タイル線の間隔を指定します。
グラデーション方向
線色のパターン]で[グラデーション2]を選択した場合に、枠線のグラデーションの開始色から終了色への方向を指定します。
終了色、および区分の設定によってグラデーションが変化します。


を指定した場合のグラデーション

線の色2 線色のパターン]で[パターン網掛け]を選択した場合は、タイル線の色を指定します。[線色のパターン]で[グラデーション2]を選択した場合は、グラデーションの終了色を指定します。

綴り設定

項目
説明
nページ目の線色
(nは任意の数字)
各ページでのサブフォームの枠線の印刷色を指定します。印刷色については、「4-11 アイテムの色設定」を参照してください。

サブフォームを拡大/縮小する

サブフォームを拡大/縮小することによって、エリアサイズを変更できます。
サブフォームを拡大/縮小するには、次の手順で行います。


  1. サブフォームを選択し、サブフォームの周りに表示される四角いハンドル付近までマウスカーソルを移動します。
    マウスカーソルの表示がに変わります。


  2. ガイドラインを参考に、任意の方向にドラッグします。
    サブフォームが拡大/縮小され、エリアサイズが変更されます。


    ドラッグした方向にエリアサイズが拡大

サブフォーム内に新規アイテムを配置する

サブフォーム内に新規アイテムを配置した場合は、階層関係が自動的に作成され、サブフォームの領域内に収まるように設定されます。
この階層の管理は、[アイテム]ウィンドウの[階層構造]をオンにして行います。この階層をあらわすツリーを「階層ツリー」と呼びます。

たとえば、サブフォームだけが作成されている場合の階層ツリーは、次のようになります。


サブフォームのみが作成されている状態の階層ツリー

サブフォーム内にアイテムを配置すると、階層ツリーでは該当するサブフォームの階層下に追加されます。


サブフォーム内にアイテムなどが配置

参考
  • 階層ツリーでサブフォームの階層下にあるアイテムは、フォームエディター上でサブフォームの領域外に移動できなくなります。
  • サブフォームの階層下にあるアイテムをサブフォームの領域外に移動するには、Ctrlキーを押しながらアイテムをドラッグします。
注意

サブフォームを削除する場合は、「[選択したアイテムに含まれる下層のアイテムも共に削除されますがよろしいですか。]」という内容の確認メッセージが表示されます。
はい]ボタンをクリックすると、サブフォームの階層下にあるアイテムも削除されます。

アイテムをサブフォームの階層から外す

サブフォームの階層下にあるアイテムは、サブフォームの領域外に移動できません。サブフォームの領域外に移動したい場合は、階層ツリーでサブフォームの階層下から外し、サブフォームと同じ階層に移動する必要があります。


  1. 階層ツリーで、サブフォームの領域外に配置したいアイテムを選択し、[階層移動]ボタンをクリックします。


    サブフォームの領域外に配置したいアイテムを選択


  2. 階層移動]ダイアログから「階層なし」を選択し、[OK]ボタンをクリックします。


    階層移動]ダイアログから「階層なし」を選択


  3. 選択していたアイテムがサブフォームと同じ階層に配置されます。


    サブフォームの階層から外れる

参考

階層ツリーでサブフォームの階層下から外れたアイテムは、フォームエディターでサブフォームの領域外に移動することが可能となります。

既存のアイテムをサブフォームの階層下に配置する

サブフォームの領域外に配置されているアイテムを、サブフォームの階層下に配置するには、[アイテム]ウィンドウで操作をします。


  1. アイテム]ボタンをクリックして表示される[アイテム]ウィンドウの階層ツリーからサブフォームの階層下に配置したいアイテムを選択し、[階層移動]ボタンをクリックします。


    アイテム]ウィンドウの階層ツリーから移動するアイテムを選択


  2. 階層移動]ダイアログから該当するサブフォームを選択し、[OK]ボタンをクリックします。


    階層移動]ダイアログから該当するサブフォームを選択


  3. 選択していたアイテムがサブフォームの配下に配置されます。


    サブフォームの階層下に配置される

参考
  • 階層ツリーでサブフォームの階層下にあるアイテムは、フォームエディター上でサブフォームの領域外に移動できなくなります。
  • サブフォームの階層下にあるアイテムをサブフォームの領域外に移動するには、Ctrlキーを押しながらアイテムをドラッグします。
制限事項

階層ツリーで、アイテムを階層下に配置できるのは、サブフォームとレコードと連写のみとなります。そのほかのアイテムの階層下には配置できません。