3 返信 最新の回答 日時: Nov 8, 2016 8:44 AM ユーザー:shin

    30個ある、テーブル::フィールドn を計算で一個の記述にできませんか?

    zou8uzo

      30個ほどの質問があり、一画面に一個の質問を表示しています。

      回答しボタンを押すと次の画面に遷移します。

      レイアウトを質問ごとに30個作成してあります。

      質問はレイアウトに固定(30個別々)、回答フィールドも別々です。

       

      ボタンの挙動は、回答フィールドがブランクならカスタムダイアログ表示、そうでないなら次の質問(別レイアウト)に遷移します。

       

      スクリプト書くのにフィールドの指定が必要で、レイアウトごとに回答フィールドが違い、遷移させるレイアウトも違うため、そのため遷移させる分だけのスクリプトを書きましたが、メンテナンスするには適しません。

       

      テーブル::フィールド1

      テーブル::フィールド2

      テーブル::フィールドn

      をうまく処理できないでしょうか?

       

      フィールドn

      にして、レイアウトごとに、nの値が変えられれば、できるんじゃないかと思っています。

      レイアウト番号と回答フィールドの番号を同じにして、get(レイアウト番号)で取得して、それを当てはめるとか。

      でもやり方がわかりません。

       

      私の現状は以下のようにしています

       

      If [テーブル::答フィールド答a1 = "" and テーブル::答フィールド答b1 = "" ]

        カスタムダイアログを表示["確認" ; "確認かコメントをください" ]

      Else

        レイアウト切り替え [ 問2 ]

      End If

       

      説明:レイアウト[ 問1 ] に質問1があり、答a1フィールドにラジオボタン、答b1フィールドにテキスト編集ボックスがあります。

      ラジオボタンでYesかNoを選択する、又はテキスト編集ボックスに何かしら文字を入力する、のどちらもされてなければ、エラーとして処理を要求するダイアログを表示させます。

      どちらかを実行されていれば、次の質問を表示させるためにレイアウトを切り替えます。

       

      答フィールド答a1

      答フィールド答b1

      レイアウト [ 問2 ]

       

      どうかお知恵を拝借させてください。

        • 1. Re: 30個ある、テーブル::フィールドn を計算で一個の記述にできませんか?
          shin

          回答の方法、選択肢からボタンクリックで選んでの回答か、テキストを入力させるようなものか、によって変わると思いますが。

           

          一般的には、質問内容、回答選択枝、回答後の OK または NO の場合の遷移先(ダイアログ表示を含めて)、表示形式をマスターテーブル化してしまうと良いのでしょうね。

          この場合、レイアウトは、表示形式(ボタンの種類やフィールドの配置など)によって、それぞれ作る事になります。

          ごく簡単な物でしたら、カスタムダイアログだけで済ませる事が出来るかもしれませんね。

           

          例えば、ジュッポーの出している問診表ソリューション(FileMaker 導入事例(医療分野)| iPad 活用 | 問診票システム ) が、作ろうとされているソリューションに近い物だと思いますが、これもそのような構造になっているはずです。

          ごく簡単な構造のサンプルです。

          Dropbox - community167207.fmp12.zip

          • 2. Re: 30個ある、テーブル::フィールドn を計算で一個の記述にできませんか?
            zou8uzo

            サンプルをつけていただいてありがとうございます。

            先にあげてもらってるサンプルで、やりたいことはできました。

            サンプルについて疑問点があるのですが、教えてもらえませんか。

             

            レイアウトAnquet内、Answ::AnsSのラジオボタン指定の箇所です。

            フィールド指定、Quest::AnsS、関連テーブルに、interviewを指定するのですが、

            Yes Noが現れません。定義済みの値なし、と表示されます。

            Questテーブルにレコードを作ると値が現れます。そういうものですか?。

             

            Quest::AnsS と Quest::Next にデータの格納、最大繰り返し数2としてる意味がわかりません。

            AnsSは、ラジオボタンの数ってことでしょうか?

            Nextのほうは、なぜ2つ必要なのでしょう?。

            • 3. Re: 30個ある、テーブル::フィールドn を計算で一個の記述にできませんか?
              shin

              最初にアップしたサンプルファイルにバグがありました。修正したファイルに差し換えてありますので,もう一度ダウンロードしてください。

               

              Next が複数有るのは,回答によって次の動作を変更できる様に拡張しているからです。例えば,Yes だと次の質問,No だと1個飛ばして次の次の質問,という動作を行う事が出来ます。

              もう少し作り込めば,複数選択された場合、それぞれについて細かく聞いていく,という様な動きを、Next の設定だけで作る事も出来ます。