初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2015-06-22 16:07:38

梅雨空
Guest

部品表の考え方についての質問です。

Win7 / FM13 を使用しています。

下記のような部品表テーブル(項目は、親品番、子品番、使用数)を作り、
完成品Aを10個 出荷した時に、
仕掛品S1~S3、部品B1~B5 の使用数との掛け算により
消費数を求めたいのですが、
どのように考えたら良いでしょうか?

親品番項目には、完成品、もしくは 仕掛品
子品番項目には、仕掛品 もしくは 部品 が入ります。

ちなみに、部品B1,部品B4 は、共有部品となっています。

また、他の考え方等がありましたら、ご教授ください。
宜しくお願いします。

<< 部品表テーブル >>

親品番      子品番   使用数

完成品A----------仕掛品S1   1
             |
             |------仕掛品S2  1
             |
             -------部品B1   1


仕掛品S1---------部品B2       1
             |
             |-------部品B3       2
             | 
              -------部品B4       2


仕掛品S2----------部品B5      3
             |
              -------仕掛品S3    1


仕掛品S3----------部品B1      2
             |
              --------部品B4      1


<< 部品表概念図 >>

完成品A-------仕掛品S1---------部品B2     
          |                     |
          |                     |-----部品B3       
          |                     |
          |               ------部品B4         
          |
          -------仕掛品S2--------部品B5
          |                     |
          |               -----仕掛品S3--------部品B1
          |                      |
          |                                          -----部品B4 
          |
          ----部品B1

#2 2015-06-22 23:51:25

Shin
Member

Re: 部品表の考え方についての質問です。

全体を、親子関係にしてしまいます。一つのテーブルに、
完成品A----------仕掛品S1   1
完成品A  |------仕掛品S2  1
完成品A   -------部品B1   1
仕掛品S1---------部品B2       1
仕掛品S1 -------部品B3       2
仕掛品S1  -------部品B4       2
仕掛品S2----------部品B5      3
仕掛品S2-------仕掛品S3    1
仕掛品S3----------部品B1      2
仕掛品S3--------部品B4      1
というレコードを作っておき、完成品Aから、関連レコードへ移動、新規ウィンドウ、対象レコードから、を、開かれなくなるまで繰り返します。その最後のウィンドウから、下のレコードを持つレコードを対象外にして、インポートしてきます。
文書ではわかりにくいかな。

Offline

#3 2015-06-23 07:14:12

梅雨空
Guest

Re: 部品表の考え方についての質問です。

全体を、親子関係にするのは、わかるのですが、その後の
「レコードを作っておき、完成品Aから、関連レコードへ移動、新規ウィンドウ、対象レコードから、を、
開かれなくなるまで繰り返します。その最後のウィンドウから、下のレコードを持つレコードを対象外にして、インポートしてきます。」 が、
まだ理解できません。もう少し噛み砕いて、説明頂けませんでしょうか?

#4 2015-06-24 00:19:41

山吹次郎
Guest

Re: 部品表の考え方についての質問です。

ご提案です。

テーブルを、「完成品」、「仕掛品」、「部品」の3つを作成します。
制御用に、「選択テーブル」を作成します。
部品名と部品数を管理する「部品マスタ」を作成します。
以上、合計5個のテーブルを用意します。

仕様で、「仕掛品S1~S3、部品B1~B5 の使用数との掛け算により消費数を求めたい」
とありますが、下記<< 部品表概念図 >>でカッコ数字は部品使用数を表すとすると、

仕掛品S1は、部品B2 (5)  +部品B3 (4) +部品B4 (1)で、仕掛品S1は10と求めます
同じように、
仕掛品S2は、部品B5(3)で、仕掛品S2は3
仕掛品S3は、部品B1 (2)+部品B4  (1)で、仕掛品S3は3
仕掛品S4は、部品B1 (3)で、仕掛品S4は3

    従って、完成品Aは、仕掛品S1(10)+仕掛品S2 (3)+ 仕掛品S3(3)+ 仕掛品S4(3)
となり、1個の完成品Aは19の値をお求められます。
最後に、完成品Aの出荷数は10個なので、完成品A(19)×出荷数(10)は190が算出できます。

この仕様を元にご提案致します。

<< 部品表概念図 >>
   (19)             (10)
完成品A-------仕掛品S1------部品B2 (5)     
          |                     |
          |                     |-----部品B3 (4)      
          |                     |
          |                     ------部品B4 (1)        
          |
          |           (3)
          -------仕掛品S2-------部品B5(3)
          |
          |           (3)
          |-----仕掛品S3--------部品B1 (2)    
          |                     |
          |                      -----部品B4  (1)
          |           (3)
          ------仕掛品S4-------部品B1 (3)

