Domino 9 und frühere Versionen > ND6: Administration & Userprobleme

Validierung für Date/Time Feld

<< < (6/6)

Marinero Atlántico:
Ich finde auch Bernhards Lösung besser, weil kürzer.

@Tina: hast du:

--- Code: ---If Not (IsDate (NotesDocument.Datumsfeld (0))) then
    Messagebox "Gemecker"
    Else
     'Mach weiter
End If


--- Ende Code ---
oder

--- Code: ---If Not (IsDate (NotesDocument.Datumsfeld)) then
    Messagebox "Gemecker"
    Else
     'Mach weiter
End If

--- Ende Code ---
? Finde den Unterschied  ;D

Das Problem bei Script-Validierung ist, dass Validierungsregeln
- je länger die Lebensdauer des Projekts ist und
- je banknäher eine Organisation ist (langjährige empirische Erfahrung)
immer komplizierter werden.


Mich hat z.B. heute morgen auch gerade wieder so eine Validierung mit

--- Code: ---if
  if
    if trim$(doc.xxxFeld(0)) <> "" OR trim$(doc.yyyFeld(0)) <> "" OR trim$(doc.zzzFeld(0)) <> "" then

--- Ende Code ---
über 1 STunde aufgehalten, weil da nach dem zzzFeld ="" statt <> "" stand. (Folge von copy und paste).

Ich hab schon einige Validierungsframeworks gesehen, die im Selbstknieschuss endeten, aber vielleicht sollte man daran nochmal arbeiten.

Gruß Axel

Tina:
@koehlerbv:
Fehlermeldung: Variant does not contain a container.

@Axel:
Wie gesagt es funktioniert nicht mit isDate().


Hab jetzt das Script noch etwas gekürzt:

varDatTest = doc.kbTermin
If Not Isempty(varDatTest) Then
  If doc.kbtermin(0) = "" Then
    strValText = strValText + "Termin -> Das Datum darf nicht leer sein" & Chr$(13)
  Elseif doc.kbtermin(0) < Today Then
    strValText = strValText + "Termin -> Das Datum darf nicht in der Vergangenheit liegen" & Chr$(13)
  End If
Else
  strValText = strValText + "Termin -> Bitte geben Sie einen gültigen Datumswert ein" & Chr$(13)
End If

koehlerbv:
Evtl. weiss ich, wo es bei Dir hakt: Wurde ein Wert eingegeben, der aussieht, wie ein Datum ("31.02.2004"), dann wird das Item von Notes nicht gefüllt - es ist ja kein Wert, der in ein Datumsfeld passt.

Daher schön kurz (so wie el Marinero eben schon schrieb):

If IsEmpty (NotesDocument.Datumsfeld) then
   Messagebox "Gemecker"
    Exit Sub
    Else
    If Not (IsDate (NotesDocument.Datumsfeld (0))) then
       Messagebox "Gemecker"
       Else
       'Deine weiteren Prüfungen - jetzt isses ein Datum !
       End If
     End If

HTH,
Bernhard

Tina:
@bernhard:
genau so ist es! Ich habs die ganze Zeit mit nem ungültigen Datum a la "32.10.2004" getestet.
  ;)


Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln