如何顯示某些處理程序的百分比狀況?
某些程序可能需要較長的時間處理,例如 On-Line 處理大批資料時,系統僅顯示輸入暫停,
使用者根本不知道系統處理進度,也不知何時可以完成該項工作,往往會影響到使用者的工
作效率,所以在開發應用軟體時,針對耗時的程序,最好要考慮回應處理狀況給使用者。
File : QRPGLESRC
Member : PROGSMSGR
Type : RPGLE
Usage : CRTBNDRPG PROGSMSGR
Call PROGSMSGR
H DEBUG OPTION(*SRCSTMT:*NODEBUGIO)
*====================================================================*
* Progress Percentage Message *
*--------------------------------------------------------------------*
* *
* 2001/11 Vengoal Chang *
*--------------------------------------------------------------------*
Fimtmpf if e k disk infds(infdsx)
*---------------------------------------------------------------------
D infdsx ds
D NbrOfRcds 10i 0 overlay(infdsx:156)
D TwoPercent s 10u 0 inz(0)
D RecordCnt s 10u 0 inz(0)
D PercentComp s 10u 0 inz(0)
D InPrgVary s 50 varying
D InProgressMsg s 50
D ConstantPeriod s 50 inz(*all'.')
* -------------------------------------------------------------
D qmhsndpm PR ExtPgm('QMHSNDPM') SEND MESSAGES
D 7 const ID
D 20 const FILE
D 73 const TEXT
D 10i 0 const LENGTH
D 10 const TYPE
D 10 const QUEUE
D 10i 0 const STACK ENTRY
D 4 const KEY
Db like(vApiErrDS)
*----------------------------------------------------------------
D vApiErrDs ds
D vbytpv 10i 0 inz(%size(vApiErrDs)) bytes provided
D vbytav 10i 0 inz(0) bytes returned
D vmsgid 7a error msgid
D vresvd 1a reserved
D vrpldta 50a replacement data
C eval TwoPercent=%int((NbrOfRcds/100)*2)
C
C read imtmpf
C Dow not %eof
C exsr srInProgress
C read imtmpf
C Enddo
C eval *inLR = *on
* ---------------------------------------------------------------------
C srInProgress begsr
C eval RecordCnt = RecordCnt + 1
1B C if %rem(RecordCnt:TwoPercent)=0
C eval InPrgVary=InPrgVary+'>'
C eval InProgressMsg=InPrgVary+ConstantPeriod
C eval PercentComp=PercentComp+2
* Send status message
C callp QMHSNDPM(
C 'CPF9898':'QCPFMSG *LIBL ':
C %char(PercentComp) + '% completed: ' +
C InProgressMsg :
C 65:'*STATUS':'*EXT': 1:' ':
C vApiErrDS)
1E C endif
C endsr
您可將 File IMTMPF 改成您要處理的檔案再 Compile。
A blog about IBM i (AS/400), MQ and other things developers or Admins need to know.
星期三, 11月 01, 2023
2001-11-07 如何顯示某些處理程序的百分比狀況?
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言