みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FM14 Win11
こちらで勉強させていただいてます。
よろしくお願いします。
テーブル1:商品マスタ
フィールド:商品名、仕入単価
テーブル2:在庫管理
フィールド:商品名、日付、入庫数、出庫数、棚卸数、在庫数、s_在庫数合計、在庫金額
在庫数=入庫数 - 出庫数 + 棚卸数
在庫金額=GetSummary ( s_在庫数合計 ;商品名) * 商品マスタ::仕入単価
商品名をソート対象とした小計パートを置き、3つのフィールド(商品名、s_在庫数合計、在庫金額)を配置して、
商品別の在庫数と在庫金額を表示しているのですが、在庫金額の合計がうまく取れません。
ご教授お願いいたします。
やり方は色々あると思いますが、その計算式だと在庫金額が非保存になって、商品マスタの仕入単価を改定すると過去の値も変わってしまいます。
レコードごとの入出庫金額とかというフィールドを作って
(入庫数 - 出庫数 + 棚卸数) * 商品マスタ::仕入単価
それを集計すれば、出ますよね。
このフィールドも計算だと非保存になるので、計算値自動入力にした方がいいでしょう。
> 在庫金額=GetSummary ( s_在庫数合計 ;商品名) * 商品マスタ::仕入単価
これを
在庫数 * 商品マスタ::仕入単価
としてそのレコードの金額を出し、
それを集計フィールドで合計するのが常套手段ですね。
Offline
薬品マスター側で、在庫管理::s_在庫数合計 * 商品マスタ::仕入単価 としておけばいいでしょう。
ただ、どの方法でも棚卸数が入らないように、ちょっと工夫が必要でしょう。
Last edited by Shin (2022-11-02 16:34:54)
Offline
himadaneeさん、チポさん
回答をいただきありがとうございました。
>(入庫数 - 出庫数 + 棚卸数) * 商品マスタ::仕入単価
>在庫数 * 商品マスタ::仕入単価
教えていただいた計算フィールドを作成し、その集計フィールドをレイアウトに配置することで、在庫金額の合計を表示させることができました。
上記の計算式を最初に書いたのですが、そのフィールドを小計パートに配置した時に、
商品別の正しい合計値が返されなかったので、集計するという考えに及びませんでした。
計算値自動入力でフィールドを配置しても空白のままなのですが、何か足りない手順があるでしょうか。
追加の質問で恐縮ですが、教えていただけると幸いです
Shinさん
回答ありがとうございます。
いつもサンプルで勉強させていただいております。
>薬品マスター側で、在庫管理::s_在庫数合計 * 商品マスタ::仕入単価 としておけばいいでしょう。
>ただ、どの方法でも棚卸数が入らないように、ちょっと工夫が必要でしょう。
すみません、私のレベルでは難しくて理解が追いつきませんでした。
棚卸数は月末の日付で仮想出荷、月初の日付で繰越入荷の数を入れており、
月で絞り込みをしてから商品でソートして、集計を表示させております。
集計する期間の途中で仕入単価が変更されませんか。最近の市場では、頻繁に練上げのお知らせがきています。
Offline
月単位で棚卸し処理されているのでしたら、月初の繰入は集計にいれて、月末の繰出数を除外しておきます。ただし、年間通しの集計をするときには、年初の繰入は集計に入れますが、年末の繰出は除外します。途中月の繰越は相殺されるので、カウントする以外には栄養ありませんが、処理を簡単にするために、全て除外しておき、期間頭の繰入を対象にする、というのがいいかもしれません、
Offline
集計する期間の途中で仕入単価が変更されませんか。最近の市場では、頻繁に練上げのお知らせがきています。
仕入単価の変更は月単位ですので、集計期間(月)においては問題はないのですが、
仕入単価を変更すると過去の集計結果が変わってしまうのは困りますね。
構造的にどういう工夫が考えられますでしょうか?
単価マスター 在庫テーブル
薬品ID = 薬品ID
設定日 ≤ 入出庫日
単価
と設定したリレーション(単価マスター側を設定日で降べきソート)で単価を参照します。
自動計算やルックアップでその時点の単価を保たせておいてもいいのですが、病院によっては仕入れ業績をみて卸しさんと価格交渉して、遡って価格改定する商習慣が結構あります。その場合にはデータを再設定することになりますので、面倒かもしれません。
ふと思ったのでですが、月末在庫は仮装出庫数として計算できているのでは。それに単価をかけるだけで求められます。
Last edited by Shin (2022-11-02 17:38:53)
Offline
Shinさん
ありがとうございます。
何故か自動計算が表示されないこともあり、ご提案いただいたリレーションを組んでみます。
仮想出庫数は月末在庫数を見ながら入力しています。
年単位で集計した時に繰越数を相殺させる役割だけになっています。
月末の在庫数を計算させて、それを設定すれば、自動で計算できますよ。
薬品ごとの集計値をエクスポートして、インポートしておけば一気に計算できますし、薬品ごとに絞り込んで集計値を取得し、繰越と繰入の2レコードを作る方法もあります
Last edited by Shin (2022-11-03 10:18:35)
Offline
ふと思ったのでですが、月末在庫は仮装出庫数として計算できているのでは。それに単価をかけるだけで求められます。
s_在庫数合計の集計フィールドをそもそも使用する必要がない、と仰っていることにようやく気付きました。
繰越数と仮想出庫を別フィールドに分けて、仮想出庫に単価を掛けた計算フィールドで表示させることができて、全てがクリアでシンプルになりました。
昨日ご提案いただいたリレーションを組みました。
仕入価格が変更になると同じ商品名のレコードを増やすことになるので、仕入価格フィールドを商品マスタテーブル(各スペックで複数のフィールドがあり、別レイアウトにルックアップしている)から切り離して、単価テーブルを設けました。
教えていただいたコメントでまだ理解できていない部分もありますので、過去スレも見ながら引き続き勉強していきます。
Offline
Shinさん
サンプルの提供ありがとうございます。
今日は仕事場ではないので確認できていませんが、またこれで勉強させていただきます。
取り急ぎお礼まで。
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 595.52 KiB (Peak: 612.43 KiB) ]