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

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

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

You are not logged in.

Announcement

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


#1 2022-09-04 16:25:06

リコシェ
Guest

リレーションで重複を省く方法

いつもお世話になっております。
Windows11にてFMP19を使っています。

表題の件についてですが、
大元となる「案件」テーブルがあって
商品の明細をまとめる中間テーブル「明細」テーブルがあって
その「明細」テーブルに色んな商品のテーブルが紐づいています。
(商品のテーブルは「用紙」だったり「製版」、「印刷」があります)
最終的に「明細」テーブルをリスト形式で表示して納品書や請求書印刷を行っているのですが、
ひとつの商品テーブルだけ特殊な処理をする必要がでてきました。
「印刷」だけ大元となる「案件」だけでなく、同じ商品テーブルである「製版」とも紐づいており、
「製版」が1、「印刷」が多となります。
この「印刷」だけ帳票に表示する場合は単純にリスト形式で並べるだけでなく、
製版に紐づいている分をまとめて1とする必要があります。

(ひとつ例をあげますと、
「製版A」に「印刷A」、「印刷B」、「印刷C」
「製版B」に「印刷D」、「印刷E」
が紐づいている場合、帳票に表示する時は
「製版Aにかかる印刷(3色)」
「製版Bにかかる印刷(2色)」
のように2行で表示しないといけなくなりました。
(納品書や請求書に印字する単価は「製版A」なら「印刷A」+「印刷B」+「印刷C」の単価となる)

この問題を解決するために色々と考えましたが、一向に答えが出ません。
どうかお知恵を貸していただけたら幸いです。

#2 2022-09-04 19:57:54

himadanee
Guest

Re: リレーションで重複を省く方法

リスト形式なら集計レイアウトにすればいいんですが
ポータルではないですか?

#3 2022-09-04 21:26:07

リコシェ
Guest

Re: リレーションで重複を省く方法

himadanee様

返信ありがとうございます。
すみません、私の知識が浅いばかりに理解が及んでいないのですが、
リスト形式の集計レイアウトというのは、パート設定で作成できる小計パート等のことでしょうか?
請求書の方などは基本的に1枚の請求書に案件が複数乗るので案件ごとに小計を表示するために
「小計パート」は作成したのですが、このような複数案件をまとめる処理にも活用できるのしょうか?
(今少し試してみたのですが、小計パートでソートをかけても上手く表現できませんでした…)

>ポータルではないですか?
「印刷」テーブルのレコードはポータルを使って登録しています

FileMakerを使い始めて4か月ほど経ち、自分なりに慣れたつもりですが、
こうやってみると、まだまだ分からないことだらけで申し訳ないです…。

#4 2022-09-05 07:14:37

Shin
Member

Re: リレーションで重複を省く方法

明細には
    製版A
    印刷A
    印刷B
    印刷C
    製版B
    印刷D
    印刷E
なんだけど、請求用の印刷時には、
    製版Aにかかる印刷(3色)
    製版Bにかかる印刷(2色)
としたい、ということなんでしょうね。
製版と印刷がどうつながっているかわかりませんが、印刷時には印刷レコードを除外して、製版レコードの項目に印刷回数を追加しておけばいいだけなのでは。

Offline

#5 2022-09-05 08:35:15

リコシェ
Guest

Re: リレーションで重複を省く方法

Shin様

返信ありがとうございます。
すみません、言葉足らずでした。

明細には
    製版A
    印刷A
    印刷B
    印刷C
    製版B
    印刷D
    印刷E
となっている場合は、印刷時には
    製版A
    製版B
    製版Aにかかる印刷(3色)
    製版Bにかかる印刷(2色)
にしたいイメージです。
「印刷」情報を入力するポータル上で製版情報を選択する項目(動的な値一覧を用いてポップアップメニュー)を作って紐づけています。

#6 2022-09-05 09:37:58

チポ
Member

Re: リレーションで重複を省く方法

製版テーブルに
> 「製版Aにかかる印刷(3色)」
> 「製版Bにかかる印刷(2色)」

このように入力するフィールドを作り、

案件テーブルで計算フィールド
  List ( List ( 製版::製版 ) ; List ( 製版::上記のフィールド) )

ではいかがでしょう。

Offline

#7 2022-09-05 11:54:44

Shin
Member

Re: リレーションで重複を省く方法

印刷明細は、製版のレコードに紐づけて自己リレーションで作成すればいいでしょう。
請求印刷時には、余聞なレコードを選択外にする仕組みを作りましょう。
https://www.dropbox.com/s/0kmphncx3xta9 … 2.zip?dl=0

案件テーブル    明細テーブル    明細テーブル 2    明細テーブル 3
   案件キー     =   案件キー     =  案件キー
                         明細キー     =  孫明細キー      =  孫案件キー

というリレーションを張ります。
明細テーブル 2 から、
Case (
    PatternCount ( 明細名 ;"印刷" ) and     明細キー = 明細テーブル 3::明細キー ; 明細テーブル::明細名 & "にかかる印刷(" & Count ( 明細テーブル 3::明細キー ) & "色)" ;
    PatternCount ( 明細名 ;"印刷" ) ; "" ;
    明細名
)
という計算フィールド「明細_印刷」を作ります。
案件レコードから、関連レコードへ移動  で明細テーブルへ移動し、明細_印刷 が空白のものを除外します。これを適当にソートすればいいでしょう。

TD の RICOCHET ですか。

Last edited by Shin (2023-07-15 17:04:37)

Offline

#8 2022-09-06 17:57:19

リコシェ
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.005 seconds, 8 queries executed - Memory usage: 521.55 KiB (Peak: 526.46 KiB) ]