FileMaker Pro でシンプルなデータベースを作成するのはこれまでも簡単でした。FileMaker Pro 11 の機能強化により、初心者でもすぐにデータ入力を始められるようになりました。しかし、実際に使える印刷レポートを作成するのは容易ではありません。FileMaker Pro で魅力的で使いやすい印刷レポートを作成するためのヒントをいくつかご紹介します。(Bento をお使いの方は、Bento については別の記事で解説します。)
入力と出力
FileMakerデータベースを何らかのレポートの印刷に使用する場合は、印刷専用のレイアウトを作成する必要があります。これには多くの理由があり、それらを理解することで、より適切な印刷レイアウトを設計できるようになります。
まず、コンピュータ画面はほとんどの場合、横幅が縦幅よりも大きいですが、ほとんどのユーザーはレポートを縦向き、つまり8.5インチ×11インチの規格の文書を従来の縦置きで印刷することを望んでいます。データ入力レイアウトをこれらの寸法に合わせて設計することもできますが、画面上の横方向のスペースをかなり無駄にしてしまいます。そのため、効率的に機能させるには、データ入力レイアウトを横長にし、印刷レイアウトを縦長に設計する必要があります。
第二に、データ入力レイアウトには通常、印刷出力には再現したくない様々なユーザーインターフェイス要素が含まれています。印刷レイアウトでは、ボタン、整理ボックス、フィールドの網掛け、画面上の指示やヒント、さらにはフィールドラベルさえも削除する必要があります。データ入力フォーム上のフィールド配置は、レポートに印刷する場合とは全く異なる場合もあります。例えば、データ入力フォームでは名、ミドルネーム、姓をそれぞれ別々のフィールドとして表示したいのに、印刷レポートではこれらのフィールドを1つのフルネームに連結したい場合があります。

3つ目に、フォントによっては画面上での表示よりも印刷に適しているものがあり、その逆も同様です。例えば、VerdanaとGeorgiaは画面上での表示に特化して設計されたフォントです。これらのフォントは、印刷すると見栄えが悪くなることがよくあります。私は画面上での表示にはVerdanaをよく使用しますが、レポート作成にはMacではHelvetica Neue、クロスプラットフォームでの表示に適したArialを使用しています。
特殊なケース1: 大きなテキストフィールド
印刷時に独自のレイアウトが絶対に必要な非常に特殊なケースが 2 つあります。それは、ポータルと大きなテキスト フィールドです。
データベースの多くのフィールドには、一定の長さを超えない値(コンテンツ)が格納されます。請求書や銀行のデータベースにあるドル(数値)フィールドには、残念ながら、それほど大きな値を格納する必要はありません。日付、社会保障番号、州の略語や郵便番号など、多くのデータ型は基本的に固定長、あるいはほぼ固定長です。レイアウト上のフィールドには、値全体を表示できます。
しかし、フィールドを定義する際に、そこに格納されるデータ量が少ないのか多いのかを事前に把握していない場合があります。例えば、請求書データベースでは、請求対象となる作業内容を説明する項目は通常30~40語程度ですが、場合によってはそれ以上になることもあります。また、メモフィールドも非常に長くなることがあります。FileMaker Proのテキストフィールドには、通常表示できる量よりも多くのデータを格納できます。
このようなフィールドを印刷するには、印刷レイアウトを作成し、テキストフィールドを想定よりも大きく設定します。その後、必要に応じてフィールドを縮小するように定義します。
特殊なケース2: ポータル
ポータルとは、関連するレコードのリストを表示する方法です。ポータルはあらゆるものの表示に使用されます。請求書を表示している場合、ポータルには関連する明細が表示されるかもしれません。図書館データベースの著者レコードを表示している場合、ポータルにはその著者の書籍がリストされるかもしれません。
関連レコードの数には実質的な制限はありませんが、ポータルでスクロールせずに表示できる行数には制限があります。例えば、ポータルを使用して連絡先データベース内の個人レコードに関連するメモを表示する場合、ポータルの表示行数を10行に定義するとします。メモがすべて短く、10行を超えることがない場合は、理論上はポータルを印刷できます。しかし、メモの長さは予測不可能であるため、個々のメモに含まれるテキストがポータルの行に表示できる量を超えてしまう可能性があります。さらに、特定の個人に対して作成されるメモの数や、請求書に含まれる明細項目の数を事前に把握できるとは限りません。
ポータルに表示されるレコードを印刷するには、ポータル内のレコードを「所有」する子テーブルに基づいてレイアウトを構築し、そこで印刷を行います。つまり、請求書を印刷する場合、ポータル内の明細項目を含むINVOICESテーブルに基づくレイアウトから印刷するのではなく、子テーブルであるLINE ITEMSに基づくレイアウトに切り替えて、そこから印刷します。こうすることで、すべての明細項目を表示するために必要なページ数だけ請求書を作成できます。明細項目に基づくレイアウトでは、すべての明細項目が個別のレコードとなるためです。
子テーブルのテキストフィールドの中に、短い値と長い値が混在する値が含まれている場合はどうすればよいでしょうか?これは、連絡先データベース内の関連メモを印刷する場合に発生する可能性があります。メモの中には1、2語程度のものもあれば、数段落に及ぶものもあります。このような場合、メモテキストを含むテキストフィールドを、フィールドに入力されると予想される最大のデータ量に対応できる大きさにすることができます。長々としたメモを書く人がいる場合は、メモフィールドを非常に大きく設定する必要があるかもしれません。そして、インスペクタの「位置」タブを使用して、印刷時にフィールドが上にスライドするように設定してください。
建物のレイアウト
FileMakerの新規レイアウトウィザードは作業を簡単にしてくれるように作られていますが、レイアウトデザインは自動化するにはあまりにも重要すぎると思います。私は通常、空白のレイアウトから始めて、フィールドを一つずつ自分で追加していきます。
データ入力用のレイアウトを設計する場合、「ページ設定」ダイアログの設定やページ余白の指定の有無は全く問題になりません。しかし、印刷用のレイアウトを設計する場合、これらの設定は非常に重要になります。
使用するプリンタが正確にわかっている場合は、「ページ設定」ダイアログでプリンタを選択し、FileMaker のレイアウトモードに入ります。印刷可能領域の右端を示す波線が表示されます。レイアウト本体部分を下にドラッグすると、改ページ位置を示す水平の波線が表示されます。常に右端の線から外れないようにしてください。そうしないと、印刷されたページでコンテンツが途切れてしまいます。改ページを示す下部の線については、必要に応じてテキストフィールドをその線を超えて拡張できますが、リスクがあります。ページ間で改行が正確に行われない可能性があります。
ワードプロセッサもスプレッドシートプログラムも、構造化データの処理能力ではFileMaker Proにかないません。しかし同様に、非常に長いテキストブロックを印刷する必要がある場合、FileMaker Proもワードプロセッサにはかないません。例えば、エッセイほどの長さ(あるいはそれ以上)のテキストブロックを含むフィールドがある場合は、そのデータをエクスポートしてWordで結合するのが最善策でしょう。
左にスライド、上にスライド
これは最新のダンスステップではありません。実際、FileMaker Proには昔からある機能です。スライドについては既に触れましたが、もう少し詳しく説明する価値があります。

