初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2014-04-30 11:10:39

Toshi
Member

フィールドを自由に選んで結合する

フィールド1、フィールド2、フィールド3にそれぞれデータを入力しています。

使用者が任意に各フィールドのデータを結合(&)してフィールド4に書き込むスクリプトを作成できるでしょうか。
任意に選択する方法として、チェックボックスを作成して、チェックされたものを、結合して書き込みたいのですが、フィールド1、フィールド2、フィールド3とは別にチェックボックスをどのように作成したらよいかわかりません。
ご教示いただければ幸いです。

Offline

#2 2014-04-30 11:54:10

チポ
Member

Re: フィールドを自由に選んで結合する

結合する並び順は?
  常にフィールド1・2・3の順
  チェックを入れた順
  その他?

Offline

#3 2014-04-30 11:56:29

tim
Guest

Re: フィールドを自由に選んで結合する

結合する順番は固定ですか。
フィールド名をそのまま値一覧にしたら、Evaluate(Substitue(結合指定;¶;"&"))とかやるとチェックした順に連結されるかな。

#4 2014-04-30 12:34:11

Hiro
Member

Re: フィールドを自由に選んで結合する

スクリプトでなくとも計算式で自動取得できます。
チェックボックスの選択内容から結合式を"テキスト"生成して、Evaluate("結合式")で評価すると良いでしょう。

結合式の式例は   Evaluate(Substitute(チェックボックスフィールド; ¶; "&"))

なお、チェックボックスフィールドの選択値は   『フィールド1 [¶ フィールド2 ¶ フィールド3] 』
ただし、チェックボックスの選択内容はチェックした順でリストアップされるので、結合結果はチェック順となります。決まった結合順がある場合はFilterValues(決まった順一覧;選択一覧)で順編集します。

Last edited by Hiro (2014-04-30 15:23:08)

Offline

#5 2014-05-01 09:51:03

Toshi
Member

Re: フィールドを自由に選んで結合する

「Hiro」さん
初心者のため理解不足で申し訳ありません。
チェックボックスはどのように作成したらいいのでしょうか。
フィールド1、フィールド2、フィールド3と同じテーブルに作成するのでしょうか。
その場合、値一覧はどのように設定すればいいのでしょうか。

Offline

#6 2014-05-01 11:28:35

Hiro
Member

Re: フィールドを自由に選んで結合する

1.値一覧「フィールド名一覧」の設定はカスタム値に、
    フィールド1
    フィールド2
    フィールド3
と固定値リストを設定。(実際のフィールド名を列挙)

2.テキストフィールド「チェックボックスフィールド」を作り、オプション設定の表示形式:編集ボックス→チェックボックスへ変更、その値一覧に「フィールド名一覧」を選択。

3.目的の「結合フィールド」計算フィールドを作り、その計算式に下式を選択定義。
・チェックした順結合で良ければ、
    Evaluate(Substitute(チェックボックスフィールド; ¶; "&"))
・フィールド名一覧の表示順で結合なら、
  Let([
    #valuelist=ValueListItems(Get(ファイル名);"フィールド名一覧");
    #checkbox=チェックボックスフィールド;
    #checkbox=FilterValues(#valuelist;#checkbox);
    #checkbox=Substitute(#checkbox & "_end_"; ["¶_end_";"_end_"];["_end_";""])
  ];
    Evaluate(Substitute(#checkbox; ¶; "&"))
  )

Last edited by Hiro (2014-05-01 12:12:54)

Offline

#7 2014-05-01 13:28:11

Toshi
Member

Re: フィールドを自由に選んで結合する

「Hiro」さん
ご丁寧に有難うございました。
できました。

Offline

#8 2014-05-01 13:43:58

Toshi
Member

Re: フィールドを自由に選んで結合する

Evaluate(Substitute(チェックボックスフィールド; ¶; "&"))
フィールドとフィールドが改行されず、くっついているのですが、各フィールド間を改行するにはどうしたらいいでしょうか。
ちなみに環境はWindows FileMakerは12です。

Offline

#9 2014-05-01 13:51:48

Hiro
Member

Re: フィールドを自由に選んで結合する

Evaluate(Substitute(チェックボックスフィールド; ¶; "&"))

Evaluate(Substitute(チェックボックスフィールド; ¶; "&\¶&"))

Offline

#10 2014-05-01 14:02:25

Toshi
Member

Re: フィールドを自由に選んで結合する

「Hiro」さん
有難うございました。
改行できました。

Offline

#11 2014-05-01 15:40:20

Toshi
Member

Re: フィールドを自由に選んで結合する

何度もすみません。
選択したフィールドを結合フィールドに入れることはできたのですが、フィールドのタイトルもあわせて、結合フィールドにいれることもできるでしょうか。
「フィールド1のタイトル」改行
「フィールド1の内容」改行
「フィールド2のタイトル」改行
「フィールド2の内容」

Offline

#12 2014-05-01 18:14:51

Hiro
Member

Re: フィールドを自由に選んで結合する

もう質問変更はありませんか?
前の式は完全ボツなので、新たな式でないと、

  Let([
    $chb=チェックボックスフィールド;
    $res="";
    $fnc="Case(
      IsEmpty($chb); $res;
      Let([
        $name=GetValue($chb;1);
        $res=List($res;List($name;Evaluate($name)));
        $chb=MiddleValues($chb;2;ValueCount($chb))
        ]; Evaluate($fnc))
      )"
  ];
    Evaluate($fnc)
  )

Offline

#13 2014-05-02 09:39:32

Toshi
Member

Re: フィールドを自由に選んで結合する

「Hiro」さん
毎回ご丁寧なご回答ありがとうございます。
できました。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 7 queries executed - Memory usage: 525.18 KiB (Peak: 545.72 KiB) ]