可変型の明細がある帳票を作成して出力した場合に、下記のように項目同士が重なって印字されたり、項目が配置した場所に正しく印字されていないことがあると思います。
今回はそういった場合の修正方法を紹介していきたいと思います。※可変型の明細がある帳票については「明細数が増減する帳票を作りたい(可変行)」を参照して下さい。
【正しく印字されている例】
【誤って印字されている例】SVFには階層というものがあります。階層構造は3段階となっていて、それぞれの階層により出力時の振る舞いが変わります。各項目がどの階層に属しているは左下の[ナビゲータ]→[階層別]をクリックで確認することができます。
①階層なし:固定位置
②サブフォーム:固定位置に出力 サブフォームの移動や削除時に同時に動作する
③レコード:レコードと共に印字位置が移動する
また作成した項目が意図した階層に配置されているかは設計フォーム上からも確認することができますよ。今回はフィールド「金額」が明細レコードの階層に属しているかどうかという例で説明していきます。
正しい階層に属しているかどうかの確認方法として、「金額」をクリックして動かしてみた時に明細レコードの外に移動できるかできないかで判断することもできます。明細レコードの階層に「金額」が属していないと明細レコードの階層から移動できてしまいます。
明細レコードの階層に「購入日付」が正しく属していると明細レコードから移動させよとしても明細レコードの領域から移動することができなくなっています。
次に、階層を正しく修正する方法を紹介していきます。まずは階層移動させたい項目を右クリックし、「(SVF)階層⇔移動」ー「請求明細1」-「(RECORD1)へ移動」を選択すると項目が自動的に選択した階層に移動していることが確認できます。
※「請求明細1」はサブフォームの名前、RECORD1はレコードの名前になります。
階層移動の方法は以上になります。
また設計時のポイントですが、固定文字やフィールドを新規作成する場合に予め配置したい階層の領域内で、固定文字やフィールドを作成することで意図してない階層に属されているということを回避することができるので設計の際にはその点に気を付けながら作成していくとより良いでしょう。
もし設計した帳票を出力した時に「正しい位置に印字できない」「項目同士が重なって印字される」「帳票に項目が印字されていない」などといった場合には真っ先に項目の階層を疑ってみて下さいね。