Autor Thema: Feldvalidierungen zusammenfassen  (Gelesen 3320 mal)

Offline Okken

  • Frischling
  • *
  • Beiträge: 4
Feldvalidierungen zusammenfassen
« am: 19.01.09 - 15:24:56 »

Hallo zusammen,

ich hätte als "Entwickler-Newbie" :) mal eine Frage zur Feldvalidierung (Notes 6.5.5).

Wenn ich vor der Speicherung eines Dokuments Feldwerte prüfen will, kann ich das ja über die Eingabevalidierung des entsprechenden Feldes machen, z.B. in einem Feld "Endedatum" mit 

@If ( Endedatum < Startdatum ;
    @Failure ("Bitte überprüfen Sie den Beginn und das Ende des Zeitraums.") ;
  @Success )

ggf. mit einem zusätzlichen @IsDocBeingSaved in der Bedingung, falls erst beim Speichern geprüft werden soll.

Meine Überlegung ist nun, bei Masken mit vielen Feldern die in Abhängigkeit zuein- ander geprüft werden sollen, der Übersichtlichkeit halber alle Validierungsformeln in einem zusätzlichen (verborgenen) Feld am Maskenende zusammenzufassen, also

@If ( Bedingung1 ;
    @Return ( @Failure ("...") ) ;
      Bedingung2 ;
    @Return ( @Failure ("...") ) ;
      Bedingung3 ;
    @Return ( @Failure ("...") ) ;
  @Success )

Spricht irgend etwas gegen diese Vorgehensweise, bzw. hat einer der "alten Hasen" hier mit einem ähnlichen Konstrukt vielleicht schonmal Probleme gehabt?

Bin leider in Lotusscript (noch) nicht so fit und kann die Abfragen mangels eines Äquivalents zu "continue = false" in der Formelsprache nicht ins Querysave schreiben...

Vorab schon mal danke, tolles Forum hier!

Jochen

Offline it898ur

  • Senior Mitglied
  • ****
  • Beiträge: 478
Re: Feldvalidierungen zusammenfassen
« Antwort #1 am: 19.01.09 - 15:29:32 »
Hallo Jochen,

normalerweise springt Notes bei einem Fehler in das feld, welches den Fehler provoziert hat - dies würde bei einem versteckten Feld am Ende nicht funktionieren !

Gruß

André

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Feldvalidierungen zusammenfassen
« Antwort #2 am: 19.01.09 - 16:27:11 »
Zum einen kannst du bei !!HELP!! nachschauen wie man so etwas lösen kann (Scripttechnisch). Was eines der möglichen Probleme angeht gugst du hier.

Zum anderen gibt es auch in der Formelsprache eine Möglichkeit zu einem bestimmten Feld zu springen ...
@Command([EditGoToField];"Feldname");
Dazu musst du nur deine Formelroutine ein wenig " verbiegen ".
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline LotusMen

  • Frischling
  • *
  • Beiträge: 12
  • Geschlecht: Männlich
Re: Feldvalidierungen zusammenfassen
« Antwort #3 am: 19.01.09 - 22:08:54 »
Hallo Jochen,

dieses Problem löst du am Effektivsten, wenn du die betreffenden Felder nacheinander und/oder in Abhängigkeiten von Feldern im Quersave der Maske über LScript abfragst.

Mfg. Uwe
Gruss Uwe

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Feldvalidierungen zusammenfassen
« Antwort #4 am: 20.01.09 - 00:05:21 »
Uwe a.k.a "LotusMänner",

Jochen hatte oben geschrieben, das er mit LotusScript noch nicht so kann. Oder eigentlich gar nicht.

Bernhard

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Feldvalidierungen zusammenfassen
« Antwort #5 am: 20.01.09 - 00:27:43 »
Hallo Jochen,

der allererste Ratschlag muss natürlich lauten: Lerne die Basics von LotusScript. Es ist gar nicht so schwer, eine wirklich saubere Routine zur Prüfung von "mandatory fields" zu schreiben. Anderseits: Schreibe es selber und verwende *niemals* Code, den Du nicht sicher verstanden hast.

Eine zusammengefasste Prüfung für diverse Felder ist auch in Formelsprache möglich, nur eben nicht so komfortabel wie mit LS (es sei denn, ich habe jetzt etwas vergessen - von 1992 bis ca. 1996 blieb mir ja auch keine andere Möglichkeit  ;)).

Was nicht geht: Du kannst keine UI-Commands (also Commands wie @Command [EditGotoField]; "SeinFeldname")) verwenden. Userfreundlich ist das nicht.

Was aber wirklich geht:
Es muss ein bearbeitbares Feld sein, was aber versteckt ist. Eine denkbare Formel wäre dann
Code
@If (Subject = "";
	@Failure ("Fehler in Subject!");
	Content = "";
	@Failure ("Fehler in Content!");
@Success)

Irgendwie schwirrt mir da noch die Erinnerung an eine verbesserte Variante durch den Hinterkopf, aber das ist halt ben weit mehr als zehn Jahre her, als man das noch wirklich brauchte.
Nochmals: Beschäftige Dich mit LotusScript. Oder buche ein "Training on the job" (Du hast ein Problem, das wird gelöst, während Du LS lernst - die effektivste Methode für Dich und Deine Organisation).

Was Du auf jeden dann aber nicht machen solltest: LS-Überprüfung und QuerySave und @Failure in Eingabevalidierungen - das führt zu doppelten und damit unnötigen, verwirrenden Meldungen.

HTH,
Bernhard

PS: Auch, wenn das jetzt Eigenwerbung ist - ich biete gerne und erfolgreich "Trainings on the job" an. Das ist für beide Seiten der anstrengendere, aber auch extrem erfolgreiche Weg.

Offline Okken

  • Frischling
  • *
  • Beiträge: 4
Re: Feldvalidierungen zusammenfassen
« Antwort #6 am: 20.01.09 - 09:13:00 »

Danke euch allen,

langfristig wirds wohl sowieso auf Lotusscript hinauslaufen. Eine Schulung ist auch schon geplant, dauert halt noch ein bisserl...

Werd mal sehen, inwieweit ich mich bis dahin in LS hineinfuchse (bin Quereinsteiger ohne großartige Programmiersprachenkenntnisse).

Jochen

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz