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

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

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

You are not logged in.

Announcement

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


#1 2017-08-02 02:17:33

LZZY
Member

スクリプトで計算しているが更新がうまくいきません

スクリプトでポータルに入力されたグループごとに合計を計算しようとしていますが、
あと一歩ということろでうまくできません

文章で説明できる自信がありませんので、面倒かとは思いますが、サンプルファイルを見ていただいて、
改善方法を教えていただけると助かります
休日一日格闘していましたが解決できませんでした

サンプルです↓
http://fast-uploader.com/file/7057163296633/

ファイルに書いていまが、概要を書いておきます
これだけでは意味不明かと思いますので、サンプルを一読ください

【問題点】
・グループ名を変更したり新規レコードを作成したとき、一度目のトリガでは計算さず、もう一度トリガを動かすと計算される
(グループ名変更後、フィールドをTABで送ってトリガを動かすも計算されず、数値フィールドのトリガ(2回目)で計算されるということです)

・例えば、グループAAAAをBBBBに変更した場合、やはり二回目のトリガでないと加算されない。

・合計が表示されているBBBBをAAAAに変更すると、自動的に次のBBBBに合計を表示させたいが、再計算するには
手動でいずれかのBBBBのレコードにいき、トリガを動かす必要がある
また、
BBBBからAAAAに変更、さらにBBBBと変更すると、合計がふたつ表示(一つは古い合計)され、該当レコードでトリガを動かすまでリセットできない

以上について、
アドバイスよろしくお願いします

ちなみに、合計は各グループの先頭レコードにしか表示されていませんが、
運用上、これは問題ないです

WIN10 FMP16

Offline

#2 2017-08-02 05:13:25

Hiro
Member

Re: スクリプトで計算しているが更新がうまくいきません

以下の条件で校正したファイルを返却します。
・集計結果は索引保存する。
・集計結果はグループの先頭レコードにのみ代入する。
・グループおよび数値の追加・編集時は直ちにその集計結果が全ポータルレコードに反映されること。

●校正済み「自動更新集計.fmp12」 → https://yahoo.jp/box/5ZsAMb

Offline

#3 2017-08-02 22:09:39

LZZY
Member

Re: スクリプトで計算しているが更新がうまくいきません

ありがとうございます

計算的には
Case(A 2::レコードID=レコードID; Sum(A 2::数値))
だけでしょうか?

私がやっていたのよりはこちらの計算方法のほうがよいということですか?

Offline

#4 2017-08-03 17:17:30

LZZY
Member

Re: スクリプトで計算しているが更新がうまくいきません

修正してもらったファイルを見ていましたが、
理解できません

・Get(レコードID)がなぜ必要か(自動連番では駄目なのか)
・フィールド内容の全置換をすると再計算されるのはなぜか

などです

私が考えていた設計と違うのでなかなか理解できません
よろしかったら解説していただけると助かります

ちまみに、私のサンプルの手法でやると、
希望の動作をすることはむずかしいでしょうか?
グループ名の変更時に
なぜ二回目のスクリプトがないと計算が更新されないのか、わかりません

Offline

#5 2017-08-03 17:31:40

LZZY
Member

Re: スクリプトで計算しているが更新がうまくいきません

ちなみに、
修正してもらったサンプルのIDをシリアル値にして
新規レコード作成してポータルの1行目に入力すると
なぜかそれが2行目に移動していしますますが
どういったことが原因なのでしょうか?

Offline

#6 2017-08-04 00:01:39

LZZY
Member

Re: スクリプトで計算しているが更新がうまくいきません

単純に新規レコード作成でIDに何かを入力して
ポータルの1行目の最初のレコードになにかいれてフィールドからでると
1行目であるはずのそれが2行目に移動してしまうようです

なぜでしょうか

Offline

#7 2017-08-04 01:27:19

Hiro
Member

Re: スクリプトで計算しているが更新がうまくいきません

> #6 新規レコード作成時の不良の件
・そちらのリレーションのオプション設定で不良な設定(新規レコード作成の許可)がそのまま残っていた為でした。
・修正版を上書きアップしましたので、再ダウンロードしてください。
   ●修正済み「自動更新集計.fmp12」 → https://yahoo.jp/box/5ZsAMb

Offline

#8 2017-08-04 02:02:34

LZZY
Member

Re: スクリプトで計算しているが更新がうまくいきません

すみませんでした
不要なチェックがはいっていたようです

ちなみに、表形式にしてAにA3::グループを表示させると、
A::グループとA3::グループでは違うものが入っています
レコードIDとA2::レコードIDが違うのもなぜかわかりません
合計もそうです
自己リレーションしているだけなので、本来は同じ値になるものではないのですか?

応用として、もうひとつ伺いたいことがあります
これに、日付フィールドを追加して、合計を、
・集計結果はグループの先頭レコードにのみ代入する。
ではなく
・集計結果はグループの同じ月の最初のレコードにのみ代入する。
といいうようなことはできますか?

Offline

#9 2017-08-04 03:06:40

Hiro
Member

Re: スクリプトで計算しているが更新がうまくいきません

> #8 集計結果はグループの同じ月の最初のレコードにのみ代入する。

質問の意味する処が分かりません。
どういった基礎データからどう云った結果をポータル表示したいのですか?
具体的に例示してください。

Offline

#10 2017-08-04 03:35:46

LZZY
Member

Re: スクリプトで計算しているが更新がうまくいきません

ポータルでの表示などは作成していただいたものでかまいません

ただ、それとは別に、月合計フィールドに月の合計を、スクリプトで計算したいです
その月の合計は、ポータルのレコードのように、
同じ月のレコードのうち、いずれかひとつだけに計算する感じです

日付はAに配置し、ポータルのレコードにはすべて同じ日付を転記します(IDのようなあつかいです)
1IDにつき日付も一つということです

素直に自己リレーションと計算フィールドでやればいいのでしょうが
今後のこともあってスクリプトでいろいろな計算をやりたいです

Offline

#11 2017-08-04 11:12:10

Hiro
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.016 seconds, 9 queries executed - Memory usage: 526.95 KiB (Peak: 547.85 KiB) ]