見積書や請求書をFileMakerで印刷したとき、「画面では入力用のメモ欄を見せたいけれど、印刷では出したくない」「印刷するときだけ注意書きを入れたい」と感じたことはないでしょうか。画面用と印刷用で見せたい項目は意外と違うものです。
この記事では、FileMakerで「印刷時のみ表示」「画面表示のみ」などを実現する基本的な考え方と操作方法を、できるだけやさしい言葉でまとめます。レイアウトをきれいに整えたい方や、印刷物のムダな情報を減らしたい方は、ぜひ参考にしてください。
印刷時だけ表示・非表示を切り替えたい理由
FileMakerのレイアウトは、基本的に「画面表示」と「印刷」で同じものを使います。しかし、実務では次のような要望がよくあります。
- 画面上では入力ミス防止のための注意メモを出したいが、印刷には出したくない
- 印刷物には会社印や担当者印の欄を出したいが、画面ではジャマになる
- 印刷のときだけ「コピー」「再発行」などのスタンプ風の文字を出したい
これらは「条件付きでオブジェクトを表示・非表示にする」ことで解決できます。FileMakerには、そのための仕組みがいくつか用意されています。
基本パターン:印刷専用レイアウトを作る
もっとも確実で分かりやすい方法は「印刷専用のレイアウト」を別に作るやり方です。
- 印刷用にしたい元レイアウトを開く
- レイアウトモードに切り替える
- メニューから「レイアウト」→「レイアウトを複製」を選ぶ
- 複製したレイアウトの名前を「見積書(印刷用)」などに変更する
- 印刷用レイアウトで、画面では不要なボタンやメモを削除・整理する
この方法のメリットは、画面用と印刷用を完全に分けて考えられることです。細かな条件式を覚えなくても、「印刷用はこのレイアウト」と決めてしまえば、迷いが少なくなります。
一方で、レイアウトを2つ管理することになるため、項目を追加したときに「両方のレイアウトに反映させる」手間が増える点はデメリットです。
レイアウトオブジェクトの「条件付きで表示」を使う
同じレイアウトで「画面では見える、印刷では見えない」などを切り替えたいときは、オブジェクトの「表示条件」を使います。
大まかな操作の流れは次のとおりです。
- レイアウトモードに切り替える
- 非表示を切り替えたいオブジェクト(テキスト・フィールド・ボタンなど)を選択する
- インスペクタ(「位置」「外観」などが並んでいるパネル)を開く
- 「データ」タブ内の「オブジェクトを非表示」または「非表示条件」を探す
- 条件式の編集ボタン(ペンのアイコンなど)をクリック
- 「この条件が真のときにオブジェクトを非表示」などの設定を行う
バージョンによって表現は少し違いますが、ポイントは「条件が真のときに非表示にする」という考え方です。条件には関数を使って、印刷かどうかを判定します。
印刷中かどうかを判定する関数
印刷のタイミングを判定するには、FileMakerのGet関数を使います。よく使われるのが次の1つです。
Get ( ウィンドウモード )… 現在のウィンドウが「閲覧」「検索」「プレビュー」などのどの状態かを返します。
印刷前には通常「プレビューモード」に切り替えることが多いため、Get ( ウィンドウモード ) を使って「プレビュー中だけ表示・非表示を切り替える」方法がよく使われます。
画面だけに出したい場合の設定例
「画面では注意書きを出すが、プレビューや印刷では隠したい」ケースの例です。
- レイアウトモードで対象のテキストオブジェクトを選択
- インスペクタの「データ」タブ → 「オブジェクトを非表示」欄を開く
- 次のような条件を設定する
Get ( ウィンドウモード ) = 2
ここでは「2」がプレビューモードを表していると仮定しています(実際の値はバージョンの定義に従ってください)。
重要なのは「この条件が真のとき“非表示にする”」設定であることです。つまり、プレビューモード(印刷前)では非表示=画面の通常モードでは表示される、という動きになります。
印刷時だけ表示したい場合の設定例
逆に、「印刷のときだけ『COPY』と斜めに表示したい」ような場合は、次のような考え方になります。
- レイアウトモードで「COPY」の文字オブジェクトを配置
- 初期状態では画面上にも見えてしまうので、「オブジェクトを非表示」の条件を設定
- 例えば次のような条件を指定する
Get ( ウィンドウモード ) <> 2
この場合、「プレビューモード以外のときは非表示」にする設定です。結果として、プレビュー(=印刷前の画面)や印刷結果にだけオブジェクトが表示されます。
印刷スクリプトを使って「必ずプレビューモードにしてから印刷」する運用にしておけば、安定した動作が得られます。
印刷スクリプトと組み合わせて使う
よりコントロールしやすくするには、「印刷ボタン」をスクリプトにしておくのがおすすめです。たとえば、次のような手順を自動化します。
- プレビューモードに切り替える
- 必要ならページ数を確認(ユーザーに見せる)
- 「印刷」ステップを実行
- 印刷後に元のモード(閲覧モードなど)に戻す
このとき、先ほどの「ウィンドウモード」を使った表示・非表示設定をしておくと、印刷前に自動で必要な項目だけが表示されるようになります。「印刷専用レイアウトに切り替える」ステップを加えれば、レイアウト切り替えも同時に行えます。
どの方法を選ぶかの目安
- 印刷物のレイアウトを大きく変えたい
→ 印刷専用レイアウトを作成するのがおすすめ。 - 数カ所だけ表示・非表示を切り替えたい
→ オブジェクトの「非表示条件」を使う方法が向いています。 - 印刷手順を統一したい・ミスを減らしたい
→ 印刷スクリプト(ボタン)を作り、プレビューモードやレイアウト切り替えを自動化するのが効果的です。
小さな工夫ですが、印刷時の表示・非表示をきちんと設計しておくと、書類の見栄えがよくなり、入力ミスや情報漏れの防止にもつながります。まずは1つのレイアウトで、注意書きやスタンプ風の文字などから試してみると、仕組みをつかみやすいはずです。