Damit das gequängel ein Ende hat, hier ist der Code.
Rechnung folgt.

Code:
*****************************************************************
* *
* ------------------------------------------------------------- *
* ! Achtung !! Programm muss wegen der verwendeten APIs *
* erst mit CRTRPGMOD und dann mit CRTRPGPGM ACTGRP(QILE) *
* umgewandelt werden !! *
* ------------------------------------------------------------- *
* *
*****************************************************************
* *
* ------------------------------------------------------------- *
* P r o g r a m m - B e s c h r e i b u n g *
* ------------------------------------------------------------- *
* *
* Das Programm addiert zu dem im Parameter mitgegebenem Datum *
* 10 Tage, ermittelt den Wochentag, addiert bei Samstag oder *
* Sonntag nochmals 1 oder 2 Tage dazu. *
* *
* Eingangsparameter / Rückgabeparameter : *
* *
* PE#Datum (6S 0) - Datumsfeld Format TTMMJJ *
* *
* Rückgabeparameter: *
* *
* PE#Error (1A) - Fehler ('0' = O.K., '1' = Fehler) *
* *
*****************************************************************
H DatEdit(*DMY.)
H DatFmt(*EUR.)
H Debug(*Yes)
H DecEdit('0,')
H ExprOpts(*MaxDigits)
H Option(*ShowCpy : *NoDebugIO : *SrcStmt)
H TimFmt(*HMS)
D PE#Datum S 6S 0
D PE#RtnCode S 1A
D P#Datum S 10A
D P#DatFmt S 10A Inz('DDMMYY')
D P#ApiParm S 9B 0
D P#TagNr S 9B 0
D #DatumD S D
*=====================================================================
* *ENTRY - Parameter
*=====================================================================
C *Entry PList
C Parm PE#Datum
C Parm PE#RtnCode
**********************************************************************
****** H A U P T V E R A R B E I T U N G ******
**********************************************************************
C Eval PE#RtnCode = '0'
C Do
* Datum auf Gültigkeit prüfen
C *DMY Test(D) PE#Datum RT
C If *InRT
C Eval PE#RtnCode = '1'
C Leave
C EndIf
C *DMY Move PE#Datum #DatumD
C AddDur 10:*D #DatumD
C *DMY Move #DatumD PE#Datum
C Movel PE#Datum P#Datum
C CallB(D) 'CEEDAYS'
C Parm P#Datum
C Parm P#DatFmt
C Parm P#ApiParm
C Parm *OMIT
C CallB(D) 'CEEDYWK'
C Parm P#ApiParm
C Parm P#TagNr
C Parm *OMIT
* neuer Tag ist Samstag
C If P#TagNr = 7
C AddDur 2:*D #DatumD
C EndIf
* neuer Tag ist Sonntag
C If P#TagNr = 1
C AddDur 1:*D #DatumD
C EndIf
C *DMY Move #DatumD PE#Datum
C EndDo
*----------------------------------------------------------------
* Programmende
*----------------------------------------------------------------
C Eval *InLR = *On
[Dieser Beitrag wurde von JoergZ am 02. August 2001 editiert.]
Bookmarks