5 返信 最新の回答 日時: Jan 20, 2017 7:58 AM ユーザー:tt2016

    オブジェクト(フィールド)を複数条件のどれかに該当していたら非表示にする方法

    tt2016

      閲覧者様へ

       

      お世話になります。

      TT2016と申します。

       

      お手数おかけしますが、よろしくお願いいたします。

      長文失礼いたします。

       

      【背景】

      FileMaker Pro 15を利用しております。

       

      ファイルメーカーを用いて末文のようなお問合わせフォームを作成しております。

      (末文の1枚目の画像)

       

      今回作成するお問合わせフォームには、幾つか条件が存在します。

       

       「条件」

        ①常にお問合わせ内容の1要素ずつしか表示されません。

         (末文の2枚目の画像)

       

        ②上から順番に入力していかないと、次の要素が表示されません。

         (末文の3枚目の画像)

       

        ③要素は、値が空白(無記入)になっていると、次の要素が表示されません。

         必ず、何かしらの情報を入力する必要があります。

       

        ④戻るボタンを押すことで既に入力済みの1要素を再表示することが出来ます。

         (末文の4枚目の画像)

       

        ⑤戻るボタンは、既に内容を入力済みの要素と、最新の入力しなければいけない要素に表示されます。

         (末文の5枚目の画像。 例の画像では「送信」以外の要素を全て入力しています。

          そのため、最新のアクションを実施すべき要素である「送信」と、

          既に入力済みの要素に戻るボタンが表示されます)

       

       

      【ご質問】

      1.

      背景の条件を満たす方法をご教授ください。

      よろしくお願いいたします。

       

      2.

      私の主観が入ってしまいますが、以下のような機能がFileMakerで実現出来れば、

      条件を満たすことが出来ると考えております。

       

       ①インスペクタの「次の場合にオブジェクトを隠す」のように、一定の条件を満たすと、オブジェクトを非表示にする。

        複数の条件、ある特定のケースごとでオブジェクトを隠すことが出来れば、

        条件を満たすことが出来るかと予測しています。

       

       ②ある特定の条件を満たすと、表示されるオブジェクトを設置する。

       

      【参考情報】

      見本画像は下記になります。

        • 1. Re: オブジェクト(フィールド)を複数条件のどれかに該当していたら非表示にする方法
          shin

          各入力フィールドに OnObjectExit を設定しておきます。スクリプト呼び出しには,引数を付けて、うえから1〜5にしておきます。

          スクリプトの中で、フィールド内容が設定されていなければ、元のフィールドに戻らせます。入力されていれば,グローバル変数に List ( $$n ; Get ( スクリプト引数 ) ) と設定しておきます。戻るがクリックされたら,List ( $$n ; Get ( スクリプト引数 ) - 2 ) としておきます。

          インスペクタのオブジェクトを隠す の条件は,入力用のフィールドは,$$n の最後の行 +1 の行のみで表示,戻るボタンは,Max ( $$n ) + 1 の行まで表示させます。

          検証していませんが,以上で実現できそうです。

          1 人中 1 人が役に立つと言っています
          • 2. Re: オブジェクト(フィールド)を複数条件のどれかに該当していたら非表示にする方法
            tt2016

            shin様

             

            ご返信ありがとうございます。

            用語の意味を調べた上で検証したいと思います。

             

            ご教授の程、ありがとうございます。

             

            取り急ぎ

            • 3. Re: オブジェクト(フィールド)を複数条件のどれかに該当していたら非表示にする方法
              shin

              もっと簡単に作れそうです。

              グローバル変数 $$n に1をセットしておきます。

              フィールドは、コントロールの簡単な繰り返しフィールド(グローバルでも可)にしておきます。データ全てが確定すれば、正規のフィールドに値を移せば良いでしょう。1繰り返し毎に、5個を表示しておき、$$n と繰り返し位置が一致しないときには表示を隠します。

              OnObjectExit トリガーで、そのフィールド内容が空白ならば、フィールドに戻ります。入力されていれば、$$n に1加えて、繰り返しフィールド[$$n] へ移動します。

              戻るボタンは、それぞれ、繰り返しフィールド[x-1] (x は該当する位置)が空白ならば表示を隠します。

              1 人中 1 人が役に立つと言っています
              • 4. Re: オブジェクト(フィールド)を複数条件のどれかに該当していたら非表示にする方法
                tt2016

                shin様

                 

                お時間を割いていただきありがとうございます。

                 

                折角アドバイスをいただいたのに、まだ着手出来ておりません。

                別途、いただいたアドバイスを基に対応させていただきます。

                 

                温かいアドバイス、ありがとうございます。

                • 5. Re: オブジェクト(フィールド)を複数条件のどれかに該当していたら非表示にする方法
                  tt2016

                  shin様

                   

                  お世話になっております。

                  TT2016と申します。

                   

                  お陰様で無事に問題解決しました。

                   

                  解決方法は、スライドコントロールで質問の数と同じ数のページを用意し、

                  フィールドに値が入力されていると、インスペクタのオブジェクトを隠すが解除されるという形式で行いました。

                   

                  また、その後にご教授いただいた、グローバル変数、繰り返しフィールド、List関数、Get ( スクリプト引数 )関数について勉強させていただきました。

                   

                  一つ一つの要素は理解出来たのですが、要素を重ね合わせての理解に至っておりません。

                  引き続き、学習を続けながら、いただいたアドバイスを理解出来るように努めてまいります。

                   

                  ご教授の程、ありがとうございます。