処理中表示

Q1
プログレスバーの動きと処理を同期させたい
[内容]
通信処理などで時間のかかる処理のときに、進行状況をProressBarで表したいが、
処理中にStepItメソッドでバーを進めても、処理の終了時に一気にバーが進んで
しまう。
処理の進行状況に合わせて進めることは出来ないのか?


A1
[解決方法]
プログレスバーの進行状態を変更する等、画面の表示状態の変更は、CRSスクリプトの
連続する処理が終了したとき(アイドル状態)でまとめて行われます。
そのため、時間のかかる処理中にStepItメソッドを実行し、任意の位置までバーを進めた
としても、その処理内容を画面へ反映するのは、一連の処理を終了してからになります。

処理中にProgressBarのバーを進めるには、AutoStepメソッドを利用します。
ただし、AutoStepメソッドは、自動的にバーを進める機能ですので、処理の進行と同期
させることは出来ません。

処理中に発生するイベントを利用して、AutoStepメソッドとStepItメソッドを組み合わせて
バーの進行が100%になるタイミングと、処理が終了するタイミングをおおまかに合わせる
ことは可能です。
サンプルコードでは、Step数を多めに指定しておき、通信中はAutoStepで進め、
通信完了後のデータの加工時に残り分を調整しながら、StepItでバーを進めています。

なおBiz/Browser Vでは、StepItメソッドで任意の位置までバーを進めた後、
syncObjectメソッドを実行することで、処理中でも画面の表示に反映できます。

 
[サンプルコード]



CRSファイル形式のサンプル
   「処理の終了に合わせてプログレスバーを進める(DPro_005.zip)
をご参照ください。

管理番号:DPro_005
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser・Biz/Designer TIPS集 トップへ