Inaktiv Voraussichtliches Lieferdatum

Shopsitters

Sehr aktives Mitglied
27. Juli 2011
1.388
77
Schleswig-Holstein
Hallo Forum,

ich habe hier eine Formel, die nicht genau das im Formular macht, was sie soll ... ich verliere hier etwas den Überblick

Ziel: Ich möchte in Formularen ausgeben, wann unser Kunde seine Ware bekommen wird.
- hierfür benutze ich die Felder Voraussichtliches Lieferdatum
- und ein eigens Feld unter den Auftragsattributen

Möglichkeit 1: ich belasse das Feld voraussichtliches Lieferdatum bei 0 ... in der DB steht da scheinbar 01.01.1900 und ich habe keine Lieferzeitinformation in meinem Bestellattribut gefüllt
-- DANN schreibe die aktuelle Kalenderwoche
Möglichkeit 2: Ich habe unter Bestellattributen einen Text stehen
-- DANN nimm diesen
Möglichkeit 3: Ich habe das Voraussichtliche Lieferdatum manuell vergeben
-- DANN nimm Klanederwoche des genannten Datums.

Das Ganze habe ich wie folgt umgesetzt
Code:
if(((Date$(Vorgang.VoraussichtlichesLieferdatum)="01.01.1900") and IsNullOrEmpty((Alias$("X_Lieferzeittext", Vorgang.Attribute)))),"KW "+Str$(Woy (date(JTL_DatumAlsText(Vorgang.VoraussichtlichesLieferdatum)),0))+'. ' +Year$ (date(JTL_DatumAlsText(Vorgang.VoraussichtlichesLieferdatum))),(Alias$("X_Lieferzeittext", Vorgang.Attribute)))

Kann hier jemand einen Fehler drin erkennen?
Ich seh den Wald vor lauter Bäumen nicht.
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
399
AW: Voraussichtliches Lieferdatum

Hallo Shopsitters,

Was Du oben schreibst ist ja eigentlich ein dreistufiger Test "Wenn das Eine, dann..., wenn nicht, aber das Andere, dann..., wenn auch das nicht, dann..." und das kriegst Du mit einem einzigen If() nicht gebändigt. Du musst also zumindest zwei If() Konstrukte schachteln, so wie hier...

Code:
if(Date$(Vorgang.VoraussichtlichesLieferdatum)<>"01.01.1900", "KW "+Str$(Woy (Vorgang.VoraussichtlichesLieferdatum,0)),If(Alias$("X_Lieferzeittext", Vorgang.Attribute)<>"",Alias$("X_Lieferzeittext", Vorgang.Attribute),"KW " + Str$(Woy(Today(),0))))

Die Logik ist jetzt wie folgt:
1. Wenn VoraussichtlichesLieferdatum gesetzt ist, schreibe "KW " + KW des Voraussichtlichen Lieferdatums.
2. Sonst, wenn Attribut "X_Lieferzeittext" gefüllt ist, schreibe das Attribut wie es ist.
3. Wenn weder VoraussichtlichesLieferdatum gesetzt ist und kein Attribut gesetzt ist, schreibe "KW " + die KW des aktuellen Datums.

In Deinem Code hattest Du übrigens als Basis für die Kalenderwoche des aktuellen Datums das voraussichtliche Lieferdatum genommen, der Wert wäre für den "01.01.1990" aber natürlich immer "1". Ich gehe davon aus, dass Du es so wie oben unter 3. gemeint hast, also die KW des aktuellen/heutigen Datums, richtig?

Gruß,
Ingmar
 

Shopsitters

Sehr aktives Mitglied
27. Juli 2011
1.388
77
Schleswig-Holstein
AW: Voraussichtliches Lieferdatum

Hi Ingmar,

Danke für Deine Beteilung an Deinem Beitrag. Leider komme ich erst jetzt zu der Beantwortung. Ich habe das jetzt wie folgt gelöst.

Code:
if(IsNullOrEmpty(Alias$("X_Lieferzeittext", Vorgang.Attribute)),if(Date$(Vorgang.VoraussichtlichesLieferdatum)="01.01.1900","Nach Absprache","ab Lager in KW "+Str$(Woy (date(JTL_DatumAlsText(Vorgang.VoraussichtlichesLieferdatum)),0))+'. ' +Year$ (date(JTL_DatumAlsText(Vorgang.VoraussichtlichesLieferdatum)))),(Alias$("X_Lieferzeittext", Vorgang.Attribute)))

Also im Detail betrachtet

Wenn ich kein Datum beim Voraussichtlichen Lieferdatum eingeben (JTL nimmt dann den 01.01.1900) soll "Nach Absprache" stehen
Wenn ich ein Datum bei dem Voraussichtlichen Lieferdatum eingegeben habe steht dann "an Lager in KW ... " und die Kalenderwoche meines eingegebenen Datums
Wenn ich unter meinen Bestellattribut X_Lieferzeit eine Eintragung gemacht habe nimmt er dann den Text wie zB ... Produktionsbeginn in ca. 3-4 Wochen oder ähnlich.

So funktioniert das ganz gut bei mir.

Gruss Lars