Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: signo am 29.06.05 - 14:52:08
-
Hi,
ich habe ein kleines Problem. Ich hab mir einen Button gebaut, der mir wunderbar Daten aus einem/mehreren Feldern in ein Feld schreibt bzw. immer wieder anhängt. Das funktioniert auch wunderbar bis auf eine lästige Fehlermeldung beim Speichern.
Falscher Datentyp für Operator oder @Funktion: Zahl erwartet
Ich hoffe die Formel ist nicht zu unübersichtlich, ich kann mir leider nicht erklären woher der Fehler kommt.
Die Felder in die geschrieben wird sind ein berechnetes Textfeld und ein bearbeitbares Textfeld.
Die Daten kommen aus Kombinationsfeldern und aus Optionsschaltflächen. Wenn ihr mehr Info`s benötigt, einfach sagen. Ich bin leider noch nicht Experte auf dem Gebiet =)
Hier noch die Formel
Test:=@Text(E_Storno) + " " + @Text(@Now);
@If(E_Storno!="Nein";FIELD E_Storno_zusammen:=E_Storno_zusammen:Test;
FIELD E_Storno_zusammen:=E_Storno_zusammen:Test);
@If(E_Storno!="Nein";@SetField("E_Eintraege";E_Eintraege + @NewLine + "Erstellt von " + @Name([CN];@UserName) + " am " + @Text(@Now) + @NewLine + "Storno: " + E_Storno + " innerhalb der Widerrufsfrist: " + E_Stornofrist + " (" + E_Stornofrist_ja + E_Stornofrist_nein + ")" + @NewLine + "Gleichzeitige Kündigung des Hauptvertrages: " + E_Kuendigung + @NewLine + "----------------------------"+ @NewLine);
@SetField("E_Eintraege";E_Eintraege + @NewLine + "Erstellt von " + @Name([CN];@UserName) + " am " + @Text(@Now) + @NewLine + "Storno: " + E_Storno + " (" + E_Storno_nein + ") " + @NewLine + "Gleichzeitige Kündigung des Hauptvertrages: " + E_Kuendigung + @NewLine + "----------------------------"+ @NewLine));
Woran kann das liegen ? Und wie bekomm ich die Fehlermeldung weg :P Danke für die Hilfe und sollte ich etwas vergessen haben, dann einfach fragen...
-
Du sagst, die Fehlermeldung kommt beim Speichern ? Dann hängt das nicht unmittelbar mit Deinem Buhtong zusammen, sonst würde die Meldung sofort beim Button-Click passieren.
Springt der Cursor bei der Fehlermeldung in ein Feld ? Wenn nein, gehe mal Deine berechnteen Felder Der Maske durch, die den Typ Zahl haben. Dort wird das Problem wohl eher liegen.
Bernhard
-
Entschuldige bitte, ich hab mich vielleicht falsch ausgedrückt...
Die Fehlermeldung kommt wenn ich auf den Button drücke, also nicht beim Speichern des Dokumentes.
-
Hallo
>> @Text(E_Storno) <<
ist in E_Storno wirklich ein Zahlenwert ??
Dirk
-
Sicherlich nicht, denn
Und @Text ("von Text") ist überflüssig, schadet aber nicht.
Es müsste eines der Felder sein, die gesetzt werden. U.U. steht dort dann eine Eingabevalidierungsformel, in der der eigentliche Fehler steckt. An den Buhtong glaube ich noch nicht so richtig.
Bernhard
-
Das natürlich schwierig den Fehler zu finden :(
Test:=E_Storno + " " + @Today;
@If(E_Storno!="Nein";FIELD E_Storno_zusammen:=E_Storno_zusammen:Test;
FIELD E_Storno_zusammen:=E_Storno_zusammen:Test);
Selbst dann kommt der Fehler, E_Storno_zusammen ist ein bearbeitbares textfeld mit Mehrfachwerten. Und in E_Storno steht halt immer nur ja oder nein...
-
@Today ist ein Datum.
Test:=E_Storno + " " + @Text(@Today);
-
Hatte ich vorher drin, selbe Fehlermeldung ! :( :(
-
Streich mal Feld für Feld Deinen Buttoncode zusammen, bis der Fehler nicht mehr kommt, um das involvierte Feld herauszufinden.
Bernhard
-
Hab ich soweit gemacht, es bleiben nur noch 2 Felder übrig...
E_Storno = Optionsschalfläche, bearbeitbar (Ja/Nein)
E_Storno_zusammen = Text, bearbeitbar
Test:=E_Storno + " " + @Text(@Today);
@If(E_Storno!="Nein";FIELD E_Storno_zusammen:=E_Storno_zusammen:Test;
FIELD E_Storno_zusammen:=E_Storno_zusammen:Test);
Was kann ich denn noch probieren ?
-
Was passiert eigentlich, wenn Du bei im EditMode geöffneter Maske nicht den Button, sondern F9 drückst ? Das Der Fehler im Button-Code liegt, glaube ich jetzt noch weniger als vorher.
Bernhard
-
Wenn ich das mache, passiert gar nix...
Kommt halt nur kurz die Sanduhr, halt kurze Aktualisierung :>
Ich weiss echt nicht mehr weiter :)
-
Hmm,
also wenn ich es richtig in Erinnerung habe (bzw. die Designerhilfe richtig verstehe ;)), dann sind Variablen-Zuweisungen in @if nicht erlaubt:
A True or False statement in @If cannot contain an assignment. The left side of an assignment can occur only at the beginning of an outermost statement in a formula. The following syntax is illegal:
@If(condition; variable := value1; variable := value2)
Somit denke ich, dass das auch für "FIELD blabla:=" gilt. (?)
Weiters:
Except for @commands, the formula language operates on back-end Notes objects. For example, a field named in a formula refers to the field as it exists in storage and the FIELD reserved word modifies a stored field. @Commands operate in the user interface; changes made there are not reflected in the back-end until a document is saved. You cannot intersperse back-end and user interface accesses of the same document and get correct results.
Keine Ahnung, ob das jetzt wirklich der Grund für den Fehler ist, aber spricht was dagagen, mal im @if statt den FIELD-Zuweisungen @Setfield() zu verwenden?
Nur mal so ne Idee.... :)
-
Keine Ahnung, ob das jetzt wirklich der Grund für den Fehler ist
Ist vermutlich ein Volltreffer.
Gleiches gilt übrigens auch für Variablenzuordnung.
_Variable := "Text" klappt meines Wissens nicht in @If's. Hier muss dann mit @Set gearbeitet werden.
-
Ich glaube nicht, dass das ein Volltreffer ist. ERstens steht dieses Zuweisung nicht in der Bedingung, die einen booleschen Wert erwartet, und zweitens funktionierts das zwar nicht in Notes 5 aber in Notes 6
Am besten ist es wohl, du stellst die DB mal hier zur Verfügung. Vielleicht kann sich das dann ja ein nettes Forumsmitglied anschauen.
-
Ok, ich hab Folgendes probiert...
Hab alles ganz in Ruhe getestet und dabei keinen Fehler gefunden. Anschließend hab ich alles wieder zusammengefügt und siehe da ES GEHT :D
Ich habe absolut keine Ahnung wieso bis ich festgestellt habe, dass die @IF Anweisung fehlt (hatte sie testweise entfernt)
Also würde ich auch sagen max.power hat wohl recht gehabt.
Habs nun so
Test:=E_Storno + " " + @Text(@Today);
FIELD E_Storno_zusammen:=E_Storno_zusammen:Test;
Damit hat es dann funktioniert ! Danke an alle die sich die Birne angestrengt haben :D
-
Was wiederum die R6 Designerhilfe bestätigt:
@If(E_Storno!="Nein";FIELD E_Storno_zusammen:=E_Storno_zusammen:Test;
FIELD E_Storno_zusammen:=E_Storno_zusammen:Test);
The following syntax is illegal:
@If(condition; variable := value1; variable := value2)