はじめに
Customineのやること「Excelを出力する」「PDFを出力する」(画面のカスタマイズ)や、やること「Excelを出力する」「PDFを出力する」(Job Runner)のテンプレートファイルにおいてはExcelの数式(計算式)や書式を使うことが出来ます。(Excelマクロは使えません)
ここでは、よく使いそうな書式や数式(計算式)を紹介しつつ注意点もお伝えします。
書式
日付
テンプレートで日付の書式を以下のようにした場合は、Excel出力とPDF出力は次のようになります。
Excel出力
PDF出力
*2012/3/4 の場合だけ表記が違っている事に注意してください。これはPDFを生成している環境が日本語環境ではないためです。
Excelで最初から用意されている書式であれば * が付いていない書式を選択していただくと日本語が指定されます。
なお、ユーザー書式の場合は言語(場所)の指定がないため、書式に [$-ja-JP] を付けて日本語であることを指定する必要があります。
その他
テンプレートで書式設定したセルは出力ファイルにもそのまま反映されます。
ですので、基本的な装飾(文字の大きさや色など)はテンプレート側で設定するようにしてください。
その際は、センタリング、文字の折返し(や、縮小表示)なども設定が漏れがちなのでご注意ください。
PDF出力の場合は印刷範囲やページ設定にもご注意ください。出力結果が見切れているようなケースはテンプレートで空行を増やしておくか、ページ設定で拡大縮小印刷を確認するようにしてください。
数式(計算式)
集計
テーブル行であればアプリの方で集計しても良いのですが、テンプレート側でも集計が可能です。SUM関数で$FOREACH〜$ENDまでの範囲を指定すると出力されたファイルではテーブルが展開されたセル位置に修正して計算されます。
gusukuコマンド
詳細についてはこちらのリファレンスマニュアルをご覧ください。
文字列結合
フィールド値や通常の文字列を組み合わせる場合は次のように記述します。
$(“西暦”)$(year)$(“年”)
実際に出力されるのはこのような値になります。
西暦2021年
文字列は $(“”) で囲んだ中に記述することで結合することが出来ます。
条件式
$IF,真ラベル,偽ラベル(フィールドコード)
フィールドコードで指定したフィールドの値が true の文字列であれば「真ラベル」に、それ以外なら「偽ラベル」に書かれた文字列に置換します。フィールド値をそのまま出力すると true になるので、それを置き換えるような場合に使います。
指定のラベルは真・偽ともに指定できるのは文字列のみで、$(タイトル)のようなフィールド指定や$(“文字”)などの固定値を指定することは出来ません。
$IF(フィールドコード)true$DATE(日付)$(タイトル)
フィールドコードで指定したフィールドの値が true の文字列であれば日付フィールドの値が、それ以外ならタイトルフィールドの値が出力されます。
$(タイトル)のようなフィールド指定や$(“文字”)などの固定値を使う場合はこちらの書き方をお試しください。
シート名
クイックスタートガイドにもあるように、任意の文字やフィールド値でシート名を設定できます。
特別な記述方法として先頭に「#」をつけると複数レコード数分のシートを出力することが可能です。また「#」で始まるシートはいくつでも作成できるので、1レコードの内容を元に
#表紙
#明細
といったように複数シートに出力することも可能です。
この状態で複数レコードを出力すると、それぞれがレコード数分複製されます。
また、複数レコード出力時でシート名が同名になる場合は
表紙_1
表紙_2
のように、後ろに数字が自動付与されます。
自動付与ではなく任意の値などを指定したい場合は、複数の値を組み合わせることで可能です。書き方は先ほどの文字列結合と同じです。
#$(“詳細_”)$(タイトル)
のように指定してください。
テーブル行をシートに展開
テーブル1行を1シートに展開することが可能です。
#(テーブル)$(詳細)
テーブル内のフィールド値をシート名にしたい場合はこちらです。
#(テーブル)$(“テーブル”)
固定の文字をシート名の頭にして、複製分は数値の自動付与でいい場合はこのような書き方になります。
この展開されたシート内ではテーブル行が基準になるので、テーブル外のフィールド値は参照できません。((..)で指定しても参照できません)
例えば、テーブル外に送信元がありテーブルに送信先が入力されているようなアプリがある場合で、送信先毎にシートを分けた場合は送信元の情報をテーブル内に入れておく必要があります。
または、送信元というシートを作成しておいて、Excelの式で参照するという方法もあります。
こちらのページもご確認ください。
関連レコードをシートに展開
関連レコードの1レコードを1シートに展開することが可能です。
#(関連レコード)$(タイトル)
テーブル内のフィールド値をシート名にしたい場合はこちらです。
#(関連レコード)$(“関連レコード”)
固定の文字をシート名の頭にして、複製分は数値の自動付与でいい場合はこのような書き方になります。
一覧画面で複数レコードを選択して出力する時と同じことが、関連レコードでも可能です。
ですので、特定の値と一致するレコードを出力したいという場合は、一覧画面で絞り込み&チェックという手順で指定するよりは、別アプリで関連レコードを設定したほうが操作はシンプルになります。
こちらのページもご確認ください。
添付ファイル
添付ファイルの内容は色々な形式で出力可能です。
$IMG
$EXTIMG
$(contentType)
$(fileKey)
$(name)
$(size)
文字列(複数行)
文字列(複数行)は改行区切りで出力可能です。
$
これについてはgusukuコマンドの仕様をご確認ください。
まとめ
gusukuコマンドでシート名の記述方法が拡張されたため、テーブルやレコードなどの複数出力が柔軟に設定可能になりました。
関連レコードにあるテーブルや、関連レコードのにある関連レコードなど、紐付いている値の取得が簡単にできるようになっています。
ぜひ、色々なケースをお試しください。