Boss」の2回目として、データビューアに関する記事を紹介します。Boss」(ボスのようにFileMakerを学ぶ)では、よりよい開発者になるための手法・考え方・ツールを探っていきます。最初は、私自身がFileMakerの開発に関わった長年の間に発見したトピックから始めます。この記事では、FileMakerデータビューアを見ていきます。Advancedを使ってきましたが、Advancedに含まれるツールはほとんど使わないままでした。データビューアをついに見つけたときには、これなしでは生きていけないほどのものであることがわかりました。そこから得られる情報量は圧倒的で、自分の過去を振り返って、データビューアなしでFileMakerで多少なりと作業をしていたことに驚くほどです。FileMakerデータビューアの詳細FileMakerデータビューアは、その小さなウィンドウの中に多くの機能が詰まっています。そこでは変数・フィールド・計算式の値を見ることができます。私は、ある機能をテストしたり、ExecuteSQL()の構文を組み立てたりするときに、データビューアを使用します。Advancedのツールで一般的には最も使用されるウィンドウだとは言えないかもしれませんが、少なくとも私にとってはそう言えます。ウインドウには[現在]と[監視]の2つのタブがあります。[現在]タブには、(その名前が示す通り)現在のスクリプトで使用されている変数とフィールドが表示されます。シンプルですが、この記述には多くのパワーが込められています。後で詳しく中を見てみましょう。[監視]タブは、「フィールド・変数・計算式の値をモニタリング」する場所です。これも見た目はシンプルですが、ここではとても複雑な作業を可能にします。今何が起きているか[現在]タブには、現在のスクリプトのすべてのフィールドと宣言された変数の値が表示されます。ここでは、このスクリプトに必要なすべてのフィールドと、存在する場合はその値が表示されます。なんと便利な!FileMakerデータビューアの[現在]タブFileMakerデータビューアに関する事実[現在]タブでは多くのことが進行しています。スクリプトの現在のコンテキスト(現在のレイアウトの元となるテーブルオカレンス)に含まれないフィールドの値は「<非関連テーブル>」となります。これは気にしなくても大丈夫です。[フィールドを名前で設定]スクリプトステップを使用している場合、そのフィールドはリストに表示されません。デフォルトのソートは[名前]列ですが、必要に応じて他の列でソートすることもできます。変数は宣言されるタイミングでリストに追加されるので、順不同です。明示的に[名前]列をクリックすることで名前でソートされます。フィールドは常に一番上にあり、変数はその下にグローバル変数、ローカル変数の順でソートされます。フィールドまたは変数は、[監視]ボタンを押すことで[監視]タブに追加できます。これについては改めて後ほど見ていきます。グローバル変数もここに表示されます。グローバル変数($$varはファイル全体で使用可能)の両方が表示されます。変数は、データビューアのソート順ではフィールドデータの下に表示され、現在のスクリプトのスクリプトステップで宣言された後で初めて、[現在]タブに追加されます。スクリプトデバッガがサブスクリプトに入ると、親スクリプトのローカル変数は表示からなくなり、デバッガが親スクリプトに戻るまで、データビューアのリストからは消えます。親スクリプトで例えば$Idを宣言した場合、その変数はサブスクリプトで自動的には使用できません。サブスクリプトにその値を渡して、そこで再度宣言したら、初めて利用可能になります。多くの開発者が、空白のレイアウトからあるアクションを実行するためのスクリプトを組み立てていきます。このレイアウトには、「このレコードを処理中です」という文字列以外にはフィールドやオブジェクトが含まれていないとします。このレイアウトにはフィールドがないので、フィールドとその値を表示するにはデータビューアを使用する必要があります。空白のレイアウトに新しいレコードを作成する場合、各[フィールド設定]スクリプトステップの後に、基になるテーブルのフィールドに期待どおりに値が入っていることを確認したいとします。レイアウト自体を見る必要はありません。代わりに、データビューアの[現在]タブに注目します。1つの便利な機能は、ローカル変数(スクリプトが実行されているとき)とグローバル変数(いつでも)の変数の値を変更できる点です。スクリプトで$yの値を275と宣言したとしましょう。するとデバッグの途中で別の値をテストしたくなりました。その場合、変数が宣言された後、データビューアで変数をクリックしてその値を変更できます。「OK」をクリックすると値が変数に保存され、その値が残りのスクリプトで使用されます。宣言された変数の値はデータビューア内で変更できる[現在]タブについての最後のまとめフィールドはすべてテーブル名で始まるので、自動的にソートされます。変数はタイプごとに名前でソートされます。フィールドや変数のリストが長くなると、目的の変数を見つけるのがむずかしい場合があります。そこで命名規則を採用して、同じ種類の変数が並んで表示されるようにするのが便利でしょう。$id.Corporationというようなルールを採用する人もいます。[監視]タブこのタブは、おそらくFileMaker開発者が最もよく使用するものでしょう。FileMakerデータビューアの[監視]タブここでできることはたくさんあります。ファイルに関する開発者向けのデータを表示(上図の1)関数や複雑な計算式をテスト(上図の2)現在実行中のスクリプトの特定のフィールドまたは変数の値を見る(上図の3)スクリプトのロジックを制御する変数と値を追加するスクリプトのロジックを制御する変数の値を変更するそれぞれを順に見ていきましょう。機能をテストするスクリプトや計算フィールドを編集するときには、データビューアの[監視]タブで構文をどう組み立てればいいかをテストできます。+ボタンで新しい計算を追加して作業を進めます。正しいコンテキストにいて、対象とするテーブルとフィールドを含むレイアウト上にいる場合、データビューアでこれらのフィールドと関連するフィールドを使用して、作業ができます。特定のフィールドまたは変数の値をみるスクリプトが実行されると、データビューアの[現在]タブにはフィールドと変数が表示されます。それらのいくつかを[監視]タブに移動して、個別に見ることができます。フィールドまたは変数が[監視]タブに表示されると、削除するまで(またはFileMakerがクラッシュするまで)そこに残ります。変数を追加するこのタブに変数を追加して、現在実行中のスクリプトで使用することもできます。想定される場面は、次のとおりです。対象のスクリプトは、引数として”Contacts”の値を取得する場合があります。スクリプトワークスペースからスクリプトを実行すると、変数$paramがスクリプト引数を取得しないので、手動で設定します。)この変数は、スクリプト実行中は(私が意図したとおり)”Contacts”のままになります。Let関数が正しく機能するようになります。あとは変数の値に注意するだけです。変数の値を変更する変数を追加するのと似ていますが、呼び出すスクリプトの変数の値を変更することができます。技が必要ですが、方法は次のとおりです。スクリプトが実行されると、ボタンに設定されたスクリプト引数から変数$paramに値として”Students”が設定されます。“Contacts”に変更できます。[値を更新]ボタンを押す限り、この値はスクリプトで最初に設定された値よりも優先されます。この点に注意してください。ここで設定したものは、そのつもりがなくても、スクリプトの宣言を上書きします。おすすめするのは、この機能はなるべく使わないようにし、用が済んだ変数はすぐに削除することです。この問題は、上の変数を追加する場合にもあてはまるので注意してください。[監視]タブについての追加情報FileMakerがクラッシュすると、[監視]タブの値は失われます。FileMakerを再度開くと、タブの中は空白になります。[監視]タブはファイルに固有されないので、現在作業しているものとは無関係なフィールドも表示されます。気にならない限り、それらはそのままにしておきましょう。たんすやクローゼットのように、たまに整理をするのがいいでしょう。FileMakerデータビューアは、開発者の作業工程に不可欠です。私はそれを開いていなかった最後のときがいつだったかを思い出せないくらいです。私はここ2,3年でこのツールを使い方を体得しました。あなたも時間を取ってデータビューアの機能のすべてを探索することをおすすめます。