Az alábbiakban bemutatásra kerülő grafikai elemet felhasználói kérésre készítettem. Néha előfordul, hogy akár több tízezer rekordot kell interaktívan feldolgozni, és ilyenkor a felhasználó nem sok mindent lát a folyamat állapotáról. Ennek ellensúlyozására építettem be az egyik programba a folyamat kijelzését.
A folyamatkijelzéshez az eredeti program két programot fog meghívni, egyik a feldolgozandó rekordok számát adja vissza, a másik pedig a tényleges kijelzést fogja megvalósítani. A rekordszámot meghatározó programról már egy korábbi blogbejegyzésről írtam, ezért ezzel most nem foglalkoznék (az itt használt TKSQFFE1 program forrása itt található). A másik program Martin Rowe munkája, forrását itt találjátok.
Nézzük is, hogy mire van szükségünk, hogy egy adott programba mindezt működésre bírjuk.
H OPTION(*SRCSTMT:*NODEBUGIO)
...
D P#COUNT S 10 0
D OnePercent S 11 2
D P_Marker S 1 INZ('#')
D P_Percent S 3 0
D P_Text S 20 INZ('Fájl feldolgozás: ')
D RcdsRead S 9 0
D Remainder S 9 0
* színek a kijelzőhöz
D Green C CONST(X'21')
D White C CONST(X'23')
D Red C CONST(X'29')
D Turqoise C CONST(X'31')
D Yellow C CONST(X'33')
D Pink C CONST(X'39')
D Blue C CONST(X'3B')
...
* a program elején meg kell határozni a feldolgozandó rekordok számát
* itt most egy év- és hónap számot használunk erre
* P#COUNT-ban lesz a visszaadott érték
C EVAL P#COUNT= 0
C* bejövő EVAL P#EVSZ
C* paraméterek EVAL P#HOSZ
C CALL 'TKSQFFE1' PY3RES1
...
* 1 % kiszámítása, a kijelző pedig legyen piros
C EVAL OnePercent = P#COUNT / 100
C EVAL P_MARKER = Red
...
* !!! A feldolgozás nyilván egy ciklusban fog történni, oda kell
* bemásolni az alábbi részt:
*
* Itt követjük nyomon, hogy hol tartunk a fájl viszgált részében
C EVAL RcdsRead = RcdsRead + 1
C RcdsRead DIV OnePercent P_Percent
C MVR Remainder
* Ha nőtt a százalék akkor írja ki az újat
C IF Remainder = 0
C CALL 'DBG202R4'
C PARM P_Percent
C PARM P_Text
C PARM P_Marker
C ENDIF
...
* a TKSQFFE1 program paraméterei
C PY3RES1 PLIST
C PARM P#COUNT
C PARM P#EVSZ
C PARM P#HOSZ
...
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.