1

私は現在、FileMaker 内で実行される AppleScript を作成しています。filemaker 内の別の AppleScript 内で「アプリケーション filemaker に伝える」と言うことができるように、filemaker にそのアプリケーションの名前 (FileMaker Pro または FileMaker Pro Advanced など) を伝える必要があります。

私は現在、アプリファイルの名前を把握するスクリプトを持っていますが、問題はそれをファイルメーカーに戻すことです。送り返したい名前はapplescript変数「FMName」にあり、2つのオプションが考えられます

1)

tell application FMName
   set cell "gFMName" of current record to FMName
end tell

これに関する問題は、アプリケーション FMName に set cell コマンドがあることを知っていても、applescript にはそれがないため、文句を言うことです。

2) AppleScript に値またはエラー メッセージのいずれかを返させ、何らかの形で FileMaker にこれを受け入れさせ、それに対して何か有用なことを実行させます。

これに関する問題は、1) Applescripts は数字しか返せないように見える (これは本当ですか?) 2) エラー ダイアログなどは必要ありません。3) filemaker にこれを受け入れる方法を理解していません。そもそも戻り値...

誰にもこれを行う方法についてより良いアイデアがありますか?

ありがとう!

4

3 に答える 3

2

このスレッドが少し古くなっていることはわかっていますが、ここで私が行うことは、if ステートメントを使用することです。Get (アプリケーションバージョン) 関数を使用して、実行中の FileMaker の種類を確認します。

If ( PatternCount ( Get ( ApplicationVersion ) ; "Advanced" ) ; 
"tell application \"FileMaker Pro Advanced\""   ; 
"tell application \"FileMaker Pro\""  )

これをさらに一歩進めてカスタム関数として設定したので、多くの異なるスクリプトで繰り返されることはありません。

于 2011-09-12T13:13:21.357 に答える
1

これは答えられましたが、最近発見したものを追加します。別のアプリ、たとえば Finder を「Tell application Finder Activate」でターゲットにすると、それらの FMP 呼び出しは失敗します。これは、「End Tell」を実行するか、明示的に FMP に戻るまで Finder にいるためです。

私に指摘された解決策は、次のような単一行で外部呼び出しを行うことでした

「アプリケーション Finder に [Finder に必要なことは何でも] を伝える」

これは非 FMP アプリケーションに指示しますが、FMP 呼び出しが機能するように FMP のままにします。

ランタイム名は開発アプリケーション名とは異なるため、これはランタイムの問題になります。

于 2010-08-03T20:42:39.253 に答える
1

(私の理解が正しければ) 対象となるアプリケーションが何であれ、それは FileMaker のバージョンであり、FileMaker Pro であろうと FileMaker Pro Advanced であろうと、FileMaker のランタイム バージョンであろうと、使用されている辞書には同じ用語が使用可能です。したがって、 を使用して、using terms from application "FileMaker Pro"実行するブロックを囲むことができます。

using terms from application "FileMaker Pro"
    tell application FMName
        set cell "gFMName" of current record to FMName
    end tell
end using terms from

私はそれを試していないので、うまくいくかどうかはわかりません。あなたの目標は、ある FileMaker アプリケーションを別の FileMaker アプリケーションの AppleScript からデータを受け取るようにすることです。しかし、なぜ 2 つの FileMaker アプリケーションを使用しているのか疑問に思います。それらは異なるバージョンですか (つまり、FileMaker 10 と FileMaker 6)? もしそうなら、おそらく AppleScript にデータをファイルに書き込んでもらい、それを 2 番目の FileMaker アプリケーションがインポートするのがオプションです。しかし、両方とも FileMaker 7 ~ 10 である場合、同じアプリケーションで 2 つのファイルを単純に開いてみませんか? 次に、AppleScript からのデータを正しいファイルに直接書き込むことができます。

于 2010-01-26T07:18:32.600 に答える