カラムフィルタリングで合計再集計
お世話になっております。
テーブルコントロールで、枠外に合計欄表示しおり、
カラムフィルタリングを使用した時に、
フィルタリングした内容で合計を再計算したいのですが
何か方法はありますでしょうか?
よろしくお願い致します。
Magic xpa 3.1
SQL Server 2018
-
Hooさん、そのデータだけを保存するテーブルを用意して、バッチで集計してみてはいかがでしょうか?
-
tandaさん
コメントありがとうございます。
すみません。そのデータだけを保存するテーブルとはどういう事でしょうか?
カラムフィルタリングで絞り込んだデータを保存すると言う事でしょうか?
その場合、どのように保存したらよいのでしょうか?
カラムフィルタリングはUserFunctionalityの機能を使用してフィルタリングしています。
カラムコントロールーフィルタリング可=Ture
よろしくお願い致します。
-
Hooさん、
カラムのフィルタリングは範囲指定をダイアログ化しただけのものですので、範囲指定した結果を集計したいような場合は、やはりバッチで回すしかないと思います。
バッチで回す場合、一時テーブルに該当レコードを保存する必要がなければ、変数を用意して、そこに値を加算していくだけでもいいと思います。
-
tandaさん
コメントありがとうございます
カラムフィルタリングで絞り込まれたビューは
どのように取得したらよいのでしょうか?
バッチで回すデータを取得する方法が分かりません。
何か関数があるのでしょうか?範囲指定の内容が取れれば、その条件でバッチ集計することは可能ですが、
UserFunctionality側で範囲指定をするため、現状では内容が取れません。
UserFunctionality側を修正する必要があるのでしょうか?よろしくお願い致します。
-
Hooさん、
バッチタスクで範囲指定すれば、該当するレコードだけが処理の対象となりますので、そこで目指すカラムの値を足し算していけばいいです。
フィルタリング機能は、プルダウンメニューの「オプション」→「範囲」を簡素化しただけのものですので、その結果を集計するには、バッチタスクで同じ内容の範囲を指定をして、集計してやる必要がありますね。
-
tandaさん
コメントありがとうございます。
同じような事を何度もすみません。フィルタリング機能は、プルダウンメニューの「オプション」→「範囲」と同じものなのですね。
「バッチタスクで同じ内容で範囲を指定をして」とありますが、
範囲に登録されている内容をバッチタスクでどのように使用するのでしょうか?
初歩的なことなのかもしれませんが、ご教授お願い致します。また、
カラムフィルタリングを実行した後に合計の再計算を実行したいのですが、
フィルタリングが実行されたことを取得したいのですが、
なにか方法はありますでしょうか?よろしくお願い致します。
-
Hooさん、
カラムのフィルタリング機能もメニューの範囲機能も、いずれもエンドユーザ向けの一時機能ですので、そこからロジックを拡張させてプログラムを繋いでいくことは難しいと思います。
オーソドックスではありますが、ここは最初から範囲指定用の変数を設けて、そこで入力された値をもとにバッチを起動して集計していったほうがいいと思います。
-
tandaさん
コメントありがとうございます。
カラムフィルタリングを使わずに、範囲指定用の変数で集計するようにしてみます。
有難うございました。
-
Hooさんの質問に対する回答ではありませんが・・・
内部イベント カラムフィルタ というのが存在するのですね。
ヘルプによるとイベント自体はxpa 3.1から存在するようです。
定義してみましたが活躍のシーンが見えません。
フィルタリングの条件もプログラム側でゲットできるようになるといいのでしょうね。 -
nkmtさん
コメントありがとうございます。
カラムフィルタリングは容易に設定できるため、つい使ってしまいます。
今回のように合計を再計算する場合は、使わない方が良いのかもしれません。
できればフィルタリングで絞った内容で再計算出来てほしかったのですが... -
私がよくやるのがカラムフィルタリングではなく、得意先名や担当者名をダブルクリックすると、範囲指定変数へそのコード等を設定し、Cndrange関数も用いて範囲指定をして、ビュー再表示を行っています。
Hooさんがたどり着いたように、合計値の表示も伴うような場合、フィルタリングは用いない方が今の所良さそうですね。フィルタリング条件をプログラム側でGetできる日がやってくるといいですね。きっとMagicならそんな日もやって来ると思います。 -
将来は、テーブルコントロールに表示しているデータがメモリワークの場合、列の合計値も計算してくれるような事が出来たりすると面白いでしょうね。
-
横から失礼します、こんな素敵な機能あったんですね
ちょっと試してみたところ、これもUserFUnctionalityに含まれていて
Criteriaっていう名前のメモリーテーブルに条件が保存されるようです。
インストールフォルダ\Add_On\UserFunctionalityにedpがあるので、
そこからデータリポジトリ持ってくると中身見れそうでした
(XPA4、APGで開くでしか試してません)
このメモリーテーブルblobで保存して、書き戻してもっかいフィルタリングすれば、もしや条件記憶できるのでは・・?とか夢が広がりますねぇ・・
サインインしてコメントを残してください。
コメント
13件のコメント