• ベストアンサー

ファイルメーカ 集計の表示

ボディに金額欄がありフッターにその合計(タイプは集計)を置いています。 金額欄を書きかえすぐに次のフィールドに移動すると合計が空欄になります。 ヘッダとか何も無い所をクリックすると合計がでます。 金額欄を書き換えて次のフィールド又は他のレコードのフィールドに移ったら、すぐ合計が表示されるにはどうしたらいいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • aqula
  • ベストアンサー率60% (70/115)
回答No.11

合計は以前のままの集計フィールドです。 追加した計算フィールドはスクリプト起動のトリガーですから レイアウトに置く必要はありません。 金額1-----数字 金額2-----数字 合計------集計--金額1の合計(フッタに配置) トリガー--計算--非保存,=If ( Get ( アクティブフィールド名 ) ≠ 金額1;S4HU_EventScript( "test.fp7"; "スクリプト1" ; "" );"") 計算式内のファイル名に拡張子が必要だと思います。

situmonnsya
質問者

お礼

ふぅ~~~ やっと出来ました。 計算フィールドにスクリプト起動を置けるなんてすごい技ですね。 他にもいろいろ流用できそうです。 すごい勉強になり、また快適に動いてます。 誠にありがとうございました。

その他の回答 (10)

  • aqula
  • ベストアンサー率60% (70/115)
回答No.10

Get ( アクティブフィールド名 ) このままの取得関数です。計算式の指定で関数表示のプルダウンメニューから 取得関数を選ぶと、上から5番目にあります。 S4HU_EventScript( "ファイル名"; "スクリプト名" ; "" );"") 同じプルダウンメニューから外部関数を選択するとあるはずです。 (プラグインをExtensions フォルダーに入れていれば) >>レコード/検索受験確定 >レコード/検索条件確定でしょうか? その通り

situmonnsya
質問者

お礼

訂正 テーブル名---test -------------金額1---数字 -------------金額2---数字 -------------合計----集計---= 金額1合計 -------------aaaa----計算--非保存,=If ( Get ( アクティブフィールド名 ) ≠ 合計;S4HU_EventScript( "test"; "スクリプト1" ; "" );"") です。

situmonnsya
質問者

補足

うう~~出来ない! *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)
回答No.9

訂正です。スクリプトを次の3ステップにしてください。  レコード/検索受験確定[ダイアログなし]  次のフィールドへ移動  次のフィールドへ移動 なお、計算式の中の「ファイル名」はあなたの付けたファイルの名前 「スクリプト名」は上のスクリプトに付けた名前です。

situmonnsya
質問者

お礼

> ( アクティブフィールド名 ) ≠ 合計; でなく金額1でした。スミマセン それでうまくいきますが、レイアウトモードへ移行出来ません。 やっぱりピコピコのループに入ります。

situmonnsya
質問者

補足

ありがとうございます。 今日はおそいので明日ためしてみます。 楽しみです。

  • aqula
  • ベストアンサー率60% (70/115)
回答No.8

一応出来ました。 下のURLから「EventScript」という Plugin をダウンロードし、FileMaker の Extensions フォルダーにいれます。 (たぶん、FileMaker の 再起動が必要) http://www.softs4humans.com/FMPro_Plugins.html ※ドネーションウエアです レコード確定のスクリプトを作ります。  レコード/検索受験確定[ダイアログなし]  フィールドへ移動[(次のフィールド名)] 計算フィールドを作ります。 計算式 = If ( Get ( アクティブフィールド名 ) ≠ 金額;S4HU_EventScript( "ファイル名"; "スクリプト名" ; "" );"") これで希望どおりの動作になると思います。 MacOSX10.3.9 + FM7,FM8で確認

situmonnsya
質問者

お礼

>If ( Get ( アクティブフィールド名 ) ≠ 金額 アクティブフィールド名とはボディにある入力される金額フィールド? 金額とはフッタにある合計でしょうか? GetField(~~ でなく Get(~~でしょうか? >レコード/検索受験確定 レコード/検索条件確定でしょうか? OSはWindowでFM.7です

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.7

私、大嘘ついてました。集計フィールドは「普通に」空欄になりますね。すみません。 「レコード確定」の操作以前に表示されるというのは無理ですね。 レコード内の計算フィールドの結果がフィールドを移動しただけで出るというのは 確定と無関係と考えるしか・・・・

situmonnsya
質問者

お礼

がっかりです。 MSアクセスだとVBで「レコード確定」を強引に出来たんだけど。 でも、慣れてきたらFMっていいですね!! ありがとうぞざいます。

  • aqula
  • ベストアンサー率60% (70/115)
回答No.6

ヘルプにある「データの確定」が必要なようです。 >通常のワードプロセッサアプリケーションと異なり、FileMaker Pro では、 >データは作業中に保存されます。これを「データの確定」と呼びます。 >データは、次の操作を行った時点で確定されます。 >他のレコードを選択する >現在のフィールド外の場所をクリックする >Windows の場合、テンキーの Enter キー、または Ctrl+Enter(テンキーのないコンピュータの場合)を押す >Mac OS の場合、enter キーを押す(return キーでは確定されません) >他のモードに切り替える スクリプトを使うしか無いんじゃないでしょうか。 ※スクリプトにはレコード確定ステップがあります。

situmonnsya
質問者

お礼

う~~~ん スクリプトに「次フィールドに移った時」というイベントがあればよかったんですが・・・・ 残念!!

  • aqula
  • ベストアンサー率60% (70/115)
回答No.5

ごめんなさい 大嘘教える所だった… 今確認したら、GetSummary ( 集計フィールド; 集計フィールド )でも 自己リレーションでも「即表示」はできないですね。

situmonnsya
質問者

補足

ええ~~!! GetSummaryも自己リレーションもできないんですか? 今、その辺を勉強しようと思ったんですが。 その他何か方法ありませんか? 「即表示」できないのは、体に悪いですよね。

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.4

集計フィールドを使っているということは、複数レコードの金額の合計みたいですからSumでは リレーションを設定しないとできないと思います。 計算フィールドでしたらGetSummary ( 集計フィールド; 集計フィールド )でしょうか。 空白になるのが再現できました。たぶん繰り返しフィールドを使っていますね?

situmonnsya
質問者

補足

繰り返しフィールドは使っていません。「1」のままです。 GetSummaryを勉強してみます。

  • aqula
  • ベストアンサー率60% (70/115)
回答No.3

合計のフィールドタイプを集計にしているからですよ。 計算フィールドにして Sum ( 金額 ) で出来ます。 MacOSX10.3.9 + FileMaker Pro 8 で確認

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.2

空欄になるという経験がありませんが、集計フィールドは金額フィールドの単なる合計なのですか?他に書き忘れていることはないですか?

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.1

フィールドデータが確定されていないためにそうなります。 詳しくはヘルプの 目次 > データの追加と表示 > レコードへのデータの入力 > レコード内のデータの確定 を。

situmonnsya
質問者

補足

はい、そうなんですね。 でも、かりに同一レコード内で    金額A  金額B  合計C(A+B) とすると Aに数字を入力しBにフィールドが移った状態でもうCに結果が表示されるように、何かの関数(?)を利用して、フッタに即表示できないでしょうか? chieffishさんにはいつもお世話なってますが、今回もよろしくお願いします。