みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります。
ファイルメーカーにて在庫管理を行っています。
初心者ゆえ質問の表現に不備があるかと思いますがよろしくお願いします。
環境はFilemakerPro11、Macです。
商品の在庫管理(出庫、入庫、在庫数)を行いたく、以下のような構成をしました。
テーブル「商品」
フィールド
・商品ID
・商品名
・繰越在庫数(システムを開始する前にもともとあった在庫の数を手入力)
・基準日(日付フィールド、グローバル)
・在庫数(計算フィールド、繰越在庫数 + 入出庫::入庫数 - 入出庫::出庫数)
テーブル「入出庫」
・商品ID
・発生日
・入庫数
・出庫数
リレーション
商品ID = 商品ID
AND
基準日 ≧ 発生日
です。基準日を入力するとその日時点の在庫数がわかるといった感じです。
現在の在庫数や入庫出庫の履歴がわかるのはいいのですがここで問題が。
例えば今(5月)、先月(4/1〜4/30)の入出庫状況が知りたいと思った時、どのようにしたらわかるのかわかりません。
知りたい情報は、4月1日から30日までの入庫数、出庫数、および30日時点の在庫数です。
新たにテーブルやフィールドを作ったりリレーションをする必要があるのでしょうか?
わかりにくい質問ですいません。
アドバイス何卒よろしくお願いします。
基準年月(フィールド)を追加して
日付の年x100 + 日付の月 (計算式を割り当てる)
2014/5/5 → 2014*100+5 → 201405
これでリレーションとか検索をしてます
ワイルドカードを使う方法
2014/5/*
これで検索出来ました(汗)
ありがとうございます。
入荷数、出庫数は適正に計算出来るのですが、在庫数の計算がうまくいきません。
始めに入力している繰越在庫数が固定のためかと思われます。
先月末の繰越在庫数を常に計算するようにしたら良いのでしょうか?
詳しい方アドバイスよろしくお願いします。
在庫を知るのなら、
入出庫テーブルだけでできますし、その方が簡単でしょう。
書かれたフィールドに加えて、
前在庫数
在庫数
を作り、前在庫数は直前のレコードを参照してルックアップ。
最初のレコードには
・繰越在庫数(システムを開始する前にもともとあった在庫の数を手入力)
これですね。
在庫数は計算フィールドとして、計算できますよね。
これならどの期間でも切り取ってみることが出来ます。
Offline
繰越在庫数を、システムが稼働する前日で入庫させておけば、全体の処理が簡単になりますよ。
その方法ならば、前月末の在庫数も、日付のリレーションを張って、合計計算だけで済みます。
チポさんの前値のルックアップですと、もしも過去のデータの修正があると、それ以降の数値を書き換える必要が出るので、その時にはちょっと面倒かな。
Offline
>在庫数(計算フィールド、繰越在庫数 + 入出庫::入庫数 - 入出庫::出庫数)
チボ様がご指摘されてますが
直前のレコードの在庫数が反映されてないような・・・
繰越在庫数 +sum(入庫数)-sum(出庫数)
これではダメでしょうか!?
Shinさんご指摘のとおり、過去の編集が有ると面倒ですね。
しかし、
固定値にするメリットも少なからず有ります。
私はこちらを取りますね。
Offline
横からですが、便乗質問させて下さい。
チポ様のご回答
書かれたフィールドに加えて、
前在庫数
在庫数
を作り、前在庫数は直前のレコードを参照してルックアップ。
『前在庫数に直前のレコードを参照してルックアップ』 の方法がわかりませんでした。
テーブルは「入出庫」だけです。
「データベースの管理」→「フィールドオプション」→「入力値の自動化」タブの中の
「直前に参照したレコード値」にチェックを入れるということで合っていますか?
「直前に参照したレコード値」にチェックを入れてレコードを追加してみましたが、前在庫数は空欄のままでした。
初歩的なことかと思いますが、よろしくお願いします。
リレーション用に入出庫順が分るフィールドを作ります。
例えば、
レコードID
シリアル番号
入出庫日付け(タイムスタンプ)
等、でいいでしょう。
リレーションを
商品ID = 商品ID
and
入出庫順 > 入出庫順
入出庫順の降順でソート指定
とすると、
直前の入出庫レコードを参照できます。
Offline
チポ様
ご丁寧な解説ありがとうございます。
リレーションの商品IDと入出庫順(降順)で判断するんですね。
基準日と発生日を使うのかと思って試行錯誤しましたが、入出庫順と教えていただいてよく理解できました。
ありがとうございました。
『前在庫数に直前のレコードを参照してルックアップ』 の設定ですが、「入力値の自動化」タブの中の「ルックアップ値」から設定でよろしいでしょうか?
「直前に参照したレコード値」で設定すると、適切な値が入らなかったので、「ルックアップ値」の方に変更してみたのですが、『ルックアップ』と書かれていたのでこちらで合っているのかな?と思ったのですが・・・
それと、エクセルから入出庫データをインポートして、前在庫数と在庫数を反映させたいのですが、「フィールド内容の再ルックアップ」をしてみたら、エラーになってしまいました。
「フィールド前在庫数に基づいて値をルックアップするフィールドがありません」となってしまいました。
まとめてインポートしたレコードが6000件ほどあり、完全にお手上げ状態です・・・
どうしたら前在庫数をルックアップできるでしょうか?
重ねての質問で恐れ入りますが、ご教示よろしくお願いいたします。
チポ様
うんうん悩んでから質問させていただいたのですが、再ルックアップの件はわかりました!
フィールドの指定の際に「前在庫数」を指定するものだと思い込んでいいました。
スクリプトで試そうと思って、ヘルプを読んだら照合フィールドを指定するとあり、びっくり。
やってみたらちゃんとルックアップされました。
すみませんでしたm(__)m
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 543.18 KiB (Peak: 563.72 KiB) ]