検討する事は、以下の3つとします。
1 テーブル作成
2 リレーションシップ作成
3 画面レイアウト作成と値一覧作成
4 スクリプト作成

1 テーブル定義
「完成品」
  ID       ユニークな値でキー定義します。シリアル番号やGet(UUID)で定義します。
  完成品名  テキストタイプで完成品名を保存するフィールドを作成します。
  仕掛品合計 計算タイプでsum(部品合計)を指定します。
  出荷数   数字タイプで出荷数を格納するフィールドを定義します
  部品総合計 計算タイプで「仕掛品合計」×「出荷数」を指定します。
  連結用ID  入力値の自動化で、データ 0を設定します。(説明は後述1を参照)

「仕掛品」
  ID       ユニークな値でキー定義します。シリアル番号やGet(UUID)で定義します。
  IDf     「完成品」のIDを格納するフィールドを定義します
  仕掛品名  テキストタイプで仕掛品名を保存するフィールドを作成します。
  部品合計  計算タイプでsum(部品数)を指定します。 

「部品」
  ID       ユニークな値でキー定義します。シリアル番号やGet(UUID)で定義します。
  IDf     「完成品」のIDを格納するフィールドを定義します
  部品名   テキストタイプで部品名を保存するフィールドを作成します。
  部品数   数字タイプで部品数を保存するフィールドを作成します。

「選択テーブル」
  完成品ID  グローバル格納を指定します。タイプは、「完成品」のIDに合わせます。
  仕掛品ID  グローバル格納を指定します。タイプは、「仕掛品」のIDに合わせます。
  連結用ID  グローバル格納を指定します。入力値の自動化で、データ 0を設定します。

「部品マスタ」
  部品名   テキストタイプで部品名を保存するフィールドを作成します。
  部品数   数字タイプで部品数を保存するフィールドを作成します。


2 リレーションシップ作成
  集計用リレーションを作成します。
  集計は、仕掛品合計=sum(部品合計)+sum(部品数)ですので下記のリレーションを作成します。

  完成品───仕掛品───部品
   リレーションは、完成品(ID)=仕掛品(IDf)
           仕掛品(ID)=部品(IDf)


  画面レイアウト用のリレーションを作成します
  基準テーブルに「選択テーブル」を指定して画面レイアウト(画面1)を作成します。
  この画面1に、ポータルを3つ配置します。

         画面1(基準テーブル:「選択テーブル」)
              画面1(基準テーブル:「選択テーブル」)
-------------------------------------------------------------------------
|    —————————     -------------------     -------------------    |
|    |    「完成品」     |     |  「仕掛品」     |     |      「部品」     |    |
|    |                       |      |                     |     |                      |   |
|    |   オカレンス名   |  |  オカレンス名  |      | オカレンス名    |    |
|    |  【G完成品】   |     |【G仕掛品】     |     |  【G部品】       |   |
|    |                       |      |                     |     |                      |   |
|    |—--ポータルA----|     |---ポータルB---|      |---ポータルC ---|   |
-------------------------------------------------------------------------

画面レイアウトリーレーションは、以下のように定義します。

   選択テーブル──┬──G完成品 選択テーブル(連結用ID)= G完成品(連結用ID)
                             ├──G仕掛品 選択テーブル(完成品ID)= G仕掛品(IDf)
                           └──G部品  選択テーブル(仕掛品ID)= G部品(IDf)

              いずれのリレーションにも「このリレーションシップを使用して、
              このテーブルでのレコードの作成を許可」をチェックします。

値一覧用のリレーションを定義します。

  部品────部品マスタ(オカレンス名:部品マスタ一覧)
    リレーションは、部品(部品名)=部品マスタ(部品名)


3 画面レイアウト作成と値一覧作成
   ポータルAに完成品名、仕掛品合計、出荷数、部品総合計を配置します。
        完成品名のスクリプトトリガーのOnObjectEnterにスクリプト「setobj1」を定義します

   ポータルBに仕掛品名、部品合計を配置します。
        仕掛品名のスクリプトトリガーのOnObjectEnterにスクリプト「setobj2」を定義します

   ポータルCに部品名、部品数を配置します。
        部品数のスクリプトトリガーのOnObjectExitにスクリプト「refresh」を定義します
                        部品名のコントロールスタイルをポップアップメニューを指定します
        部品名の値一覧に値一覧用にリレーションを定義した「部品マスタ一覧」を指定します。

4 スクリプト作成
  setobj1   フィールド設定[ 選択テーブル(完成品ID) ; G完成品(ID)]
        フィールド設定[ 選択テーブル(仕掛品ID) ; “” ]
        ウィンドウ内容の再表示

  setobj2   フィールド設定[ 選択テーブル(仕掛品ID) ;  G仕掛品(ID)]
        ウィンドウ内容の再表示

  refresh        ウィンドウ内容の再表示


