FindeWerktagInNTagen()
//******************************************************************************
// Findet den Werktag in nDiff Tagen, Prüft, ob die auf dem Weg liegenden Daten
//  auf einen Feiertag, Samstag oder Sonntag fallen und überspringt diese
// @dDate:     dDatum:D    - Ausgangsdatum, ab welchem die Prüfung + n Tage startet
// @nDiff:     nDiff:N     - Anzahl Tage die geprüft werden
// @cTermMode: cTermMode:C - bestimmt Vorwärts- oder Rückwertsprüfung
// @oDM:       oDM:O       - Datenmodul als Container für DAB272, 
//                           welches im Hauptprogramm zerstört werden muss
// @Result: date
//******************************************************************************
function FindeWerktagInNTagen(dDate, nDiff, cTermMode, oDM)
| oDAB272, i |
   oDAB272             := MyGetTable(oDM, waDAB272, 'IND_DAB272'),
   oDAB272.CbIndexname := 'I_FEIERTAG_DAT',
   Result := dDate,
   i := 0,
   while i < nDiff do
      i++,
      if cTermMode = 'VORWAERTS' then
         Result += 1,
      else
         Result -= 1,
      endif,
                                                                                 writeln(dow(Result)),
      while oDAB272.CbFindKey({100, Formatdatetime('DD.MM.YY', Result)})
            or dow(Result) = 1
            or dow(Result) = 7 do                                                writeln(i, result),
         if cTermMode = 'VORWAERTS' then
            Result += 1,
         else
            Result -= 1,
         endif,
      end,
   end,
end,Anwendungsbeispiel:
Versand am 29.7., Ankunft am übernächsten Werktag. Das wäre dann aber nicht etwa der 31.7, sondern der 2.8., weil Samstag und Sonntag dazwischen liegen.
