Domino 9 und frühere Versionen > ND8: Entwicklung

@If + @ Contains

<< < (9/22) > >>

Peter Mewes:
Ich begebe mich auf den Spießrutenlauf und versuche das ganze Mal aufzudröseln.

viw := "vdoppelpreuf";
crit := ~_name;
col := 4;
lkp := @DbLookup( "" : "NoCache" ; "" ; viw ; crit ; col );
res := @If( @IsError( lkp ) ; "" ; lkp );
@If( res != @Text( @DocumentUniqueID ) & res != "" ; @Failure( "Name bereits gefunden" ) ; @Prompt([Ok];"Profil scheint Unique"; "Das Profil ist nicht doppelt.")  )


Okay. Die Variablendeklarierung ist klar. Aber wenn ich das Ding richtig verstehe, dann:

- wird res bei Erfolg von dblookup zu lkp ( wobei lkp die UniqueID ist).

- wird res bei Misserfolg zu ""

- wenn res am Ende NICHT der UniqueID und NICHT "" entspricht, DANN sagt er "Name bereits vorhanden"

-sollte res der UniqueID entsprechen, bzw einen Wert jenseits "" haben, dann gibt er den Prompt aus.


Konkrete Frage1: Sehe ich es richtig, dass die Ausgaben so im Moment falsch sind? Oder habe ich nur wieder die Syntax nicht ganz verstanden? Eigentlich müsste er doch bei !="" und !="UniqueID" sagen, dass der Name noch NICHT da ist, oder?

Konkrete Frage2: Was könnte zB. bei DBlookup passieren, das lkp veranlasst hätte "" zu sein.

koehlerbv:
Nix "Spiessrutenlauf", das war notwendige Kritik.

Und dass das positiv gewirkt hat, zeigt Dein Posting auf beste Weise. Daran "kritisiere" ich lediglich noch, dass Deine Ansicht vermutlich nicht "vdoppelpreuf" heisst  ;)

Bernhard

smokyly:

--- Zitat von: PeteM am 24.05.11 - 15:59:51 --- Eigentlich müsste er doch bei !="" und !="UniqueID" sagen, dass der Name noch NICHT da ist, oder?

--- Ende Zitat ---
Nein. Der DBLookup findet in der Ansicht nach Deinen Suchkriterien ja ein Dokument und liefert dazu die UNID zurück.
Und wenn Du mein Nachfragen verfolgt hast, würdest Du auch verstehen, was der Vergleich der UNID macht: Es wird das gefundene Dokument mit dem verglichen, welches gespeichert werden soll. Sind die UNID nicht identisch ->


--- Zitat ---Konkrete Frage2: Was könnte zB. bei DBlookup passieren, das lkp veranlasst hätte "" zu sein.

--- Ende Zitat ---
Z.B. dass Du Dich bei der Benennung der Ansicht verschrieben hast. ;D

Peter Klett:

--- Zitat von: PeteM am 24.05.11 - 15:59:51 ---Konkrete Frage1: Sehe ich es richtig, dass die Ausgaben so im Moment falsch sind? Oder habe ich nur wieder die Syntax nicht ganz verstanden? Eigentlich müsste er doch bei !="" und !="UniqueID" sagen, dass der Name noch NICHT da ist, oder?

--- Ende Zitat ---
Wenn das Ergebnis nicht leer und auch nicht die UniversalID des aktuellen Dokuments ist, dann gibt es schon ein anderes Dokument mit den gleichen Werten. Die Meldungen sind in der korrekten Reihenfolge


--- Zitat von: PeteM am 24.05.11 - 15:59:51 ---Konkrete Frage2: Was könnte zB. bei DBlookup passieren, das lkp veranlasst hätte "" zu sein.

--- Ende Zitat ---
Der Name wurde in der Ansicht nicht gefunden, also DBLookup findet über den Suchschlüssel (bei Dir den Namen) kein Dokument. Aber dann wäre nicht lkp leer, sondern @IsError, und damit wird res auf "" gesetzt, aber das meintest Du wohl?

Die Zeile crit := ~_name; habe ich nicht verstanden, ist das ein Tippfehler oder etwas, was ich noch nicht kenne?

Peter Mewes:
Hehe.

Doch die Ansicht heisst tatsächlich so.



Zugegeben entstanden aus einem Rechtschriebfehler, dann aus Witzigkeit beschlossen so zu belassen. Sag Mal drei Mal hintereinander das Wort "preuf", dann weisste wieso. :) Und ja... im Namen der Programmiererehre werde ich meine Ansichten in Zukunft ordentlich benennen.


--- Zitat --- Die Zeile crit := ~_name; habe ich nicht verstanden, ist das ein Tippfehler oder etwas, was ich noch nicht kenne?
--- Ende Zitat ---

Ich hatte die Tage Mal munkeln gehört, dass Feldnamen mit "_" beginnend in einer Deklaration ":=" in Formel nicht funktionieren, es sei denn, man setzt ein Tilde davor... Not?

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln