Archive for the 'FileMaker Pro v9' Category

2010/03/11 FileMaker Pro v11 AppleScript用語辞書に変更なし

満を持して発表されたFileMaker Pro v11。お試し版もダウンロードできるようになっているので、さっそくAppleScript用語辞書を確認。

……v10.5から変更された点は皆無でした。FileMaker Proもv7で若干の変更が加わったほかはまったく機能に変化がなく、もう少し何かできてもいいような気もするのですが……。

fm11.jpg

2009/06/09 FMのDBから画像を取り出す

FileMaker Proのデータベース内のオブジェクト・フィールドに貼り込まれた画像データを取り出すAppleScriptです。

ただし、FileMaker Proには画像データの保持方法に2種類あり、その画像のパスを保持して実データをDB内に取り込まないものと、コピー&ペーストなどですべての画像データをオブジェクト・フィールドに入れるものです。

前者では、DBの容量がふくらまないというメリットがあるものの、画像ファイルをリネームしたり別の場所に移動するとリンクが切れます。

fmimg4.jpg

後者では、元画像をリネームしようが削除しようがDB上の画像は保持されますが、DBの容量がふくれあがります。

本AppleScriptでは画像のパスを保持している場合の実行結果を示しています。全データをDB上に保持するタイプのフィールドからデータを取り出したらどうなるかは……実際に試してみてください。

スクリプト名:FMのDBから画像を取り出す
set dbName to "fmTest.fp7"
tell application "FileMaker Pro"
  tell database dbName
    tell table "fmTest"
      tell record 1
        set a to contents of field "code"
        
set b to contents of field "img"
      end tell
    end tell
  end tell
end tell
log {a, b}

(*ABC, file Home:idcs2_1.jpg*)

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

2009/06/09 FMのDBに画像を突っ込む

FileMaker Proのオブジェクト・フィールドに画像を入れるAppleScriptです。FileMaker Proはv7から最新のv10までAppleScript用語辞書が同じなので、AppleScriptからコントロールするかぎりは、できることは一緒です。テストはFM v8で行いました。

fmimg1.jpg

このように、オブジェクト・フィールドを定義して……

fmimg2.jpg

実際にフィールドをレイアウト上に配置。FMをAppleScriptから操作する場合、レイアウト上に表示されていないフィールドの操作が行えないので、注意が必要です。

そのため、ASから操作を行う場合、操作対象のフィールドがすべて配置されているレイアウトに切り替えてから処理を行う必要があります。

FM v7以降、外部からASでコントロールするよりも、FMのスクリプトステップ内にAppleScriptを書いておくほうが驚異的なスピードを叩き出す(画面のリドローなども省略になる)ようになりましたが、この「操作対象のフィールドは表示中のレイアウト内に存在していなければならない」という原則は変わりません。

そのため、前述のとおり「すべてのフィールドを配置したAS処理用のレイアウト」にレイアウト表示を切り替えるなどの措置を講じている次第です。

ちょっとめんどくさい仕様なので、この制限は撤廃してほしい気がします。

fmimg3.jpg

本AppleScriptを実行した後の画面です。ただし、見ただけでは分からないのですが……FileMaker Proには画像の保持方法が2種類あり、コピー&ペーストで貼り込むと画像のデータがすべて貼り込まれ……このようにAppleScriptから操作したときにはリンク情報が貼り込まれます(データの実体は入りません)。コピー&ペーストで画像を貼り込んでいくと、その数によってはDBの容量がたいへん大きくなるため注意が必要です。

スクリプト名:FMのDBに画像を突っ込む

set aFile to choose file

set dbName tofmTest.fp7
tell applicationFileMaker Pro
  tell database dbName
    tell tablefmTest
      tell record 1
        set contents of fieldcodetoABC
        
set contents of fieldimgto aFile
      end tell
    end tell
  end tell
end tell

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

2008/10/24 オープン中のデータベースでソート

FileMaker Pro v9でキーとなるフィールドを指定してソートを行います。
(more…)

2008/10/24 オープン中のデータベース中のテーブルの特定レコードにおけるフィールドのデータのバイト数を取得

FM v9で、オープン中の(最前面の)データベースのテーブル1の、特定のレコード(最初のレコード)における特定フィールドのデータサイズを取得します。
(more…)

2008/10/24 オープン中のデータベースで条件検索(複数条件)

FMv9で、オープン中の(最前面の)データベースの、テーブル1に対してshow命令によって検索を行います。
(more…)

2008/10/24 オープン中のデータベースのレイアウトの名称を取得する

FM v9で、オープン中の(最前面の)データベースの、レイアウトの名称一覧を取得するサンプルです。
(more…)

2008/10/24 オープン中のデータベースのレイアウト(画面)を数える

FM v9で、オープン中の最前面のデータベースに含まれるレイアウト(画面)を数えます。
(more…)

2008/10/24 オープン中のデータベース中のテーブル1にあるフィールドを数える

FM v9で、database 1(document 1)というのは最前面のデータベースを指すことになります。
(more…)

2008/10/24 オープン中のデータベースの中にあるテーブル数を数える

FileMaker Proで、オープン中のデータベース(のうちの最前面にあるもの)の中にいくつテーブルが存在するかをカウントします。
(more…)

2008/10/23 FM v7〜9で、オープン中のデータベースを数える

FileMaker Proは6までと7以降で別物と考えてよいほど変わりました。AppleScriptから見ると、データベース(書類)の中に複数のテーブルを持てるようになったことと、1つのデータベースのウィンドウを複数開けるようになったこと、FileMaker Scriptステップの中にAppleScriptを記述して実行すると、画面を書き換えないでScriptを実行するため、外部からFileMakerをコントロールするよりもはるかに高速に制御できるようになりました。
(more…)