Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Syeg am 19.09.05 - 14:36:55
-
Folgende Formel liefert nicht was ich erwarte:
PrA := @DbLookup( "Notes" : "NoCache" ; "" ; "Kostenarten" ;Art ; 2);
PrS := @DbLookup( "Notes" : "NoCache" ; "" ; "Kostenstellen" ;Stelle ; 2);
FIELD RgPrüfer := RgPrüfer;
@SetField("RgPrüfer";@If(@IsError(PrA);PrS;PrA));
Was ist falsch?
Danke im Voraus!
-
Was liefert denn die Formel und was erwartest du?
Gruß Sascha
-
Welches Verwalten erwartest Du denn?
Persönlich halte ich nichts von Umlauten in Feldnamen.
-
Entschuldigt die Unklarheiten, aber DIE NERVEN..!
Ich erwarte im Feld RgPrüfer einen der gefundenen Werte PrA oder PrS, und zwar PrS (den zweiten) nur wenn der erst, PrA, nicht vorhanden ist.
Liefern tut das ganze eine 1
-
Hast Du mal die Ansichten geprüft, ob dort die Keys Art und Stelle vorhanden sind und was in Spalte 2 steht?
Was steht in PrS und PrA?
-
Folgende Formel liefert nicht was ich erwarte:
PrA := @DbLookup( "Notes" : "NoCache" ; "" ; "Kostenarten" ;Art ; 2);
PrS := @DbLookup( "Notes" : "NoCache" ; "" ; "Kostenstellen" ;Stelle ; 2);
FIELD RgPrüfer := RgPrüfer;
@SetField("RgPrüfer";@If(@IsError(PrA);PrS;PrA));
Das Ergebnis 1 ist doch schon einmal etwas, zeigt zumindest, dass da ein Wert zurückgeliefert wird. Es wäre zunächst einmal wichtig zu erfahren, ob der Wert nun aus PrA oder PrS zurückgeliefert wird, d.h. ob PrA auf einen Fehler läuft. Was mir nicht so ganz klar ist, warum prüfst du auf Fehler? Die zurückgelieferte 1 sollte eigentlich schon ein richtiger Wert sein. Wenn nämlich PrA ein False zurückliefern würde, bekommst du einen anderen Wert zurück.
Gruß Sascha
-
Also, habe vorher mit @Prompt gesehen, dass ich die richtigen Werte in den beiden oder einer der Variablen (je nach Wert von "Art" und "Stele") erhalte.
Ich hatte noch am Schluss:
@prompt([ok];"Prüfer";">"+RgPrüfer+"<");
Dieses wird aber gar nicht ausgeführt, als würde die Formel vorher "Abstürzen".
Bei fehlenden Werten in den Ansichten erhalte ich:
FEHLER: Eintrag im Index nicht gefunden, oder der Index ist für die Ansicht nicht aufgebaut
Nun?
-
Nur so eine Checkliste zum Prüfen.
1.) Sind die Ansichten "Kostenarten" und "Kostenstellen" in der ersten Spalte sortiert?
2.) Welche Werte werden verglichen? Liefern die Felder "Art" und "Stelle" die gleichen Datentypen wie in den sortierten Spalten abgefragt werden?
3.) Ist das Feld RGPrüfer vom gleichen Datentypen, wie die Werte PrA oder PrS?
Gruß Sascha
-
Nachtrag:
Fragt doch mit deinem Prompt vorher noch die Felder "Art" und "Stelle" und danach die Werte "PrA" und "PrS" ab.
-
1.) Die Ansichten sind sortiert in der ersten Spalte
2.) Es sind Ansichten über die gleichen Dokumente (Maske "Kostenträger", welches die "Art der Trägerschaft(!)" als Merkmal enthält, und welches zu den beiden Ansichten führt).
3.) Prompts liefern das erwartete
ÜbrigenS. natürlich auch einen Gruss und Danke für die bisherigen Mühen,
Esteban
-
3.) Prompts liefern das erwartete
Wenn die Prompts das erwartete liefern, d.h. PrS und PrA die gewünschten Werte, dann liefert
FIELD RgPrüfer := RgPrüfer;
@SetField("RgPrüfer";@If(@IsError(PrA);PrS;PrA));
PrA keinen Fehler, also läuft deine @If Abfrage nicht auf einen Fehler und liefert PrS zurück.
Hast du einen Schreibfehler im Feldnamen RgPrüfer. Gibt es ggf. noch eine Eingabeumsetzungsformel in diesem Feld? Welcher Code wird ggf. noch ausgeführt? Wo läuft die Formel (Schaltfläche, etc.)?
Gruß Sascha
-
Ja, so ist es, oder besser sollte es sein.
Es geht um ein Feld in einer Maske und die Formel habe ich jetzt "beim Anzeigen" und "beim Anlegen" probiert. Auch einfach mit "Berechnet". Aber der Wert ist immer noch einfach 1.
seuffst (Notes kommt von Not?)
-
Nachtrag:
Kein Schreibfehler in Feldnamen.
Keine Eingabeumsetzungsformel.
Kein weiterer Code.
-
Beim Anlegen, (ich nehme an du meinst das Postopen Event) hast du keine Chance, da zu diesem Zeitpunkt deine Schlüsselfelder (Art oder Stelle), die du als Vergleichswert benutzt wahrscheinlich noch nicht gesetzt sein dürften, da ja der Benutzer zunächst die Felder Art, bzw. Stelle beschreibt und du danach die DBLookup's startest.
Sofern dies immer noch kein Ansatz ist, schreib mir doch einmal kleinlichst auf, wo der Code abläuft, welche Datentypen die Felder haben, ob Sie berechnet sind oder bearbeitet, usw.
Gruß Sascha
-
I.o.
1. Beim Versuch, ein neues Dokument zu erstellen, komme ich auf den Fehler "Feld: RgPrüfer: Eintrag im Index nicht gefunden, oder der Index ist für die ansicht nicht aufgebeut", was logisch ist, de - wie du bemerkt hast - die beiden steuernde Felder Art und Stelle ja leer sind.
2. Daher habe ich bisher mit "Bearbeiten" (Doppelclick) auf vorhandenes Dokument aus vorheriger Version, mit den beiden Feldern Art und Stelle aber noch ohne RgPrüfer.
3. Es geht schlussendlch darum, dass diese Dokumente als Mail oder von einem Agenten erstellt werden und nacher der Agent "Wenn Dokumente eingefügt werden" die nötigen ergänzungen durchführt.
In dieser ersten Phase geht es mir um das Testen, ob meine Idee überhaupt klappt! Und siehe da, sie klappt nicht!
-
Ich bleibe dabei, dein Timing ist das falsche. Zu dem Zeitpunkt wenn du die DBLookups machst, hast du keine Schlüsselwerte (also Art oder/und Stelle sind leer, bzw. haben den falschen Wert).
Du schreibst, dass du über die Prompts die Werte für PrA und PrS ausgelesen hast. Das kann nicht sein, zumindest nicht in der Feldformel, sonst würdest du den Fehler: Feld: RgPrüfer: Eintrag im Index nicht gefunden, oder der Index ist für die ansicht nicht aufgebeut nicht bekommen, da danach nur noch der @SetField kommt, der dir entweder PrS oder PrA zurückliefert.
So ganz blicke ich bei dir auch nicht mehr durch. Zum einen schreibst du, du erhälst den o.g. Fehler, zum anderen bekommst du den Wert 1 zurückgeliefert.
Versuche doch einfach einmal mit einem Button die Formel aufzulösen, indem händisch die Felder Art und Stelle beschreibst und danach den Button klickst.
Gruß Sascha
-
Gut - Danke für den Ratschlag!
Und nochmals Danke, Sascha, für deine Bemühungen.
Gruss, Esteban