I can't get dynamic attributes to work with a dynamic area. I seems to have followed what the manual specified but although I get no error message the resulting panel is without any attribute changes (e g no change in color etc.).
Does anyone have a working example to give me ?
(I'm using ISPF BROWSE with a customized panel.)
Regards,
Thomas Berg
_________________________________________
Thomas Berg Specialist A M SWEDBANK
Regards,
Thomas Berg
_________________________________________
Thomas Berg Specialist A M SWEDBANK
> -----Ursprungligt meddelande-----
> Från: ISPF discussion list [mailto:ISP...@LISTSERV.ND.EDU] För
> thoma...@SWEDBANK.SE
> Skickat: den 5 september 2011 14:25
> Till: ISP...@LISTSERV.ND.EDU
> Ämne: Problems with dynamic attributes in DYNAMIC area
This is a part of a dialogue to 'parse' data in a modified browse panel - it is displaying rows from a CSV file.
('| ' prefixed to each line to help stop HoTMaiL doing its usual trick of stripping leading blanks!)
You can see that the REXX functions read ZDATA and manipulate ZSHADOW to modify the colouring...
|
| )ATTR DEFAULT( ) FORMAT(MIX) /* ISRBROB - ENGLISH - 5.9 */
| 05 TYPE(PT)
| 09 TYPE(FP)
| 0A TYPE(NT)
| 13 TYPE(NEF) PADC(USER)
| 16 TYPE(VOI) PADC(USER)
| 26 AREA(DYNAMIC) EXTEND(ON) SCROLL(ON)
| 01 TYPE(DATAOUT) INTENS(LOW)
| 02 TYPE(DATAOUT)
| 0B TYPE(DATAOUT) FORMAT(DBCS) OUTLINE(L)
| 0C TYPE(DATAOUT) FORMAT(EBCDIC) OUTLINE(L)
| 0D TYPE(DATAOUT) FORMAT(&MIXED) OUTLINE(L)
| 10 TYPE(DATAOUT) INTENS(LOW) FORMAT(DBCS) OUTLINE(L)
| 11 TYPE(DATAOUT) INTENS(LOW) FORMAT(EBCDIC) OUTLINE(L)
| 12 TYPE(DATAOUT) INTENS(LOW) FORMAT(&MIXED) OUTLINE(L)
| # TYPE(CHAR) COLOR(TURQ) HILITE(REVERSE)
| P TYPE(CHAR) COLOR(PINK)
| T TYPE(CHAR) COLOR(TURQ)
| R TYPE(CHAR) COLOR(RED)
| G TYPE(CHAR) COLOR(GREEN)
| W TYPE(CHAR) COLOR(WHITE) HILITE(REVERSE)
| B TYPE(CHAR) COLOR(BLUE)
| )BODY EXPAND(//) WIDTH(&ZWIDTH) CMD(ZCMD)
| BROWSE Z/ / Line Z Col Z
| Command ===> Z/ / Scroll ===> Z
| ZDATA,ZSHADOW/ /
| / /
| / /
| )INIT
| VGET (CSVHEAD,CSVLOCN)
| &ZERRALRM = 'YES'
| &ZERRHM = 'CSVTUTOR'
| .HELP = &ZERRHM
| .ZVARS = '(ZTITLE ZLINES ZCOLUMS ZCMD ZSCBR)'
| &ZCMD = ' '
| VGET (ZSCBR) PROFILE
| IF (&ZSCBR = ' ') &ZSCBR = 'PAGE'
| &MIXED = MIX
| IF (&ZPDMIX = N) &MIXED = EBCDIC
| *REXX(*,ZSHADOW,CSVHEAD,(CSVCB))
| )REINIT
| VGET (CSVHEAD)
| *REXX(*,ZSHADOW,CSVHEAD,(CSVCB))
| REFRESH(ZCMD,ZSCBR,ZDATA,ZLINES,ZCOLUMS)
| )PROC
| VGET (CSVHEAD,CSVLOCN)
| &CURSOR = .CURSOR
| &CSRPOS = .CSRPOS
|
| *REXX(*,CSVCMD,ZERRSM,ZERRLM,(CSVCMDS))
| IF(&CSVCMD NE &Z) .RESP = END
| ELSE
| IF(&ZCMD NE &Z) REFRESH(ZCMD)
| *REXX(*,ZSHADOW,CSVHEAD,(CSVCB))
| &ZCURSOR = .CURSOR
| &ZCSROFF = .CSRPOS
| VPUT (ZSCBR) PROFILE
| &ZLVLINE = LVLINE(ZDATA)
| )END
|
|
|
| REXX: CSVCB
|
| /*REXX*/ TRACE "N"
|
| /*-------------------------------------------------------------------*/
| /* highlight | as column separators */
| /*-------------------------------------------------------------------*/
| zshadow = ""
| DO i = 1 TO 80*32
| IF( SUBSTR(zdata,i,1) = "|" )THEN
| zshadow = OVERLAY("P",zshadow,i,1)
| END
|
| /*-------------------------------------------------------------------*/
| /* highlight headings */
| /*-------------------------------------------------------------------*/
| headsup = -1
| DO i = 1 TO 80*32 WHILE(headsup=-1)
| drv = STRIP(SUBSTR(zdata,i,77),"T")
| IF( POS(drv,csvhead)>0 )THEN headsup = i%80+1
| END
| IF( headsup>0 ,
| & headsup<=3 )THEN DO
| phs = headsup*80-79
| zshadow = OVERLAY(COPIES("#",80),zshadow,phs)
| DO i = phs TO phs+80
| IF( SUBSTR(zdata,i,1) = "|" )THEN
| zshadow = OVERLAY("P",zshadow,i,1)
| END
| END
| ELSE NOP
|
| /*-------------------------------------------------------------------*/
| /* cols */
| /*-------------------------------------------------------------------*/
| IF( POS("----+----",LEFT(zdata,80))>0 )THEN DO
| zshadow = OVERLAY(COPIES("B",80),zshadow,1)
| DO i = 1 TO 80
| IF( SUBSTR(zdata,i+80,1)="|" ,
| ! SUBSTR(zdata,i+160,1)="|" )THEN
| zshadow = OVERLAY("#",zshadow,i,1)
| ELSE NOP
| END
| END
| ELSE NOP
|
|
| REXX: CSVCMDS
|
| /*REXX*/ TRACE "N"
| acsvcmd = TRANSLATE(SPACE(zcmd))
| PARSE VAR acsvcmd acsvcmd csvargs
| csvcmd = ""
| SELECT/*-1*/
| WHEN( csvcmd.0=0 )THEN NOP
| WHEN( ABBREV("COLUMNS",acsvcmd,2) )THEN csvcmd = "COLUMNS"
| WHEN( ABBREV("ROWS",acsvcmd,1) )THEN csvcmd = "ROWS"
| WHEN( ABBREV("VIEW",acsvcmd,1) )THEN csvcmd = "VIEW"
| WHEN( ABBREV("EDIT",acsvcmd,1) )THEN csvcmd = "EDIT"
| WHEN( ABBREV("TAILOR",acsvcmd,1) )THEN csvcmd = "TAILOR '"csvargs"'"
| WHEN( ABBREV("CREATE",acsvcmd,2) )THEN csvcmd = "CREATE '"csvargs"'"
| OTHERWISE NOP
| END/*SELECT-1*/
|
|
> Date: Mon, 5 Sep 2011 14:25:04 +0200
> From: thoma...@SWEDBANK.SE
> Subject: Problems with dynamic attributes in DYNAMIC area
> To: ISP...@LISTSERV.ND.EDU