過去の桐井戸端BBS (桐ver.9)
29064 伝票フォーム上で条件付き集計をしたい tetsu-s 2005/02/16-01:45
お世話になります。

伝票形式フォームで
ヘッダーに[コード]、明細部に[金額],[課金]とします。
[課金]のデータ型は整数値で"0"か"1"しか入力しません。

グループ化した[コード]の合計金額の表示方法で
明細部に入力した”#合計([金額])”とは別に
[課金]=1の金額の合計だけを表示したいのですが、いい方法を教えて下さ
い。

現在は表.TBLに[課金金額]を設けて計算式”[金額]×[課金]”とし、
伝票形式フォームで”#合計([課金金額])”としています。

表.TBLで[課金金額]がなくても、伝票フォーム上で処理できる方法を知りたいのです。

よろしくお願いします。
29067 Re:伝票フォーム上での条件付き集計 宮城 2005/02/16-09:39
記事番号29064へのコメント
tetsu-sさん、こんにちは。

>表.TBLで[課金金額]がなくても、伝票フォーム上で処理できる方法を知りた
>いのです。

これどうしてでしょうか? 集計したいもの別に項目作ってタテにすとんと#合計([課金金額])とやったほうがずっと楽ですよ。
集計したい分類が増えるほどてきめんに。

項目計算式は、#条件選択([課金]=1,[金額],1,0)ぐらいにしておいたほうが応用がきくと思います。

29073 Re:伝票フォーム上での条件付き集計 tetsu-s 2005/02/16-21:10
記事番号29067へのコメント
宮城さん、早速の回答ありがとうございます。ひとつ確認させてください。
表.tblに別に項目を設けたほうが良いということですよね。
”集計したい分類が増えるほどてきめんに。”も理解できます。
フォーム上に#条件選択を使って[課金]=1の合計金額を出す方法はないのでしょうか?
29074 Re:伝票フォーム上での条件付き集計 悲しげ 2005/02/16-21:45
記事番号29073へのコメント

>フォーム上に#条件選択を使って[課金]=1の合計金額を出す方法は
>ないのでしょうか?

「フォーム上に#条件選択を使って」だけでやる方法は、たぶん無いと思います。
ゆえに、私も別項目増設で対処すると思います。

29076 Re:伝票フォーム上での条件付き集計 宮城 2005/02/16-23:51
記事番号29074へのコメント
悲しげさん、どうもです。

なんで、そういう関数がないかですが、Excelにはまねのできない「絞込み」があるからでしょうね。

[課金]=1で絞り込む。
#合計([金額])の値をなんかの変数に取り込む。(これは見えないようにしておくとか。)
絞り込み解除する。集計らしき領域のソース変数を「なんかの変数」にしておけば、コマンドボタンでできるかも。

# 所詮、表計算とDBは別物。
29077 Re:伝票フォーム上での条件付き集計 hidetake 2005/02/16-23:59
記事番号29076へのコメント
>[課金]=1で絞り込む。
>#合計([金額])の値をなんかの変数に取り込む。(これは見えな
>いようにしておくとか。)

こういう場合は、検索で集計じゃないのかな?

#prgn(#cond([課金]=1,#setq(&合計値,&合計値))),"HogeHoge")
と言うような式で絶対に検索されずに #eof に行く条件で検索。
もちろん、&合計値 などはあらかじめ初期化。
あとは、グループ値更新や結果の変化する項目のソース値変更などには再集計を入れておく必要も・・・
29078 Re:伝票フォーム上での条件付き集計 hidetake 2005/02/17-00:02
記事番号29077へのコメント
>#prgn(#cond([課金]=1,#setq(&合計値,&合計値))),"HogeHoge")

何書いているんだか? (;_;)

#progn(#cond([課金]=1,#setq(&合計値,&合計値+[[金額])),"HogeHoge")

29079 Re:伝票フォーム上での条件付き集計 hidetake 2005/02/17-00:12
記事番号29078へのコメント
> こういう場合は、検索で集計じゃないのかな?

何故絞り込みで無く、検索で集計かと言うと、いくつも(条件によって)
集計したい場合に、いちいち絞り込み解除を繰り返さなくとも、
1回の検索で、それを代入するための変数を用意しておけば、#progn で
どんどん条件で計算させて、さらっと1回なめるだけで済みます。

これって、昔からある酒井本で書かれてもいる古くからの手法ではあります。
29080 Re:伝票フォーム上での条件付き集計 tetsu-s 2005/02/17-00:18
記事番号29064へのコメント
皆様のご教授に感謝します。
色々ためしてみます。
ありがとうございました。
29081 Re:伝票フォーム上での条件付き集計 宮城 2005/02/17-01:41
記事番号29079へのコメント
hidetakeさん、ぴっかりです。こういう手があるとは思い至りませんでした。m(_ _)m
29102 Re:伝票フォーム上での条件付き集計 宮城 2005/02/18-14:55
記事番号29079へのコメント
実行報告。コマンドボタンに以下記述。

 機能名    機能パラメータリスト
1 なし     #setq(&合計値,0)
2 検索_比較式 [金額]=#progn(#cond([課金]=1,
            #setq(&合計値,&合計値+[金額])),-1)

# [金額]は数値だから"HogeHoge"はよろしくない?
# 「マッチせず」のダイアログはしかたないですね。

戻る