Autor Thema: Validierung für Date/Time Feld  (Gelesen 6723 mal)

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Validierung für Date/Time Feld
« Antwort #20 am: 21.10.04 - 14:42:47 »
Huebscher (IMHO):
Code
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)
  ElseIf Not Isdate(doc.kbtermin(0)) Then
          strValText = strValText + "Termin -> Bitte geben Sie einen gültigen Datumswert ein" & Chr$(13)
  End If
Else
  strValText = strValText + "Termin -> Bitte geben Sie einen gültigen Datumswert ein" & Chr$(13)
End If
Weiters wuerde ich den Test Isdate() VOR doc.kbtermin(0) < Today machen, sonst ist er sinnlos. ;)
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Validierung für Date/Time Feld
« Antwort #21 am: 21.10.04 - 14:44:55 »
IsDate ("") ist natürlich False.

Der Datentyp muss natürlich passen.
IsDate (NotesDocument.DeinFeld) geht in die Hose (wegen Array)
IsDate (NotesDocument.DeinFeld (0)) passt und reagiert nur mit True oder False.

HTH,
Bernhard

Offline Tina

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Validierung für Date/Time Feld
« Antwort #22 am: 21.10.04 - 14:52:06 »
Ich hatte es vorher ohne das If isEmpty(..) Then.... stehen und es tat nicht das was es sollte, wahrscheinlich lag es an der Reihenfolge meiner Abfragen... aber daran hab ich natürlich nicht gedacht! :)

Offline Tina

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Validierung für Date/Time Feld
« Antwort #23 am: 21.10.04 - 14:56:00 »
@koehlerbv:
Habs grad nochmal mit dem isDate() probiert und es klappt nicht! Er fliegt mit ner Fehlermeldung (varaint does not contain a container) raus.
« Letzte Änderung: 21.10.04 - 14:58:26 von Tina »

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Validierung für Date/Time Feld
« Antwort #24 am: 21.10.04 - 14:59:07 »
Was für eine Fehlermeldung ?

Marinero Atlántico

  • Gast
Re: Validierung für Date/Time Feld
« Antwort #25 am: 21.10.04 - 15:01:41 »
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

oder
Code
If Not (IsDate (NotesDocument.Datumsfeld)) then
    Messagebox "Gemecker"
    Else
     'Mach weiter
End If
? 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
ü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

Offline Tina

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Validierung für Date/Time Feld
« Antwort #26 am: 21.10.04 - 15:03:24 »
@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

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Validierung für Date/Time Feld
« Antwort #27 am: 21.10.04 - 15:05:54 »
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

Offline Tina

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Validierung für Date/Time Feld
« Antwort #28 am: 21.10.04 - 15:12:52 »
@bernhard:
genau so ist es! Ich habs die ganze Zeit mit nem ungültigen Datum a la "32.10.2004" getestet.
  ;)



 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz