アプリ版:「スタンプのみでお礼する」機能のリリースについて

Filemaker10の初心者です。
テキストの内容をフィールドの値で置換する方法がわからなくて困っています。

データ変換用のテーブルのフィールドには
連番_役名_役者(各フィールドの名前)
1_ヴァンプ将軍_山田ルイ53世(各フィールドのデータの内容)
2_サンレッド_高木俊
3_1号_ひぐち君」

テキスト入力画面に、
「ヴァンプ将軍、1号、サンレッド」と入力して

スクリプトを実行させると、
テキストが「山田ルイ53世、ひぐち君、高木俊」
と変換されるようにしたいのですが、
スクリプトでフィールドの各レコードのデータの参照の仕方がわかりません。

どうか教えてください。よろしくお願いします。

A 回答 (3件)

あ、一部間違ってますね。


フィールド設定 [ 別::結果; 別::結果 & 元::役名 & "," ]
ではなく
フィールド設定 [ 別::結果; 別::結果 & 元:役者 & "," ]
です。役名→役者
    • good
    • 0

そのまま行くのですかぁ・・


でしたら、
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」に
入力したテキストの最初の語句を入れて、その関連フィールドである「元テーブル::役者」
を結果フィールドにフィールド設定する。
これを全語句に渡ってループする。
    • good
    • 0

テキストを入力するのは別テーブルですか、自己テーブルですか?


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

この回答への補足

回答ありがとうございます。

テキストを入力するのは別テーブルです。
入力するテキストの数が決まっていなく、
また、入力して変換するデータの数が決まっていないので、このような形にしたかったのですが…。

Substitute関数で置換するテキストを(別テーブルの役名の3番目のテキスト)と指定して拾えれば、嬉しいのですが、その方法がさっぱりわかりません。

教えていただけたら助かります。

補足日時:2010/04/01 17:48
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す