Filemaker_Tech
Filemaker_Tech
話題 13 コメント記載, バグ退治 など
Field定義, Scriptのコメント, Field名, File名変更, 特殊文字表現, Scriptのデバッグ など。
初歩的な話題で恐縮ですが,我流の方法を書きとめておきます。
1. コメント記載
プロはプログラムのコメントを細かく記載して, わかりやすくプログラムを書く, ということですが, たしかに, あとで「何の意図でこんなFieldを, Scriptを作ったのだろう」と自分でも分からなくなることが多々あるので, わかりやすいコメント記載は重要です。
(a)Field定義のコメント
v7あたりから すべてのField定義にコメント記載が出来るようになりました。これは特に説明するまでもないことですが, 計算Fieldのなかにもコメントを記載することもできます。
i. Cスタイルのコメントの開始は ”/*”, 終わりは”*/”を使用します。コメントは開始と終わりの”*”の間に指定します。
ii. 式内のC++スタイルのコメントは開始に”//”を使用し, 1行以内でコメントを指定します。なお, Cスタイルのコメントは計算式の途中でも指定できますが, C++スタイルのコメントは”//”以降, 行の末尾までをコメントとして扱います。
(b)Scriptのコメント
Scriptのなかにコメント行を記載するstepがあります。ことはv6以前からできていました。また, 計算式を記述する stepでは, 上記と同じコメント記載が可能です。
2. Field名, File名の変更
i. Field名は 後から任意に変更してもかまいません。変更された結果はScriptにも自動で反映されますので, この点はFMのすごく便利なところだと思います。ただしコメント文中に記載したField名には反映されません。またFileを格納しているFolder名の変更も問題ないですが, データソースとして異なるFolderのなかのFileを登録しているときは注意が必要になるかもしれません。
ii. File名の変更には注意が必要です。Relation関係のない単一Fileでの使用では問題はないのですが, relation Fileがあると, 不用意にFile名を書き換えるとrelationが壊れてしまって大変なことになります。小規模のシステムでしたら, 手動で逐一変更できますが, 大がかりで多数のFileがrelation関係にあるシステムでは大変です。 これをスムーズに行うには, “Filemaker Pro Advanced”版の “ツール”→”Developerユーティリティ”機能を使います。同一Folderのなかに すべてのrelation 関連Fileが納められておれば, 1回の操作で すべの整合性を保ってFile名変更ができるようです。
3. デバッグ
通常版でも, ‘スクリプト一時停止/続行’ step を随時入れながら, Scriptの流れを調べると, たいていのデバッグは可能ですが, “Filemaker Pro Advanced”版で “ツール”→”スクリプトデバッガ”機能を使うと効率良くデバッグできます。また, Advanced版では, Script stepの有効/無効を指定できるので, これもデバッグに役立ちます。Advanced版は通常版より5割ほど割高ですが, あればそれなりに有益です。
4. 特殊文字表現
(a) 「“」 ダブクオーテーション記号を カスタムダイアログに表示するには
“ ” のなかでは “ は バックスラッシュを組み合わせて \” と記述します。例えばカスタムダイアログ作成で "以下の選択肢から 名前 を選んでください" というメッセージの名前の部分を ”名前” と表示したかったら, "以下の選択肢から\"名前\"を選んでください" と記述します。。なお, バックスラッシュはMacでは, ヒラギノFont とか, Osaka Font, などでは, 日本語キーボードで, option + ¥ キーで, USキーボードでは 半角英数モードで 「\」キーでダイレクトに入力できます。Windowsでは MS明朝, MSゴチックでは ¥ の文字を使います。Macで書いたScriptをWindowsに入れたら \"名前\" と記述した部分は Windowsではたしかに ¥"名前¥" となっていました。MacでもMS明朝, MSゴシックを使うと, ¥"名前¥" となります。
(b) 予約済み語を計算式で使うには
FMでは いくつかの文字, 単語が予約済み語として決められていて, Field名としては使用できません。
http://filemaker-jp.custhelp.com/app/answers/detail/a_id/8160/related/1
通常, その決まりを破ったりはしませんが, それでも, 警告を無視して, 例えば “1-2回分”というような Field名を設定すると, それを使った計算式には, 自動で, ${1-2回分} という表現になって, 予約済み語とは区別されるようになっています。