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

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

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

You are not logged in.

Announcement

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


#1 2017-06-22 20:49:41

得意先別販売価格のルックアップする方法

FileMaker Pro 15 Advance
win10

いつもお世話になっております。

価格に複数の条件があって、優先度の高いものからルックアップする
という動作を考えています。

優先順位は下記の通りです。
1.得意先別販売価格マスタ(得意先コードと品目コードと価格の3フィールド)
2.品目マスタで管理している得意先の区分による価格(問屋、代理店)※説明のため2つにします。

過去ログから、LOOKUP関数を使えば、下記のような感じかなと思うのですが、
肝心のリレーションについて、悩んでいます。

LOOKUP(得意先別販売価格マスタ::価格;IF(区分=”問屋”,LOOKUP(品目マスタ::問屋価格),LOOKUP(品目マスタ::代理店価格)))

・想定されるリレーション
①受注書 ー(受注書ID)ー 受注書明細
②受注書明細 ー(得意先コード、品目コード)ー 得意先別販売価格マスタ
③受注書明細 ー(品目コード)ー 品目マスタ

LOOKUPの式を実現するためには、②のリレーションが必要だと思うのですが、
得意先コードは、受注書明細ではなく、受注書で管理しているデータなのですが、
この場合には、皆様どのようにしてリレーションを実現しているのでしょうか?
(割りとこういうパターンは多いのでは?とも思ってます。)

私が思いつくのは、単純に受注書明細を作成時に、得意先コードも受注書IDと同様に入力するという形です。ただこの方法だと、受注書の得意先が変更になった場合に、関連する明細も書き換え処理をしない
といけないですし、なんだかスマートじゃない気がしています。

もしよりよい方法があれば、教えて頂きたいです。
よろしくお願い致します。

Last edited by あきひろ009 (2017-06-22 20:50:23)

Offline

#2 2017-06-22 23:45:45

Shin
Member

Re: 得意先別販売価格のルックアップする方法

複数のリレーション先からルックアップする事はできません。
自動入力の計算式で、条件に応じたリレーション先の値を取り込むと良いでしょうね。
例えば、
Case (
得意先別販売価格マスタ::価格 ; 得意先別販売価格マスタ::価格 ;
区分=”問屋” ; 品目マスタ::問屋価格 ;
区分=”代理店” ; 品目マスタ::代理店価格
)

Offline

#3 2017-06-22 23:56:19

Hiro
Member

Re: 得意先別販売価格のルックアップする方法

ルックアップはダメだから、Lookup関数式を使うというアイデアは良いですよ。

Offline

#4 2017-06-23 08:52:38

チポ
Member

Re: 得意先別販売価格のルックアップする方法

受注明細に得意先コードを持たせて、リレーションの照合に加える必要が有ります。

そのフィールドは受注書を参照した計算フィールドとか、
ルックアップで自動入力されますから、
手入力の必要な有りませんよ。


> 受注書の得意先が変更になった場合に、
> 関連する明細も書き換え処理をしないといけない

頻繁に有ることでしたら、
計算フィールドがいいかも。。

Offline

#5 2017-06-23 09:32:02

Re: 得意先別販売価格のルックアップする方法

Shin様

いつも回答ありがとうございます。

ルックアップではなくて、Case文を使えばいいということなんですね。
ついつい金額参照となると、ルックアップって先入観がありました。。。

ただCase文で表現する場合にも、同じく②のリレーションが必要だと思うのですが、
そのためには、受注明細にも、受注書の得意先を持たせる必要があると思っています。

チポ様の回答のように、計算フィールドで受注書テーブルから、計算フィールドで
値を引っ張ってくるのが、よくあるやり方なんでしょうか。

②受注書明細 ー(得意先コード、品目コード)ー 得意先別販売価格マスタ

Offline

#6 2017-06-23 09:33:39

Re: 得意先別販売価格のルックアップする方法

Hiro様

回答ありがとうございます。

アイデアをお褒め頂きまして、ありがとうございます!
ただ過去ログを見て、ルックアップ計算式ってのがあるんだな。
と思ったので、私のアイデアではなくて、恐縮です。

Last edited by あきひろ009 (2017-06-23 09:43:48)

Offline

#7 2017-06-23 09:42:24

Re: 得意先別販売価格のルックアップする方法

チポ様

回答ありがとうございます。

なるほど。
計算フィールドでしたら、いちいち書き換える必要ありませんね。

チポ様の言うように本来は頻繁には無いのですが、
ただ打ち間違えは想定されますし、コピーして、
変更みたいなパターンもあるかもなので
変更があるという想定がいいのかなと考えています。

ただ受注書のデータを受注明細にも持たせることは、気持ち的には、
「なんで受注書にあるデータを、受注明細書にも持ってこないといけないの!
受注書のヘッダーとしての役割とはなになのか」って、ちょっと言いすぎですけど、
思ってしまい、少し気になりますが、やはり致し方ないんですよね。。。

Offline

#8 2017-06-23 11:32:05

チポ
Member

Re: 得意先別販売価格のルックアップする方法

> 2.品目マスタで管理している得意先の区分による価格(問屋、代理店)※説明のため2つにします
  区分フィールドで分ける?
  区分ごとのフィールドが有る?

あげられた例では後者のようですが、確認です。


リレーションの照合のためにフィールドが必要でしたら、
ためらわず作るしか無いでしょう。

今回の場合はそのフィールドを表示することも、
手入力することも必要ないですから、
その存在を意識する必要は有りませんよね。

Offline

#9 2017-06-23 17:08:55

Re: 得意先別販売価格のルックアップする方法

チポ様

回答ありがとうございます。

説明不足で申し訳ございません。
得意先マスタに区分フィールドがあり、そちらに、問屋や代理店の値が入っています。

やはりリレーションのためなら、ためらわずフィールドを作るほかないんですね。
確かに、存在を意識する必要はないので、全然気にはなりません。(フィールドを作る時にためらってしまいましたが。。)

CaseでもLookup文でも、想定の動作を確認しました。
ただCase文の方が、簡潔な表現だと思うので、Case文にしてみます。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 521.7 KiB (Peak: 526.23 KiB) ]