みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
環境:FMP13、Windows7
過去ログの「在庫管理の期首在庫と繰越在庫について」 https://fm-aid.com/bbs2/viewtopic.php?id=1796
などを参考に在庫表に挑戦しています。
上記ログでShin様が回答されていた内容で教えていただきたいことがあります。
繰越の考え方は、期末で擬似的に在庫数を繰越として出庫し、期首に擬似的に繰り込みとして入庫させると、期日だけで抽出した場合にも、在庫数への考慮が不要になるので、良いかと思います。
ただ、棚卸数が合わない場合は、棚卸差異や棚卸減耗として計上しておき、実在庫と合わせる事になると思います(簿記と連動させる場合)が、今の運用や、経理との話で、実際の作り方は変わるでしょう。
棚卸数が合わなかった場合の処理は具体的にはどのようにしたらいいですか?
月末に在庫数(理論上)を疑似的に繰越として出庫して、月初に擬似的に繰り込みとして入庫させ、
棚卸数の方が多かったものは過分を入庫として処理をして、適用項目には「差異入庫」としてみたところ
在庫数=Sum(自己リレーション::入庫数)-Sum(自己リレーション::出庫数) の結果がおかしなことに
なってしまいました。
例えば、7月31日の商品Aの在庫数が100で、これを7月31日に疑似的に100で繰越出庫して、
8月1日に疑似的に100で繰込入庫して、棚卸数が120だったので、120-100=20 の差を
「差異入庫」として入庫処理をしました。
そうすると、8月1日の在庫数が 20 からスタートしてしまい、数が合わなくなってしましました。
棚卸差異として計上する方法が間違っていると思いますので、ご教示よろしくお願いします。
単に、繰り越し入庫が集計されていないだけではないでしょうか。
Offline
Shin様 ありがとうございます。
入出庫テーブルの作り方などを上記のShin様のサンプルを参考にさせていただいて、
在庫表は下記の旅人様のサンプルを参考にさせていただきました。
「在庫推移表のつくりかた」 https://fm-aid.com/bbs2/viewtopic.php?id=1881
期間を 開始 ○月○日 〜 終了 ○月○日 と選択して、その期間の在庫を表示。
開始日を期首から選択をすると、適正な在庫数を表示しますが、
翌月から選択をすると、理論上の在庫数と棚卸実数の差分を在庫数として
スタートしてしまいます。
この在庫表とは別に、商品のマスターテーブルでは、繰越入庫と繰込入庫、
差異入庫もちゃんと反映されているので、入庫の集計は取れているのだと思います。
在庫表の方の、Dataテーブルの日別在庫の値がおかしくなっています。
日付のリレーションが間違っているのかもしれません。
今は外出先なので戻りましたら、リレーションなどを確認してみます。
他に何か原因として考えられることがありましたら教えて下さい。
よろしくお願い致します。
いろいろな方の質問や回答、サンプルを参考に在庫表に挑戦しているのですが、
いまいち勉強不足で理解が追いついていない状態です。
ダミーデータのファイルをアップロードしますので、間違いや期間選択などの部分をご指導願います。
https://app.box.com/s/h35twn584t7tfb6yznqh
処理の流れ
1)在庫数を表示するStock listテーブルのレイアウトから開始日と終了日を選択
2)入出庫を記録するIN_OUTテーブルを上記の期間で絞り込み
3)日にちごとの在庫数に加工するため、Dataテーブルにインポート
4)関連するレコードのみをStock listレイアウトに表示
期間を期首から選択する分には問題ないのですが、月をまたぐと前日までの在庫数が反映されなくなります。
ダミーデータの場合、IN_OUTテーブルには7/29から8/2までのデータを入力しました。
期間の開始を7/29にすると、正しい在庫数が表示されます。
この開始日を7/30など途中から始めると、日別在庫が前日までの在庫数を0とみなして、
7/30の出庫数から在庫数がスタートします。
前日までの在庫数を加算する方法、ファイルの間違いなどをご教示お願いします。
ご指導よろしくお願いしますm(_ _)m
すみません…。
沈んでしまったので上げさせて下さい。
どなたかご教示宜しくお願いします。
m(_ _)m
何度もすみません。
レコードのインポート部分のスクリプトが間違っていたので修正しました。
よろしくお願いします。
見たところ、問題ないようですが。
どこのレイアウトで問題が起きていますか。
Offline
パッと見
7/31に繰越入庫や繰越在庫を入力してありますが
これも集計に入るわけで7/31の在庫表示が0というのも変では。
それと期間で表示したいのに実質は修了日までの全日付が日付表示されるわけで
それでも構わないのですか。
Offline
こんなのではいけないのサンプル
http://yahoo.jp/box/r8P4Tv
test_test.fmp12
Offline
Shin様 ありがとうございます。
パニクっていて、いろいろと説明が足りなくて申し訳ありません。
旅人様のご指摘の通りでして、月の途中から期間を選択すると前日までの在庫数が加算されていなかったり、
月末日の在庫数が0で表示されています。
旅人様 ありがとうございます。
はい。ご指摘の通りでございます。
それと期間で表示したいのに実質は修了日までの全日付が日付表示されるわけで
それでも構わないのですか。
7/15~8/15までの期間を選択した場合、入出庫テーブルに登録されている期間内の日付が
全部表示されるということですよね?
それで構いません。
旅人様 ファイルの修正をして下さってありがとうございます。
お手数をお掛けしてしまい申し訳ありませんでした。
まさにまさに!希望通りの結果です!
今からファイルで勉強します。
本当にありがとうございます。m(_ _)m
旅人様 お礼が遅くなってすみません。
作っていただいたサンプルで学習させていただきました。
月末の繰越出庫と、月初の繰込入庫をしないで、差異だけを計上するという解釈で合っていますか?
お時間がございましたら、ご指導よろしくお願いします。
お世話になっております。
旅人様に作っていただいたサンプルで実データを使って動かしてみるのですが
スクリプトの一番最後の、IN_OUTテーブルからStock listテーブルへの「レコードのインポート」で
エラーが発生してしまいます。
エラー番号:729
エラー内容:インポート中にエラーが発生しました。 レコードをインポートすることができません
見た感じはインポートは完了しているように見えるのですが、そのようなエラーが出て、
インポートにも時間がかかり、Stock listを開いたり、レコードをスクロールしたり、
レコードの検索をしようとするとハングアップして「応答なし」となってしまいます。
しばらく待てば使用できるようになるのですが、これはレコード数が多いことが原因ですか?
ダミーデータでテストをする分には全く問題なく表示、検索などできています。
IN_OUTテーブルのレコード件数は30,000件ぐらいで、品番の種類は300件ぐらいです。
差異入庫と差異出庫を自己入庫と自己出庫に含めたくない場合はどうしたらよいですか?
実際に仕入れた入庫数と、出荷した出庫数だけを表で確認できるようにしたいのですが
含めないと在庫数がちゃんと拾えないんですよね?
ちょっとどうしたらよいのか、煮詰まってしまいました。
どうかご指導よろしくお願いします。
m(_ _)m
インポートはStock listで指定した期間のリレーションでIN_OUTテーブルの
関連レコード(その期間内のレコード)に移動して、Stock listのレコードを
全部削除後に関連レコードの品番だけをインポートしているだけですから、関
連レコード数が多くてもエラーになるとは思えないです。(共有の場合は不明)
スクリプトの関連レコード移動ステップで一時停止するか、その先のステップ
を無効にして手動でインポートしてみるとか。
差異入庫と差異出庫を無効にするのは、入力しないか、IN_OUTテーブルで
グローバルフィールドを作って、これに
入庫
出庫
と改行で入れて、
このグローバルフィールド---=----入出庫フィールド
をSumで使う自己リレーションの照合に追加したらいいはず。
Offline
旅人様 ありがとうございます。
IN_OUTテーブル、レイアウトを開いている時は全然問題ないのですが、
Stock listを開こうとするとカーソルがぐるぐる回って考え中のような状態になり
とても重くなって、「応答なし」となります。
(ファイルメーカーで通常の処理中の時はカーソルは砂時計です)
今の段階ではまだ共有はしていません。
なぜエラーになってしまうのか、全く見当がつかないので、IN_OUTテーブルに
実データをインポートしたファイルをアップロードさせていただきます。
https://app.box.com/s/9h4fke9xyc9layb1c1wn
お忙しい中、恐縮ですがお時間がございましたら見ていただけますようお願いします。
差異入庫と差異出庫は入力はしたいのですが、合計に含めたくないだけなので
教えていただいたグローバルフィールドの方法にチャレンジしてみます。
引き続きご指導いただけますようよろしくお願いします。
こちらの環境ではエラーは出ませんけど、データ量が多いため非保存フィールドの
計算・表示に時間が掛かってかなりもたつきますね。
非保存ではなく実データにするといいのでしょうけど、データ変更時に再計算され
ない(これは構わないかも)し、インポート等に時間を要するかも知れません。
PCの性能に大きく影響される? ちょっと考えてみます。
Offline
実データにしてみたサンプル
http://yahoo.jp/box/FecDP9
エクスポート/インポートがあるので遅いです、共有だともっと遅いはず。
でも集計表示のもたつきは無いはず。
入庫は入出庫が入庫と期首入庫の項目だけ、出庫は出庫だけにしてみました。
Offline
旅人様 お忙しい中ご指導ありがとうございます。
サンプルをダウンロードさせていただきました。
サクサク動いています!!ありがとうございます!!
今から勉強させていただきます。
ひとまず、お礼まで。
ありがとうございました!
旅人様 ありがとうございます。
時間がかかりましたが、やっと旅人様のサンプルをだいぶ理解できました。
繰越出庫と繰込入庫を日付自己入庫、日付自己出庫に含めたくないという希望の
解決方法も教えて下さってありがとうございます。
とても勉強になりました。
お蔭様でStock listレイアウトの表示も、検索もサクサクと快適になりました!
リレーションの方法と計算フィールドの中身は理解できたのですが、スクリプトで
わからないところがあったので、よかったらご教示お願いします。
開始日と終了日で絞り込まれたIN_OUTテーブルを 001.tab にエクスポートするときに
「グループ化の基準」で品番と日付を設定していらっしゃいます。
グループ化をする理由はエクスポートのスピードアップのためですか?
グループ化をしないで試してみたら、遅くなったように感じました。
それと、IN_OUT 5 から Stock list へのインポート終了後、スクリプトデバッガの
「最後のエラー:729」 は変わらず表示されていますが、インポートは無事にできている
みたいなので、このメッセージはスルーしてもよいものでしょうか?
よろしくお願いいたします。
m(_ _)m
もう一つ、いろいろ調べたのですが、方法がわからなかったので教えて下さい。
Stock list の入庫表示と出庫表示の繰り返しフィールドの最後に、
各品番ごとに、選択期間の入庫と出庫の合計を表示したいのですが、
以下の方法で合っていますか?
Stock list IN_OUT5_2 (IN_OUT5 のグラフ内のテーブル)
[品番] = [品番]
Stock list テーブルに 出庫合計=Sum( IN_OUT5_2::出庫数 )
一応、結果は得られましたが、表示用のテーブルに計算フィールドを置いてもよいのかどうか
不安になりまして・・・。
恐れ入りますが、入庫合計と出庫合計の件もご教示よろしくお願いいたします。
m(_ _)m
IN_OUT 5の名前が悪かったですね。全くの別テーブルなので適当に変更して下さい。
このIN_OUT 5にインポートするのは非保存計算値の保存化と日付・品番のセットの単一化が
目的ですが、このテーブルでユニーク制限するより「グループ化の基準」で単一化したものを
インポートした方が速かった?からと記憶しています。で、IN_OUT 5の連結フィールドは不
要ですね。
繰り返しの横合計は普通にSum(繰り返しフィールド)で求められますよ。計算フィールドを置
いても全く問題無いです。
Offline
旅人様 ありがとうございます。
非保存計算値の保存化と、日付・品番のセットの単一化なんですね。
なるほど勉強になります!
> 繰り返しの横合計は普通にSum(繰り返しフィールド)で求められますよ。
なるほどなるほど~~~
わかりやすいご解説をありがとうございます。
Sum関数のヘルプを読んだりしましたが、いまいち頭に入ってこなくて・・・
私にもわかるご説明に感謝感謝です。
この在庫表の件で最後に2つだけ質問させて下さい。
お蔭様で思い通りの在庫表になったので、欲が出てきてしまいました。
すみません。
在庫表示の繰り返しフィールドの最後(右端)に、その期間の最終在庫の金額を
表示できたら、と思っています。
商品(材料)のマスターテーブルに単価を登録してあるので、最終在庫×単価で算出
したいのですが、最終在庫をどう求めたらよいのかわかりません。
もうひとつは、在庫表で表示している期間内の商品の在庫数の合計(総計)を
求めたいのですが、集計フィールドでは出せませんでした。
横の合計ではないので、Sum()関数ではないと思うのですが、こちらも調べて
みましたがわかりませんでした。
わからないことだらけで恐縮ですが、上記2点についてもご教示いただけますよう
お願い申し上げます。
よろしくお願いいたします。
m(_ _)m
最終在庫はLast(在庫表示)です。
>集計フィールドでは出せませんでした。
出ますよ。「在庫表示の合計」にして「繰り返しの集計」を「個別」にすると
各繰り返し行ごとの縦の合計になります。表示は繰り返し。
最後だけでいいなら、最終在庫=Last(在庫表示)の合計という集計フィールドで。
Offline
旅人様 お礼が遅くなってすみません。
今日、できました!!!
ありがとうございます!!!
Last() も 集計の「個別」 も初めてでした。
また大変勉強になり、心から感謝しております。m(_ _)m
完璧な在庫表ができて本当にうれしいです。
旅人様のお力がなければたどり着けなかったゴールです。
本当にありがとうございました。
今後ともご指導いただけますようよろしくお願い申し上げます。
Pages: 1
[ Generated in 0.039 seconds, 7 queries executed - Memory usage: 585.08 KiB (Peak: 621.98 KiB) ]