5 返信 最新の回答 日時: Oct 22, 2009 6:42 AM ユーザー:marutyan

    繰り返しフィールドについて

    marutyan

      タイトル

      繰り返しフィールドについて

      フォーラムに投稿

      FileMakerPRO10の初心者ですが、よろしくお願いいたします。

       

      請求書を作成しておりますが、繰り返しフィールドで単価の項目を10行作りました。

      単価はあらかじめ決まっている数字(金額)を表示させたい行があるのですが

      設定方法が分からず困っております。

       

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

        • 1. Re: 繰り返しフィールドについて
          yasuhiro
            
          <計算値自動入力でやる方法> 
          1) まずデータベース定義の「テーブル」のタブコントロールで新しいソーステーブルを1つ作ってください。
          名前を「System」とします。
          そして計算フィールドを2つ作ってください。
          ◆フィールド名「c1」: 計算式は「1」として定数1を常に計算するようにして索引設定を「すべて」にします。
          ◆フィールド名「cDefault[繰り返し数 :10]」: 計算式を次のようにします。
          Case(
           Get(計算式繰り返し位置番号)=1 ; 1番目の繰り返し位置に自動入力したい数値 ;
           Get(計算式繰り返し位置番号)=2 ; 2番目の繰り返し位置に自動入力したい数値 ;
           Get(計算式繰り返し位置番号)=3 ; 3番目の繰り返し位置に自動入力したい数値 ;
           Get(計算式繰り返し位置番号)=n ; n番目の繰り返し位置に自動入力したい数値 ;
          ..... ;
          ..... ; 
          "" ) 
          2) そしてリレーションシップグラフにあらわれた「System」テーブルオカレンスに基づくレイアウトで
          新規レコードを1レコードだけ作製してください。
          3) 請求書テーブルにもフィールド名「c1」と同じ、常に定数1を計算する計算フィールドを作ってください。
          4) リレーションシップグラフで
          「System」オカレンスと「請求書」オカレンスを「System::c1」と「請求書::c1」でリレーションを結びます。
          (今回はやらなくても動作しますが、このような場合リレーションをデカルトクロス(×)で結ぶのが一般的です。)
          5) データベース定義で「請求書」のソーステーブルで「単価[繰り返し数 :10]」フィールドをダブルクリックし、「入力値の自動化」のタブコントロールで ルックアップ値のチェックボックスをチェックして、System::cDefault をルックアップするようにしてください。
          以上です。

          他にもPro10を使用されているので、スクリプトトリガーでフィールド設定する方法も考えられると思います。
          • 2. Re: 繰り返しフィールドについて
            marutyan
              

            Tambaraさんありがとうございます。

             

            まだ初心者で分からないことも多いのですが

            Get()の計算式繰り返し位置番号ですが[計算式の指定で]

            テーブルの指定をして、単価フィールドをダブルクリックで計算式に表示させ

            一行目の場合は1をつければ良いのでしょうか?

             

            それを10行目まで入力したのですがGet関数では使えない引数と出てしましました。

             

            申し訳ありませんが今一度ご教授をお願いいたします。

             

             

            • 3. Re: 繰り返しフィールドについて
              yasuhiro
                

              わかりにくくてすいません。

               「Get(計算式繰り返し位置番号)」はそういう名前の取得関数ですのでそのまま記述してください。

              「Get()という関数があってその引数に 計算式繰り返し位置番号 を返す式を入れてください」という意味ではありません。

               

              「n番目の繰り返し位置に自動入力したい数値」のほうは、数字リテラルそのもののことです。

               

              Get(計算式繰り返し位置番号)はタイプを「計算」にしたフィールド(計算フィールド)の定義式で使います。

              このとき重要なのは、この計算フィールドの定義式の下の「計算結果:」は数字、「繰り返し数:」は今回は 10 です。

              • 4. Re: 繰り返しフィールドについて
                marutyan
                  

                いえいえ私が初心者で理解が出来ずにすいません。

                 

                まだうまくいかないので、もう一度質問させて下さい。

                 

                >フィールド名「c1」: 計算式は「1」として定数1を常に計算するようにして索引設定を「すべて」にします。

                ですが計算式は数値の1を入力しました。

                 

                >フィールド名「cDefault[繰り返し数 :10]」: 計算式ですが

                7行目まで数字を常に表示したいので

                Case(
                Get(計算式繰り返し位置番号)=1 ; "600" ;
                Get(計算式繰り返し位置番号)=2 ; "400" ;
                Get(計算式繰り返し位置番号)=3 ; "150" ;
                Get(計算式繰り返し位置番号)=4 ; "150" ;
                Get(計算式繰り返し位置番号)=5 ; "150" ;
                Get(計算式繰り返し位置番号)=6 ; "350" ;
                Get(計算式繰り返し位置番号)=7 ; "1800" ;
                "")

                と入力しましたが表示できませんでした。

                 

                何か考えられることはありますでしょうか?

                 

                たびたび申し訳ありませんが、よろしくお願いします。

                 

                 

                 

                 




                • 5. Re: 繰り返しフィールドについて
                  marutyan
                    

                  Tambaraさん

                   

                  いろいろと教えていただきありがとうございました。

                   

                  こちらのミスで、既存のレコードには反映されないことが分からずに

                  追加質問を致しましたが、新規レコードからは無事に[単価]に

                  金額が挿入されていました。

                   

                  このたびは丁寧に教えていただきまして本当にありがとうございました。

                   

                  また分からない所が有りました時には、よろしくお願いいたします。