5 返信 最新の回答 日時: Jun 12, 2013 8:33 PM ユーザー:Shin

    納品伝票の商品ごとの納品数を表示したい。

    ishib

      タイトル

      納品伝票の商品ごとの納品数を表示したい。

      フォーラムに投稿

            

           FMpro ver12 MacOSX10.8を使用しています。

            

           テーブル[納品明細]には以下のフィールドがあります。

           商品名・・・テーブル[商品]のレコードから値一覧で選択

           納品日

            

           テーブル[納品書]で年月を指定してそれに該当する[商品明細]をリスト形式にして納品書を作成しています。

            

           3月分納品書

           納品日 商品名

           3/21 A 

           3/21 A

           3/21 B

           3/25 A

           3/25 B

           3/25 B

           3/25 C

           3/28 C

           こんな感じです。これを月々の商品ごとの納品数以下のように表示したいのですがやり方をおしえていただけないでしょうか。

            

           3月分納品内訳

           商品名 納品数

           A    3

           B    3

           C    2

            

           また

            

           平成25年度

           商品名 3月 4月 5月・・・・2月 合計

           A    3   5  3      7  X

           B    3   2  1      4  Y

           C    2   7  7      8  Z

           合計                 X+Y+Z

            

           のように1年ごとの統計も出したいと思っています。よろしくお願いいたします。

            

        • 1. Re: 納品伝票の商品ごとの納品数を表示したい。
          Shin

               集計機能を使うと簡単でしょう。取りあえずは、ヘルプをご覧下さい。

               集計は、クロス集計ですね。ファイルメーカーが標準機能としてもっていない集計です。いろいろな方法がありますので、「ファイルメーカー」「クロス集計」などのキーワードでググってみられるとたくさん出てくると思います。

          • 2. Re: 納品伝票の商品ごとの納品数を表示したい。
            ishib

                 Shinさん。コメントありがとうございました。お返事が遅れて申し訳ありません。リレーションなどはある程度直感的に操作できるのですが、集計の部分は苦手分野で敬遠していました。ここの所FMを触る時間がなくまだ試せていないのですが、集計機能を勉強し直したいと思います。

            • 3. Re: 納品伝票の商品ごとの納品数を表示したい。
              Shin

                   簡単なサンプルを公開しておきます。

                   集計機能を使った単純な集計と、繰り返しフィールドへ展開したデータを使ったクロス集計です。

                   どちらも、集計のキーフィールドでソートした状態で表示されます。(単純な集計は、商品、年月がキーになっています。ソートの優先設定で表示が変わります)

                   https://dl.dropboxusercontent.com/u/9260632/FileMaker/FMTips/forum/forums1a4fe44d30.fp7.zip

              • 4. Re: 納品伝票の商品ごとの納品数を表示したい。
                ishib

                     Shinさん。いつも素早いお返事ありがとうございます。こちらは遅いお返事になって申し訳ありません。

                     公開していただいたサンプルで商品ごとの小計は表示出来たものの納品月ごと小計が表示できず困っていましたが、レイアウト2の表形式に"納品年月"フィールドを追加してそこでソートをし直してそれまで表示できなかった納品月ごとの小計が表示できるようになりました。まだ繰り返しフィールドへデータを展開する部分の計算フィールドの内容がまだ理解しきれていない部分がのこっていますが、公開していただいたサンプルで小計ソート対象の使い方がイメージできました。

                     クロス集計をリレーションを使って実現させているサンプルを書籍で見ましたが、そのサンプルでは商品名が後から追加されたときにフィールドを再定義しなくてはならないものだったので、shinさんに公開していただいたリスト形式と集計機能を利用したサンプルの方が私のやりたい機能を実現してくれました。以前もhttp://forums.filemaker.com/posts/8f440af021 で納品書の印刷レイアウトに関して質問させていただいたときに同じようにリレーションやポータルを使用するよりも、リスト形式や集計機能を利用した方がよかった事がありました。

                     条件に一致したレコードを表示する為にリレーションおよびポータルを使用するべきか、集計機能とリスト形式を使用するべきか、もちろんケースバイケースだとは思うのですが、どちらを使用するべきか決めるにあたって何か考え方の原則のようなものはあるのでしょうか。

                • 5. Re: 納品伝票の商品ごとの納品数を表示したい。
                  Shin

                       どちらのクロス集計も癖があり、その好き好きでしょう。別の掲示板でもよく質問が出るのですが、どちらの方法での回答かは、回答者によってある程度固定されているようです。(ちなみに、私は別テーブルでの集計に違和感を感じますので、繰り返しフィールドへ展開した集計が好きです)

                       また、この方法の中間的な応用として、繰り返しフィールドへルックアップしてくる、という集計方法もあります。

                       また、Splash社が、クロス集計を行うためのプラグインを出しているようですね。

                       ご覧になった参考書は、機能が一つ足りていないようですね。フィールドの再定義を行わないで住むような方法でないと、実用的に実装できません。