- ベストアンサー
ファイルメーカ 集計の表示
ボディに金額欄がありフッターにその合計(タイプは集計)を置いています。 金額欄を書きかえすぐに次のフィールドに移動すると合計が空欄になります。 ヘッダとか何も無い所をクリックすると合計がでます。 金額欄を書き換えて次のフィールド又は他のレコードのフィールドに移ったら、すぐ合計が表示されるにはどうしたらいいでしょうか?
- みんなの回答 (11)
- 専門家の回答
質問者が選んだベストアンサー
合計は以前のままの集計フィールドです。 追加した計算フィールドはスクリプト起動のトリガーですから レイアウトに置く必要はありません。 金額1-----数字 金額2-----数字 合計------集計--金額1の合計(フッタに配置) トリガー--計算--非保存,=If ( Get ( アクティブフィールド名 ) ≠ 金額1;S4HU_EventScript( "test.fp7"; "スクリプト1" ; "" );"") 計算式内のファイル名に拡張子が必要だと思います。
その他の回答 (10)
- aqula
- ベストアンサー率60% (70/115)
Get ( アクティブフィールド名 ) このままの取得関数です。計算式の指定で関数表示のプルダウンメニューから 取得関数を選ぶと、上から5番目にあります。 S4HU_EventScript( "ファイル名"; "スクリプト名" ; "" );"") 同じプルダウンメニューから外部関数を選択するとあるはずです。 (プラグインをExtensions フォルダーに入れていれば) >>レコード/検索受験確定 >レコード/検索条件確定でしょうか? その通り
お礼
訂正 テーブル名---test -------------金額1---数字 -------------金額2---数字 -------------合計----集計---= 金額1合計 -------------aaaa----計算--非保存,=If ( Get ( アクティブフィールド名 ) ≠ 合計;S4HU_EventScript( "test"; "スクリプト1" ; "" );"") です。
補足
うう~~出来ない! *Extensions フォルダーにS4HU_EventScript 1.1 有 (Window版) 環境設定のプラグインにS4HU_EventScript 1.1有るを確認。チェックも入っています。 ファイル名---test.fp7 スクリプト名-スクリプト1 ---レコード/検索条件確定[ダイアログなし] ---次のフィールドへ移動 ---次のフィールドへ移動 テーブル名---test -------------金額1---数字 -------------金額2---数字 -------------合計----計算--非保存,=If ( Get ( アクティブフィールド名 ) ≠ 金額1;S4HU_EventScript( "test"; "スクリプト1" ; "" );"") >>>>>S4HU_EventScript 1.1 にするとスクリプトがないとはねられる。 金額1、金額2はボディ部 合計はフッタ 上記でよろしいでしょうか? 動きが変です。無限ループに入ったみたいで、金額1と金額2をすばやく行ったり来たりピコピコです。 参考サイトはEnglishで読めません(大悲)
- aqula
- ベストアンサー率60% (70/115)
訂正です。スクリプトを次の3ステップにしてください。 レコード/検索受験確定[ダイアログなし] 次のフィールドへ移動 次のフィールドへ移動 なお、計算式の中の「ファイル名」はあなたの付けたファイルの名前 「スクリプト名」は上のスクリプトに付けた名前です。
お礼
> ( アクティブフィールド名 ) ≠ 合計; でなく金額1でした。スミマセン それでうまくいきますが、レイアウトモードへ移行出来ません。 やっぱりピコピコのループに入ります。
補足
ありがとうございます。 今日はおそいので明日ためしてみます。 楽しみです。
- aqula
- ベストアンサー率60% (70/115)
一応出来ました。 下のURLから「EventScript」という Plugin をダウンロードし、FileMaker の Extensions フォルダーにいれます。 (たぶん、FileMaker の 再起動が必要) http://www.softs4humans.com/FMPro_Plugins.html ※ドネーションウエアです レコード確定のスクリプトを作ります。 レコード/検索受験確定[ダイアログなし] フィールドへ移動[(次のフィールド名)] 計算フィールドを作ります。 計算式 = If ( Get ( アクティブフィールド名 ) ≠ 金額;S4HU_EventScript( "ファイル名"; "スクリプト名" ; "" );"") これで希望どおりの動作になると思います。 MacOSX10.3.9 + FM7,FM8で確認
お礼
>If ( Get ( アクティブフィールド名 ) ≠ 金額 アクティブフィールド名とはボディにある入力される金額フィールド? 金額とはフッタにある合計でしょうか? GetField(~~ でなく Get(~~でしょうか? >レコード/検索受験確定 レコード/検索条件確定でしょうか? OSはWindowでFM.7です
- chieffish
- ベストアンサー率44% (1149/2554)
私、大嘘ついてました。集計フィールドは「普通に」空欄になりますね。すみません。 「レコード確定」の操作以前に表示されるというのは無理ですね。 レコード内の計算フィールドの結果がフィールドを移動しただけで出るというのは 確定と無関係と考えるしか・・・・
お礼
がっかりです。 MSアクセスだとVBで「レコード確定」を強引に出来たんだけど。 でも、慣れてきたらFMっていいですね!! ありがとうぞざいます。
- aqula
- ベストアンサー率60% (70/115)
ヘルプにある「データの確定」が必要なようです。 >通常のワードプロセッサアプリケーションと異なり、FileMaker Pro では、 >データは作業中に保存されます。これを「データの確定」と呼びます。 >データは、次の操作を行った時点で確定されます。 >他のレコードを選択する >現在のフィールド外の場所をクリックする >Windows の場合、テンキーの Enter キー、または Ctrl+Enter(テンキーのないコンピュータの場合)を押す >Mac OS の場合、enter キーを押す(return キーでは確定されません) >他のモードに切り替える スクリプトを使うしか無いんじゃないでしょうか。 ※スクリプトにはレコード確定ステップがあります。
お礼
う~~~ん スクリプトに「次フィールドに移った時」というイベントがあればよかったんですが・・・・ 残念!!
- aqula
- ベストアンサー率60% (70/115)
ごめんなさい 大嘘教える所だった… 今確認したら、GetSummary ( 集計フィールド; 集計フィールド )でも 自己リレーションでも「即表示」はできないですね。
補足
ええ~~!! GetSummaryも自己リレーションもできないんですか? 今、その辺を勉強しようと思ったんですが。 その他何か方法ありませんか? 「即表示」できないのは、体に悪いですよね。
- chieffish
- ベストアンサー率44% (1149/2554)
集計フィールドを使っているということは、複数レコードの金額の合計みたいですからSumでは リレーションを設定しないとできないと思います。 計算フィールドでしたらGetSummary ( 集計フィールド; 集計フィールド )でしょうか。 空白になるのが再現できました。たぶん繰り返しフィールドを使っていますね?
補足
繰り返しフィールドは使っていません。「1」のままです。 GetSummaryを勉強してみます。
- aqula
- ベストアンサー率60% (70/115)
合計のフィールドタイプを集計にしているからですよ。 計算フィールドにして Sum ( 金額 ) で出来ます。 MacOSX10.3.9 + FileMaker Pro 8 で確認
- chieffish
- ベストアンサー率44% (1149/2554)
空欄になるという経験がありませんが、集計フィールドは金額フィールドの単なる合計なのですか?他に書き忘れていることはないですか?
- chieffish
- ベストアンサー率44% (1149/2554)
フィールドデータが確定されていないためにそうなります。 詳しくはヘルプの 目次 > データの追加と表示 > レコードへのデータの入力 > レコード内のデータの確定 を。
補足
はい、そうなんですね。 でも、かりに同一レコード内で 金額A 金額B 合計C(A+B) とすると Aに数字を入力しBにフィールドが移った状態でもうCに結果が表示されるように、何かの関数(?)を利用して、フッタに即表示できないでしょうか? chieffishさんにはいつもお世話なってますが、今回もよろしくお願いします。
お礼
ふぅ~~~ やっと出来ました。 計算フィールドにスクリプト起動を置けるなんてすごい技ですね。 他にもいろいろ流用できそうです。 すごい勉強になり、また快適に動いてます。 誠にありがとうございました。