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

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

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

You are not logged in.

Announcement

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


#1 2017-06-05 11:52:33

hoyo
Member

発注件数のカウント

FileMaker Pro 13
Windows7
いつもお世話になっております。

共有の発注データベースで
・本日発注した件数
・本日分の中でOKフラグを立てていない件数
・本日分以外の中でOKフラグを立てていない件数
のカウントの仕方について質問です。

現在、カウント専用のテーブルにレコードを1件作成しデカルト積リレーションで関連付け、
ExecuteSQL関数のSELECT COUNTで件数をカウントしてヘッダ内に常時表示しています。
(フラグを更新するごとにスクリプトトリガで再カウント)

発注レコードが月30000件ずつ増えていくのですが
このやり方ではいずれ重くなってきますでしょうか。

他にベストな方法があるかご教示いただけますと幸いです。

Offline

#2 2017-06-06 10:18:39

チポ
Member

Re: 発注件数のカウント

レスが付きませんので及ばずながら、、

全てリレーションでの集計ができますよね。
この方法なら、
ノータッチで再計算されますし、
レコードが大量になってきてもレスポンスがそう悪くならないと思いますよ。


ただし、
開きっぱなしのファイルですと「本日」の更新ができませんので、
何らかの方法でこの入力が必要になりますね。

Offline

#3 2017-06-06 11:16:07

hoyo
Member

Re: 発注件数のカウント

チポさん、ありがとうございます。

ノータッチで再計算は魅力的です。
「本日」カウントだけ特殊なのですね。

リレーションの集計は、
グローバルフィールドを使用して期間内の集計をする方法はわかるのですが
常に決まった条件に合わせて数える方法がわかりません。

お力添えいただけますと幸いです。

Offline

#4 2017-06-06 11:55:23

チポ
Member

Re: 発注件数のカウント

グローバルフィールドを二つ作り、
「本日」(本日gフィールドとします)と「OKフラグ」(OKg)値を入力

> ・本日発注した件数
リレーションを
   本日g = 発注日付
として、
  Count関数
で適当なフィールドをカウントします。


以下リレーションを
> ・本日分の中でOKフラグを立てていない件数
   本日g = 発注日付
  and
   OKg ≠ OKフラグ


> ・本日分以外の中でOKフラグを立てていない件数
   本日g ≠ 発注日付
  and
   OKg ≠ OKフラグ

として同様に求められます。

リレーションシップグラフのテーブルオカレンスにご注意ください。

Offline

#5 2017-06-06 12:43:33

hoyo
Member

Re: 発注件数のカウント

チポさん、御丁寧にありがとうございます。

なるほど、このパターンもグローバルフィールドを使うのですね。
自己リレーションシップを多用しない方が重くならないと思いこんでいたので
大変参考になりました。

ファイルを開いたときのトリガで「本日g」に日付を入れるような流れにすると、
開きっぱなしのファイルでも大丈夫でしょうか。

各自が日付をまたいで開き続けることはありません。

Offline

#6 2017-06-06 13:10:58

チポ
Member

Re: 発注件数のカウント

私が開きっぱなしといったのは、
日付をまたいで閉じることのないファイル
という意味でいったので、

> 各自が日付をまたいで開き続けることはありません
ということでしたら、

> ファイルを開いたときのトリガで「本日g」に日付を入れる
これで問題ないでしょう。

Offline

#7 2017-06-06 14:06:34

hoyo
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.006 seconds, 9 queries executed - Memory usage: 512.32 KiB (Peak: 516.86 KiB) ]