FileMaker 7とAppleScript

更新
新居雅行(msyk@msyk.net)


FileMaker Pro 7でのAppleScript利用で、引っかかったところのメモです。当面、あまり整理しないでページを作るだけになるかと思います。

documentオブジェクトの指定

FMP6までは、「document 1」で、アクティブドキュメントが取得できていましたが、どうも、FMP7では順序が確定していないみたいです。そこで、たとえば、「住所録.fp7」が開いている状態でのスクリプトは、

tell document "住所録.fp7" of application "FileMaker Pro"
	--スクリプト
end tell

のように記述するのが無難なようです。

current recordの範囲

FMP6までは、current recordで、現在のレコードのすべてのフィールドにアクセスできましたが、FMP7では現在のレイアウトに配置されているフィールドにしかアクセスできなくなりました。たとえば、以下のようなプログラムは、現在のレイアウトで、「お名前」フィールドが存在していないといけません。

tell document "住所録.fp7" of application "FileMaker Pro"
	set aValue to cell "お名前" of current record
end tell

スクリプト内のサブルーチン

myをつけておく必要があります。Script Editorでは、myは必要ないわけですが、そのスクリプトをFileMakerに埋め込むと、スコープが違うと言えば違いますから、当たり前なんですけどね。たとえば、こんな感じです。Script Editorでこのようなスクリプトがある場合、myの有無は関係ありませんが、そのスクリプトを埋め込むと、myがないとエラーになります。

set theValue to my GetFromFM7("お名前");
	:

on GetFromFM7(fieldName)
	tell document "住所録.fp7" of application "FileMaker Pro"
		set aValue to cell fieldName of current record
	end tell
	return aValue
end GetFromFM7

その他の情報源

FileMaker 7 AppleScript Reference.com SolutionsによるVer.6とVer.7の違いをまとめたPDF文書。網羅されてはいないものの、そこそこ役に立つ。まずは目を通しておきたい文書である。