© serviceprofessionalgmbh

Schreibt einen Programmkopf an den Anfang. Näheres finden Sie im Kommentar.

/* REXX * EDIT MACRO *************************************************/
/*                                                                   */
/* Macroname.: $HEAD                                                 */
/* Zweck.....: Einfuegen des Programmkopfes am Dateianfang           */
/*             Das Macro prueft den Dateinamen schreibt davon        */
/*             abhaengig unterschiedliche Headerzeilen:              */
/*                                                                   */
/*             xxxxxxxx.MACRO.CLIST    * CLIST * EDIT MACRO ****     */
/*             xxxxxxxx.MACRO.EXEC     * REXX * EDIT MACRO *****     */
/*             xxxxxxxx.?????.CLIST    * CLIST * PROGRAMM ******     */
/*             xxxxxxxx.?????.EXEC     * REXX * PROGRAMM *******     */
/*                                                                   */
/*             Monat/Jahr der Erstellung werden aus dem System-      */
/*             datum gesetzt. Als Programmname wird der Member-      */
/*             name eingesetzt.                                      */
/*             Die ersten beiden Statements werden in Abhaengigkeit  */
/*             gesetzt:                                              */
/*             CLIST MACRO: ISREDIT MACRO (TEST)"                    */
/*                          ISPEXEC CONTROL ERRORS CANCEL            */
/*                          IF &TEST = T THEN DO                     */
/*                             CONTROL CONLIST                       */
/*                             ISPEXEC CONTROL ERRORS RETURN         */
/*                          END                                      */
/*             CLIST PGM..: PROC 0 DEBUG                             */
/*                          IF &DEBUG = T THEN CONTROL CONLIST       */
/*             REXX MACRO.: ADDRESS ISREDIT                          */
/*                          "MACRO (TEST)"                           */
/*                          IF TEST = 'T' THEN DO                    */
/*                             IF TEST = 'T' THEN TRACE '?R'         */
/*                             ADDRESS ISPEXEC "CONTROL ERRORS RETURN*/
/*                          END                                      */
/*             REXX PGM...: ARG TEST                                 */
/*                          IF TEST = 'T' THEN TRACE '?R'            */
/*                                                                   */
address isredit
"macro"
"(progname) = member"
"(dsn) = dataset"
parse upper value dsn with project '.' group '.' type
titel = "PROGRAMM"
select
   when group = "MACRO" then do
      titel = "EDIT MACRO"
      select
         when type = "EXEC"  then do
            titel = "REXX *" titel
            k.10 = 'address isredit'
            k.11 = '"macro (test)"'
            k.12 = 'address ispexec "CONTROL ERRORS CANCEL"'
            k.13 = 'if test = "T" then do'
            k.14 = '   trace "?r"'
            k.15 = '   address ispexec "CONTROL ERRORS RETURN"'
            k.16 = 'end'
            k.max=16
         end
         when type = "CLIST" then do
            titel = "CLIST *" titel
            k.10 = "ISREDIT MACRO (TEST)"
            k.11 = "ISPEXEC CONTROL ERRORS CANCEL"
            k.12 = "IF &TEST = T THEN DO"
            k.13 = "   CONTROL CONLIST"
            k.14 = "   ISPEXEC CONTROL ERRORS RETURN"
            k.15 = "END"
            k.max=15
         end
         otherwise do
            titel = "????? *" titel
            k.max=9
         end
      end
   end
   when type = "EXEC"  then do
      titel = "REXX *" titel
      k.10 = 'arg test .'
      k.11 = 'if test = "T" then trace "?r"'
      k.max=11
   end
   when type = "CLIST" then do
      titel = "CLIST *" titel
      k.10 = "PROC 0 DEBUG"
      k.11 = "IF &DEBUG = T THEN CONTROL CONLIST LIST MSG"
      k.max= 11
   end
   otherwise do
      titel = "????? *" titel
      k.max=9
   end
end
edat=translate(substr(date('E'),4),'.','/')
if pos("MACRO",titel) > 0 then pgmtyp="Macroname.:"
else                           pgmtyp="PGM-Name..:"
user=userid()
if wordpos(user,"XWIH XHZ9001") > 0 then user = "Wittemann"
k.1="/*" titel right('*/',67-length(titel),'*')
k.2="/*" right('*/',68)
k.3="/*" pgmtyp progname right('*/',67-length(pgmtyp progname))
k.4="/* Zweck.....: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" right('*/',25)
k.5=k.2
k.6="/* Erstellt..:" edat left(user,47) "*/"
k.7=k.2
k.8="/* Geaendert.: mm.jj name      grund" right('*/',34)
k.9=k.2
s_insert=0
"locate .zfirst"
if rc = 8 then do
   "line_after 0 = ' '"
   s_insert=1
end
do cnt=1 to k.max
   "line_before" cnt "= '"k.cnt"'"
end
if s_insert = 1 then do
   "delete .zlast"
   "insert .zlast"
end
"up max"
exit
zurück zu Edit Makros