操作方法は、以下の通りです。
  ポータルAで完成品名と出荷数を入力
  ポータルBで仕掛品名を入力
  ポータルCで数量を入力


ご参考になるでしょうか。

#5 2015-06-24 15:51:55

Shin
Member

Re: 部品表の考え方についての質問です。

階層が不定でしょうから、一発処理では難しそうです。
手で処理するように、一つ一つ処理していく方法でいかがでしょう。
https://www.dropbox.com/s/2f67zzwg4y9gq … 7.zip?dl=0

Last edited by Shin (2017-03-29 23:25:54)

Offline

#6 2015-07-21 18:40:50

min
Guest

Re: 部品表の考え方についての質問です。

はじめましてです。
shinさんが作ったサンプルに質問があります。 サンプルですと、伝票で完成品名を入れ構成表から部品表を作成していますが、
構成表ヘッダー部にボタンを置き、ボタンを押したらこちら、のスクリプトを実行させる事は出来ないでしょうか?もしくは、伝票で
レコードをまとめて入れ、ボタン一発で展開出来ないでしょう? すみませんがご指導宜しくお願い致します。

#7 2015-07-21 23:38:47

Shin
Member

Re: 部品表の考え方についての質問です。

構成表ヘッダー部とは、部品構成表の事でしょうか。これから完成品を特定する手段は、ほぼ無いはずですが。
スクリプトの中身を吟味してもらえば良いと思いますが、1完成品毎に処理していくしか無いです。また、各完成品の数量が同じであっても無理です。それは、同じ部品を異なる完成品で共用している場合、その処理がどのように行っても無理だからですね。ですから、その処理のためには、1完成品ごとに loop で処理すれば良いでしょう。その際には、少し修正する必要があるかもしれません。

Offline

#8 2015-07-22 07:59:44

min
Guest

Re: 部品表の考え方についての質問です。

shinさま、ご回答ありがとうございます。
では2つ目に質問させて頂きました、<<伝票でレコードをまとめて入れ、ボタン一発で展開出来ないでしょう? >> 展開行う製品が約1,000件ほど有る為出来れば1件、1件ではなくある程度まとめて(仕掛品を含めた製品単位)でも難しいでしょうか? 現在伝票の数量をはぶき、こちらのファイルを使い部品表を作成中です。 あまりスクリプトに知識が有りませんので修正後のスクリプトを伝授頂けないでしょうか? 宜しくお願い致します。 あと階層レコードに階層番号(製品=1 仕掛品S1=2 仕掛品S2=2 仕掛品S3=3)を振りたいのですが宜しくお願い致します。

#9 2015-07-22 09:07:58

Shin
Member

Re: 部品表の考え方についての質問です。

まとめての展開では、部品の一覧リストは作成できませすが、それぞれの必要点数が必要でしょうから、それは無理です。
今の仕組みですと、例えば、製品Aと製品Bが同じ仕掛品aを使用する場合、製品Aと製品Bから「関連レコードへ移動」で部品構成表へ移動した場合、仕掛品aの展開は当然1項目と看做される為、その下の展開から部品点数が合わなくなります。ですから、1項目ずつ展開して行く事になります。
ただ、処理は非常に単純ですので、1000件を展開して3回相程度で部品総数が数万になっても、数分程度で処理は終わると思いますが。
階層数は、loop の中にカウンタを設置しておけば良いはずです。

Offline

#10 2015-07-22 17:11:15

MIN
Guest

Re: 部品表の考え方についての質問です。

お忙しい中、ご返事ありがとうございます。
申し訳ありませんが、まだ私が理解が出来ていないのですが最初の質問者である”梅雨空さん”の質問内容は<<下記のような部品表テーブル(項目は、親品番、子品番、使用数)を作り、完成品Aを10個 出荷した時に、仕掛品S1~S3、部品B1~B5 の使用数との掛け算により消費数を求めたいのですが、どのように考えたら良いでしょうか?>>という事ですが、私は階層的な部品表を作る事を目的としていまして、”完成品Aを10個 出荷した時に、仕掛品S1~S3、部品B1~B5 の使用数”では有りませんが。。。 説明が足らなかったかと思いますが、出来ないのであれば諦めて1件づつ展開していきたいと思います。 あと<<階層数は、loop の中にカウンタを設置しておけば良いはずです。>>ですが、LOOP内にフィールド設定にCOUNT()関数を使用するのでしょうか? 本当にすみません。カウンターの設置のスクリプトを教えて頂けないでしょうか? 宜しくお願い致します。

#11 2015-07-22 18:39:07

Shin
Member

Re: 部品表の考え方についての質問です。

全く違う概念でしょうね。
要望が理解できていませんが、#4の部品表概念図、のような表示ですか。

Offline

#12 2015-07-22 19:07:36

min
Guest

