Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: TMC am 14.12.03 - 20:44:26

Titel: If uidoc.save Is True Then ...
Beitrag von: TMC am 14.12.03 - 20:44:26
Hi,

eigentlich was alltägliches:
Ein Dokument wird neu erstellt, verschiedene Felder werden ausgefüllt.
In den Input Validations mancher Felder stehen Validierungsformeln à la
"@If(Quan = "";@Failure("Leer!");@Success)"

Nun ist da noch ein Button, der ein Script enthält, welches das Dok weiter bearbeitet (Felder setzt etc.).
Ziemlich am Anfang (nach den dims und sets) steht:
uidoc.save

Problem:
Wenn ein Pflichtfeld nicht ausgefüllt ist, kommt
1) die erwartete @Failure-Box
2) danach zusätzlich eine Notes-Meldung: "NotesUIDocument: Save cancelled"

Wie kann ich die 2. Meldung unterdrücken?

Ich meine was in er Art wie:
.....
If uidoc.save Is True Then
Else
   Exit Sub
End If
.....

Wie kann man das realisieren?

TMC
Titel: Re:If uidoc.save Is True Then ...
Beitrag von: Semeaphoros am 14.12.03 - 21:28:05
ErrorHandling, da uidoc.save keinen Rückgabewert liefert.

Code
On Error xxxx goto SaveErrorHandler
call uidoc.save
On Error xxxx goto ErrorHandler
   .....

EndOfSub:
exit sub

SaveErrorHandler:
Resume EndOfSub

ErrorHandler:
rem normaler Handler

End Sub
wobei xxxx für die betreffende Fehlernummer steht, die zu eruieren ist.


Andere Möglichkeiten wäre das Ausgliedern der Verifizierungen entweder ins QuerySave oder sogar in eine eigene Validierungsroutine fürs gesamte Formular, die dann nur bei Bedarf aufgerufen wird (damit lässt es sich allenfalls auch als Entwurf speichern).

HTH
Jens
Titel: Re:If uidoc.save Is True Then ...
Beitrag von: TMC am 14.12.03 - 21:34:27
Danke für den Tipp, der hilft mir sehr weiter  :)

Grüße,
TMC
Titel: Re:If uidoc.save Is True Then ...
Beitrag von: g202e am 07.01.04 - 12:03:52
Ich habe genau dasselbe Problem und komme nicht weiter, weil ich nicht weiß, welche Nummer diese Fehlermeldung hat.
Wie kriege ich die raus?
Es wird keine Nummer audgegeben sondern einfach nur  "NotesUIDocument: Save cancelled"   ???
Titel: Re:If uidoc.save Is True Then ...
Beitrag von: Semeaphoros am 07.01.04 - 12:14:33
Dann mach doch einen allgemeinen Error-Handler (On Error Goto ...) und printe dort die Variable Err aus, dann hast Du die Nummer.
Titel: Re:If uidoc.save Is True Then ...
Beitrag von: g202e am 07.01.04 - 12:21:08
Danke.
Habe gerade noch eine andere Möglichkeit entdeckt:Im Notes-Verzeichnis: lsxuierr.lss da steht drin dass die Nummer für o. g. Fehler 4411 ist.
Titel: Re:If uidoc.save Is True Then ...
Beitrag von: Semeaphoros am 07.01.04 - 12:49:42
Stimmt, da gibt es eine Liste, dazu gibt es glaub ich auch eine Referenz in der Hilfe, wenn ich mich richtig erinnere. Funktioniert aber nur, wenn man die englischen Fehlermeldungen hat .... leider.
Titel: Re:If uidoc.save Is True Then ...
Beitrag von: g202e am 08.01.04 - 14:33:04
Funktioniert aber nur, wenn man die englischen Fehlermeldungen hat

@Semeaphoros: Wie meinst du das?
Ich habe zwar einen deutschen Client, aber solche Fehler sind bei mir immer in english!
Nicht etwa, dass ich damit Probleme hätte, aber kann man das umstellen/einstellen?
Titel: Re:If uidoc.save Is True Then ...
Beitrag von: Semeaphoros am 08.01.04 - 15:14:02
Gute Frage, hab keine Ahnung, welche Fehlermeldungen in Deutsch kommen, aber es kommen mehr als genug normalerweise, da keine Nummern dabeistehen, ist es dann immer schwierig, die Originalmessage rauszufinden, die englische. Scheint so, dass die LotusScript Meldungen nicht übersetzt wurden, wusste ich auch nicht.