このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

AppleScriptからFileMakerの特定のフィールドに

発言者:NOGUCHI
( Date Friday, February 06, 1998 09:01:45 )


クリップボードの内容を
FileMakerのスクリプトで<<ペーストする>>ではなくて
AppleScriptからFileMakerの特定のフィールドにペーストする方法は無いでしょうか。
どうぞよろしくお願いします。

田中求之 さんからのコメント
( Friday, February 06, 1998 13:47:41 )

たとえば、Tanaka's osax 1.2 を使って

tell application "ファイルメーカー Pro"
  activate
  set cell "yyyy" of current record to (readClip)
end tell

とやると、cell "yyyy" に、クリップボードのデータが入ります

kozka さんからのコメント
( Friday, February 06, 1998 14:03:10 )

goコマンドで特定のセルに移動して、DoMenuコマンドでペーストする
ことも出来ます。もちろんファイルメーカーProをアクティブにします。


田中求之 さんからのコメント
( Friday, February 06, 1998 14:35:42 )

あ、そうか、go コマンドがありましたね。

最近、ファイルメーカーをメモ帳にしか使ってないからなぁ (^_^;;


藤沢雅幸 さんからのコメント
( Friday, February 06, 1998 16:07:20 )

別な発言で、受発注についてだらだらおききしてしまったので
ここに場所を移動して具体的にお聞きします。すみません。

FMPro4はまだ触っていないのですが、3でも結構ですが、
FMProからメールソフトにCSVで書き出して、自動的に特定のアドレスに
メールするにはどうすればいいのでしょうか。

受ける場合も、そのCSVを自動的にFMProの特定フィールドに入れるには
どのようなスクリプトで可能でしょうか。

AppleScript対応のメールソフトでないと無理ですか。
ClarisMailでしょうか。何か良いソフトはありますか。

重松修 さんからのコメント
( Friday, February 06, 1998 17:35:53 )

>FMPro4はまだ触っていないのですが、3でも結構ですが、
FMProからメールソフトにCSVで書き出して、自動的に特定のアドレスに
メールするにはどうすればいいのでしょうか。

MongoMailでメール送信は可能です。詳しくは過去記事を検索して下さい。
サンプルも提供されていたと思います。

>受ける場合も、そのCSVを自動的にFMProの特定フィールドに入れるには
どのようなスクリプトで可能でしょうか。

これも、サンプルがありますので、検索して探して下さい。

FileMaker Pro 3 での話です。

4をお持ちならば、FileMaker自身がWWWサーバとしての機能を持っているので
手法が基本的に異なります。
# AppleScriptを使用しないでできるという点です。

NOGUCHI さんからのコメント
( Friday, February 06, 1998 17:46:33 )

田中さん、kozka さん、御指導有難うございます。
田中さんのスクリプトは分かったのですが、kozkaさんの<<go コマンドで>>という
のは例えばどのように書くのでしょうか。
お手数をおかけします。初心者のわたくしめをお許し下さい。

田中求之 さんからのコメント
( Friday, February 06, 1998 17:57:08 )

go を使うと以下のようになります

tell application "ファイルメーカー Pro"
  activate
  go to cell "two" of current record
  paste
end tell

この場合、テキスト用のセルにすでにデータが入っていると、追加されてしまいます。
データを取り換えたいときには

tell application "ファイルメーカー Pro"
  activate
  set cell "two" of current record to "" --- これでセルのデータをクリア
  go to cell "two" of current record
  paste
end tell

という具合にしてください。

NOGUCHI さんからのコメント
( Friday, February 06, 1998 22:11:17 )

田中さん有難うございます。

早速、試してみます。
また分からなくなったら戻って来ますので、その時はご指導お願いします。

藤沢雅幸 さんからのコメント
( Tuesday, February 24, 1998 10:12:33 )

ARAやルータを使用してフォルダごと相手のMacにデータをコピーした際に、
相手側で、今到着した(コピーし終わった、受け取り終わった)フォルダの
フォルダ名とその中のファイル名をリアルタイムでFMProにレコード追加
できるでしょうか。
フォルダ名とその中のファイル名は当然別フィールドに…、ですが。
ただここで、フォルダやファイルは一つとは限りません。
複数あった場合、事前に複数フィールド作成しておかなければなりませんか。
何か良い方法はないでしょうか。

また、コピー(着信)し、レコード追加が行われた際に特定のアラームを
鳴らすことは出来ますか。まぁ、これは出来なくても仕方ないと思いますが、
AppleScriptでどうやればいいか判りません。
どなたか宜しくお願い致します。

田中求之 さんからのコメント
( Wednesday, February 25, 1998 23:28:16 )

いくつかの処理に切り分けて考えていったほうがよいでしょう。

まず、コピーされたファイルやフォルダーを自動登録する方法ですが、一定の
フォルダー内にコピーされるのであれば、そのフォルダーを見張っておいて変
更があったとき処理を行うという方法は可能でしょうね。

あるいは、一定の間隔で、ファイルの更新などが行われていないか(前回の
チェック以降に更新されたファイルはないか)を調べるという方法もあります。


ファイルメーカー側のレコードの構造は、やはりあらかじめ決めておく必要が
ありますね。このレコードのデザインが、全体の処理の流れを決める鍵になる
と思います。

レコード更新時にアラーム(Beep)を鳴らすのは、スクリプトで可能です。

NOGUCHI さんからのコメント
( Thursday, February 26, 1998 01:06:56 )

お陰様でFileMakerの特定のフィールドにペーストする事は出来たのですが、
今度の問題はFileMaker側ですでにフィールドが選択されていた場合に
>>go to cell "two" of current recordの部分でエラーが発生してしまいます。
そこでAppleScriptからFileMaker側では何もフィールドが選択されてない状態に
してやる方法は無いでしょうか。

田中求之 さんからのコメント
( Friday, February 27, 1998 00:51:07 )

どんなエラーになります?(エラーメッセージは?)

NOGUCHI さんからのコメント
( Friday, February 27, 1998 01:27:52 )

お世話になります。

>>ファイルメーカーPro v3 got an error:cell"two"of current record dosen't
>>understand the go to message.

このように出るのですが。

田中求之 さんからのコメント
( Friday, February 27, 1998 14:00:54 )

実行したスクリプトはどんなものですか? 私の方ではエラーは出ませんが??

NOGUCHI さんからのコメント
( Saturday, February 28, 1998 00:18:04 )

tell application "ファイルメーカー Pro v3"
  activate
  go to cell "フィールド名" of current record
end tell

このようにしています。

田中求之 さんからのコメント
( Saturday, February 28, 1998 00:32:50 )

ファイルメーカー Pro v3 だと動作が違うんでしょうかね?
もう v3 は消してしまったので、確認ができないのですが。

(v3 には go to がないんだっけ??>詳しい方)

NOGUCHI さんからのコメント
( Saturday, February 28, 1998 01:32:43 )

田中さんお手数かけます。

このままの状態でのこの問題解決方法として、初心者なりに考えて見たのですが例えば

1.ファイルメーカーのフィールドが何も選択されていない状態にする
2.ファイルメーカーをアクティブにして、ENTERキーをキータイプする。

というようなスクリプトがあれば良いと思うのですが。
どうでしょうか。
ファイルメーカー側でスクリプトを書けば簡単に出来る事なのですが、
あくまでも外部から操作する必要が有るもので。

kozka さんからのコメント
( Saturday, February 28, 1998 09:55:47 )

私のところでは以下のスクリプトがファイルメーカー Pro3 v3でエラーも出ず
ちゃんと動きました。

tell application "ファイルメーカー Pro v3"
  activate
  go to cell "two" of current record
end tell

フィールド"two" の中にカーソルがあっても他のフィールドにカーソルがあって
も動いています。