Re: 部品表の考え方についての質問です。

はい、考えと致しましてはそうです。でもレコードといたしましては、1つのテーブルに親・子・員数・レベルで表示(shinさんのファイルで部品展開した状態)を希望しております。 ただ、先ほども質問させて頂きましたが、レベル表示が出来ず悩んでいます。

#13 2015-07-22 23:40:32

Shin
Member

Re: 部品表の考え方についての質問です。

階層を、インデントで表現してみましたが。レベルは、階層コードの文字数を数えれば良いです。
https://www.dropbox.com/s/2f67zzwg4y9gq … 7.zip?dl=0

Last edited by Shin (2020-03-28 08:48:04)

Offline

#14 2015-07-23 13:03:02

MIN
Guest

Re: 部品表の考え方についての質問です。

サンプル有難うございます。朝から確認させて頂きました。
階層の件ですが、例えば下記➡の様に下の部分での表示と言う事でしょうか
部品名  階層コード  文字数  変換後
完成品A    101    ➡3 ➡ 1
仕掛品S1  101001  ➡6 ➡ 2
仕掛品S2  101002  ➡6 ➡ 2
部品B1     101003  ➡6 ➡ 2
部品B2     101001001➡9 ➡ 3
部品B3    101001002➡9 ➡ 3
部品B4     101001003➡9 ➡ 3
部品B5     101002001➡9 ➡ 3
仕掛品S3  101002002➡9 ➡ 3
部品B1     101002002001➡12➡4
部品B54    101002002002➡12➡4
文字数を3で割れば出ますね~。(^^)/びっくりです。すごい発想ですね、全く思いつきませんでした。ありがとうございます。早速自分のファイルに書き直してみます。 あとファイルメーカーとは関係ありませんが、今回のファイルダウンロード元がドロップボックスになってましたが、ファイル名を教え誰にでもダウンロード出来るようにするには有料版出ないと出来ないんでしょうか? 出来れば設定方法教えて頂けないでしょうか。宜しくお願い致します。

#15 2015-07-23 13:17:34

MIN
Guest

Re: 部品表の考え方についての質問です。

何度もすみません、ドロップボックスの件いろいろいじってみましたら出来ました。どうもすみませんでした。また今回の部品表ファイルの結果をご連絡させて頂きます。失礼致します。

#16 2015-07-23 20:56:32

MIN
Guest

Re: 部品表の考え方についての質問です。

SHINさま、本当に有難うございました。教えて頂いた方法で自分なりに編集しファイルに実装する事が出来ました。
それに、SUBSUTITUTE関数の使い方に感動致しました。<10^l-1;9;" ">って、発送がすごいですね、階層コードをこちらでくくり__2,___3・・・
の様に表示する事が出来大満足です。 まだまだ分からない事がありますので次回も宜しくお願い致します。 今回は本当に有難うございました。

#17 2015-07-23 21:54:00

Shin
Member

Re: 部品表の考え方についての質問です。

ファイルのURLのみを転載する事はご遠慮ください。
必要でしたら、このスレッドのページを参照する様にリンクを張ってください。

Last edited by Shin (2015-07-24 08:51:02)

Offline

#18 2015-11-14 17:38:12

min
Guest

Re: 部品表の考え方についての質問です。

以前質問させて頂きましたものですが、再度こちらの件で質問させて下さい。
部品構成表で”仕掛品s1”の構成に変更があった場合どの様に対処すれば良いでしょうか?
仮に、

部品名      部材          員数       
仕掛品s1   部品b2       1
仕掛品s1   部品b3        2
仕掛品s1   部品b4        2

          ↓
部品b5追加

部品名        部材       員数       
仕掛品s1    部品b2       1
仕掛品s1    部品b3       2
仕掛品s1     部品b4       2
仕掛品s1     部品b5      1

または員数の変更

部品名         部材      員数       
仕掛品s1     部品b2      1
仕掛品s1     部品b3       2
仕掛品s1     部品b4       4

部品構成表で内容を変更後、伝票で再度ボタンを押しただけでは変更されないのですがどうすべきでしょうか?
どうか御指導宜しく御願い致します。

#19 2015-11-15 12:27:37

Shin
Member

Re: 部品表の考え方についての質問です。

一旦展開しているものでは、再展開はトラブルの原因となりますので、展開できないようになっています。
その伝票に関連する無音表のレコードを削除すると、変更後の展開が可能です。

Offline

#20 2015-11-16 17:41:41

MIN
Guest

Re: 部品表の考え方についての質問です。

SHINさま、ご返事ありがとうございました。
やはり、一旦展開済みのレコードは削除してからの再展開と言う事になるのですね。
ありがとうございました。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.031 seconds, 9 queries executed - Memory usage: 607.21 KiB (Peak: 644.12 KiB) ]