products/Sources/formale Sprachen/REXX image not shown  

Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei: ZEDC.REXX   Sprache: REXX

Original von: REXX©

/* REXX */                                                                      
/*   Editieren Dataset; Cursor muß auf DSN gesetzt werden           */          
/*   -----------------------------------------------------          */          
'ISREDIT MACRO (parm1)'                                                         
                                                                                
   'isredit (dsn) = DATASET'     /* name of current dataset  */                 
   'isredit (mem) = MEMBER'      /* name of current member   */                 
                                                                                
/* Set some variables :  */                                                     
   user     = userid()                                                          
                                                                                
   copy_1   = 'ZVS.IGF.COPY'     /* Test-Library for Copy-Members */            
   copy_2   = 'MQM.SYS.KVS.SCSQCOBC'   /* MQ-Copies               */            
   copy_3   = ''                       /* IGF-Copies              */            
   maclib   = ''                 /* Assembler-Macro-Library       */            
   alblib   = ''                 /* Assembler-Albingia Macros     */            
                                                                                
   callcop1 = 'ZVS.ALL.COBOL'    /* Test-Library for called pgms  */            
   callcop2 = 'XTRNCLS.T.COBOL'                                                 
                                 /* Work-Library for called pgms  */            
address ispexec                                                                 
'isredit (,col) = CURSOR'                                                       
                                                                                
parm1 = translate(parm1)                                                        
if parm1 = 'T' then                                                             
   trace ?R                                                                     
                                                                                
if col = 0 then                                                                 
   do                                                                           
     zedsmsg = 'Invalid cursor position'                                        
     zedlmsg = 'Please, set the cursor in the Edit Area'                        
     'setmsg msg(isrz001)'                                                      
     exit(12)                                                                   
   end                                                                          
                                                                                
'isredit (maxcol) = DATA_WIDTH'                                                 
'isredit (line) = LINE .ZCSR'                                                 
i = 0                                                                           
                                                                                
/* An den Anfang des Names gehen, bis SPACE, Hochkomma, Komma   */              
/* Punkt oder '=' gefunden */                                                   
do i = col  to 1 by -1 ,                                                        
   while  ( substr(line, i, 1) /= " " ) & ,                                     
          ( substr(line, i, 1) /= "'" ) & ,                                     
          ( substr(line, i, 1) /= "," ) & ,                                     
          ( substr(line, i, 1) /= "." ) & ,                                     
          ( substr(line, i, 1) /= "=" )                                         
    nop                                                                         
end                                                                             
                                                                                
/* Wenn Name am linken Rand steht, war Auswahl falsch */                        
if i = 1 then                                                                   
   do                                                                           
     zedsmsg = 'Invalid select'                                                 
     msg = 'Please, set the cursor on the Copy-Member to be edited'             
     zedlmsg = msg                                                              
     'setmsg msg(isrz001)'                                                      
     exit(12)                                                                   
   end                                                                          
                                                                                
/* set index on first character of name  */                                     
col_anf = i + 1                                                                 
                                                                                
/* Ausgehend von Spalte col den nä. space, das nä. Hochkomma,   */              
/* den nä. Punkt oder das nä. Komma suchen                      */              
do i = col_anf  to maxcol by 1 ,                                                
   while  ( substr(line, i, 1) /= ' ' ) & ,                                     
          ( substr(line, i, 1) /= "'" ) & ,                                     
          ( substr(line, i, 1) /= '.' ) & ,                                     
          ( substr(line, i, 1) /= ',' )                                         
    nop                                                                         
end                                                                             
                                                                                
/* set index on last  character of name  */                                     
col_end = i - 1                                                                 
                                                                                
/* compute length of name and evaluate name   */                                
col_len = col_end -col_anf + 1                                                  
name    = substr(line, col_anf, col_len)                                        
                                                                                
'control errors return'                                                         
                                                                                
/* Wenn *COPY-Zeile, dann direkt Copy-Lib scannen */                            
copy_lit = substr(line, 1, 5)                                                   
if copy_lit ^= '*COPY' then ,                                                   
 do                                                                             
  /* Try to edit member 'name' in current PO-Dataset  */                        
  dsn_edit = "'" !! dsn !! "(" !! name !! ")'"                                  
  interpret 'dsn_vorh = sysdsn("'dsn_edit'")'                                   
 end                                                                            
                                                                                
if dsn_vorh = 'OK' then                                                         
   'edit dataset('dsn_edit')'                                                   
