Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: botschi am 26.02.07 - 10:32:26

Titel: @BusinessDays mit Script UND Feiertagen
Beitrag von: botschi am 26.02.07 - 10:32:26
Moin,

ich möchte gerne in Script die Arbeitstage bis gestern berechnen.
Wenn keine Feiertage in dem Zeitraum berücksichtigt werden müssen, funktioniert meine Formel auch. Das ist die Formel OHNE Feiertage:
ivFormel = |@BusinessDays([| & Cdat(gvArbeitsmonat.monatsanfang(0)) & |];@Yesterday;1:7)|

Wenn es allerdings mehr als einen Feiertag gibt, gibt es einen type mismatch bei der Formel:
ivFormel = |@BusinessDays([| & Cdat(gvArbeitsmonat.monatsanfang(0)) & |];@Yesterday;1:7;| &  feiertage & |)|.
"feiertage" ist eine Variable vom Typ Variant und enthält alle Werte aus dem Feld "Feiertage" (Mehrfachwerte zulassen).
Im Debugger sieht die Variable feiertage so aus : [01.02.2007, 02.02.2007].
Ich kann mir schon vorstellen, dass die Formel mit so einem Format nix anfangen kann, aber ich habe vieles probiert und immer einen Fehler bekommen.

Die Suche im Forum und im Netz hat mir keine Tips gegeben, wie die Formel aussehen muss, wenn mehr als ein Feiertag vorkommt.

Kann mir jemand helfen?
Danke!

Matthias
Titel: Re: @BusinessDays mit Script UND Feiertagen
Beitrag von: Tobi2283 am 26.02.07 - 12:38:10
hallo,

damit das mit den feiertagen geht, müssen die einzelnen werte durch doppelpunkte getrennt werden und jedes datum ist mit einer eckigen klammer zu versehen.

ich würde hier mit "for i = 0 to ubound(feiertage)" arbeiten, jeden einzelnen eintrag mit den eckigen klammern versehen und anschließend durch doppelpunkte trennen.

gibt evtl. eine elegantere löschung, aber das fällt mir spontan ein.

grüße
tobias
Titel: Re: @BusinessDays mit Script UND Feiertagen
Beitrag von: botschi am 26.02.07 - 15:42:46
Moin,

ich habs so gemacht:
Forall werte In ivFeiertageItem.Values
   If iv_alle_feiertage = "" Then
      iv_alle_feiertage = "[" & werte & "]"
   Else
      iv_alle_feiertage = iv_alle_feiertage + ":" + "[" & werte & "]"
   End If
End Forall

Und das übergebe ich dann der Formel:
ivFormel = |@BusinessDays([| & Cdat(gvArbeitsmonat.monatsanfang(0)) & |];@Yesterday;1:7;| & iv_alle_feiertage & |)|

Das ist wohl das, was Tobias mir empfohlen hat.

Bei mir funktioniert es, bin aber gleichzeitig auch noch skeptisch. Ich wunder mich, dass ich in keinem Forum sowas gefunden habe und dass (ausser Tobias) mir das keiner sageb konnte...

Mal sehen, wie lange das so läuft ... ;D

Matthias