[gelöst] Datumseingaben global einschränken

29. Januar 2009 16:14

Hallo,

ich versuche gerade den gültigen Datumsbereich für Datumsfelder global einzuschränken. Da Triggercode hier nicht geeignet ist, gehört das natürlich in die Codeunit 1 .

Ich habe also in der Funktion MakeDateText, die jedes mal durchlaufen wird, wenn jemand in einem Datumsfeld einen Wert einträgt, testweise folgende Anpassung durchgeführt.

Jetzt bekommt der Benutzer eine wunderschöne Fehlermeldung. Allerdings habe ich es nocht nicht hinbekommen, dass das falsche auch gleich auf z.B. Today oder Workdate zurückgesetzt wird.

Kann mir da jemand einen Tip geben?

Gruß,

Code:
MakeDateText(VAR DateText : Text[250]) : Integer
Position := 1;
Length := STRLEN(DateText);
ReadCharacter(' ',DateText,Position,Length);
IF NOT FindText(PartOfText,DateText,Position,Length) THEN BEGIN
//- Änderung Datumstest
  IF EVALUATE(DateVariable,DateText) THEN BEGIN
    EVALUATE(DateVariable,DateText)
  END;
    IF (DateVariable <01011754D) OR (DateVariable >010112D) THEN BEGIN
      IF DateVariable<>0D THEN BEGIN
        ERROR(Text1000,FORMAT(DateVariable));
        DateText:=FORMAT(TODAY);
        CLEAR(DateVariable);
      END;
    END;

//+ TestÄnderung Datumstest

  EXIT(0);
END;
CASE PartOfText OF
  COPYSTR(Text005,1,STRLEN(PartOfText)):
    Date := TODAY;
  COPYSTR(Text006,1,STRLEN(PartOfText)):
    Date := WORKDATE;
  ELSE
    EXIT(0);
END;
Position := Position + STRLEN(PartOfText);
ReadCharacter(' ',DateText,Position,Length);
IF Position > Length THEN BEGIN
  DateText := FORMAT(Date);
  EXIT(0);
END;
EXIT(Position);
Zuletzt geändert von LordSoth am 30. Januar 2009 18:18, insgesamt 2-mal geändert.

Re: Datumseingaben global einschränken

30. Januar 2009 17:37

Moin,

nimm mal nicht Error als Ausgabe sondern Message, dann sollte auch der nachfolgende Code ausgeführt werden.

Gruß Hoschi Blume

Re: Datumseingaben global einschränken

30. Januar 2009 18:18

Danke,

ja ab und an ist mann ein bischen betriebsblind.

Läuft jetzt natürlich einwandfrei.

Gruß,