PDFを出力する
GoogleSpreadsheetをテンプレートにして、レコードデータからPDFを作成することが出来ます。作成はアプリ設定画面の「アクション」タブから行います。
この機能を利用するには、GCPサービスアカウントが作成済みである必要があります。
- 関連ページ:
テンプレートファイルを用意する
-
Google Driveにアクセスし、専用のフォルダを作成します。
フォルダ名は任意の名称を入力します。
-
作成したフォルダをサービスアカウントと共有します。
- 関連ページ:
-
作成したフォルダ内にSpreadsheetを作成します。
フィールド値で置き換えを行うセルには、置き換えたいフィールドのフィールドIDを%で囲って入力します。
1つのセルに複数のフィールドIDを入力する事も出来ます。
テーブル内のフィールド値で置き換える場合は、置き換えの可能性がある全てのセルにフィールドIDを入力して下さい。
Spreadsheet内に同じフィールドIDが複数存在した場合、そのフィールドがテーブル外のフィールドであれば同じフィールドを使って置き換えを行いますが、テーブル内のフィールドに関しては、フィールドIDが出現する度に対象行を移動させながら置き換えを行います。
置き換え出来なかった残りのセルは空値で置き換えられます。
次のフィールドは対象外です。
- file, canvas, spacer
複数のシートを用意した場合は、それらの各シートを1ページとしてPDFを作成します。
但し、フィールド値の置き換え指定がないシートについては出力対象外となりますので、置き換え指定がないシートもPDFに含めたいという場合は、置換元アプリに空値のダミーフィールドを配置し、いずれかのセルをその空値で置き換えるといった対応をする必要があります。
テーブル内のフィールド値で置き換えるとなると、置換元アプリのテーブルの行数がシート内に指定した行数に収まりきらないことがあります。
用意したテンプレートが1シートのみであるならば、テーブル内フィールド値の置き換えが終了するまで、そのシートをコピーしながら置き換えを続けますが、2ページ目以降をテーブル内のフィールドのみで構成したフォーマットで置き換えたいという場合は、2ページ目以降用のフォーマットシートを追加して下さい。
置き換え後の値が数値になる場合は、セルの表示形式を数値にしておく必要があります。
置き換え元がlookupフィールドである場合は、「参照元フィールド」の値で置き換えます。
アクションを設定する
-
テンプレートが用意出来たら、アクショントリガーから「ボタントリガー」を選択し、追加ボタンを押下します。
-
アクション名とボタンラベルとアクション実行前の確認メッセージを入力し、「レポート」欄から作成したSpreadsheetのIDを入力し、取得ボタンを押下ます。
SpreadsheetのIDはスラッシュに囲まれた以下の部分になります。
-
Spreadsheet情報の取得が完了すると、テンプレートシートの指定ドロップダウンが表示されますので、ページの作成順にシートを選択します。
- レポート名フィールド:
-
作成するPDFのファイル名が入力されたフィールドを指定します。
指定可能なフィールドはtextフィールド、radioフィールド、dropdownフィールド、autonumberフィールドのみとなります。
- レポート保存フィールド:
-
作成したPDFをレコードに保存する場合は、そのフィールドを指定します。
指定可能なフィールドはfileフィールドのみとなります。
繰り返しが想定されるシートについては最下段で指定するようにしないと、置き換え途中で、その次に指定したシートで置き換えを再開してしまいますので、ご注意下さい。
アクションを実行するレコードの条件にテーブル内フィールドを指定し、そのテーブル内フィールドを実行の対象とした場合は、条件に該当するテーブル行のみが置き換え対象となります。
-
設定が完了したら、「OK」ボタンを押下し、アプリ設定画面の「アプリを更新」ボタンを押下します。
- 関連ページ:
アクションを実行するレコードの条件を設定する
アクションはレコードの状態により、その実行可否を判断させることが出来ます。アクションを実行するレコードの条件を設定するには、漏斗ボタンを押下します。
アクションの実行が可能なユーザーを設定する
アクションはユーザー毎に、その実行可否を判断させることが出来ます。アクションの実行が可能なユーザーを設定するには、ユーザーボタンを押下します。
アクションを実行する
レコード追加画面や編集画面、読み取り専用一覧形式ビューに配置されたボタンを押下することで、アクションが実行されます。
レポート保存フィールドを指定した場合は、PDFはダウンロードされずに、指定したフィールドにセットされます。