帳票出力テンプレートファイルについて
帳票出力テンプレートファイルは、Microsoft Excelブック形式(.xlsx
)、Microsoft Excelマクロ有効ブック形式(.xlsm
)、またはExcel 97-2003 ブック形式(.xls
)で作成します。
Excelで通常と同じように帳票を作成し、UnitBaseからフィールドのデータを出力するセルにキーワードを記入します。
帳票出力テンプレートファイルに複数のシートがある場合、それぞれのシートにキーワードを記入すると、各シートにフィールドのデータを反映することができます。
帳票出力テンプレートファイルの種類には、「帳票」と「レポート」があります。
- 帳票
- 1つのレコードのデータを1つの帳票出力テンプレートに出力します。
帳票出力テンプレートファイルに複数のシートがある場合、それぞれのシートにキーワードを記入すると、各シートにフィールドのデータを反映できます。
- レポート
- 複数のレコードのデータを1つの帳票出力テンプレートに出力します。
帳票出力テンプレートファイルにシステムキーワード「${#レコード一覧開始#}
」と「${#レコード一覧終了#}
」があると、「レポート」と判断されます。
レポートの場合、帳票出力テンプレートファイルの1シートだけに出力できます。
ここでは、帳票出力テンプレートファイルの作成に関する情報をまとめています。
- キーワード
- フィールドとセルのデータ型の対応
- システムキーワード・決裁キーワードとセルのデータ型の対応
- セルの書式設定
- 明細行の出力
- リレーションパネルの帳票出力
- 画像の出力
- 決裁情報の出力
- レポートによるレコード一覧の出力
- 補足・制限事項
キーワード
キーワードは、フィールドデータや決裁情報の出力先セルを決定するために使用する文字列データです。
帳票出力テンプレートを登録するときに、キーワードとフィールドを関連付けて、データの出力先を指定します。
※一部の決裁情報は関連付けはできません。システムがキーワードに対応する決裁情報を出力します。
UnitBaseは、「${
」と「}
」で囲まれた文字列をキーワードとして認識します。
[例] ${顧客名}
、${単価}
、${登録日}
キーワードには任意の文字列を使用できます。長さは、700文字までです。
通常は、フィールドとの関連をわかりやすくするために、フィールド名と同じ文字列を使用することをお勧めします。
フィールド名と同じ文字列をキーワードに使用すると、帳票出力テンプレートを登録するときの関連付けを簡単にすることができます。
※両端に「#
」または「%
」を使用するキーワード、および末尾に「^ファイル名
」を使用するキーワードは、UnitBaseで予約されているため利用できません。
システムキーワード
帳票の作成日時を書き込んだり、明細の出力範囲を指定したりするために、システムキーワードが定義されています。
以下にシステムキーワードの一覧を示します。
システムキーワード | 説明 |
---|---|
${%帳票作成者名%} |
帳票作成を実行したユーザー名を出力します。 |
${%帳票作成日時%} |
帳票作成を実行した日時を出力します。 |
${%レコード作成者名%} |
レコードを作成したユーザー名を出力します。 |
${%レコード作成日時%} |
レコードを作成した日時を出力します。 |
${%レコード更新者名%} |
レコードを更新したユーザー名を出力します。 |
${%レコード更新日時%} |
レコードを更新した日時を出力します。 |
${#明細開始#} ${#明細終了#} ${#固定明細行終了#} ${#偶数行背景#} |
明細行の出力設定のために使用します。 作成された帳票では、これらのキーワードは消去されます。 |
${%明細行番号%} |
明細行の行番号を出力します。 |
レポート用には、次のキーワードが用意されています。
システムキーワード | 説明 |
---|---|
${#レコード一覧開始#} ${#レコード一覧終了#} ${#レコード一覧偶数行背景#} ${#明細外フィールド補完#} |
レポートの出力設定のために使用します。 作成されたレポートでは、これらのキーワードは消去されます。 |
${%レコード一覧行番号%} |
レポート内のレコード一覧の行番号を出力します。 |
${%レコード一覧件数%} |
レポート内のレコード件数を出力します。 |
決裁キーワード
- キーワードに含まれる記号および数値は、すべて半角で設定してください。
決裁キーワード | 説明 |
---|---|
${%決裁状況%} |
現在の決裁の状況[承認・却下・決裁中({ユーザー名})・取消・修正中]を表示します。 |
${%起案日%} |
決裁の起案日を表示します。 |
${%決裁完了日%} |
決裁の完了日を表示します。完了していない場合は空となります。 |
${%申請:本人%} |
決裁の申請者名を表示します。 |
${%申請:代理%} |
決裁の代理申請者名を表示します。本人が申請した場合は空となります。 |
${%申請:コメント%} |
決裁の申請者のコメントを表示します。コメントがない場合は空となります。 |
${%決裁:本人[i]%} |
-20 ≦ i ≦ -1 または 1 ≦ i ≦ 20 です。 対応する決裁者名を表示します。対応しない場合は空となります。 ※複数人決裁の場合は複数人決裁名が出力されます。複数人決裁メンバーの出力はできません。 |
${%決裁:代理[i]%} |
-20 ≦ i ≦ -1 または 1 ≦ i ≦ 20 です。 対応する決裁代理者名を表示します。対応しない場合は空となります。 ※複数人決裁の場合は何も出力されません。複数人決裁メンバーの代理者の出力はできません。 |
${%決裁:状況[i]%} |
-20 ≦ i ≦ -1 または 1 ≦ i ≦ 20 です。 対応する決裁状況を表示します。対応しない場合は空となります。 |
${%決裁:日時[i]%} |
-20 ≦ i ≦ -1 または 1 ≦ i ≦ 20 です。 対応する決裁日時を表示します。対応しない場合は空となります。 |
${%決裁:コメント[i]%} |
-20 ≦ i ≦ -1 または 1 ≦ i ≦ 20 です。 対応する決裁コメントを表示します。対応しない場合は空となります。 ※複数人決裁の承認時のコメントは出力されません。 |
フィールドの値の結合
1つのセルに文字列とキーワードを記述すると、帳票にはその文字列とフィールドの値が結合されて出力されます。複数のキーワードを記述すると、キーワードに関連付けられたそれぞれのフィールドの値が結合されて出力されます。システムキーワードを記述した場合は、そのキーワードで表される値が出力されます。
文字列以外のフィールドの値は、固定の書式で文字列に変換されたあとで結合されます。
[例] 「${姓}
${名}
(${年齢}
)」と記述した場合
帳票には「佐藤 一郎 (35)」「鈴木 花子 (28)」のように出力されます。
※フォント設定は、セルに対して指定されたものが利用されます。文字単位で指定されたフォント設定は無視されます。
[キーワード一覧]ダイアログボックスの利用
[キーワード一覧]ダイアログボックスには、編集中のデータベースのフィールド名をキーワード化した文字列や、システムキーワードなどが一覧に表示されます。
表示されたキーワード文字列をコピーし、帳票出力テンプレートファイルで出力先としたいセルに貼り付けると、キーワードの入力ミスを防ぐことができ、効率よく帳票出力テンプレートを作成できます。
[キーワード一覧]ダイアログボックスは、データベース編集画面で、コマンドバーの をクリックし、表示されるメニューで[キーワード一覧]を選択すると表示されます。
[i]
で表現した決裁キーワードは、以下が表示されます。
${%決裁:本人[1]%}
${%決裁:本人[2]%}
${%決裁:本人[-2]%}
${%決裁:本人[-1]%}
${%決裁:代理[1]%}
${%決裁:代理[2]%}
${%決裁:代理[-2]%}
${%決裁:代理[-1]%}
${%決裁:状況[1]%}
${%決裁:状況[2]%}
${%決裁:状況[-2]%}
${%決裁:状況[-1]%}
${%決裁:日時[1]%}
${%決裁:日時[2]%}
${%決裁:日時[-2]%}
${%決裁:日時[-1]%}
${%決裁:コメント[1]%}
${%決裁:コメント[2]%}
${%決裁:コメント[-2]%}
${%決裁:コメント[-1]%}
i が -3 以下、または 3 以上のキーワードが必要な場合は、上記キーワードを利用して、Excelのオートフィル機能を使用してキーワードを作成すると、書式の誤りを減らすことができます。
フィールドとセルのデータ型の対応
帳票を出力するときの、UnitBaseのフィールドとExcelのセルのデータ型の対応、およびフィールドを合成するときに文字列化する書式は、次のとおりです。
UnitBase フィールドのデータ型 |
Excel セルのデータ型 |
フィールド合成時の文字列化書式 |
---|---|---|
文字列(1行)、文字列(複数行)、 ドロップダウン(文字列)、 選択リスト(文字列、数値)*1、 自動採番、ユーザー 画像*2、ファイル*2 |
文字列 | 文字列 |
数値、ドロップダウン(数値)、 チェックボックス*3、時間量*4、 数値計算、日時計算(結果 : 時間量)*4、 年齢計算 |
数値 | 整数 : 整数表記 小数 : 桁指定による小数表記 |
日付時刻、日時計算(結果 : 日時)*5 | 日時 |
日時 : YYYY/MM/DD hh:mm (和暦の場合:元号YY年MM月DD日 hh時mm分ss秒 *6)日付 : YYYY/MM/DD (和暦の場合:元号YY年MM月DD日 )時刻 : hh:mm |
URL、メール | ハイパーリンク | URL |
画像*7 | 画像 | - |
*1 選択リストで複数の値が指定されている場合、「改行区切りの文字列」として値が出力されます。
*2 [帳票出力テンプレートの設定]ダイアログボックスで、キーワードとのマッピングで「画像フィールド名^ファイル名
」または「ファイルフィールド名^ファイル名
」を選択すると、登録した画像またはファイルのファイル名が出力されます。
*3 TRUE:1/FALSE:-1。
セルの書式設定を利用できます。
また、UnitBaseの設定でこの値を変更できます(管理者ガイド:8.20.帳票・レポート出力におけるチェックボックスの出力値の変更)。
UnitBaseの管理者に確認してください。
*4 最小単位で表現。
*5 日時形式で出力する場合、出力先のセルの表示形式で日付を設定する必要があります。[帳票出力テンプレートの設定]ダイアログボックスで、キーワードとのマッピングで「日付時刻^和暦」または「日時計算^和暦」を選択すると、和暦で出力されます(セルのデータ型は文字列)。
書式が設定されていない場合は、数値が表示されます。
*6 秒はフィールドの表示形式に秒が含まれるときに追加されます。
*7 [帳票出力テンプレートの設定]ダイアログボックスで、キーワードとのマッピングで[画像フィールド名^サムネイル<出力する画像のピクセル数>]を指定すると、指定したピクセル数にファイルサイズを縮小して出力されるので、大きなサイズの画像データを多数出力する場合にファイルサイズが大きくなる問題を軽減できます。
システムキーワード・決裁キーワードとセルのデータ型の対応
キーワード | Excel セルのデータ型 |
フィールド合成時の文字列化書式 |
---|---|---|
${%帳票作成者名%} |
文字列 | 文字列 |
${%レコード作成者名%} |
||
${%レコード更新者名%} |
||
${%決裁状況%} |
||
${%申請:本人%} |
||
${%申請:代理%} |
||
${%申請:コメント%} |
||
${%決裁:本人[i]%} |
||
${%決裁:代理[i]%} |
||
${%決裁:状況[i]%} |
||
${%決裁:コメント[i]%} |
||
${%帳票作成日時%} |
日時 | YYYY/MM/DD hh:mm |
${%レコード作成日時%} |
||
${%レコード更新日時%} |
||
${%起案日%} |
||
${%決裁完了日%} |
||
${%決裁:日時[i]%} |
||
${%明細行番号%} |
数値 | 整数表記 |
${%レコード一覧行番号%} |
||
${%レコード一覧件数%} |
セルの書式設定
キーワードを記入したセルに書式を設定すると、帳票にレコードの値を出力するときに、その書式設定が有効になります。
書式を設定するときは、データ型に合ったものにする必要があります。
[例]
フィールドの値 | 2012/12/03 |
---|---|
セルの書式 | ユーザー定義「ggge"年"m"月"d"日" 」 |
Excel帳票での書式 | 平成24年12月3日 |
明細行の出力
明細フィールドを帳票に出力するには、帳票出力テンプレートファイルに明細行テンプレート範囲を作成します。
明細行テンプレート範囲は、明細の1行分の出力定義を記述した範囲です。複数の行で構成することができます。帳票出力時に明細行テンプレート範囲があると、UnitBaseはその範囲を明細フィールドの行数だけコピーした上で、明細内のフィールドのデータを出力します。
明細行テンプレート範囲は、帳票出力テンプレートファイルの各シートに1つずつ作成できます。
明細行テンプレート範囲の定義
明細行テンプレートは、システムキーワード「${#明細開始#}
」と「${#明細終了#}
」の間の、長方形の範囲内に記述します。
範囲内の罫線や背景色、文字色といったセル書式や、セル結合、計算式は、出力される明細行に反映されます。計算式中のセル座標は、明細行の座標にあわせて修正されます。
[例] 明細行テンプレート範囲の定義例と出力例
- 定義例
- 出力例
- 明細に行番号を出力する
システムキーワード「${%明細行番号%}
」を指定すると、明細の各行に行番号を出力できます。
行番号は、[明細の設定]ダイアログボックスの[明細のカウント方向]で指定した方向で数えます。
明細行の出力形式
明細行は、システムキーワード「${#明細開始#}
」が記述された行から出力されます。明細行の出力形式には、動的明細行出力と固定明細行出力があります。
- 動的明細行出力
- レコードに存在する明細行の数だけ、明細行テンプレート範囲が挿入されます。システムキーワード「
${#明細終了#}
」より下にある行は、挿入された明細行の分だけ下へ移動します。
明細行が0行の場合は、何も出力されません。
[例]
- 動的明細行出力の場合は、「
${#明細開始#}
」から「${#明細終了#}
」までの行が動的に増減します。そのため、この範囲の左右にあるセルには、値や文字列、キーワードを記入しないでください。
- 「
${#明細開始#}
」/「${#明細終了#
}」が記述された行は一度削除されるため、これらの行を直接参照する数式を含んだ帳票出力テンプレートの数式結果は保証されません。※OFFSET関数などを用いて、明細行テンプレート範囲外セルからの相対参照として指定することで、対応できる場合があります。
- 動的明細行出力の場合は、「
- 固定明細行出力
- システムキーワード「
${#固定明細行終了#}
」を使用して明細を出力する範囲を定義します。
「${#明細開始#}
」から「${#固定明細行終了#}
」までの間に明細を出力します。
※テンプレート種類が「帳票」の場合は、「
明細の行数が、明細行出力に用意されている行数よりも多い場合は、「${#明細開始#}
」から「${#固定明細行終了#}
」までの間に1行は必要です。${#固定明細行終了#}
」以降に行を挿入して明細行を出力します。
少ない場合は、残りの領域に明細行テンプレート範囲に設定された背景色や罫線、塗りつぶしパターンがコピーされます。明細行テンプレート範囲内の文字列や計算式はコピーされません。
[例]
※固定明細範囲の行数が明細テンプレート範囲の行数で割りきれない場合、余りの行にはコピーされません。
- 固定明細行出力の場合は、明細テンプレート範囲の左右にあるセルに値や文字列、キーワードを記入できます。
[例]
- 固定明細行出力の場合は、明細テンプレート範囲の左右にあるセルに値や文字列、キーワードを記入できます。
明細行の罫線と背景
- 明細行が出力される前後の行と明細行とで罫線の種類を変えたい場合は、前後の行側のセルを選択して罫線の線種を設定します。
- 帳票では、明細の奇数行と偶数行とで背景色を変えて、読みやすくする場合があります。
このようなレイアウトにしたい場合は、システムキーワード「${#偶数行背景#}
」を利用します。「${#偶数行背景#}
」を記入したセルに背景色やパターンを設定すると、それらが明細の偶数行に反映されます。明細の奇数行には、明細行テンプレート範囲の設定が反映されます。
- 「
${#偶数行背景#}
」を指定するセルの位置
「${#偶数行背景#}
」は、「${#明細開始#}
」が記入された右隣のセルのように、「${#明細開始#}
」と同じ行で、「${#明細開始#}
」の右隣の列から「${#明細終了#}
」の列までのセルに指定します。
- 「
画像の出力
キーワードと画像フィールドとを対応付けると、レコードの画像を帳票に出力することができます。
明細行に存在する画像も出力できます。
画像は、縦横比を維持しながら、キーワードのセルの大きさいっぱいに貼り付けられます。
※実際のサイズを超えては拡大されません。
- 使用できる画像ファイルは、JPEG形式とPNG形式です。
- [帳票出力テンプレートの設定]ダイアログボックスで、キーワードとのマッピングで[画像フィールド名^サムネイル<出力する画像のピクセル数>]を指定すると、指定したピクセル数にファイルサイズを縮小して出力されるので、大きなサイズの画像データを多数出力する場合にファイルサイズが大きくなる問題を軽減できます。
決裁情報の出力
決裁情報を帳票に出力するには、帳票出力テンプレートファイルに決裁キーワードを指定します。
決裁履歴のキーワードには、次の種類があります。
${%決裁:本人[i]%} , ${%決裁:代理[i]%} , ${%決裁:状況[i]%} , ${%決裁:日時[i]%} , ${%決裁:コメント[i]%}
インデックス値 i は、[ -20 ≦ i ≦ -1] または [1 ≦ i ≦ 20 ]とします。
- インデックス値 i が正の場合
差し戻しや引き戻しで無効になった履歴を除き、最終的な決裁履歴を先頭から指定することができます。この場合、最初の決裁者が1、次の決裁者が2、....となります。 - インデックス値 i が負の場合
差し戻しや引き戻しで無効になった履歴を除き、最終的な決裁履歴を末尾から指定することができます。この場合、最後の決裁者が-1、最後の決裁者の前の決裁者が-2、....となります。
決裁履歴は、現在有効な履歴だけを出力します。差し戻しや引き戻しで無効になった履歴は出力しません。
また、決裁履歴のキーワードは、フィールドとマッピングすることはできません。
決裁情報からの帳票出力例
次のような、決裁状況が「承認」の決裁情報から、帳票を出力します。
- 決裁情報 (決裁状況:承認)
- 用意する帳票出力テンプレート1
- 出力された帳票1
※差し戻しとなった履歴は表示されません。
次のようなテンプレートを用意して出力することもできます。
- 用意する帳票出力テンプレート2
- 出力された帳票2
リレーションパネルの帳票出力
データベースにリレーションパネルが配置されている場合は、帳票にリレーションパネルの内容を出力することができます。
リレーションパネルを帳票に出力する場合は、帳票出力テンプレートファイルにリレーションパネル領域を作成します。
-
リレーションパネルで出力できるフィールドは、リレーションパネルの参照先レイアウトの一覧/ビュー アーに表示されているフィールドから選択できます。
- 画面上のリレーションパネルでは表示されないフィールドでも、参照先レイアウト中に表示されていれば出力できます。
-
リレーションパネル領域は6つまで帳票出力テンプレートに指定できます。
同じリレーションパネルを別の領域で複数出力することもできます。 -
1シート内に複数のリレーションパネルの値を出力できます。
- レポート出力では、リレーションパネルの出力はできません。
- リレーションパネルの参照先データベースの明細内のフィールドは出力できません。
リレーションパネルの帳票出力用キーワード記述形式
リレーションパネルの帳票出力用キーワードは、「${領域名##キーワード}
と、通常のキーワードに領域名を付加したものを利用します。
[例] リレーションパネルの帳票出力キーワード記述例と出力例
- 記述例
- 出力例
- 出力するレコードがない場合
出力するレコードがない場合は、帳票では行は削除されず、セルが空白のまま1行出力されます。
リレーションパネルの帳票出力領域
リレーションパネルの帳票出力領域は、リレーションパネル領域として扱われるキーワードを囲む長方形の範囲内となります。
UnitBaseは、この範囲を1行目のリレーションパネルのレコードととらえ、2行目以降のリレーションパネルのレコードはその下に空行が入ることなく出力されます。
- 別シートの同じ領域名について
別シートに同じ領域名を指定した場合は、別の領域として扱われます。
- 結合したセル内にキーワードを指定した場合
結合したセル内にキーワードを指定した場合は、結合セル全体もリレーションパネル領域に含まれます。
リレーションパネル領域として扱われるキーワード
以下にリレーションパネル領域として扱われるキーワードを示します。
- リレーションパネル領域として扱われるキーワード
-
キーワード 説明 ${領域名##キーワード}
リレーションパネル内の各フィールドを出力するようマッピングされたキーワードです。 ${領域名##キーワード^ファイル名}
リレーションパネル内のファイルを出力するようマッピングされたキーワードです。 ${領域名##キーワード^サムネイル<出力するピクセルサイズ>}
リレーションパネル内のサムネイルを出力するようマッピングされたキーワードです。 ${%領域名##レコード作成者名%}
リレーションパネル内のレコードを作成したユーザー名を出力します。 ${%領域名##レコード作成日時%}
リレーションパネル内のレコードを作成した日時を出力します。 ${%領域名##レコード更新者名%}
リレーションパネル内のレコードを更新したユーザー名を出力します。 ${%領域名##レコード更新日時%}
リレーションパネル内のレコードを更新した日時を出力します。 ${%領域名##行番号%}
リレーションパネル内のレコードの行番号を出力します。 ${%領域名##決裁状況%}
現在の決裁の状況[承認・却下・決裁中({ユーザー名})・取消・修正中]を表示します。 ${%領域名##起案日%}
決裁の起案日を表示します。 ${%領域名##決裁完了日%}
決裁の完了日を表示します。完了していない場合は空となります。 ${%領域名##申請:本人%}
決裁の申請者名を表示します。 ${%領域名##申請:代理%}
決裁の代理申請者名を表示します。本人が申請した場合は空となります。 ${%領域名##申請:コメント%}
決裁の申請者のコメントを表示します。コメントがない場合は空となります。 ${%領域名##決裁:本人[i]%}
-20 ≦ i ≦ -1 または 1 ≦ i ≦ 20 です。
対応する決裁代理者名を表示します。対応しない場合は空となります。${%領域名##決裁:代理[i]%}
-20 ≦ i ≦ -1 または 1 ≦ i ≦ 20 です。
対応する決裁状況を表示します。対応しない場合は空となります。${%領域名##決裁:状況[i]%}
-20 ≦ i ≦ -1 または 1 ≦ i ≦ 20 です。
対応する決裁状況を表示します。対応しない場合は空となります。${%領域名##決裁:日時[i]%}
-20 ≦ i ≦ -1 または 1 ≦ i ≦ 20 です。
対応する決裁日時を表示します。対応しない場合は空となります。${%領域名##決裁:コメント[i]%}
-20 ≦ i ≦ -1 または 1 ≦ i ≦ 20 です。
対応する決裁コメントを表示します。対応しない場合は空となります。${#領域名##領域#}
フィールドに対してはマッピングされず、出力時はキーワードは表示されません。
リレーションパネル領域を明示的に拡張する場合に指定します。
- その他キーワード
- 以下のキーワードも指定できます。これらのキーワードは、リレーションパネル領域の範囲には影響しません。
-
キーワード 説明 ${%領域名##件数%}
リレーションパネルに出力したレコード数を出力します。
他のリレーションパネル領域や保護領域、動的明細/固定明細の領域内に指定することもできます。${#領域名##行数制限<制限値>#}
*1リレーションパネルの出力レコード行数の上限を指定します。
このキーワードを指定しない場合の出力レコード行数の上限は 20行です。リレーションパネルを出力する場合は1~100行まで指定できます。リレーションパネル領域に明細をマッピングして出力する場合(後述)は1行以上を上限なしで指定できます。${#領域名##偶数行背景#}
*1このセルにリレーションパネルの偶数行背景スタイルを指定します。 ${#保護領域1#}
~${#保護領域5#}
*1帳票出力時に保護する領域を指定します。 *2 帳票出力時にキーワードは表示されません。
保護領域について
リレーションパネルの出力時は、リレーションパネルの出力するレコードの数だけリレーションパネル領域を下部に複製していくため、下部のセル内容は上書きされます。
※各フィールド値の出力結果や、動的明細/固定明細の出力結果についても、リレーションパネルがそれらの上部に配置されている場合は、リレーションパネルの出力によって上書きされます。
※リレーションパネルの出力がもう1つのリレーションパネルに達した場合については、もう1つのリレーションパネルは下部に移動して出力されます。
[例1] 上書きされるデータ
商品Aの出力行数が増えると、商品Bの見出しやヘッダーが商品Aの出力行に上書きされます。
リレーションパネルの下部に上書きされたくないデータを配置する場合は、${#保護領域1#}
を指定します。
リレーションパネルの出力が保護領域に達した場合は、保護領域の内容が下部に移動して出力されます。
※保護領域下部のセル内容は上書きされます。
[例2] 商品のBの見出しとヘッダーを保護領域に指定した場合
商品Bの見出しとヘッダーを、${#保護領域1#}
で囲んで保護領域に指定すると、商品Bの見出しやヘッダーは商品Aの出力行に上書きされずに出力されます。
- 1シートに指定できる保護領域
1シートに指定できる保護領域は5つまでです。
上書きされたくないデータ部分を、キーワード${#保護領域1#}
~${#保護領域5#}
のそれぞれのキーワードの対で囲んで指定します。 - 保護領域で指定できるキーワード
保護領域内には通常キーワードを指定できます。
また、動的明細/固定明細を保護領域で囲うこともできます。※保護領域がリレーションパネル領域やほかの保護領域と重なるような指定はできません。
Excel の名前定義機能を用いて、リレーションパネル領域や保護領域を指定/拡張する
Excel の名前定義機能にUnitBase.領域.領域名
という名前でシートに定義しておくことで、リレーションパネルを明示的に拡張できます。またUnitBase.保護領域1
~UnitBase.保護領域5
という名前でシートに定義しておくことで、保護領域の指定もできます。
リレーションパネルの端に数式を配置したい場合など、領域拡張が必要でセルに${#領域名#領域#}
や${#保護領域1#}
などを記述できない場合に利用します。
※名前定義の参照範囲は単一の長方形となるように指定してください。
リレーションパネルのマッピング
リレーションパネルの帳票出力では、以下のマッピングを行います。
- 領域名とリレーションパネルのマッピング
- キーワードとリレーションパネル内の各フィールドや共通/決裁情報 のマッピング
[帳票出力テンプレートの設定]ダイアログで、帳票出力テンプレートに指定された領域名ごとにマッピングするリレーションパネルを選択し、その後各キーワードとフィールドをマッピングします。
※帳票出力テンプレート登録時は、領域名と一致するリレーションパネルがデータベースにある場合 あらかじめマッピングされた状態で表示されます。
※フィールドとキーワードについても、マッピングされたリレーションパネルにあるフィールドがキーワードと一致する場合は、 あらかじめマッピングされた状態で表示されます。
リレーションパネル領域に明細をマッピングする
データベースに明細がある場合、リレーションパネル領域 にリレーションパネルをマッピングする代わりに 明細をマッピングすることができます。
- 帳票出力テンプレート登録時は、帳票出力テンプレートに指定された領域名と明細タイトルが一致している場合は、あらかじめマッピングされた状態で表示されます。
- 明細内のフィールドは、レイアウトの配置によらずすべてのフィールドがマッピングできます。
- 動的明細/固定明細 と同じシートに出力することもできます。
-
以下のキーワードはマッピングされません。
-
${%領域名##レコード作成者名%}
-
${%領域名##レコード作成日時%}
-
${%領域名##レコード更新者名%}
-
${%領域名##レコード更新日時%}
- すべての決裁キーワード
-
リレーションパネル形式での明細出力
リレーションパネルの参照元データベースの明細を帳票に出力するときは、リレーションパネルのキーワード記述形式を使用します。
- 記述形式
- リレーションパネルの記述形式では、キーワードを
「${明細名##フィールド名}」
の形式で記述します。
- 記述例
- 出力例
- リレーションパネル形式のキーワード自動マッピング
リレーションパネル形式のキーワードとフィールドは、明細名が一致した場合に自動マッピングされます。
- リレーションパネル形式の明細の領域指定
リレーションパネル形式では、明細の領域は、対象となる明細のフィールドをすべて囲む長方形の範囲内となります。明細の領域は、キーワード${#明細名##領域#}
で範囲を囲むことで拡張できます。領域の拡張に名前定義「UnitBase.明細名
」も併用できます。
- 記述例
数式によるリレーションパネル領域・保護領域間の数式によるセル参照について
リレーションパネル領域・保護領域間の数式によるセル参照は、下記のルールで補正されます。
-
リレーションパネル領域内セル → 同じリレーションパネル領域内セル
各レコード内でのセル参照を保って出力されます。
-
任意のセル → 別のリレーションパネル領域内セル
リレーションパネルの縦全体を覆う領域への参照については、出力されたリレーションパネルの行すべてにまたがる領域として出力されます。
上記に該当しなければ、行ずれが補正されて1行目への参照として出力されます。 -
任意のセル → 保護領域内セル
行ずれが補正されて出力されます。
※補正対象となるのは、セルに指定された数式だけとなります。
※リレーションパネル領域・保護領域内セル → リレーションパネル・保護領域外のセルの出力結果の参照先は不定になるため、推奨されません。
レポートによるレコード一覧の出力
レポートを出力するには、帳票出力テンプレートファイルにレコード一覧テンプレート範囲を作成します。
レコード一覧テンプレート範囲は、レコード一覧の1行分の出力定義を記述した範囲です。複数の行で構成することができます。レポート出力時にレコード一覧テンプレート範囲があると、UnitBaseはその範囲をレコードの行数だけコピーした上で、レコード一覧のフィールドのデータを出力します。
レコード一覧テンプレート範囲の定義
レコード一覧テンプレートは、システムキーワード「${#レコード一覧開始#}
」と「${#レコード一覧終了#}
」の間の、長方形の範囲内に記述します。
範囲内の罫線や背景色、文字色といったセル書式や、セル結合、計算式は、出力されるレコード一覧行に反映されます。計算式中のセル座標は、レコード一覧行の座標にあわせて修正されます。
[例] レコード一覧テンプレート範囲の定義例と出力例
- 定義例
- 出力例
- レコード一覧に行番号を出力する
レコード一覧テンプレート範囲にシステムキーワード「${%レコード一覧行番号%}
」を指定すると、レコード一覧の各行に行番号を出力できます。
明細行は行番号の数え上げに含まれません。
- レコードの件数を出力する
システムキーワード「${%レコード一覧件数%}
」を指定すると、レポートに出力したレコードの件数を出力できます。
明細行は件数の数え上げに含まれません。
レコード一覧の出力形式
レコード一覧は、システムキーワード「${#レコード一覧開始#}
」が記述された行から出力されます。出力時には、レコードの数だけレコード一覧テンプレート範囲が挿入されます。システムキーワード「${#レコード一覧終了#}
」より下にある行は、挿入されたレコードの分だけ下へ移動します。
レコード一覧が0行の場合は、何も出力されません。
[例]
- レコード一覧の出力では、「
${#レコード一覧開始#}
」から「${#レコード一覧終了#}
」までの行が動的に増減します。そのため、この範囲の左右にあるセルには、値や文字列、キーワードを記入しないでください。
- 「${#レコード一覧開始#}」/「${#レコード一覧終了#}」が記述された行は一度削除されるため、これらの行を直接参照する数式を含んだ帳票出力テンプレートの数式結果は保証されません。
※OFFSET関数などを用いて、レコード一覧テンプレート範囲外セルからの相対参照として指定することで、対応できる場合があります。
レコード一覧の罫線と背景
- レコード一覧が出力される前後の行とレコード一覧とで罫線の種類を変えたい場合は、前後の行側のセルを選択して罫線の線種を設定します。
- レコード一覧では、奇数行と偶数行とで背景色を変えて、読みやすくする場合があります。
このようなレイアウトにしたい場合は、システムキーワード「${#レコード一覧偶数行背景#}
」を利用します。「${#レコード一覧偶数行背景#}
」を記入したセルに背景色やパターンを設定すると、それらがレコード一覧の偶数行に反映されます。レコード一覧の奇数行には、レコード一覧テンプレート範囲の設定が反映されます。
- 「
${#レコード一覧偶数行背景#}
」を指定するセルの位置
「${#レコード一覧偶数行背景#}
」は、「${#レコード一覧開始#}
」と同じ行で、「${#レコード一覧開始#}
」の右隣の列から「${#レコード一覧終了#}
」の列までのセルに指定します。
- 「
${#レコード一覧偶数行背景#}
」と明細の背景色
「${#レコード一覧偶数行背景#}
」が指定され、明細に「${#偶数行背景#}
」が指定されていない場合、レコード一覧の偶数行の明細行背景色には${#レコード一覧偶数行背景#}
の指定が適用されます。
- 「
レコード一覧テンプレート範囲外のキーワード
レコード一覧テンプレート範囲の外に記述したキーワードには、レコード一覧の1行目の値が出力されます。
[例] 下図の帳票出力テンプレートの場合
「${訪問日}
」と「${担当者}
」がレコード一覧テンプレート範囲の外にあります。これらにはレコード一覧の1行目の値が出力されます。
「${担当者}
」がレコード一覧テンプレート範囲に記述されていなくても、データベースのフィールドに存在していれば値が出力されます。
レコード一覧内の明細行出力
明細フィールドをレコード一覧に出力するには、レコード一覧テンプレート範囲に明細行テンプレート範囲が重なるように作成します。
レコード一覧に明細行を出力する場合は、帳票出力のときの「${#明細開始#}
」と「${#固定明細行終了#}
」の定義に、以下の制約が追加されます。
${#明細開始#}
- システムキーワード「
${#レコード一覧開始#}
」と「${#レコード一覧終了#}
」のセルを対角線の両端とする長方形の範囲内に、「${#明細開始#}
」を配置する必要があります。
${#固定明細行終了#}
- テンプレート種類が「帳票」の場合と異なり、システムキーワード「
${#明細開始#}
」と「${#固定明細行終了#}
」を同じ行に配置できます。
レコード一覧内の明細行出力では、帳票出力と同様に、「${#明細開始#}
」が記述された行から明細が出力されます。出力形式には、動的明細行出力と、固定明細行出力があります。
- レコード一覧内の動的明細行出力
- レコード一覧テンプレート範囲に、明細行を動的に挿入します。動的明細行の定義により明細行の数だけ明細行テンプレート範囲が動的に増減するため、明細の左右にあるレコード一覧テンプレート範囲に影響が及びます。
明細行が0行の場合は、明細の左右に配置したフィールドも出力されません。明細行が0行のときも明細の左右に配置したフィールドを出力したい場合は、固定明細行出力を利用します。
- レコード一覧内の固定明細行出力
- 帳票の固定明細と同様に、「
${#明細開始#}
」から「${#固定明細行終了#}
」までの間に最低限明細を出力する範囲を確保します。
※固定明細行出力用に確保する行数は、1件の明細の行数、つまり
${#明細開始}
と${#明細終了#}
で囲まれた領域の行数以上である必要があります。[例]
出力例のように、明細の行数が少なくても、固定明細行の範囲は確保されます。
[例] 固定明細行に範囲が1行の帳票出力テンプレートの例
出力例の最後の行のように、明細の行数が0行でも出力されます。
明細外フィールド補完
システムキーワード「${#明細外フィールド補完#}
」を利用すると、明細2行目以降の明細外のセル部分に明細1行目のセルを複製することができます。「${#明細外フィールド補完#}
」を利用する場合、各システムキーワードの配置条件に加えて、以下の条件をすべて満たす必要があります。
- システムキーワード「
${#レコード一覧開始#}
」・「${#明細開始#}
」・「${#明細外フィールド補完#}
」・「${#固定明細行終了#}
」がすべて同じ行に存在すること
※「
${#固定明細行終了#}
」は必ずしも必要ではありません。ただし、存在しない場合は明細データがないレコードが出力されません。 - レコード一覧テンプレート範囲と明細テンプレート範囲の各フィールドキーワードが同じ行に存在すること
- システムキーワード「
${#レコード一覧終了#}
」と「${#明細終了#}
」が同じ行に存在すること
- 上記 1.、2.、3.の行は、この順に並んで3行で記述すること
順に並んで3行で記述されていない場合は、出力結果は保証されません。
明細1行目の明細外セルで、計算式などにセル座標が利用されている場合は、行の複製に合わせて補正されます。
[利用例]
補足・制限事項
補足
- 帳票出力テンプレートファイルにマクロが登録されている場合、帳票やレポートには登録されたマクロがそのまま出力されます。
- 社章やブランドロゴのような画像が貼り付けられている場合、帳票やレポートには貼り付けられた画像がそのまま出力されます。
※貼り付けた画像を選択した状態で、Excelでファイルを保存して帳票出力テンプレートファイルとして利用すると、作成された帳票が開けなくなる場合があります。
- 帳票出力テンプレートに設定した計算式の参照先が明細出力領域ちょうどに設定された動的明細行出力の場合、明細が0行のレコードの帳票を出力すると、明細出力領域が削除されるので計算結果が不正となります。
これを回避するには、明細出力領域の上下どちらかの行を含めた領域を、参照先として設定します。
- 以下のいずれかに該当する場合、出力するデータに改行が含まれるとみなされ、帳票出力時、該当セルの書式で[折り返して全体を表示する]が自動でオンとなります。
- 帳票テンプレートでキーワードが記載されているセルに改行が含まれる
- 帳票出力対象のフィールドが「文字列(複数行)」フィールドなど改行を登録することが可能なフィールドで、出力対象のフィールド値に改行が含まれる
制限事項
- 1つの帳票出力テンプレートファイルに指定できるキーワードは200個までです。
- 登録できる帳票出力テンプレートファイルのサイズは、5MBまでです。
- [レポート作成]および[レポート作成(選択したレコード)]で出力できる件数は、明細レコード数を含めて1,000件です。
1,000件を超えた行は出力されません。明細の出力途中でも、1,000件で打ち切られます。この場合、ダウンロードされた帳票ファイルには、上限を超えて出力が打ち切られたことを示す文章が記載されたシートが追加されます。この帳票ファイルを開くと、追加されたシートが前面に表示されます。
- レポートの出力時間が10分を超えると、出力は中止されます。中止後、その時点までのレポートが出力された帳票ファイルがダウンロードされます。この場合、ダウンロードされた帳票ファイルには、時間がかかったため出力が打ち切られたことを示す文章が記載されたシートが追加されます。この帳票ファイルを開くと、追加されたシートが前面に表示されます。
- レポートの出力結果がExcelファイルの最大行数を超えると、出力は中止されます。中止後、その時点までのレポートが出力された帳票ファイルがダウンロードされます。この場合、ダウンロードされた帳票ファイルには、Excelの最大行数を超えたため出力が打ち切られたことを示す文章が記載されたシートが追加されます。この帳票ファイルを開くと、追加されたシートが前面に表示されます。
- 帳票やレポートの出力で1つのセルに出力される文字数は、Excelの1セルあたりの文字数上限までです。文字数の上限を超えた文字列は出力されません。
- レポート作成に時間がかかる場合は、帳票出力テンプレートを次のように調整すると、改善する場合があります。
- 帳票出力テンプレートを
.xlsx
ファイルで作成した場合は、.xls
ファイルで作成しなおす
- レコード一覧テンプレート範囲で、「
${#レコード一覧開始#}
」と「${#レコード一覧終了#}
」の間の行数を減らす
- 明細行テンプレート範囲で、「
${#明細開始#}
」と「${#明細終了#}
」の間の行数を減らす
- Excel関数の参照範囲を限定する
- 帳票出力テンプレートを
- シートに次のデータが存在する場合、そのシートに明細行や画像フィールドを出力することや、そのシートをレポート出力に使用することはサポートされません。
- オートシェイプ
- グラフ
- ピボットテーブル
- フォーム
- コメント
- オートフィルター
- リスト
※グラフやピボットテーブル、リストなど、作成時に対象領域を指定するデータは、その領域がそのまま維持されます。帳票出力による範囲の増減は反映されません。
- オブジェクトの埋め込みはサポートされません。
埋め込みオブジェクトがファイル内にある場合は、サムネイルだけが表示され、編集できなくなります。
- ユーザー設定のビューはサポートされません。
- 帳票出力テンプレートファイルのセルに条件付き書式が指定されている場合、レポートへの出力をサポートされるのは、下記の条件設定だけです。
- 規定の値を含むセルだけを書式設定
- セルの値
次の値の間/次の値の間以外/次の値に等しい/次の値に等しくない/次の値より大きい/次の値より小さい/次の値以上/次の値以下
- 日付
昨日/今日/明日/過去7日間/先週/今週/来週/先月/今月/来月
- 空白
- 空白なし
- エラー
- エラーなし
※XLS 形式の場合は、同じセル範囲に3つ以上の条件付き書式のルールの配置はサポートされません。
- セルの値
- 規定の値を含むセルだけを書式設定
- テンプレート種類が帳票の場合、帳票出力テンプレートを利用して作成できる帳票ファイルは、10MB以下のサイズとなる必要があります。
レコードに登録された画像のサイズが大きいときや、画像の数が多いときは、サイズの制限を超える可能性があります。この場合は、帳票出力テンプレートを登録・修正するときに調整しておきます。
- 行を選択して設定した、行に対する属性は指定できません。
セルまたはセル範囲を選択して、属性を指定してください。
- Excel 97-2003 ブック形式(
.xls
)の場合、文字色や背景色は、Excel 97-2003 ブック形式(.xls
)のパレットで用意された56色と無色を使用できます。
上記のパレットに含まれない色は、帳票作成時にパレットに含まれる近似の色に置き換えられます。
使用した文字色や背景色を維持したい場合は、色をExcel 97-2003 ブックのパレットに明示的に指定する必要があります。
パレットの設定は、Excelの[オプション]ダイアログボックスで設定します。
- Excel 2003の場合
[オプション]ダイアログボックスの[色]シートで、使用する色を[標準の色]で指定します。
- Excel 2010/2007の場合
[Excelのオプション]ダイアログボックスで[保存]を選択し、表示される設定項目にある[ブックの外観]の[色]をクリックします。表示される[色]ダイアログボックスで、使用する色を[標準の色]で指定します。
- Excel 2003の場合
- セルの高さを自動調整するように設定していても、出力されるデータにあわせた調整はされません。
セルの高さは、あらかじめ余裕を見て調整する必要があります。
- セルに対して設定された入力統制は、帳票出力時やレポート出力時の明細行の挿入のような変更により、位置は保証されません。
また、明細テンプレート範囲内やレコード一覧テンプレート範囲内に指定することはできません。
- 行の非表示は保証されません。
行を非表示にすると、出力結果では本来の行と異なる行が非表示となります。
セルを非表示にする場合は、列の非表示を使用してください。
- セルの位置や範囲を引数とする関数を別の関数の引数とする計算式( 例:
=IF(...,ROWS(B3:B5))
)がある場合、作成された帳票をExcelで開いたときに、計算式が正しくても引数エラー(#value!)が表示されることがあります。
このときは、Excelの[エラーチェック]ダイアログボックスを表示し、問題のあるそれぞれの計算式で[数式バーで編集]をクリックしたあと[再開]をクリックします。
- Excelの計算式で、次の機能は利用できません。
- 配列数式
- 配列定数
- アドイン関数の呼び出し
- 明細テンプレート範囲やレコード一覧テンプレート範囲にハイパーリンクや画像をあらかじめ配置した場合、その出力結果は保証されません。
- 帳票内の数式(シート名参照を含む)や名前定義に以下の文字が含まれると、正しく出力できない場合があります。
- “(全角左ダブルクォーテーションマーク)
- ‐(全角ハイフン)
- ―(全角ダッシュ)
- .(全角ピリオド)
- 。(全角句点)
- ・(全角中黒)
- _(全角アンダーライン)
- 「
- 」
- 『
- 』
- ÷
- ○
- ▲
- ■
- ★
- 【
- 】
- ①などの丸囲み数字
- 名前や印刷範囲をシート上に設定する場合、次の制限があります。
- 名前の参照範囲は単純な領域指定のみサポートしており、飛び地の指定や数式の指定は保証されません。
- 帳票出力の場合は、明細の出力形式が固定明細行出力のときだけ、領域の維持や明細行の増加への追従をサポートします。
動的明細行出力のときは、明細が存在するシート上に設定された名前や印刷範囲は保証されません。また、リレーションパネル形式での出力による名前や印刷範囲の補正は行われません。
- レポート出力の場合は、シート上に設定された名前や印刷範囲は保証されません。
- Excel 97-2003 ブック形式(
.xls
)の場合、名前範囲にコメントが含まれていると、正しく出力できない場合があります。
- 帳票テンプレートのキーワードが記入されたセルが、Excelの名前付きセルのカスタムプロパティで「内容にリンク」のチェックが有効である場合、キーワードが変換されずにそのまま出力されます。
- パスワード保護がかけられたファイルは帳票出力テンプレートに指定できません。
- URLフィールドのURL部分に「
\
」や半角スペースが含まれる場合、正しくハイパーリンク化できない場合があります。
この場合はURL部分のみがハイパーリンクなしの文字列として出力されますが、対象フィールドあるいはその周辺のセルにスタイルが正しく適用されない場合があります。 - 動作確認済みのExcelの関数
帳票出力テンプレートで使用されている関数によっては、帳票出力ができない場合があります。
※次の関数は、帳票出力で使用できることを確認した関数です。
これら以外の関数が使用されている帳票はサポートしません。また、これらの関数でも条件によっては出力できない場合があります。※ほかのブックへの参照はサポートしません。
動作確認済みのExcelの関数 関数 ABS 関数
ACOS 関数
ACOSH 関数
ADDRESS 関数
AND 関数
ASIN 関数
ASINH 関数
ATAN 関数
ATAN2 関数
ATANH 関数
AVEDEV 関数
AVERAGE 関数
CEILING 関数
CHAR 関数
CHOOSE 関数
CLEAN 関数
COLUMN 関数
COLUMNS 関数
COMBIN 関数
CONCATENATE 関数
COS 関数
COSH 関数
COUNT 関数
COUNTA 関数
COUNTBLANK 関数
COUNTIF 関数
DATE 関数
DAY 関数
DAYS360 関数
DEGREES 関数
DEVSQ 関数
DGET 関数
DMIN 関数
ERROR.TYPE 関数
EVEN 関数
EXACT 関数
EXP 関数
FACT 関数
FALSE 関数
FIND 関数
FIXED 関数
FLOOR 関数
FV 関数
HLOOKUP 関数
HOUR 関数
HYPERLINK 関数
IF 関数
INDEX 関数
INDIRECT 関数
INT 関数
INTERCEPT 関数
IPMT 関数
IRR 関数
ISBLANK 関数
ISERR 関数
ISERROR 関数
ISEVEN 関数
ISLOGICAL 関数
ISNA 関数
ISNONTEXT 関数
ISNUMBER 関数
ISODD 関数
ISREF 関数
ISTEXT 関数
LARGE 関数
LEFT 関数
LEN 関数
LN 関数
LOG 関数
LOG10 関数
LOOKUP 関数 (引数1~3)
LOWER 関数
MATCH 関数
MAX 関数
MAXA 関数
MEDIAN 関数
MID 関数
MIN 関数
MINA 関数
MINUTE 関数
MIRR 関数
MOD 関数
MODE 関数
MONTH 関数
MROUND 関数
NOT 関数
NOW 関数
NPER 関数
NPV 関数
ODD 関数
OFFSET 関数
OR 関数
PERCENTILE 関数
PI 関数
PMT 関数
POISSON 関数
POWER 関数
PPMT 関数
PRODUCT 関数
PROPER 関数
PV 関数
RADIANS 関数
RAND 関数
RANDBETWEEN 関数
RANK 関数
RATE 関数
REPLACE 関数
REPT 関数
RIGHT 関数
ROUND 関数
ROUNDDOWN 関数
ROUNDUP 関数
ROW 関数
ROWS 関数
SEARCH 関数
SECOND 関数
SIGN 関数
SIN 関数
SINH 関数
SLOPE 関数
SMALL 関数
SQRT 関数
STDEV 関数
SUBSTITUTE 関数
SUBTOTAL 関数
SUM 関数
SUMIF 関数
SUMPRODUCT 関数
SUMSQ 関数
SUMX2MY2 関数
SUMX2PY2 関数
SUMXMY2 関数
T 関数
TAN 関数
TANH 関数
TEXT 関数
TIME 関数
TODAY 関数
TRIM 関数
TRUE 関数
TRUNC 関数
UPPER 関数
VALUE 関数
VAR 関数
VARP 関数
VLOOKUP 関数
WEEKDAY 関数
YEAR 関数