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

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

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

You are not logged in.

Announcement

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


#1 2022-07-24 01:08:08

nyoro
Member

ポータルの集計結果を請求書明細行にしたい。

使用環境FM19 win10です。

企業データベースにリレーションされている各契約労働者ごとの管理手数料リスト(ポータル)が下記のようにあるのですが、

Aさん  10000円
Bさん  10000円
Cさん  10000円
Dさん  10000円
Eさん  15000円
Fさん  15000円
Gさん  15000円
Hさん  20000円
Iさん  20000円
Jさん  20000円
Kさん  20000円
Lさん  20000円

これをもとに請求書を作成するときに、
管理手数料 10000円 × 4名 = 40000円
管理手数料 15000円 × 3名 = 45000円
管理手数料 10000円 × 5名 = 100000円

とスクリプトで自動で請求書の明細行を作成したいです。請求書は企業データにリレーションされています。
過去記事に自己リレーションを使うと計算できるという記事は見つけたのですが、そのデータを請求書データベースに転記させるような方法がわかりません。
ご教示お願い致します。

Offline

#2 2022-07-24 08:42:28

Shin
Member

Re: ポータルの集計結果を請求書明細行にしたい。

スクリプトは要りません。
10000, 15000, 20000 というデータを設定したグローバルフィールド(繰り返し)を作っておきます。区分が増えればその区分で、変動するのでしたら、動的な値一覧を設定してその要素で計算フィールドを作ります。
Case ( グローバルフィールド = 管理費[1] ; 管理費[1] )
という計算フィールド(繰り返し)をつくり、それを個別にカウントする集計フィールドと、個別に合計する集計フィールドを作ります。
そのグローバルフィールドと、2個の集計フィールドを、ポータルの外に配置すれば計算できています。

Last edited by Shin (2022-07-24 10:45:58)

Offline

#3 2022-07-24 17:43:16

nyoro
Member

Re: ポータルの集計結果を請求書明細行にしたい。

計算結果行を作りたい請求書は、この明細とは関係ない別の請求にも使う可能性がありまして、

管理手数料 10000円 × 4名 = 40000円
管理手数料 15000円 × 3名 = 45000円
管理手数料 10000円 × 5名 = 100000円
今月経費実費 160000円 × 1式 = 160000円

みたいな使い方をします。なので今回のような説明をしました。わかりにくくて申し訳ないです。
明細書の集計だけを書き出すのは無理があるでしょうか?
Shin様の方法に、普通の請求書を別につける方法もアリだとはございますが、請求書明細行だけ追加できると、通常請求書を変更する必要がないなと思いまして

Offline

#4 2022-07-24 19:16:41

nyoro
Member

Re: ポータルの集計結果を請求書明細行にしたい。

Case ( グローバルフィールド = 管理費[1] ; 管理費[1] )
という計算フィールド(繰り返し)をつくり、

これはポータル内に設置しますか?

それを個別にカウントする集計フィールドと、個別に合計する集計フィールドを作ります。
それとは、上記の計算フィールドですか?

Offline

#5 2022-07-25 10:13:56

Shin
Member

Re: ポータルの集計結果を請求書明細行にしたい。

サンプルをみてみてください。
https://www.dropbox.com/s/4i3yxir87y2hd … 2.zip?dl=0

この集計フィールドは、その元オカレンスの中や、リレーション先で利用できます。ですから、会社名でリレーションされていれば、ポータルに関係なく、常にリレーション先のレコードを集計します。しかも、会社ごとに別に集計してくれますので、便利ですよ。
また、請求明細のテーブルで流用するのでしたら、会社テーブルに、項目名と集計結果をそのまま参照する計算フィールド(繰り返し)を作り、その結果を明細テーブルへインポートします。オプションで、繰り返しフィールドを複数のレコードへ分解しておけばいいでしょう。

Last edited by Shin (2022-07-26 08:47:00)

Offline

#6 2022-07-25 20:53:10

nyoro
Member

Re: ポータルの集計結果を請求書明細行にしたい。

丁寧なサンプルをありがとうございました。理解できました。

>区分が増えればその区分で、変動するのでしたら、動的な値一覧を設定してその要素で計算フィールドを作ります。

これはグローバルフィールドに現在のポータルで出現している値が取り込めるのでしょうか?金額はだいたいは決まっているのですが、マスターがあるわけではないので、都度、照合用のグローバルフィールドに値が取り込めると完璧なのですが。

ご教授お願いします。

Last edited by nyoro (2022-07-25 21:02:11)

Offline

#7 2022-07-25 23:31:29

Shin
Member

Re: ポータルの集計結果を請求書明細行にしたい。

会社名でのリレーション先の手数料フィールドを動的な値一覧にすればいいでしょう。それを ValueListItems() で取り出し、GetValue() で振り分ければいいです

Offline

#8 2022-07-26 06:02:13

nyoro
Member

Re: ポータルの集計結果を請求書明細行にしたい。

Shin様の言われたことですべて実現できそうです。

繰り返しのグローバルフィールドに、フィールド設定で、動的値一覧の数値を入れることまではできました。
しかし、手入力でグローバルフィールドに数値の入力すると計算フィールドは計算されるのですが、フィールド設定だと計算されません。
レコード確定スクリプトも入れてみたのですが同じです。

これはどのようにすると自動で計算されるようになるのでしょうか?

詳細まで聞いて申し訳ございません。

Offline

#9 2022-07-26 08:49:04

Shin
Member

Re: ポータルの集計結果を請求書明細行にしたい。

グローバルフィールドでは、実質計算できませんので、会社テーブル側にグローバルでない計算フィールドを作るといいでしょう。
サンプルを更新しています。
ただ、値一覧の特性で、50000 100000 があると、100000 50000 という風にテキストとしてソートされてしまいます。

Offline

#10 2022-07-26 18:20:33

nyoro
Member

Re: ポータルの集計結果を請求書明細行にしたい。

最後に1つ。すべて出来たのですが、

値一覧でリストを作って、請求書明細のインポートしたときに、繰り返し全部がインポートされます。数量がゼロのデータを読み込まない、もしくはインポート後に、自動で削除する方法はないでしょうか?

Offline

#11 2022-07-26 21:02:39

Shin
Member

Re: ポータルの集計結果を請求書明細行にしたい。

スクリプトで削除するのが簡単でしょう。
または、明細テーブルで、数量が0またはnullがありえない、という条件でしたら、数量のフィールド制限で、計算式に、数量>0 を設定して、常時制限 にしておけばいいです。

Offline

#12 2022-07-27 05:26:46

nyoro
Member

Re: ポータルの集計結果を請求書明細行にしたい。

ありがとうございました。完璧に解決できました!助かりました!

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: 526.76 KiB (Peak: 547.66 KiB) ]