• 締切済み

filemakerでフィールドの値をスクリプトで使う方法

Filemaker10の初心者です。 テキストの内容をフィールドの値で置換する方法がわからなくて困っています。 データ変換用のテーブルのフィールドには 連番_役名_役者(各フィールドの名前) 1_ヴァンプ将軍_山田ルイ53世(各フィールドのデータの内容) 2_サンレッド_高木俊 3_1号_ひぐち君」 テキスト入力画面に、 「ヴァンプ将軍、1号、サンレッド」と入力して スクリプトを実行させると、 テキストが「山田ルイ53世、ひぐち君、高木俊」 と変換されるようにしたいのですが、 スクリプトでフィールドの各レコードのデータの参照の仕方がわかりません。 どうか教えてください。よろしくお願いします。

みんなの回答

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.3

あ、一部間違ってますね。 フィールド設定 [ 別::結果; 別::結果 & 元::役名 & "," ] ではなく フィールド設定 [ 別::結果; 別::結果 & 元:役者 & "," ] です。役名→役者

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.2

そのまま行くのですかぁ・・ でしたら、 1.結果を表示するテキストフィールド名を「結果」とする。 2.結果を表示するテーブル(仮名「別」)でグローバルテキストフィールドを作って、  名前を「G」とする。 3.この「G」とデータ変換用のテーブル(仮名「元」)の「役名」をリレーションする。 4.返還前のテキストを入力するフィールドの名前を仮に「T」とする。 5.次のスクリプトを作って実行する。「別::結果」等は別テーブルの結果フィールドと  いう意味です。 変数を設定 [ $p; 値:Substitute (T ; "," ; ¶ ) ] 変数を設定 [ $n; 値:1 ] Loop  フィールド設定 [ G; MiddleValues ( $p ; $n ; 1 ) ]  フィールド設定 [ 別::結果; 別::結果 & 元::役名 & "," ]  変数を設定 [ $n; 値:$n+1 ]  Exit Loop If [ $n=ValueCount ( $p )+1 ] End Loop フィールド設定 [ 別::結果; Replace ( 別::結果 ; Length ( 別::結果 ); 1 ; "" ) ] 動作的には 結果を表示する別テーブル側に、元テーブルの「役名」フィールドと照合する「G」に 入力したテキストの最初の語句を入れて、その関連フィールドである「元テーブル::役者」 を結果フィールドにフィールド設定する。 これを全語句に渡ってループする。

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.1

テキストを入力するのは別テーブルですか、自己テーブルですか? 入力するテキストは3個と決まっているのですか? いずれにしても出来ないことは無いでしょうけど、「ヴァンプ将軍、1号、サンレッド」 というデータはデータベースとしては不向きです。入力フィールドも複数に分けるべき でしょう。それを連結すればいいわけですから。

noname#108466
質問者

補足

回答ありがとうございます。 テキストを入力するのは別テーブルです。 入力するテキストの数が決まっていなく、 また、入力して変換するデータの数が決まっていないので、このような形にしたかったのですが…。 Substitute関数で置換するテキストを(別テーブルの役名の3番目のテキスト)と指定して拾えれば、嬉しいのですが、その方法がさっぱりわかりません。 教えていただけたら助かります。

関連するQ&A