9 返信 最新の回答 日時: Feb 15, 2012 4:02 AM ユーザー:nkk47

    シリアル番号を 1 に戻したい

    nkk47

      タイトル

      シリアル番号を 1 に戻したい

      フォーラムに投稿

      お世話になります。

       

      テーブル    :担当者
      フィールド   :年月日、出番、担当者

      テーブル    :販売日報(ポータル)
      フィールド   :年月日、回数(シリアル番号)、本体金額、付属品金額、合計金額(本体金額+付属品金額)

      ・上記テーブルは「年月日」をリレーションシップし、販売日報テーブルの「このリレーションシップを利用して、このテーブルでのレコードの製作を許可」にチェック。
      ・レイアウト:担当者に、販売日報をポータルで表示。

      1日の販売記録を入力するために、ポータルへの入力で、[付属品金額]まで入力し、Tabキーを押すと、そのレコードの下に新しいレコードが新しく作られ、そこの[本体金額]フィールドへ移動するという、下記のようなスクリプトを組みました。(こちらでご教示頂きました)

          スクリプト[日報]
          ・ポータル内の行へ移動[最後の]
          ・フィールドへ移動[販売日報_T::領収金額]


      さて、上記のようなファイルを作ってみましたところ、取り敢えず、動きとしては問題ないのですが、下記の点で困っています。

      ポータルの販売日報には、日々40レコード程度を入力するのですが、1日の入力を終え、翌日、新規レコードを作って入力しますと、当然ですが、ポータル(販売日報)の[回数(シリアル番号)]には、「前日の最終番号+1」から始まる数値が入ってしまいます。

      データベースの管理で[回数]のシリアル番号の[次の値]を "1" にすれば希望通りに出来るますが、これはあまりにも面倒なので、担当者テーブルで、新規レコード(新しい年月日)が作られたら、販売日報テーブルの回数(のシリアル番号)を "1" にするようなことは可能でしょうか。

      この[回数]は、次のステップで、1日に何回販売したのか等の集計に使いたいと考えています。


      ご教示の程、宜しくお願い致します。

        • 1. Re: シリアル番号を 1 に戻したい
          Shin

           1日の売上回数を集計するためには、集計機能を使われたほうが良いと思います。

          シリアル値の次の値のリセットをするには、

           次のシリアル値を設定 [<テーブル::フィールド>; <値または式>]
          というスクリプトステップを使えば変更できますが、運用上のトラブルを予想しますので、あまりお勧めしません。
          どうしても、日毎のシリアルが必要でしたら、日付と連続するシリアルで
           日付   = 日付
           シリアル ≧ シリアル
          という自己リレーションして、その該当レコード数をカウントするようにされたほうが良いと思います。
          • 2. Re: シリアル番号を 1 に戻したい
            nkk47

            Shinさん

            お世話になります。

            >  次のシリアル値を設定 [<テーブル::フィールド>; <値または式>]

            上記の <値または式> の部分にはどうのような記述をすれば宜しいのでしょうか。
            お勧めできないとのことですが、後学のためにご教示下さい。

            > どうしても、日毎のシリアルが必要でしたら、日付と連続するシリアルで

            1日に販売した回数が分かれば、シリアル番号でなくとも良いのですが、それしか思いつきませんでした。
            後々、「1日の販売回数」を集計したいので、年月日毎の回数は必須なのです。

            >  日付   = 日付
            >  シリアル ≧ シリアル
            > という自己リレーションして、その該当レコード数をカウントするようにされたほうが良いと思います。

            日付というのは「年月日フォルダー」のことではないのですよね?
            同じように、シリアルというのは「回数フィールド」ではないのですね。
            試しに、販売日報テーブルの「年月日 = 年月日」「回数 ≧ 回数」に自己リレーションをしてみましたが、結果は同じ(回数のシリアル番号は連続している)で、販売日報テーブルに「日付」「シリアル」というフィールドを新規で作成し、「日付 = 日付」「シリアル ≧ シリアル」ということもやってみましたが、やはり結果は同じでした。


            引き続きましての御教示を宜しくお願い致します。

            • 3. Re: シリアル番号を 1 に戻したい
              Shin

               スクリプトステップについては、

              http://www.filemaker.co.jp/11help/html/scripts_ref1.36.41.html#395110

              をご覧ください。

              お勧めできないのは、過去のレコードを追加したり削除するようなことがあった場合に、非常に面倒な処理が発生するからです。

               

              リレーションについては、

              http://dl.dropbox.com/u/9260632/FileMaker/FMTips/forum/forumsb6138cf6d5.fp7.zip

              を参考になさってください。

              • 4. Re: シリアル番号を 1 に戻したい
                jintakatomoz

                日付の自己リレーションを作って

                Count(シリアル番号)

                ではどうでしょ?

                • 5. Re: シリアル番号を 1 に戻したい
                  nkk47

                  Shin さん

                  > お勧めできないのは、過去のレコードを追加したり削除するようなことがあった場合に、非常に面倒な処理が発生するからです。

                  まだまだ初心者ですのでピンと来ませんが、これを機に勉強いたします。

                  リレーションシップについてはファイルを拝見してよく分かりました。
                  ≧、≦ の取り扱いがまだよく分かっていませんが・・・


                  jintakatomoz さん

                  ご教示いただき、ありがとうございます。
                  Shinさんのファイルでも Count で処理なされていました。

                  これからもご教示の程、宜しくお願い致します。

                  • 6. Re: シリアル番号を 1 に戻したい
                    Shin

                    私の構造は、あくまでシリアル番号を打つための物です。

                    jintakatomozさんのコメントは、「 1日に何回販売したのか等の集計」の値を得るための計算式で、リレーションの設定も違います。

                    余裕があれば、試して見られると良いでしょうね。

                    • 7. Re: シリアル番号を 1 に戻したい
                      nkk47

                      Shin さん

                      販売回数を数えるのには、「_1」という計算で「1」を入力したフィールドを作成し、その数を数えさせる集計フィールドを作りました。
                      データ自動入力で「1」を入力させても同じ結果を得られましたが、どちらがベストな方法か分からずそのままです。

                      jintakatomozさんの count の使い方は、上記のような結果を得るためということですね。
                      今度試してみます。

                      ところで、

                      > 日付の自己リレーションを作って
                      > Count(シリアル番号)」

                      という文章だけで、なぜ「シリアル番号を打つため」なのか、「販売回数の集計のため」なのか判断できたのでしょうか。Shinさんのファイルのリレーションも、同じように「日付(年月日のことですよね?)」で自己リレーションを作っていますが・・・。

                      • 8. Re: シリアル番号を 1 に戻したい
                        jintakatomoz

                        日付の自己リレーションで1日分がまとまるので

                        Countで数えれば簡単だと思いましたので...

                        グローバル日付と日付をリレーションしても良いかも

                        お試し下さい

                        • 9. Re: シリアル番号を 1 に戻したい
                          nkk47

                          jintakatomozさん

                          コメントをありがとうございます。

                          > 日付の自己リレーションで1日分がまとまるので

                          ここでおっしゃられている「日付」とは、年月日フィールドのことでしょうか。

                          > グローバル日付と日付をリレーションしても良いかも

                          グローバル日付とは、年月日フィールド(フィールドタイプ「日付」)をグローバル格納にするという事でしょうか。

                          稚拙な質問ばかりで申し訳ございません。
                          引き続きまして御教示の程、宜しくお願い致します。