みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FM初心者です。
下記のような流れで、在庫一覧を作成したいのですが、集計の仕方が良く分からず悩んでいます。
例えば、未引取在庫数123=3+(100+150+120)-(100+150) と表示したいのですが、3=3+100-100 となってしまいます。
説明も未熟で恐縮ですが、お力を貸していただけますと幸いです。
●流れ
(各担当者が) (残りを) (別の担当者が)
入庫 → 引取 → 使用 → 返却 → 再引取 → …
↑ ↑ ↑
未引取 各担当者 倉庫
●在庫一覧イメージ
<在庫一覧テーブル>
場所 材料名 巾 単価 繰越在庫数 未引取在庫数 倉庫在庫数 各担当者在庫数 在庫金額
未引取 A 50 20 3 123 2,460
倉庫 A 50 20 4 24 480
あ A 50 20 5 255 5,100
い A 50 20 6 26 520
う B 50 30 7 … …
*未引取在庫数=繰越在庫数+入庫M数-引取M数
*倉庫在庫数=繰越在庫数+返却M数-再引取M数
*各担当者在庫数=繰越在庫数+引取M数-使用M数-返却M数+再引取M数
*下記の各テーブルと場所(入庫テーブル以外)・材料名・巾でリレーション
●テーブル
<入庫テーブル>
ロットNo. 材料名 巾 入庫M数
a A 50 100
b A 50 150
c A 50 120
d B 50 200
e B 50 180
f B 100 100
g C 50 120
<引取テーブル>
場所 ロットNo. 材料名 巾 引取M数
あ a A 50 100
あ b A 50 150
あ c A 50 120
い d B 50 200
<使用テーブル>
場所 ロットNo. 材料名 巾 引取M数
あ a A 50 80
<返却テーブル>
場所 ロットNo. 材料名 巾 引取M数
あ a A 50 20
<再引取テーブル>
場所 ロットNo. 材料名 巾 引取M数
あ a A 50 20
テーブルの構成が、まずいです。
<入庫テーブル> 、<引取テーブル>、<使用テーブル> 、<返却テーブル> 、<再引取テーブル> の内容は、すべて入出庫データですね。それらをすべて入出庫、という1テーブルにまとめてしまいます。
また、再引取などの項目は項目名として別に設定しますが、それらが、倉庫に対して、入庫なのか出庫なのかをはっきりさせます。(上の説明では、返却と再引き取りの意味がまったくわかりません)
それを、商品ごとに場所で集計すればいいです。
Last edited by Shin (2022-07-19 16:04:52)
Offline
Shin様
かなり検討が遅くなりまして、申し訳ございません。
入出庫データを1テーブルにまとめなくてはいけない、ということは理解できました。
保管場所を、3か所(未引取、各担当者、倉庫)別々に集計したい場合はどのようにしたらよいか悩んでおりました。
流れ、在庫一覧イメージ、テーブルについて、分かりにくい点の加筆、繋がる数字での置換、テーブルの修正をしました。
まだまだ説明も未熟であるとは思いますが、ご指導いただけますと幸いです。
特に、例えば、入出庫データの”引取”区分のレコードは、未引取在庫と各担当者在庫の両方にかかわってくるため、どのように集計したらよいかを悩んでおります。
●流れ
(各担当者が) (残りを) (別の担当者が)
入庫 → 引取 → 使用 → 返却 → 再引取 → …
↑ ↑ ↑
未引取 各担当者 倉庫
①入庫後、各担当者が引き取るまでは、”未引取在庫”として集計
②各担当者(あ、い、う…)が引き取ってから、使用し、残りを倉庫に返却するまでを、”各担当者在庫”として集計
③各担当者が倉庫に返却してから、別の担当者が引き取るまでを、”倉庫在庫”として集計
●在庫一覧イメージ
<在庫一覧テーブル>
場所 材料名 巾 単価 繰越在庫数 未引取在庫数 倉庫在庫数 各担当者在庫数 在庫金額
未引取 A 50 20 3 183 3,660
未引取 B 100 35 4 104 3,640
未引取 C 50 30 5 125 3,750
倉庫 A 50 20 6 56 1,120
あ A 50 20 7 127 2,540
い A 50 20 8 209 4,180
う B 50 30 9 … …
*未引取在庫数=繰越在庫数+入庫M数-引取M数
*倉庫在庫数=繰越在庫数+返却M数-再引取M数
*各担当者在庫数=繰越在庫数+引取M数-使用M数-返却M数+再引取M数
●テーブル
<入出庫テーブル>
区分 場所 ロットNo. 材料名 巾 入庫M数 引取M数 使用M数 返却M数 再引取M数
入庫 a A 50 100
入庫 b A 50 150
入庫 c A 50 120
入庫 d A 50 200
入庫 e A 50 180
入庫 f B 100 100
入庫 g C 50 120
引取 あ a A 50 100
引取 あ b A 50 150
引取 あ c A 50 120
引取 い d A 50 200
使用 あ a A 50 80
使用 あ b A 50 100
返却 あ a A 50 20
返却 あ b A 50 50
再引取 い a A 50 20
入庫と返却は意味が違うのですか。返却されたら、再出荷の場合は調整品として出荷されるのでしょうか。
また、引取が予定より少なく余った状態で、倉庫在庫と合わせて再出荷された場合は、2伝票で、引取00、再出荷00と出庫されるのですか。
また、上で示されている在庫一覧の表は、表の組み方が変だと思いますが。
入庫 という項目には当然入庫している数しか入りませんが、入庫 という行があり、その行では入庫以外のセルが存在している意味がないです。
Last edited by Shin (2022-08-20 16:39:47)
Offline
Shin様
入庫と返却は意味が違うのですか。返却されたら、再出荷の場合は調整品として出荷されるのでしょうか。
また、引取が予定より少なく余った状態で、倉庫在庫と合わせて再出荷された場合は、2伝票で、引取00、再出荷00と出庫されるのですか。
言葉足らずで、すみません。
入庫と返却について、保管場所が異なるという点が大きく違います。
入庫:仕入先から会社が購入して”未引取在庫”という場所へ保管
返却:会社内で、各担当者が使用した余りを”倉庫在庫”という場所へ返却して保管
返却後は、倉庫在庫として保管して、必要となった場合に再引取することになります。
再引取:該当材料・巾の種類が必要になった場合に、別の担当者が引取って使用します。
再引取後は、使用して余った場合には、再度倉庫に 返却 してM数が0になるまで繰り返します。
受注があってから必要分を注文して入庫し、その後入庫分全て必ず引き取られることになります。
また、1ロットは1つの巻物となっていますので、分けることはできず、必要分だけ使って余りを返却するということになります。
このため 入庫M数=引取M数 となります。
また、返却M数=再引取M数 となります。
とりあえず、入出庫の動きも見えるようにしたサンプルです。
https://www.dropbox.com/s/pq57xwbsuub9k … 2.zip?dl=0また、上で示されている在庫一覧の表は、表の組み方が変だと思いますが。
入庫 という項目には当然入庫している数しか入りませんが、入庫 という行があり、その行では入庫以外のセルが存在している意味がないです。
サンプルのご提供、本当にありがとうございます。
高度な技術を採用していただいており、このような集計の仕方もあるのかと驚き、勉強し直しているところです。
後に、ロットNo.毎の画面も必要であると思っていましたので、とてもありがたいです。
在庫一覧イメージは、私も無駄があると多いつつも、どのようにしたらよいか分からなかったところです。
あと、下記の2点も悩んでおります。ご教示いただけますと幸いです。
①ロットNo.毎には分けず、材料名と巾のみが一致するもの毎に、”未引取在庫”と”倉庫在庫”と ”担当者あ在庫” ”担当者い在庫” ”担当者う在庫”・・・と分けて在庫金額を集計して一表にしたい。
(実際には材料名と巾の組み合わせは200位あります。)
② ①を、締日ごとにエクセルにエクスポートしたい。(繰り返しフィールドはエクセルにエクスポートできないと表示が出ます。)
①のイメージ
例 <未引取在庫>
材料名 単価 巾:50 100 150 200 250 300 … 在庫金額
A 20 100 50 100 300
B 15 20 200 610
C 30 150 200 475
・
・
・
商品マスターでその集計結果を取得しておき(実運用では、期間の制限が必要でしょう)、別テーブルに繰り返しを分解してインポートし、それをクロス集計するのが簡単でしょう。
サンプルを更新しています。
繰り返しフィールドを使ったクロス集計していますが、それを複数の計算フィールドと集計フィールドでおこなっておけば、直接エクスポートできます。
各材料に対して、幅が規格であるのですね。最初にこれを書いていただけていたら、商品マスターの持たせ方が異なります。幅やロット番号を、枝番扱いにします。
今の持たせ方では、今後の処理が非常に煩雑になる可能性が高いです。
Last edited by Shin (2022-08-05 18:31:03)
Offline
Shin様
理解が非常に遅く恐縮です。
親切に教えていただきまして、本当にありがとうございます。
各材料に対して、幅が規格であるのですね。最初にこれを書いていただけていたら、商品マスターの持たせ方が異なります。幅やロット番号を、枝番扱いにします。
今の持たせ方では、今後の処理が非常に煩雑になる可能性が高いです。
説明が上手くできていなくて非常に申し訳ないのですが、何度考えても、枝番扱いにするという意味が良く分かりませんでした。
テーブル数自体を変更するという意味なのか、フィールド数を変更するという意味なのか、それとも全く違う意味なのか、申し訳ございませんが教えていただけますと幸いです。
お手数をおかけしますが、よろしくお願いいたします。
材料名のテーブルを作ります。それの子テーブルとして、規格(幅)のテーブルを作っておきます。(サンプルは、この子のテーブルがマスターになっています)
おそらく、商品の扱いとして、商品名で検索し、規格を選択、という手順でしょう。今のサンプルの商品マスターの上に材料名のテーブルを作り、レイアウトを少し改変するだけでも使いやすくなるかと思います。
Offline
Shin様
いつもご丁寧に教えていただき、ありがとうございます。
別の部分で分からないことがあるので、教えていただけますとありがたいです。
繰り返しフィールドを使ったクロス集計していますが、それを複数の計算フィールドと集計フィールドでおこなっておけば、直接エクスポートできます。
①複数の計算フィールドと集計フィールドで行おうとしましたが、上手くいきませんでした。具体的に教えていただけますと幸いです。
②繰越処理をしたいです。
作成していただいたFMでは、最初の繰越を7月1日で入れていただいておりますが、7月31日締め後の在庫数を8月1日付で入庫処理する方法が分かりやすいかと思っていますが、
どのようにしたらよいか悩んでいます。
何度もお手数をおかけして申し訳ございませんが、ご教示の程よろしくお願いいたします。
繰越処理は、集計する前の生データで十分でした。
そのデータを入出庫テーブルへインポートし、棚卸しの日付を設定(全置換)し、項目を繰越にします。
さらに、同じデータをもう一度インポートし、日付を翌月初、項目を繰入で全置換します。
ただ、入出庫テーブルの計算式の繰り返しフィールドの計算式を少し改変しておきます。(繰越でマイナス、繰入でプラスにしておきます)
表示にすこし工夫をくわえてあります。(月ごとに区分して表示)
すでに棚卸しをしているかどうかはチェックしていませんので、考えてみてください。
Last edited by Shin (2022-09-03 12:06:37)
Offline
Shin様
ご回答ありがとうございます。
入出庫の生データを全件インポートしマイナス・プラスとするとデータが非常に重くなるのではないかと思われます。
データが重くならない方法で、繰越処理できる方法はないのでしょうか?
入出庫のデータではなく、棚卸しに使う商品ごとの在庫数のデータを動かします。このデータは、元の入出庫のデータを締めの期間ごとに集計したものです。
これが最小の動きでしょう。
Last edited by Shin (2022-08-21 08:43:37)
Offline
Shin様
何度もご丁寧に教えていただき、ありがとうございます。
追加、追加の質問で恐縮ですが、在庫管理と発注業務を結び付けたいと思っています。
発注時に、現在の在庫数を把握したうえで、必要数から不足する分を注文するレイアウトを作成したいのですが、上手くいきません。
作成していただいたサンプルについて、 入出庫テーブル の st_入出庫数フィールド(現在の在庫数) の数字を発注業務に係るレイアウトに表示できるようにしようと思っていますが、
そのままでは表示できる訳でもなく苦しんでいます。どのようにしたらよいか教えていただけますと幸いです。なるべくシンプルな方法であると嬉しいです。
入出庫数を、繰り返し個別に集計しているフィールドと別に、全体を合計する集計フィールドを作ります。商品のマスターからそのフィールドを参照すれば、今現在の在庫数(時間条件をリレーションに含めれば、その時点での在庫数)が求められます。
もし、発注表という別のテーブルのレイアウトの中から、商品リストをポータルで表示させて、ということでしたら、商品リストの中に在庫数という計算フィールドを作り、その在庫数を参照すればいいです。
もし、発注数量通りに納品される(分轄納入がない)のでしたら、発注明細を入出庫テーブルのレコード(入出庫の実レコードとしては扱わない)としてそのまま入れ込んでしまい、入庫日が設定されれば実入庫レコードに変更するような仕組みが作れます。検収に一手間加えると、分納にも対応できます。この方式にすると、レコードの移動が不要で、非常にシンプルになり、おもしろいかもしれません。
https://www.dropbox.com/s/s84pe29its847 … 2.zip?dl=0
各営業の引取などを入力する仕組みを作れば、完全ですね。商品に、区分、場所、数量を設定するだけですので、簡単ですよ。
Last edited by Shin (2022-09-05 17:05:51)
Offline
Shin様
いつも大変お世話になっております。
色々と教えていただいたことから学ばせていただき、作成したいものの全体像は見えてきたところで非常に感謝しております。
今度は公開するにははばかれる細かい条件も追加して、自分なりに作成しているところです。
何度もつまづいて考えながら作成しているのですが、現時点でつまづいている点について教えていただけますと幸いです。
サンプルの「棚卸し」テーブルの「在庫数_」フィールドについて、計算式を「Case ( Div ( 巾[1] ; 50 ) = Get ( 計算式繰り返し位置番号 ) ; 在庫数[1] )」としていただいております。
実際には、巾は50の倍数ばかりではなく、”50,100,110,115,120,130........200,260”となっております。部分的に書き換えてもどうしても上手くいかないので、どのような計算式にしたらよいのか教えていただけないでしょうか?
とりあえずは、
Let (
VL = List ( 50 ; 100 ; 110 ; 115 ; 120 ; 130 ; ........ ; 200 ; 260 ) ;
Case ( 巾[1] = GetValue ( VL ; Get ( 計算式繰り返し位置番号 ) ) ; 在庫数[1] )
)
とすればいいですが、部材によっては巾のラインナップが異なると思います。商品マスターを巾ごとに作り、または商品マスターの中で部材ごとの巾マスターを持たせて、その値一覧を使われるといいでしょう。
Last edited by Shin (2022-09-21 11:47:26)
Offline
Shin様
いつも大変お世話になっております。
先日の件は、値一覧を使用し解決しました。ありがとうございました。
もし、発注数量通りに納品される(分轄納入がない)のでしたら、発注明細を入出庫テーブルのレコード(入出庫の実レコードとしては扱わない)としてそのまま入れ込んでしまい、入庫日が設定されれば実入庫レコードに変更するような仕組みが作れます。検収に一手間加えると、分納にも対応できます。この方式にすると、レコードの移動が不要で、非常にシンプルになり、おもしろいかもしれません。
記載いただいた方法は、とても素晴らしく是非利用したいと思いました。
ただ、分割納入はあるので、「検収に一手間加えると、分納にも対応できます。」をどのようにしたらよいか分からず、悩んでおります。
分からないことばかりで大変恐縮ですが、具体的に教えていただけますと幸いです。
すでに上のサンプルに組み込んでいたはずですが。
Offline
Shin様
お世話になっております。
大変失礼いたしました。
「検収」スクリプト実行で分納対応するのでしょうか。
ずっと考えていたのですが、どうしても使用の仕方が分かりませんでした。
大変申し訳ないのですが、使用の仕方を教えていただけないでしょうか。
(「検収」レイアウトでは、数量変更はできないと思うのですが、どのように数量を分けたらよいのでしょうか。)
検修のスクリプトで、検修レイアウトへ移動します。そこの検修ボタンで、全数、分納などが設定できます。
Offline
Shin様
ありがとうございます。
お忙しいところ大変恐縮ですが、もう少し具体的に教えていただけないでしょうか。
「fm-aid13297」ファイルの「検収」レイアウトにおいて、「入庫日」と「区分」が空の状態で「検収」スクリプトを実行すると、「fm-aid13297-2」というファイルが出現しました。
「fm-aid13297-2」ファイルの「検収」ボタンを押すと、「入庫日」フィールドに”今日の日付”が入力されることと「区分」フィールドに”入庫”が入力されるのみとなっています。
「fm-aid13297」ファイルも「fm-aid13297-2」ファイルも「数量」フィールドは”100”となっており、変更はできない状態となっております。
何かこちらの設定等が誤っているのでしょうか。
検収スクリプトを走らせると、発注レコードから、検収(入庫)していないレコードが抽出されます。
その検収ボタンで、検収スクリプトを走らせると、そのレコードの検収を行います。数量とロット番号を入力し、検収を行うと、その日付で発注数が検収されたとします。異なるロット番号のものがある場合は、第一のロット品の数量とロット番号を入力し分納、次のロット品を入力します。未納分がある場合は、納入されたロット番号と数量を入力して、未納をクリックすると、未納分の未検収レコードが作成されます。未納分が残る場合は、発注数と納入数を比較して行けば、自動処理も可能です。
ちょっと動きが不自然かもしれませんので、運用に合わせてご自分で改良してみてください。
Last edited by Shin (2022-10-04 11:08:54)
Offline
Shin様
なるほど!です。
長い期間にわたって、多くのことをご親切・丁寧に教えていただき、本当にありがとうございました。
引き続きファイルメーカーで色々なものに挑戦しようと考えておりますので、またその際にはどうかよろしくお願いいたします。
Shin様
いつも本当にありがとうございます。
下記リンク先で、別のタイトルを付して質問をさせていただいたのですが、こちらの質問の続きにした方が説明が複雑にならないと思いましたので、再度こちらでお願いしたく存じます。
https://fm-aid.com/bbs2/post.php?tid=13552&qid=79907
そのどの情報をクロス集計しているのでしょうか。
集計している期間などで絞り込んでいるのではないかと思うのですが、元データで、対象外のデータ(期間内の数字が0のもの)を除外すればいいのではないでしょうか。
作成していただいたサンプルでは、「棚卸し集計」スクリプトを実行すると”商品A”は”場所未引取”の”50”のみに数字が入っており、 ”場所あ” ”場所い” ”場所う” ”場所倉庫”の行には何も数字が入っていないかと思います。
「商品マスター」テーブルの「在庫数」フィールドから数字を転記しているようですが、対象外データ除外の方法が分かりません。(スクリプトに何か加えるのでしょうか?)
分からないことばかりで恐縮ですが、ご教授いただけますと幸いです。
色々と調べて、やっと自己解決しました。
ありがとうございました。
Pages: 1
[ Generated in 0.007 seconds, 10 queries executed - Memory usage: 647.73 KiB (Peak: 700.63 KiB) ]