7 返信 最新の回答 日時: Dec 10, 2016 7:21 PM ユーザー:MiyukiImaizumi

    繰り返しフィールドを利用したアクティブセグメントについて

    bottu3

      質問があります。

       

      ポータルの中にボタンバーを1つ置いています。
      「○」と「×」のボタン2つです。


      20行のポータルなので、ボタンバーが20個表示されます。

      ポータルの外に「点数」という名前の繰り返しフィールド(20回)を置いています。
      点数には、「○」を押すと「5」、「×」を押すと「0」が入ります。初期値は空欄です。

       

      点数に合わせて所期のアクティブセグメントを指定したいのですがうまくいきません。
      5点なら"○"、0点なら"×"、それ以外ならアクティブセグメントは無しにしたいです。

       

      アクティブセグメントを指定して、
      Case (
      点検::点数[Get ( アクティブポータル行番号 )] = 5 ; "○" ;
      点検::点数[Get ( アクティブポータル行番号 )] = 0 ; "×" ;
      "無し" )

      と計算式を書きましたが動きません。

       

      何か知恵があればお借りしたいです。
      よろしくお願いします。

        • 1. Re: 繰り返しフィールドを利用したアクティブセグメントについて
          sago350@未来Switch

          アクティブポータル行番号は、ポータル行がアクティブになってないとダメなので、それだと上手くいかないですね。

          そもそも繰り返しを使わずにポータルだけで済ませればいいのでは・・・ボタンバークリック時に、ポータル内のレコードに値を入れればいいのでは、、、

          とここまで書いて設計が

           選択肢は別テーブルでポータルで表示

           結果は1レコード内に繰り返しで格納

          という状況なのですね。

           

          と仮定すると、20行のポータルに1レコード目から、「1,2,3,4....」値を入れてそれを繰り返しフィールドの指定に使えば上手くいくかと思います。

          • 2. Re: 繰り返しフィールドを利用したアクティブセグメントについて
            shin

            二世代ほど時代の流れには逆らいますが,いっその事,ボタンも質問内容も,繰り返しフィールドに入れてしまえば良いのでは。ボタンについては,ラジをボタン等で代用し,○で5、×で0が設定される様な値一覧を作っておくと,計算式も不要です。

            同じ仕組みをポータルの中に仕込んでおけば,今風の作りになると思います。

            • 3. Re: 繰り返しフィールドを利用したアクティブセグメントについて
              bottu3

              >選択肢は別テーブルでポータルで表示

              >結果は1レコード内に繰り返しで格納

              まさしくこの状況です。

              テーブル①にレコードが100個ほどあり、テーブル②のポータル内にテーブル①を置いています。

              場所によってフィルターをかけて、20個のレコードをテーブル内に表示しています。

              採点を毎月するので、テーブル1に「点数」をいれるフィールドを用意すると、毎月20レコードずつ増えてしまいます。

              その為、「点数」はテーブル②で管理したいのです。

               

              >20行のポータルに1レコード目から、「1,2,3,4....」値を入れてそれを繰り返しフィールドの指定に使えば

               

              数字フィールドを用意して、アクティブセグメントを下記のようにしましたがうまくいきませんでした。

              Case (

              ②::点数[①::数字] = 5 ; "○" ;

              ②::点数[①::数字] = 0 ; "×" ;

              "無し"  )

               

               

              1つのボタンバーをポータルで使いまわして、アクティブセグメントをそれぞれ指定するのが、そもそも無理がありそうですね。。

              一緒に考えていただいてありがとうございました。

              • 4. Re: 繰り返しフィールドを利用したアクティブセグメントについて
                MiyukiImaizumi

                テーブル①にレコード番号を計算する計算フィールドを持ちます。索引を持たずに都度計算するようにしてください。

                ポータルでボタンをクリックした時に、このフィールドの値をとると、何行目かわかるのでそれを値を設定したい、繰り返しフィールドの場所を指定できます。

                例えば、$positionにこのフィールドの値を設定したとすると、

                繰り返しフィールドの場所は添え字として指定します。

                フィールド設定 テーブル2::点数フィールド[$position]

                 

                クリックするたびに順に場所を指定したいならば、グローバル変数にクリックした回数をセットして数を増やしていけばいいのではないかと思います。

                 

                • 5. Re: 繰り返しフィールドを利用したアクティブセグメントについて
                  bottu3

                  >レコード番号を計算する計算フィールド

                  こちらはどういう意味でしょうか?

                  プライマリーキーとして、1~100まで数字を持たせるということでしょうか?

                  • 6. Re: 繰り返しフィールドを利用したアクティブセグメントについて
                    shin

                    採点を毎月するので、テーブル1に「点数」をいれるフィールドを用意すると、毎月20レコードずつ増えてしまいます。

                    その為、「点数」はテーブル②で管理したいのです。

                    20レコード程度増える事を懸念ですか。10年で3000レコードにもなりませんが。今のFMは、100万レコード程度のファイルは通常の使用範囲内ですので、ややこしい動作を組み込む事は避けた方が将来的に得策だと思いますが。また、その答えを将来的に集計する必要が出た場合に、それをばらす事になるでしょうから、その手間だと思えば同じですよ。

                    • 7. Re: 繰り返しフィールドを利用したアクティブセグメントについて
                      MiyukiImaizumi

                      いいえ、違います。

                      Get(レコード番号)という計算をする計算フィールドを作ります。

                      プライマリキーとかにする必要はありません。

                      また、計算結果は保存しないようにしてください。

                      サンプルファイル作ってみたのでみてみたらなんだーと思われると思います。

                      繰り返しフィールドの位置指定の理屈がわかればそんなに難しくないと思います。

                       

                      繰り返しフィールドの指定の仕方はおわかりのようで、ごめんなさいね。

                      スクリプトの引数として指定しないと機能しないようですよ。

                       

                      Dropbox - 繰り返しフィールドに点数設定.fmp12