Claris FileMaker で異なるレイアウトから1枚のPDFを作ってパスワードをかける
ちょっと長いタイトルですが、お客様から相談を受けたので説明のためのサンプルを作ってみました。
以下のような内容を実装したいということです
- テーブル1、テーブル2 と異なるテーブルがある
- それぞれのテーブルにはPDF出力用のA4サイズのレイアウトを用意している
- まず、テーブル1のレイアウトをPDFに出力
- 続いて、テーブル2のレイアウトをPDFに出力
- 出力したPDFに4桁の数字のパスワードをかけたい
ここではサンプルファイルの配布はありませんので悪しからずご了承ください。
この記事を見ながら落ち着いて作れば簡単です。頑張って作ってみてください。
感想などお聞かせいただければ幸いです。お問い合わせフォームから感想をお寄せください
まず、2つのテーブルとそれぞれのテーブルにPDF出力用のレイアウトを用意します
(一見、写真が違うだけに見えますが、テーブルとレイアウトは異なります)
FileMaker テーブル1 のPDF出力用レイアウト
FileMaker テーブル2 のPDF出力用レイアウト
以下スクリプトを実行するためのボタンは テーブル1 のPDF出力用レイアウトに「印刷時に非表示にする」チェックをつけて配置しておきます。
変数を設定[$ファイル名; 値: Get(デスクトップパス) & TrimAll( Filter( Get(タイムスタンプ); "0123456789" ); 3; 3) & ".pdf"] 変数を設定[$パスワード; 値: Right("000" & Int(Random * 10000); 4) ] レコードをPDFとして保存[記憶する; ダイアログあり: オフ; 「$ファイル名」; 現在のレコード; フォルダを作成: オフ] レイアウト切り替え[「テーブル2」 (テーブル2) ;アニメーション: なし] レコードをPDFとして保存[記憶する; 追加; ダイアログあり: オフ;「$ファイル名」; 現在のレコード; フォルダを作成: オフ] レイアウト切り替え[ 元のレイアウト; アニメーション: なし ] カスタムダイアログを表示["メッセージ" ;"パスワード " & $パスワード & " でPDFファイルを作成しました"]
スクリプトの流れは以下のとおりです。
キャプチャ画像を見ながらご確認ください。
- オレンジ色に配置したボタンをクリックするとスクリプトが実行されます。
- デスクトップ上にPDFファイルを作成します。FileMaker Server でホストしていることも想定して、FileMaker Pro が起動するどの端末でも同じようにデスクトップにPDFファイルを作成するようにします。拡張子PDFで現在のタイムスタンプをファイル名として出力用のファイル名を変数に格納します。
- PDFファイルを開くためのパスワードを4桁数字で設定します。
- テーブル1 の PDFレイアウトをPDFとして保存します。このとき、
- 表示している テーブル1 のPDF出力用レイアウト(現在のレコード)をPDFで保存します
※ このとき、オプションでパスワードを設定します。
PDFオプションのセキュリティタブで、あらかじめ変数に格納したパスワードを指定します。 - レイアウトを テーブル2 のレイアウトに切り替えます
- テーブル2 の PDFレイアウトをPDFとして保存します。
※ ここでも、テーブル1の時と同様にオプションでパスワードを設定します。 - 元のレイアウトに戻ります
- パスワードをダイアログで表示します
パスワードを表示しないと誰も開けないPDFファイルとなってしまいますのでお気をつけください。
こうしてデスクトップに作成されたPDFファイルは Mac OS のプレビューアプリで見ると鍵が掛かって表示することができません。
パスワードを入力すると2枚のPDF(テーブル1、テーブル2)が確認できます
スクリプト自体は難しくないのですが、パスワードを設定する箇所を間違えるとPDFが保存できない場合がありますのでご注意ください。