印刷するオブジェクトをレイアウトに配置する際、空白を埋めるためにオブジェクトを左または上にスライドするように設定できます。例えば、封筒を印刷する場合、NamePrefix、NameFirst、NameLastというフィールドをレイアウト上に並べて配置するとします。この場合、名前フィールドはRamandranathやZeckendorfer-Johansenのような長い名前を収容できる長さにする必要があります。しかし、名前フィールドを印刷する際には、姓を名の隣にぴったりと収まるように左に移動させたいと考えます。つまり、次のようになります。
パム・ゼッケンドルファー・ヨハンセン氏
これではありません:
パム・ゼッケンドルファー・ヨハンセンさん
希望する結果を得るには、レイアウトモードでこれらのフィールドを選択し、インスペクタを使って左にスライドするように設定します。フィールド間に少しの水平方向のスペースを空けておくようにしてください。このスペースはスライドしません。スペースを空けないと、次のような結果になる場合があります。
パム・ゼッケンドルファー・ヨハンセンさん
フィールドを上にスライドするように設定することもできます。これには2つの目的があります。まず、前述のように、長くなる可能性のあるテキストブロックを配置するためにレイアウト上に大きなフィールドを配置する必要がある場合に便利です。上にスライドすると、フィールド内のテキストが少ししかない場合、フィールドが縦方向に縮小されます。また、上にスライドすると、フィールドが空いているスペースを埋めるのにも便利です。例えば、上記のラベルレイアウトのスクリーンショットでは、「Company」と「Position」というフィールドがレイアウト上に配置されていることがわかります。これらのフィールドが空の場合はどうなるでしょうか?このような表示は避けたいものです。
パム・ゼッケンドルファー・ヨハンセン氏
12345 ユートピア Tr
ノックワースト、テキサス州 77909
空白を埋めるには、「会社名」と「役職」のフィールドをスライドアップするように設定します。これらのフィールドが空の場合、印刷されたレポートでは基本的に表示されなくなり、期待どおりの結果が得られます。
パム・ゼッケンドルファー・ヨハンセン氏
12345 ユートピア Tr
ノックワースト、テキサス州 77909

