tarkusch
15-02-14, 07:04
Hallo liebes Forum,
ich habe bisher immer meine RPG Programme mit 14 kompiliert.
Da ich mir einen „sauberen“ Programmstil aneignen möchte hätte ich da folgende Frage:
Wir definieren das meiste was Unterroutinen angeht immer wieder im Programm selber und verwenden dh. sehr selten (selbergeschriebene) Prozeduren bzw. Service Programme.
Kann mir jemand an folgenden Beispiel von Michael Catalani erklären welche Programme wie ich zu wandeln habe und einen kleinen Crashkurs geben?
Teildatei Art Text
JOBLOG_P RPGLE JOBLOG SERVICE PROGRAMM PROTOTYPES
JOBLOG_R RPGLE JOBLOG SERVICE PROGRAMM TESTAUFRUF
JOBLOG_S RPGLE JOBLOG SERVICE PROGRAMM SERVICE PROGRAMM
Programm: JOBLOG_P
************************************************** *************************
** J O B L O G P R O T O T Y P E S
************************************************** *************************
/if defined( JOBLOG_P )
/eof
/endif
/define JOBLOG_P
D Qp0zLprintf PR 10I 0 ExtProc( 'Qp0zLprintf' )
D szOutputStg * Value Options( *String )
D JobLog_Write PR 10i 0
D JobLogInfo 65535a Varying Const
Program: JOBLOG_S
************************************************** ************************
* J O B L O G S E R V I C E P R O G R A M
* JobLog_Write - Writes a joblog entry.
* example: JobLog_Write( 'Write this data' );
************************************************** ************************
H NoMain
/copy QRPGLESRC/TARSRC,JobLog_p
P JobLog_Write B Export
D JobLog_Write PI 10i 0
D JobLogInfo 65535a Varying Const
D*
D LogData S 65535a Varying
D ErrorCode S 10i 0
D*
/FREE
LogData = JobLogInfo + x'25';
ErrorCode = Qp0zLprintf( LogData );
return ErrorCode;
/END-FREE
P E
Program: JOBLOG_S
H DftActGrp( *No ) ActGrp( *NEW ) BndDir( 'CF' ))
/copy QRPGLESRC/TARSRC,JobLog_p
/free
JobLog_Write( 'Program Called At ' + %char( %TimeStamp ));
*inlr = *on;
Dank im Voraus
TARKI
ich habe bisher immer meine RPG Programme mit 14 kompiliert.
Da ich mir einen „sauberen“ Programmstil aneignen möchte hätte ich da folgende Frage:
Wir definieren das meiste was Unterroutinen angeht immer wieder im Programm selber und verwenden dh. sehr selten (selbergeschriebene) Prozeduren bzw. Service Programme.
Kann mir jemand an folgenden Beispiel von Michael Catalani erklären welche Programme wie ich zu wandeln habe und einen kleinen Crashkurs geben?
Teildatei Art Text
JOBLOG_P RPGLE JOBLOG SERVICE PROGRAMM PROTOTYPES
JOBLOG_R RPGLE JOBLOG SERVICE PROGRAMM TESTAUFRUF
JOBLOG_S RPGLE JOBLOG SERVICE PROGRAMM SERVICE PROGRAMM
Programm: JOBLOG_P
************************************************** *************************
** J O B L O G P R O T O T Y P E S
************************************************** *************************
/if defined( JOBLOG_P )
/eof
/endif
/define JOBLOG_P
D Qp0zLprintf PR 10I 0 ExtProc( 'Qp0zLprintf' )
D szOutputStg * Value Options( *String )
D JobLog_Write PR 10i 0
D JobLogInfo 65535a Varying Const
Program: JOBLOG_S
************************************************** ************************
* J O B L O G S E R V I C E P R O G R A M
* JobLog_Write - Writes a joblog entry.
* example: JobLog_Write( 'Write this data' );
************************************************** ************************
H NoMain
/copy QRPGLESRC/TARSRC,JobLog_p
P JobLog_Write B Export
D JobLog_Write PI 10i 0
D JobLogInfo 65535a Varying Const
D*
D LogData S 65535a Varying
D ErrorCode S 10i 0
D*
/FREE
LogData = JobLogInfo + x'25';
ErrorCode = Qp0zLprintf( LogData );
return ErrorCode;
/END-FREE
P E
Program: JOBLOG_S
H DftActGrp( *No ) ActGrp( *NEW ) BndDir( 'CF' ))
/copy QRPGLESRC/TARSRC,JobLog_p
/free
JobLog_Write( 'Program Called At ' + %char( %TimeStamp ));
*inlr = *on;
Dank im Voraus
TARKI