Domino 9 und frühere Versionen > ND8: Entwicklung

@If + @ Contains

<< < (20/22) > >>

VB3Bernd:
Peter Mewes,

nimm doch bitte Deine Formel:


--- Zitat von: Peter Mewes am 27.05.11 - 11:05:18 ---viw := "vadminview";
crit := (_vorname + "#" +_name + "#" + _straße);
col := 2;
lkp := @DbLookup( "" : "NoCache" ; "" ; viw ; crit ; col );
res := @If( @IsError( lkp ) ; "" ; lkp );
@If( res != @Text( @DocumentUniqueID ) & res != "" ; @Prompt([Ok];"¿Profil bereits vorhanden"; "Das Profil ist bereits vorhanden. Bitte eine Nachricht wurde an den zuständigen Admin versendet. Er wird sich in kürte mit Ihnen in Verbindung setzen. NICHT Unique.") ; @Prompt([Ok];"¿Profil nicht vorhanden"; "Das Profil ist Unique.")  )

--- Ende Zitat ---

und setze sie in die "Eingabevalidierung" des letzten Eingabefeldes. Ersetze dann das @Prompt mit dem @Failure bzw. @Success.

In etwa so:
@If(
    res != @Text( @DocumentUniqueID ) & res != "" ;
   @Failure( "Das Profil ist bereits vorhanden.") ;
@Success  )

@Failure in der Eingabevalidierung promptet Dir die eingegebene Meldung und verhindert das Speichern wirklich ganz ordentlich.

koehlerbv:
Was heisst "ganz ordentlich"? @Failure und das Speichern ist unmöglich!

Bernhard

VB3Bernd:
@bernhard

Ja klar ... sollte ironisch sein.

 ;D

Peter Mewes:
@VB3Bernd und Bernhard: Okay. @Failure hat geholfen. DANKE.

Kann mir jetzt noch jemand erklären, warum das Konstrukt im Querysave so nicht ging? Wäre mir wichtig zwecks lernen aus Fehlern und so...


--- Zitat ---@Bernhard  :knuddel: :  Ad @SetField (saver ...):

Was steht denn in der Variablen saver drin? Nix? Na, dann sollte alles klar sein ...
--- Ende Zitat ---

Sollte nachdem SetField gelaufen ist nicht der Wert drinne stehen, auf den SetField es setzt?

@Peter: Ja ich gebe zu das mit dem saver war ein lausiger Workaround. War eigentlich nur, weil ich mir mit den Ausgabewerten von @Unavaible nicht sicher war und fälschlicherweise kurz angenommen hatte, es wäre einfacher und sicherer das ganze ausserhalb der IF anweisung zu machen, weil ich noch nicht sonderlich gut darin bin, Syntaxe sinnvoll zu verknüpfen.

Warum ich nich gleich in Script gemacht habe... Naja zum einen las ich, dass Querysave continue = false eine zweitklassige Lösung sei und zudem gehe ich (noch) davon aus, dass Formula einfacher zu meistern ist am Anfang.

VB3Bernd:
QuerySave wird ausgelöst beim Speichern (im Grunde kurz vor dem Speichern) des Dokumentes. Dein Code enthält aber nur Prompts bzw. Dinge, die in diesem Zusammenhang zu spät sind oder im falschen Syntax geschrieben wurden.

Schau Dir bitte genau die Syntax von @setfield an. An der ersten Stelle nach der Klammer steht ein Feldname (als String). Wenn Du also einen festverdrahteten Feldnamen angeben willst, musst Du diesen in Anführungsstriche setzen. So wie Du es geschrieben hast: @setfield(saver ; ...) sucht er eine Variable in Deiner Formel die den Feldnamen enthalten soll ... die gibts aber nicht.

Also nochmal die Hilfe zu Rate ziehen.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln