How do I call a QUICK slave screen from COBOL and
pass parameters?
Fernando Olmos
folmos@rmit.EDU.AU
Mon, 01 Mar 1999 16:24:48 +1100
Yep..... you're right.... but then again..... I could argue that DISC SPACE AND CPU POWER '...IS TOO SHORT!'.
Thanks for the suggestion anyway.
I got it working and I must say, it is more 'clean' than having to define a file and writing to it and reading etc...... not to mention user lock issues.
The "solution" in a nut-shell is...
..
..
DEFINE THE QUICK SCREEN TO CALL........
01 W15-RUN-SCRN. FO010399
03 FILLER PIC X(60) VALUE FO010399
"RUN QUICK.CURRENT.COGNOS;INFO='AUTO=TAK0095P.PUB.TIMS'". FO010399
03 FILLER PIC X VALUE %15. FO010399
01 W15-ERR PIC S9(4) COMP VALUE 0. FO010399
01 W15-PARM PIC S9(4) COMP VALUE 0. FO010399
DEFINE A MPE VARIABLE TO STORE THE STUDENT NUMBER
01 W16-SETVAR. FO010399
03 FILLER PIC X(14) VALUE FO010399
"SETVAR STUNO,'". FO010399
03 W16-STUNO PIC X(8). FO010399
03 FILLER PIC X(1) VALUE "'". FO010399
03 FILLER PIC X VALUE %15. FO010399
01 W16-PARM PIC S9(4) COMP VALUE 0. FO010399
01 W16-ERR PIC S9(4) COMP VALUE 0. FO010399
DEFINE THE JCW NAME OF THE VARIABLE TO STORE THE NUMBER OF STUDENTS DELETED
01 W17-COMMAND. FO010399
03 W17-STUCOUNT PIC X(8) VALUE FO010399
"DELCOUNT". FO010399
03 FILLER PIC X VALUE %15. FO010399
01 W17-PARM PIC S9(4) COMP VALUE 0. FO010399
01 W17-ERR PIC S9(4) COMP VALUE 0. FO010399
DEFINE THE VARS TO CONTAIN THE COUNT RESULT FROM CALLING THE QUICK SCREEN
01 W18-DEL-COUNT PIC S9(4) COMP. FO010399
01 W19-DEL-COUNT-ASCII PIC X(4). FO010399
..
..
P5097-DELETE-STUDENT-DELTA. FO010399
*PUT THE STUDENT NUMBER INTO AN MPE VAR. FO010399
MOVE W05-STUDENT-NUMBER TO W16-STUNO. FO010399
CALL INTRINSIC "COMMAND" USING W16-SETVAR FO010399
W16-ERR FO010399
W16-PARM. FO010399
FO010399
*CALL QUICK SCREEN TO FIND DSTUDENT-DELTA RECORDS AND DELETE THEM
*THE SCREEN WILL ALSO SET A JCW WITH THE NUMBER OF DELETIONS.
CALL INTRINSIC "COMMAND" USING W15-RUN-SCRN FO010399
W15-ERR FO010399
W15-PARM. FO010399
FO010399
..
..
MOVE "DSTUDENT-DELTA" TO W13-SET-NAME. FO010399
IF W12-DELHIST FO010399
MOVE 0000 TO W13-SET-COUNT FO010399
ELSE FO010399
*NOW GET THE JCW SET BY THE QUICK SCREEN AND PUT THIS INTO THE FO010399
*VARIABLE FOR THE REPORT FO010399
CALL INTRINSIC "FINDJCW" USING W17-STUCOUNT FO010399
W18-DEL-COUNT FO010399
W17-PARM FO010399
*CONVERT VARIABLE FROM BINARY TO ASCII FO010399
MOVE W18-DEL-COUNT TO W19-DEL-COUNT-ASCII FO010399
*..AND REPORT FO010399
MOVE W19-DEL-COUNT-ASCII TO W13-SET-COUNT. FO010399
WRITE F01-REPORT-LINE FROM W13-COMMON-LINE FO010399
BEFORE ADVANCING 2 LINES. FO010399
THE POWERHOUSE ROUTINE.......
..
..
temporary w-studno character*8
temporary w-delcnt
define w-setjcw character*30 = "SETJCW DELCOUNT," + ascii(w-delcnt,4)
..
..
GET THE STUDENT NUMBER SET FROM THE COBOL PROGRAM
let w-studno = getsystemval("STUNO")
let w-delcnt = 0
get mstudent via student-number using w-studno opt
if not accessok
then error "COULD NOT FIND STUDENT IN MASTER DATABASE!"
GET THE DATASET AND DELETE RECORD AND COUNT DELETIONS
while retrieving dstudent-delta via student-number using w-studno
begin
delete dstudent-delta
put delete dstudent-delta
let w-delcnt = w-delcnt + 1
end
SET BACK THE COUNT TO THE JCW 'DELCOUNT'
run command w-setjcw
return
That's it....... no files, disc space usage, user locking etc......just simple logic!
Cheers
--
,-._|\ Fernando J. Olmos (Analyst Programer)
/ \ Information Technology Services - A.S.B.
\_,--._/ Royal Melbourne Institute of Technology (Australia)
v ===================================================
VOICE: (03)9925-3615 FAX: (03)9925-1096
eMAIL: folmos@rmit.edu.au ICQ# 32264128
==============================================================
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Subscribe: "subscribe powerh-l" in message body to majordomo@lists.swau.edu
Unsubscribe: "unsubscribe powerh-l" in message to majordomo@lists.swau.edu
powerh-l@lists.swau.edu is gatewayed one-way to bit.listserv.powerh-l
This list is closed, thus to post to the list, you must be a subscriber.