さて応用問題として、ファイルメーカーに登録されたデータの中から、或る条件でデータを抜きだし、その一覧をHTMLとして出力する方法について検討してみよう。
実際、我々のデータベースにおいても特定のPhotoCDに限った画像一覧を出力する必要がある。同様のケースは多々生じるものと思われる。
リストとして1枚のページに複数のレコードのデータを並べる際に、一番最初のレコードの前にヘッダーが、一番最後のレコードの後にフッターが必要になる。そこで、どのレコードが最初や最後になっても使えるように、ヘッダ・フッタ部分の記述(HTML_ListHead、HTML_ListFoot)とリスト本体に用いるHTML_ListBody 合計3つの計算項目を追加する。
このように、常時必要ではない計算項目は「索引設定」をオフにしておくとファイルサイズがいたずらに拡大されることは無い。
(フィールド定義からオプションを選び、更に索引オプションを選ぶと索引の設定を変更することができる)
以下に示したのは、上記3つの項目の計算結果である。ボールドの部分が変数が置換された箇所である。ヘッダに<UL>を入れ、フッタに</UL>を入れることでHTML_ListBody中の<LI>が機能を発揮する。
HTML_ListHead
<HTML><HEAD><TITLE>PCD0417 Image Index</TITLE></HEAD>
<BODY><H2 ALIGN=CENTER>PCD0417 Image Index</H2>
<UL>HTML_ListBody
<LI><A HREF="../Description/PCD0417-07.html">ヨフシウロコアリ [<I>Quadristruma emmae (Emery)</I>]</A>
HTML_ListFoot
</UL><FONT SIZE=-2><HR ALIGN=LEFT><BR>
日本産アリ類データベース作成グループ(<A HREF="mailto:ant@dna.affrc.go.jp">
ant@dna.affrc.go.jp</A>)</FONT>
</BODY>
</HTML>
実際には、上記のHTML_ListBodyが2番目以降のレコードから繰り返し挿入されて、一連のリスト表示用のHTML文が出来上がる。
ファイルメーカーで検索した項目を一つのファイルにまとめることから、一番最初にファイルを開き、最後に閉じる事にする。
以下の命令文でPCD Name"項目が変数MyPCDと等しいレコードだけを抽出表示する。
show (every record whose cell named "PCD Name" = MyPCD)
抽出表示されたレコードの枚数カウント
set CountRecord to count record of current layout
抽出表示されたレコードのc番目を表示する。
go to (record c whose cell named "PCD Name" = MyPCD)
さらに、c=1 (最初のレコード)ではHTML_ListHeadを、c=CountRecord(最後のレコード)ではHTML_ListFootを書き込む。