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

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

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

You are not logged in.

Announcement

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


#1 2017-07-04 15:53:17

eddie
Member

顧客ごとに異なる料金表を作成したい

お世話になっております。FMP11 Mac 使用です。

以前以下で質問させていただいたものの延長になるのですが、顧客ごとに内容の異なる料金表を作成しようとしています。
https://fm-aid.com/bbs2/viewtopic.php?id=2672

基本構造は、「料金マスタ」と、「料金表」という2つのテーブルがあり、「料金表」では、グループ(大項目)ごとに料金一覧をポータル表示させています。

例)
表のタイトル:グループA
(料金一覧のポータル)

表のタイトル:グループB
(料金一覧のポータル)


グループA、B、・・・は、マスタの「グループ」なるフィールドに値を持たせていて、リレーションのキーとなっています(「料金表」側ではグローバルフィールドを使用)。


ここで、料金の内容が、顧客により異なることがあります。例えばある顧客は、ある項目が標準料金よりも安い、などです。ポイントは、ほとんどの項目はすべての顧客で共通だけれども、いくつかの項目のみ顧客ごとに金額が異なることです。
前回の質問で教えていただいたように、マスタ側に「顧客」というフィールドを作成し、金額が異なる項目(レコード)を複製して顧客フィールドに顧客名を入力しています。つまりこの例では、ひとつの項目について、標準料金のレコードと、その特別な顧客用のレコードの2つが存在し、顧客に応じて料金表の表示を切り替えることになります(「顧客」がリレーションのキー)。

前回はどうやったのかうまくいったようですが、そのファイルはもはや存在せず、いまやろうとしても再現できません。特に、「ポータルに基本的には標準料金を表示させつつも、特定の項目については顧客ごとの割引料金を表示させる」ことができません。

ご教授いただけないでしょうか。よろしくお願いいたします。

Offline

#2 2017-07-04 17:28:09

チポ
Member

Re: 顧客ごとに異なる料金表を作成したい

顧客ごとの表示はどのように?

今のグループごとのポータルに混ぜて表示なら簡単ですよね?
料金表の別レコードに?
グループと切り替えて?


「項目」
といわれていますが、それが何をさすのか分かりません。
「商品フィールド」
「特定のレコード」
等、
できる限りFMで定義された用語を使用した方が分かりやすいですよ。

Offline

#3 2017-07-04 17:44:28

eddie
Member

Re: 顧客ごとに異なる料金表を作成したい

チポさま、ありがとうございます。
質問がわかりづらくて申し訳ありません。。

>顧客ごとの表示はどのように?
「料金表」は基本的には「料金マスタ」をポータル表示するためだけのテーブルです。
顧客ごと(さらには年度ごと)にレコードを作成します。
そのレコードで、料金マスタの内容をポータル表示させます。

>今のグループごとのポータルに混ぜて表示なら簡単ですよね?
それが、デフォルトの料金と、顧客特有の料金どちらかのみならばできるのですが、両方を組み合わせる方法がわかりません。

グループは、全顧客に共通です。(要は「料金表」のレイアウトはひとつです。)
各グループ内の項目(請求項目)も共通ですが、顧客ごとに金額が異なることがあります。

例:
表のタイトル:野菜
キャベツ  100円
レタス   150円

表のタイトル:肉
豚肉    200円
鶏肉    120円 ←この金額が顧客によっては100円のことがある


よろしくお願いいたします。


補足:
「グループ」というのは、ひとつの料金表内で表示する料金の単位です。
「野菜」「肉」「魚」・・・などをそれぞれ表にまとめて、全体でひとつの料金表を構成します。

当然、マスタ側では、以下のようになっています。

「項目」「価格」「グループ」
ごぼう  100  野菜
セロリ  200  野菜
牛肉   300  肉
羊肉   200  肉

Last edited by eddie (2017-07-04 17:55:54)

Offline

#4 2017-07-04 18:01:35

チポ
Member

Re: 顧客ごとに異なる料金表を作成したい

> 表のタイトル:肉
> 豚肉    200円
> 鶏肉    120円 ←この金額が顧客によっては100円のことがある

これを

豚肉    200円
鶏肉    120円
鶏肉    100円 顧客A
このような表示でいいのならば、単にグループで絞り込めばいいことでは。

違うのでしたら表示の例等を。。

Offline

#5 2017-07-04 18:03:15

eddie
Member

Re: 顧客ごとに異なる料金表を作成したい

豚肉    200円
鶏肉    120円
鶏肉    100円 顧客A

ということではなく、顧客A専用に、

豚肉    200円
鶏肉    100円

という表を作成したいのです。

Offline

#6 2017-07-04 18:13:37

チポ
Member

Re: 顧客ごとに異なる料金表を作成したい

今のポータルなら、顧客でフィルタを掛ければいいでしょう。

別のポータルでなら、顧客を照合に加えればいいですね。

Offline

#7 2017-07-04 18:22:13

eddie
Member

Re: 顧客ごとに異なる料金表を作成したい

ただ、

豚肉    200円
鶏肉    100円

この例だと、豚肉はデフォルト料金なので、「顧客A」の情報を持っていません。
結局、マスタ側ですべての料金について顧客ごとにレコードを作成しないといけないでしょうか?
ほとんどの料金が共通なので、それは使いまわしたいのですが。。

Offline

#8 2017-07-05 09:03:07

チポ
Member

Re: 顧客ごとに異なる料金表を作成したい

そういうことですか。。

料金マスタで、品名で自己リレーションし、
  List ( 料金マスタ2::顧客名 )
というフィールド(仮にリストとします)を作ります。

顧客名ごとのポータルのフィルタを
  料金表::顧客名 = 料金マスタ::顧客名
  or
  IsEmpty ( PatternCount ( 料金マスタ::リスト ; 料金表::顧客名 ) )

とすればいいのではないかな。。

Offline

#9 2017-07-05 11:42:28

Shin
Member

Re: 顧客ごとに異なる料金表を作成したい

チポさんと似た考え方ですが。
商品マスターの下に価格マスターをもたせる考え方です。ポータルのフィルターもチポさんの提案に一捻り足せば、いいようです。

Let (
 ls = List ( 価格マスター 一覧 2::顧客 ) ;
 Case (
  IsEmpty ( FilterValues ( ls ; 受注テーブル::顧客名 ) ) ; IsEmpty ( 価格マスター 一覧::顧客 ) ;
  受注テーブル::顧客名 = 価格マスター 一覧::顧客
 )
)

説明面倒なので、サンプル見てください。
https://www.dropbox.com/s/0iyyrh8ih8i31 … 7.zip?dl=0

Last edited by Shin (2017-07-05 22:41:57)

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 567.83 KiB (Peak: 582.98 KiB) ]