RIA環境でのバッチプログラム処理中の画面表示
RIA環境にてバッチプログラムを実行中に「現在処理中です」の文字を含めた画面を表示したいのですが
不可能なのでしょうか。
「タスク特性(K)」-「タスク特性(T)」-「インターフェース」タブ-「ウインドウ表示」を「Yes」に設定しましたが
表示されませんでした。
-
RIAの環境ではバッチタスクはサーバのバックグラウンド上で実行されます。したがって、クライアント側の画面には何も表示されません。
どうしてもそれを実現したいということであれば、次の2つのいずれかが考えられると思います。
1. メッセージを表示するためだけのリッチクライアントタスクをバッチタスクの前にかます。
2. バッチ処理をバッチタスクで実行するのではなく、非インタラクティブのリッチクライアントタスクに変更し、クライアント側でバッチ処理を行って、フォームを表示する。
2番の方法を行うには、バッチ処理を行うリッチクライアントタスクのタスク特性で「インタラクティブ」のチェックを外して「非インタラクティブ」のタスクとし、「インタフェース」で「ウィンドウ表示」をYesにします。
-
tanda様、ISHIJIMA様 ご回答ありがとうございます。
tanda様の「1」の方法で作成したいのですがリッチクライアントタスクで画面表示だけしてバッチタスクを起動する
方法が分かりませんでした。リッチクライアントタスクでは最低1個の変数が必要でEscキー入力するなどの
操作をしないとバッチタスクが起動できませんでした。何かいい方法があればいいのですが。。。
-
> tanda様の「1」の方法で作成したいのですがリッチクライアントタスクで画面表示だけしてバッチタスクを起動する方法が分かりませんでした。
タスクの作り方です。
1. メインソース無しのリッチクライアントタスクを作成し、フォームに「現在処理中です」のラベルを貼り付ける。このとき、ダミーの変数を1個だけ作成しておく。フォームに貼り付ける必要は無し。2. このタスクのレコード前で該当するバッチタスクをコールする。レコード前を使うのは、画面にフォームの絵だけを書いてからバッチタスクをコールするという処理です。
3. バッチタスクのタスク後で「イベント実行」→「終了」を割り当てる。絵だけ書いて放置されている親のリッチクライアントタスクを、バッチ終了後に終了させるという処理です。
よろしければ弊社の連載コーナーにもお立ち寄りください。
http://www.tandacomp.com/home/magic/writings
-
> インタラクティブのチェックを外さなくてもタクス終了条件YESと画面表示YESでできそうです。
インタラクティブのチェックを外すというのが2番の方法であり、普通のリッチクライアントタスクをバッチタスクの前にカマすというのが1番の方法です。私はその2つの方法を提案しているわけです。そして、akiraさんは1番の方法で行きたいと望んでおられるわけです。
-
ちなみに、タスク特性の「インタラクティブ」のチェックを外して「非インタラクティブ」なタスクにするという設定は、マジック社のRIAトレーニングにおいても、かなりのページ数を割いてその解説を行っている重要な機能です。使用してみるととても便利な機能だということが分かりますよ。Magicの20年選手、30年選手の人でも、RIAのセミナーを受講すると目から鱗の内容が多いです。
-
問題なく表示されますよ。
-
タスク特性の「ウィンドウ表示」でしたらデフォルトは「No」になりますが、これを「Yes」に変更すれば画面は表示されますよ。これはバッチタスクでも同じです。ヘルプのどこに記述されていますか?
-
ヘルプを見てみました。これですね↓
> [ウィンドウ表示]特性は、「No」に変更されます。
これの意味は、「ウィンドウ表示」特性のデフォルトは「No」になります、という意味です。これはバッチタスクでも同じです。画面表示をさせたい場合は、これを「Yes」に変更します。バッチタスクの場合も、画面表示をさせたい場合は、同じようにこれを「Yes」に変更します。
-
tanda様、ISHIJIMA様 詳細なご回答ありがとうございます。tanda様が記載された方法でリッチクライアントタスクを
作成し希望通りの動作をさせる事ができました。感謝いたします。
ただ気になるのが作成したリッチクライアントタスクのプログラムチェックを行うと「レコードレベルの処理でのサーバ
アクセスは推奨できません:レコード前」と表示されます。エラーでは警告なので無視して問題ございませんでしょうか。
またtanda様よりご指摘頂いた「インタラクティブ」についてもMagic社から提供されている「インタラアクティブなリッチ
クライアントの開発と実行 Magic xpa」を読むなどして理解を深めようと思います。
-
> エラーでは警告なので無視して問題ございませんでしょうか。
はい、その警告は無視して問題ないです。レコード前で相当長い時間フリーズしたような状態になるが大丈夫なのかという内容の警告なのですが、バッチが終わるまで待機するという、意図した動作なので大丈夫です。RIAのトレーニングで作成するサンプルプログラムでも、その警告は出てきます。
サインインしてコメントを残してください。
コメント
10件のコメント