MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Column number

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> TSO and ISPF
View previous topic :: View next topic  
Author Message
danm
Intermediate


Joined: 29 Jun 2004
Posts: 170
Topics: 73

PostPosted: Fri Mar 04, 2005 3:43 pm    Post subject: Column number Reply with quote

Is is possible to automatically show the column numbers when invoking ISPF EDIT or VIEW? I try to avoid typing the line command "COL" whenver I edit a data file.
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12375
Topics: 75
Location: San Jose

PostPosted: Sun Mar 06, 2005 9:33 pm    Post subject: Reply with quote

Danm,

Are you planning to use this rexx exec for any type of dataset? or just for a pds? If you are planning to edit a pds member with 80 bytes then I have an exec which does that for you.

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
danm
Intermediate


Joined: 29 Jun 2004
Posts: 170
Topics: 73

PostPosted: Mon Mar 07, 2005 8:45 am    Post subject: Reply with quote

Kolusu,

I want to use it for a 80 bytes PS dataset which contains only Y or N. I want to be able to confirm a particular column is set correctly when I view the file in ISPF without typing in the COL line command every time.
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12375
Topics: 75
Location: San Jose

PostPosted: Mon Mar 07, 2005 10:22 am    Post subject: Reply with quote

danm,

Try this. I hard coded the lrecl as 80. This will work of both the line command C and CC.

Code:

/* REXX */                                           
ADDRESS ISPEXEC                                     
"ISREDIT MACRO NOPROCESS"                           
"ISPEXEC CONTROL ERRORS CANCEL"                     
"ISREDIT PROCESS RANGE C"                           
IF RC >= 16 THEN CALL 40000_DISP_ERROR               
"ISREDIT (LINECMD) = RANGE_CMD"                     
                                                     
CALL 1000_CHECK_LINE_CMD                             
MAX_LRECL = 80                                       
CALL 2000_SET_COLS                                   
DO WHILE FIRSTLIN <= LASTLIN                         
    CALL 3000_DISP_COLS                             
END                                                 
STOPIT:                                             
EXIT                                                 
                                                     
1000_CHECK_LINE_CMD:                                 
                                                     
SELECT                                               
  WHEN LINECMD = 'C' THEN                           
      DO                                             
        "ISREDIT (FIRSTLIN) = LINENUM .ZFRANGE"     
        "ISREDIT (LASTLIN) = LINENUM .ZLRANGE"       
      END                                           
  WHEN LINECMD = ' ' THEN                           
      DO                                             
        "ISREDIT (FIRSTLIN) = LINENUM .ZFIRST"       
        "ISREDIT (LASTLIN) = LINENUM .ZFIRST"       
      END                                           
  OTHERWISE                                         
      CALL 40000_DISP_ERROR                         
END                                                 
                                                     
RETURN                                               

2000_SET_COLS:                                         
                                                       
COLSLINE = ''                                           
DO I = 1 TO MAX_LRECL                                   
    REMAINDER = I // 10                                 
    SELECT                                             
      WHEN REMAINDER = 0 THEN                           
          DO                                           
            QUOTIENT = I / 10                           
            IF QUOTIENT < 10 THEN                       
                COLS_CHAR = QUOTIENT                   
            ELSE                                       
                DO                                     
                  CURRPOS_LENGTH = LENGTH(I)           
                  CHAR_WANTED = CURRPOS_LENGTH - 1     
                  COLS_CHAR = SUBSTR(I,CHAR_WANTED,1)   
                END                                     
          END                                           
      WHEN REMAINDER = 5 THEN                           
          COLS_CHAR = '+'                               
      OTHERWISE                                         
          COLS_CHAR = '-'                               
    END                                                 
    COLSLINE = COLSLINE | | COLS_CHAR                   
END                                                     
                                                       
RETURN                                                 
/**/                                                   
3000_DISP_COLS:                                                       
                                                                     
'ISREDIT LINE_BEFORE &FIRSTLIN = INFOLINE "&COLSLINE"'               
ADVANCE_TO_NEXT_LINE:                                                 
FIRSTLIN = FIRSTLIN + 1                                               
RETURN                                                               
/**/                                                                 
40000_DISP_ERROR:                                                     
                                                                     
    ADDRESS ISPEXEC                                                   
    ZEDSMSG = 'PF1 FOR ERROR'                                         
    ZEDLMSG = 'ERROR PLACING THE COMMAND'         
    ZEDLMSG = ZEDLMSG | | ' FOR COLS TO BE DISPLAYED.'   
    'SETMSG MSG(ISRZ001)'                                             
                                                                     
    SIGNAL STOPIT                                                     
/**/                                                                 


Hope this helps...

Cheers

kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> TSO and ISPF All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group