IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

How to use extract data from a cursor position


IBM Mainframe Forums -> TSO/ISPF
Post new topic   This topic is locked: you cannot edit posts or make replies.
View previous topic :: View next topic  
Author Message
sunil sharma

New User


Joined: 23 Jun 2008
Posts: 2
Location: Chennai, India

PostPosted: Tue Sep 09, 2008 8:12 pm
Reply with quote

I want to edit a dataset from a jcl from a curser position. I am using the below code, but not able to do so.
Here (row,col) = CURSOR is used, but i am not getting the row and column number.

Code:

/*  REXX   */
Address ISREDIT                                                                 
"MACRO"                                                                         
Address ISPEXEC "CONTROL ERRORS RETURN"                                         
  /***********************************************/                             
  /*   BEGIN PROCESSING                          */                             
  /***********************************************/                             
  "(row,col) = CURSOR"                                                         
  "(data1) = LINE " row              /* data1 = cursor line          */         
  /**********************************/                                         
  /* Find start of data set name    */                                         
  /**********************************/                                         
  dsnstart = Pos('DSN=',data1)       /* look for DSN=                */         
  If dsnstart = 0 then do            /* no DSN =                     */         
    dsnstart = Pos('DSNAME=',data1)  /* look for DSNAME=             */         
    If dsnstart = 0 then do          /* no DSN= or DSNAME=           */         
      "CURSOR = " row col            /* cursor pos                   */         
      If col < 1 then dsnstart = 1   /* needed for ZB line cmd       */         
      Else dsnstart = col            /* assume cursor on DSN         */         
    End                                                                         
    Else dsnstart = dsnstart + 7     /* DSNAME= specified in JCL     */         
  End /* if dsnstart = 0 */                                                     
  Else dsnstart = dsnstart + 4       /* DSN = specified in JCL       */         
  /**********************************/                                         
  /* Find end of data set name      */                                         
  /**********************************/                                         
  dsnend = Pos(',',data1,dsnstart)   /* look for comma at end of dsn */         
  If dsnend = 0 then do              /* no comma found               */         
    dsnend = Pos(' ',data1,dsnstart) /* look for blank to end DSN    */         
    If dsnend = 0 then do            /* no blank or comma at end     */         
      zedsmsg = 'No end of DSN'                                                 
      zedlmsg = 'The data set name is not terminated with a' ,                 
                'space or comma.'                                               
      Address ISPEXEC "SETMSG MSG(ISRZ001)"      /* msg - with alarm */         
      "CURSOR = " row col /* put cursor back to last position        */         
      Exit 8                                                                   
    End  /* if dsnend = 0 */                                                   
    Else dsnend = dsnend - 1         /* DSN ends with blank          */         
  End /* if dsnend = 0 */                                                       
  Else dsnend = dsnend - 1           /* DSN ends with comma          */         
  /**********************************/                                         
  /* BROWSE the data set            */                                         
  /**********************************/                                         
  dsn = Substr(data1,dsnstart,dsnend-dsnstart+1) /* extract dsn     */         
  dsn = Strip(Translate(dsn,"","'"))       /* remove quotes if used */         
  Address ISPEXEC "BROWSE DATASET('"dsn"')"                                     
  If RC <> 0 then Address ISPEXEC "SETMSG MSG("ZERRMSG")"                       
  "CURSOR = " row col /* put cursor back to last position        */             
  Exit 0                                             
Back to top
View user's profile Send private message
ofer71

Global Moderator


Joined: 27 Dec 2005
Posts: 2358
Location: Israel

PostPosted: Tue Sep 09, 2008 8:19 pm
Reply with quote

This is not a TSO exec, but an ISPF Edit macro. It should be invoked from within editor, without the TSO prefix.

O.
Back to top
View user's profile Send private message
sunil sharma

New User


Joined: 23 Jun 2008
Posts: 2
Location: Chennai, India

PostPosted: Tue Sep 09, 2008 8:23 pm
Reply with quote

Hi,
Thanks for your quick reply
Can you please tell me how to do that?
Back to top
View user's profile Send private message
Pedro

Global Moderator


Joined: 01 Sep 2006
Posts: 2594
Location: Silicon Valley

PostPosted: Tue Sep 09, 2008 10:10 pm
Reply with quote

Quote:
It should be invoked from within editor, without the TSO prefix.

Ofer's instruction seems pretty clear:
1. use ispf option 2 to edit the dataset
2. type memname in the command line. do not prefix with TSO
Back to top
View user's profile Send private message
rsshanmugam

New User


Joined: 08 Mar 2005
Posts: 62
Location: Basildon

PostPosted: Fri Feb 09, 2018 4:49 pm
Reply with quote

even though very old post. the code works like charm, thanks sunil sharma
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   This topic is locked: you cannot edit posts or make replies. View Bookmarks
All times are GMT + 6 Hours
Forum Index -> TSO/ISPF

 


Similar Topics
Topic Forum Replies
No new posts db2 vs static data COBOL Programming 1
No new posts External data queue (changes?) CLIST & REXX 0
No new posts Pull data using date difference betwe... DB2 6
No new posts fast data scrambling PL/I & Assembler 10
No new posts Inserting into table while open selec... DB2 1
Search our Forums:

Back to Top