• 締切済み

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

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

noname#108466
noname#108466

みんなの回答

  • 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

  • FileMaker5.5のスクリプト定義エラー

    FileMaker5.5でスクリプトを組もうとしていますが上手くいきません。 やりたいこととしては、全データの中から、2者択一のフィールドで真のデータを検索し、一覧表示するだけです。 スクリプトの組み方は 「全レコードを表示」→「検索モードに切り替え」→「フィールドへ移動」(不要かと思いますが一応)→「テキストを挿入」(ここでフィールドを指定して真の値”1”をフィールドに挿入しているつもり)→検索実行→「レイアウト切り替え」(で一覧表示のレイアウトへ切り替えます) です。 エラー表示は、 「この検索条件には有効なものがありません。検索する前に有効な検索条件を入力してください」 です。 FileMakerは近々Ver8が出るそうなので、Ver7へのアップグレードをせずに5.5で作っていますが、今回の質問に関連してその辺の事情もご存知でしたらお教えいただけるとありがたいです。

  • テキストフィールドについてのAppleスクリプト

    ApplescriptもしくはAutomatorでテキストフィールドにフォーカスされたことを検出し、操作を実行する方法はありませんでしょうか。 具体的にはMacに接続した液タブ等で、キーボードビューアを用いてタッチ入力で文字入力をしたいと考えているのですが、キーボードビューアを表示したり隠したりできるscriptはしらべてわかったものの、テキスト入力フィールドが選択されていることを検知できるようなScriptがなかなか見つかりません。 そもそもそのようなScriptは存在しないのでしょうか。 これを行いたい理由としましてはデスクの上にはつねにタブレットが配置されており、普段長文の入力を行うこともないため、物理キーボードを配置しなくてもよい状況を作りたいとかんがえたのですが、スクリプトをアプリケーションとして保存してDockに登録しておく方法ではあまりスマートではないと感じたためです。 iOSのようにテキスト入力の際のみ都合良く画面に表示されてくれればとても良いのにと考え、ご質問した次第です。 ご教示のほどお願い致します。

    • 締切済み
    • Mac
  • ファイルメーカーのスクリプトについて

    ファイルメーカーのスクリプトで質問があります。 検索を行うスクリプトですが、以下の場合どのようにすればよいのでしょうか? フィールドA、フィールドBがあるとします。 フィールドAには不規則な4桁の数字が入っています。 フィールドBにはテキストデータが入っているレコードと入っていないレコードがあります。 検索したいのは、例えば フィールドAには「1111」と入っているが、 その中でフィールドBには何も入っていないもの、 を選び出したいのです。 スクリプトを作ろうとするのですが、 フィールドBに何も入っていないものを選ぶための、「除外」機能がないように思うのです。 もしそのようなスクリプトを組むことができたら是非教えて下さい。

  • Accessのフィールドサイズ

    Access2000を使用していますが、テーブル作成時に 「テキスト型」でフィールドサイズを「10」に設定して データを入力すると、半角でも全角でも「10桁」までの入力に なりますが、フィールドサイズは半角も全角も関係ないのでしょうか? 「テキスト型」の最大フィールドサイズは「半角255文字」と 思っていたのですが、全角でも255文字入力できました。

  • ファイルメーカーで繰り返しフィールドの一括消去

    ファイルメーカーで繰り返しフィールドに入力した データをスクリプトで一括で消去したいのですが、 スクリプトの時点では繰り返しフィールドの繰り返し 位置は指定できるのですが、1から20といった指定が 出来ません。 教えてください。 よろしくお願いいたします。

  • 入力フィールドの開き方を教えてください

    現在、アクセス2003を使用してデータベースを組んでいます。 その中で商品をテキストボックスにカナ読みを入れてコンボボックスに商品名を表示させるようにしていますが、リストに商品がなかった時、データフィールドに直接、商品名を入力できるようにしたいと思います。 具体的には次のような方法を考えています。 テキストボックスにカナ読みを入れる           ↓ ヒットしなかった時は、入力フィールドが表示される(通常は、入力フィールドは不可視にしておき、入力するときに表示されるようにする)           ↓ 表示された入力フィールドに入力する 以上のようにしたいのですが、その方法をご存知の方は教えてください。 なお、通常表示されるフィールドは編集ロックをかけています。

  • テキストフィールドへの値の表示

    JavaScript初心者です。現在、言語習得のためのドリルをおこなっておりますが、2つのテキストフィールド間での値の受け渡しがうまくいきません。具体的には、上下2つのテキストフィールドがあり、上のフィールド(摂氏)に数値を入れボタンを押したタイミングで、その値を華氏に変換して下のフィールドに結果の値が表示される、またその逆もあり、というプログラムを作成したいのです。 テキストフィールドのvalueに値を格納すればよいのかと思い、いろいろな箇所で値を格納してみたのですが、うまく動きません。アドバイスをよろしくお願いいたします。 <html> <head> <script type="text/javascript"> var cel; var fah; function cel_to_fah( ) { cel=document.getElementById("c").value; fah=(9 * cel / 5) + 32 //document.write(fah); document.input_fah.c.value=fah; //return fah; } function fah_to_cel(){ fah= document.getElementById("f").value; cel= 5 * (fah - 32) / 9; //document.write(cel); document.input_cel.f.value=cel; //return cel; } </script> </head> <body> <form id="input_fah" action="./hw06-3.html" > Celsius: <input type="text" id="c" size="20" > <input type="button" onclick="cel_to_fah()" value="To Fahrenheit"/><br/><br/> </form> /* <script language="JavaScript"> document.input_fah.c.value=cel_to_fah(); </script> */ <form id="input_cel" action="./hw06-3.html" > Fahrenheir: <input type="text" id="f" size="20"> <input type="button" onclick="fah_to_cel()" value="To Celsius" /><br/><br/> </form> /* <script language="JavaScript"> document.input_cel.f.value=fah_to_cel( ) </script> */ </body> </html>

  • FileMakerで登録ボタンを作りたい

    FileMaker8.5Advancedを使っています。 仮テーブルとマスタテーブルがあり、それぞれ同じフィールド構成です。 フィールドは プライマリキー(シリアル値) 項目1 項目2 項目3 となっています。 入力者の入力間違いや、空のレコードがマスタテーブルに出来てしまうのを防ぐために、入力者に最初仮テーブルに入力させてその後マスタテーブルにルックアップでコピーしたいと思っています。 仮テーブルのレイアウトに各項目への入力フォームと[登録][キャンセル]というボタンを作成してあります。 ここで、仮テーブルからマスタテーブルへ、スクリプトでデータをコピーする方法が分かりません・・・。 ボタンに定義すべきスクリプト、各テーブル・フィールドに設定しなければならない項目を教えてください。 FMは使い始めてまだ日が浅く、用語も良く分かっていません。 どなたかお分かりになる方がいらっしゃいましたら是非よろしくおねがいいたします。

  • VBAからPDFのテキストフィールド

    Excelに入力されたデータをVBAでPDFのテキストフィールドへデータを自動で入力したいのですが、いろいろ探してみたものの、それらしきサンプル等もなく困窮しています。 例えばExcelに名前が100人登録されているとして、これを順番にPDFのテキストフィールドへ自動的に入力(更新)し、印刷する。(100人分が完了するまで) といった感じの内容です。 まったくわかりませんので、どなたかお教え下さい。 もしサンプルコードが存在するようでしたらURLをお教えいただけると助かります。 宜しく御願いします。

  • VBスクリプトの作成方法について教えてください。

    VBスクリプトの作成方法について教えてください。 あるアプリケーションにて、VBスクリプト編集の機能が有りそれを有効にします。 でイベント用スクリプト入力欄には 【サンプル: Value = Value + "123", サブ文字列の値に123を加えます。】 となっています。 これをサンプルとうりに入力欄に Value = Value + "123" と入力したら元データが、 AAAAAAAだったのが AAAAAAA123と表示されました。 元データを以下の条件によってVBスクリプトにて変化させたい場合 VBスクリプトはどのように作成すればいいでしょうか? データは半角で英数字のみでそれが混在です。 (元データは夜間バッチで自動上書更新されるので元データファイルに  式を入れておく事は出来ません。) 1.○○○○○○○○○○○○○○(先頭が3以外で14文字)     ↓   ○○○-○○○○○-○○-○○-○○ 2.○○○○○-○○○○○(5ケタ-5ケタ)      ↓   ○○○○○-○○○○○(変換しない)   3○○○○-○○○○○(5ケタ-5ケタ)     ↓   3○○○○-○○○○○(変換しない)   3A○○○-○○○○○(5ケタ-5ケタ)     ↓   3A○○○-○○○○○(変換しない) 3.○○○○○○○○-○○○○○(8桁ハイフン5桁)     ↓   ○○○-○○○○○-○○○○○   3○○○○○○○-○○○○○(先頭が3で8桁ハイフン5桁)     ↓   3○○-○○○○○-○○○○○   3A○○○○○○-○○○○○(先頭が3Aで8桁ハイフン5桁)     ↓   3A○-○○○○○-○○○○○ 4.3○○○○○○○○○○○○○(先頭が3で14桁)     ↓   3○○○○-○○○○○-○○-○○ 5.3A○○○○○○○○○○○○(先頭が3Aで14桁)    ↓   3A○-○○○○○○○○○○○ よろしくお願いします。