else                                                                            
   do                                                                           
     /* try with  copy_1          */                                            
     dsn_edit = "'" !! copy_1 !! "(" !! name !! ")'"                            
     interpret 'dsn_vorh = sysdsn("'dsn_edit'")'                                
     if dsn_vorh = 'OK' then                                                    
        'edit dataset('dsn_edit')'                                              
     else                                                                       
        do                                                                      
         /* try with copy_2           */                                        
         dsn_edit = "'" !! copy_2 !! "(" !! name !! ")'"                        
         interpret 'dsn_vorh = sysdsn("'dsn_edit'")'                            
         if dsn_vorh = 'OK' then                                                
            'edit dataset('dsn_edit')'                                          
         else                                                                   
          do                                                                    
           /* try with copy_3           */                                      
           dsn_edit = "'" !! copy_3 !! "(" !! name !! ")'"                      
           interpret 'dsn_vorh = sysdsn("'dsn_edit'")'                          
           if dsn_vorh = 'OK' then                                              
              'edit dataset('dsn_edit')'                                        
           else                                                                 
            do                                                                  
              /* try with 'GROPSYS.PROGRAMS.SOURCE'  */                         
              dsn_edit = "'" !! callcop2 !! "(" !! name !! ")'"                 
              interpret 'dsn_vorh = sysdsn("'dsn_edit'")'                       
              if dsn_vorh = 'OK' then                                           
                 'edit dataset('dsn_edit')'                                     
              else                                                              
                 do                                                             
                   /* try with 'SYS1.MACLIB' */                                 
                   dsn_edit = "'" !! maclib !! "(" !! name !! ")'"              
                   interpret 'dsn_vorh = sysdsn("'dsn_edit'")'                  
                   if dsn_vorh = 'OK' then                                      
                      'edit dataset('dsn_edit')'                                
                   else                                                         
                      do                                                        
                        /* try with 'SYS1.ALBMAC' */                            
                        dsn_edit = ,                                            
                               "'" !! alblib !! "(" !! name !! ")'"             
                        interpret 'dsn_vorh = sysdsn("'dsn_edit'")'             
                        if dsn_vorh = 'OK' then                                 
                           'edit dataset('dsn_edit')'                           
                        else                                                    
                           do                                                   
                             zedsmsg = 'Member not found'                       
                             zedlmsg = 'Member 'name' was not',                 
                                       'found in any',                          
                                       'CALL-, MAC- or COPY-library'            
                             'setmsg msg(isrz001)'                              
                             exit(24)                                           
                           end  /* Dataset ist nicht vorhanden */               
                      end  /* try with 'SYS1.ALBMAC' */                         
                 end  /* try with 'SYS1.MACLIB' */                              
            end  /* try with 'GROPSYS.PROGRAMS.SOURCE' */                       
          end  /* try with copy_3        */                                     
        end  /* try with copy_2        */                                       
   end  /* try with copy_1           */                                         
                                                                                
                                                                                
/* Return-Code after leaving the edited source */                               
end_edc:                                                                        
select                                                                          
  when rc = 0 then                                                              
    do                                                                          
      zedsmsg = 'Data saved'                                                    
      zedlmsg = 'Data was saved in Dataset 'dsn_edit                            
      'setmsg msg(isrz000)'                                                     
    end                                                                         
  when rc = 4 then                                                              
    do                                                                          
      zedsmsg = 'Data not saved'                                                
      zedlmsg = 'Data in Dataset 'dsn_edit' was not saved'                      
      'setmsg msg(isrz000)'                                                     
    end                                                                         
  when rc = 14 then                                                             
    do                                                                          
      zedsmsg = 'Dataset in use'                                                
      zedlmsg = 'Dataset 'dsn_edit' is in use by another job or user'           
      'setmsg msg(isrz001)'                                                     
    end                                                                         
  when rc = 16 then                                                             
    do                                                                          
      zedsmsg = 'Empty Dataset'                                                 
      zedlmsg = 'Dataset 'dsn_edit' is empty or member not found'               
      'setmsg msg(isrz001)'                                                     
    end                                                                         
  otherwise                                                                     
    do                                                                          
      zedsmsg = 'Empty Dataset'                                                 
      zedlmsg = 'Dataset 'dsn_edit' is empty or member not found'               
      'setmsg msg(isrz001)'                                                     
    end                                                                         
end                                                                             
                                                                                
exit(rc)                                                                        

¤ Dauer der Verarbeitung: 0.21 Sekunden  (vorverarbeitet)  ¤





Download des
Quellennavigators
Download des
sprechenden Kalenders

in der Quellcodebibliothek suchen




Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.


Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.


Bot Zugriff