話題 13  コメント記載, バグ退治 など

Field定義, Scriptのコメント, Field名, File名変更, 特殊文字表現, Scriptのデバッグ など。

初歩的な話題で恐縮ですが,我流の方法を書きとめておきます。


  1. 1. コメント記載

プロはプログラムのコメントを細かく記載して, わかりやすくプログラムを書く, ということですが, たしかに, あとで「何の意図でこんなFieldを, Scriptを作ったのだろう」と自分でも分からなくなることが多々あるので, わかりやすいコメント記載は重要です。

  1. (a)Field定義のコメント

v7あたりから すべてのField定義にコメント記載が出来るようになりました。これは特に説明するまでもないことですが, 計算Fieldのなかにもコメントを記載することもできます。

  1. i.  Cスタイルのコメントの開始は   ”/*”, 終わりは”*/”を使用します。コメントは開始と終わりの”*”の間に指定します。


  1. ii.  式内のC++スタイルのコメントは開始に”//”を使用し, 1行以内でコメントを指定します。なお, Cスタイルのコメントは計算式の途中でも指定できますが, C++スタイルのコメントは”//”以降, 行の末尾までをコメントとして扱います。


(b)Scriptのコメント

Scriptのなかにコメント行を記載するstepがあります。ことはv6以前からできていました。また, 計算式を記述する stepでは, 上記と同じコメント記載が可能です。



  1. 2. Field名, File名の変更

  2. i.  Field名は 後から任意に変更してもかまいません。変更された結果はScriptにも自動で反映されますので, この点はFMのすごく便利なところだと思います。ただしコメント文中に記載したField名には反映されません。またFileを格納しているFolder名の変更も問題ないですが, データソースとして異なるFolderのなかのFileを登録しているときは注意が必要になるかもしれません。

  3. ii.  File名の変更には注意が必要です。Relation関係のない単一Fileでの使用では問題はないのですが, relation Fileがあると, 不用意にFile名を書き換えるとrelationが壊れてしまって大変なことになります。小規模のシステムでしたら, 手動で逐一変更できますが, 大がかりで多数のFileがrelation関係にあるシステムでは大変です。 これをスムーズに行うには, “Filemaker Pro Advanced”版の “ツール”→”Developerユーティリティ”機能を使います。同一Folderのなかに すべてのrelation 関連Fileが納められておれば, 1回の操作で すべの整合性を保ってFile名変更ができるようです。



  1. 3. デバッグ

通常版でも, ‘スクリプト一時停止/続行’ step を随時入れながら, Scriptの流れを調べると, たいていのデバッグは可能ですが, “Filemaker Pro Advanced”版で “ツール”→”スクリプトデバッガ”機能を使うと効率良くデバッグできます。また, Advanced版では, Script stepの有効/無効を指定できるので, これもデバッグに役立ちます。Advanced版は通常版より5割ほど割高ですが, あればそれなりに有益です。


  1. 4. 特殊文字表現

  2. (a) 「“」 ダブクオーテーション記号を カスタムダイアログに表示するには

例えば, ダイアログ中で  "以下の選択肢から名前を選んでください" というメッセージの名前の部分を ”名前” と表示したかったら, "以下の選択肢から\"名前\"を選んでください" というように, バックスラッシュを組み合わせて「\"」で囲めば実現できます。なお, バックスラッシュはMacでは, ヒラギノFont とか, Osaka Font, などでは, 日本語キーボードで, option + ¥ キーで, USキーボードでは 半角英数モードで 「\」キーでダイレクトに入力できます。Windowsでは MS明朝, MSゴチックでは ¥ の文字を使います。Macで書いたScriptをWindowsに入れたら \"名前\" と記述した部分は Windowsではたしかに ¥"名前¥" となっていました。MacでもMS明朝, MSゴシックを使うと, ¥"名前¥" となります。(以上の文をWindowsでみるとバックスラッシュはすべて¥に読めて¥づくしの冗長な文になっていますね)


  1. (b) 予約済み語を計算式で使うには

FMでは いくつかの文字, 単語が予約済み語として決められていて, Field名としては使用できません。

http://filemaker-jp.custhelp.com/app/answers/detail/a_id/8160/related/1

通常, その決まりを破ったりはしませんが, それでも, 警告を無視して, 例えば “1-2回分”というような Field名を設定すると, それを使った計算式には, 自動で, ${1-2回分} という表現になって, 予約済み語とは区別されるようになっています。