先ほど、姓と名が重ならないように、名字と名字の間に少し横方向のスペースを空けるようにアドバイスしたのを覚えていますか? スライドアップする際には、縦方向のスペースを空けないようにしてください。レイアウト上でフィールドがぴったりと連続するように配置してください。そうしないと、スライドアップした際に行間のスペースがわずかに不均一になる可能性があります。
インスペクタには最後に「囲んでいる部分もサイズ変更する」というオプションがあります。このオプションをオンにすると、フィールドを含むレイアウト部分(通常はボディ部分)も、フィールドやその他のレイアウトオブジェクトがスライドアップすると、下からスライドアップまたは縮小します。これはメモの印刷に最適です。長いメモはほぼ1ページ全体を占める場合がありますが、メモフィールドがスライドアップするとボディ部分のサイズも変更されるように設定しておけば、次のページに非常に短いメモを12個ほど収めることができます。封筒やラベルなど、固定サイズを維持する必要がある部分を印刷する場合は、このチェックボックスをオンにしないでください。
印刷設定
使用するプリンタがわからない場合は、全周 0.25 インチの最小余白を設定すると、かなり確実に機能します。ページ パラメータを設定したら、スクリプト ステップに保存することをお勧めします。これは、ページ設定オプションが通常とは異なる場合に特に便利です。たとえば、封筒を印刷するには、通常のフル ページ レポートとは異なる設定が必要になる可能性があります。この場合は、封筒の設定をスクリプトに保存することをお勧めします。ユーザーがスクリプトを使用して印刷するように促すには、ユーザーが印刷を決定するときに最も頻繁に使用するデータ入力レイアウトまたは参照レイアウトにボタンを配置します。スクリプトは非常に簡単に作成できます。また、スクリプトの最後で、ページ設定を通常の状態に戻す別のスクリプトを呼び出すことができます (プリンタから出力されるフル ページ レポートが封筒に印刷されるべきレポートのように見える可能性を最小限に抑えるため)。

複数の異なるプリンタでレポートを印刷するデータベースを構築している場合、特に使用するプリンタの種類が予測できない場合は、印刷スクリプトに、各「印刷」スクリプトステップの直前に「印刷設定」ダイアログを表示するステップを追加することをお勧めします。ユーザーにはEnterキーを押さなければなりませんが、それだけの価値はあります。「印刷設定」ダイアログを表示するだけで、FileMakerがアクティブなプリンタを認識するため、ページメトリクスに関する問題を回避できます。
中級者向けヒント: スクリプトを使用して PDF に印刷する
もちろん、Macのどのプログラムでも、印刷ダイアログのPDFボタンをクリックして、紙を使う代わりにPDFファイルを作成できます。FileMakerにはPDFへの印刷機能が組み込まれており、非常に便利です。ここでは、レポートをデスクトップに保存し、PDFファイルにデータベースファイルと同じ名前を付け、プレビューまたはお気に入りのPDFビューアで開く、非常にシンプルなスクリプトを紹介します。
変数を設定 [$pdfpath; 値:Get (DesktopPath) & Get (FileName)]
エラーキャプチャを設定する[オン]
ユーザーによる中止を許可する [オフ]
レイアウトに移動 [「住所印刷ラベル」(住所)]
印刷設定 []
レコードをPDFとして保存 [“$pdfpath”; 自動的に開く; 参照中のレコード]
レイアウトに移動 [元のレイアウト]
特に注目すべきは、デスクトップへのパスと出力PDFの名前が変数(ここでは「$pdfpath」)に設定され、「レコードをPDFとして保存」スクリプトステップで使用されている点です。これにより、ユーザーは「名前を付けて保存」ダイアログを一切操作する必要がなくなります。また、PDFは自動的に開くので、ユーザーは文書を確認できます。気に入った場合は、従来の方法でプレビューから印刷できます。また、レポートをメールの添付ファイルとして送信したり、アーカイブしたりすることも可能です。
いずれにしても、FileMaker に組み込まれている PDF として保存機能を使用するか、Mac OS X の印刷ダイアログの PDF ボタンを使用するかに関係なく、PDF に印刷する場合は、紙に印刷する場合に上で説明したのと同じレイアウトの問題に対処する必要があります。
結論
すべてのデータベースを印刷する必要はありません。多くのデータベースでは、データを保存して検索できれば十分です。コンピュータ画面に表示されるオンラインレポートで十分な場合もあります。しかし、印刷が必要な場合は、FileMaker Pro には非常に洗練されたレポートを作成するためのツールが用意されています。使い方を理解するだけで十分です。
[ウィリアム ポーターは、ダラスのデータベース アプリケーション開発者であり、イベント写真家です。 ]