メインソースを指定したバッチ処理
例えばテーブル内の金額という項目を全レコード足したらいくらになるか照合用のプログラムを作成したい時、タスク特性を
・汎用(G)
タスクタイプ:B=バッチ
初期モード:M=修正
タスク終了条件:No
・インターフェース
ウィンドウ表示:Yes
・オプション
オプション:Yes
と設定をして、メインソースを対象のテーブル、カラムに集計したい金額を定義して
数値型の変数を作成しレコード後処理で項目更新(変数+カラム)を入れてフォームに
変数を置いて実行すると指定範囲の金額を集計していましたがxpaではなぜか1レコード目の金額しか表示されません。今のバッチタスクにオンラインの子タスクを作成してそこに変数を置きタスク後処理でコールするとちゃんとした金額が表示されます。
これは単純にフォームに表示させるタイミングがタスク終了時ではなく1レコード目というだけでxpa3.xでこの集計はできないのでしょうか。それかもっと手っ取り早い照合方法があるのであれば教えて頂きたいです。
-
XPA3.xに有るのかどうかわかりませんが、デバッグ機能が良いのではないでしょうか。
ブレイクポイントの設定と項目表示で集計結果を確認できます。
私はXPA2.xでですが、集計以外でも様々な場面で使用しています。
-
ブレイクポイントを設定してデバッグモードで確認できました!他言語のフレームワークではよくデバッグモード使用してますがmagicでは使用してなかったのでまだ勝手はわかりませんがちょっと触ってみます。
ありがとうございました。 -
daiさん、
同じようなプログラムを作って試してみましたが、私のところではうまく集計できましたよ。
使用したMagicはxpa 4.8です。

-
ひょっとすると、旧資産からアップグレードしてくると、動きが変わるのかもしれませんね。お使いのバージョンで簡単なバッチを新規で作って動作検証してみるといいと思いますよ。
-
xpa3.2でスクラッチ開発をした際にバッチを作成してみましたができなかったので質問させて頂きました。因みに私の場合4.8でもダメでした(笑)
でも今tandaさんの画像を見て同じようにテーブルコントロールを追加してみたらうまくできました!私は変数のみを配置してましたのでダメだった様です。これがわかるとさらに開発速度が上がります。ありがとうございました。 -
daiさん、
あ、本当ですね。テーブルを外すと集計がうまく行きませんね。画面の更新がないということで、再描画されていないような動きですね。

-
おっしゃる通りの動きみたいです。タスク後処理で合計変数に合計変数を項目更新すると再描画されるのかテーブルなしでも表示できました。たまに金額照合のためにこのバッチを作成するので助かりました。ありがとうございました!
-
daiさん、
「タスク後処理で合計変数に合計変数を項目更新する」
↑ するどい検証方法ですね!
「ビュー再表示」も「画面再表示」もダメだったのでどうしたものかと思っていましたが、自分の値を自分自身で更新するという手があったんですね。感激です!
-
自分の値を自分に項目更新なんか普通に開発してる時はしないですもんね(笑)
困った時のmagicフォーラム助かります。また質問させて頂きますので皆さまよろしくお願いいたします。
-
daiさん、
心強い人にフォーラムに参加してもらえて、嬉しいです!
-
いえいえ、おこがましいです。またよろしくお願いします。
サインインしてコメントを残してください。
コメント
11件のコメント