Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Silver am 13.08.04 - 09:11:44
-
Hallo!
Habe mal wieder zwei Probleme:
1. Wie kann ich eine Aktion in der Schaltflächenleiste verbergen wenn zwei Situationen eintreten. Habe es wie folgt versucht:
@If(status = "0");
@If(rücklauf = "ja";
So greift aber nur die zweite Zeile. Wenn Status 0 ist, erscheint trotzdem die Aktion. Will dass die Aktion bei beiden Bedingungen ausgeblendet wird.
2. Ich will durch eine Aktion über eine Ansicht den Wert eines Feldes (des ausgewählten Datensatzes) ändern und eine Abfrage erscheinen lassen. Bsp. Soll das Dokument ins Archiv verschoben werden? Bei ja, soll der Wert des Feldes "Status" auf 2 gesetzt werden. Bein nein passiert nichts.
Hoffe mir kann jemand helfen.
-
Also wenn du die Aktion verbergen willst, wenn beide Bedingungen alternativ eintreten, dann muß das wohl so aussehen:
@If(status = "0") | @If(rücklauf = "ja");
Gruß
LuckyMan
-
Danke, dass funzt schon mal.
Zu meinem zweiten Prob... muss ich das irgendwie über @prompt lösen??? ???
-
Mit Prompt wäre es machbar.
auswahl := @Prompt([YesNo]; "Archivieren ?"; "Bla Bla, willst Du wirklich ?".);
@If(auswahl=1; Archivieren; NixTun)
-
Danke, da bekomme ich aber leider die Fehlermeldung, dass := nur am Anfang eines Ausdrucks stehen darf. Ich hab diese Formel schon als Bestandteil einer weiteren Formel. Es befinden sich also vorher schon Befehle in der Aktion.
-
Dann probiers mal mit
If(@Prompt([YesNo]; "Archivieren ?"; "Bla Bla, willst Du wirklich ?".) = 1 ; Archivieren ; NixTun)
-
Hab jetzt diese Formel:
temp := "2"
@If(status = "1" & rücklauf = "ja";
@If(@Prompt([YESNO];"Erledigt?";"Möchten Sie dieses Dokument unwiderruflich ins Archiv verschieben?");
@Command(status = temp; [FileSave]);@Return(0));"")
Also bei Klick auf OK muss das Feld status auf 2 gesetz werden. Ich bekomme dann aber die Fehlermeldung, dass ein falscher Datentyp für Operator oder @Funktion erwartet. Woran liegt das? Sieht doch OK aus, oder?
-
Irgendwie sind da nen paar Fehler in der Formel.
Versuchs mal so :
temp := "2";
@If(status = "1" & rücklauf = "ja";
@If(@Prompt([YESNO];"Erledigt?";"Möchten Sie dieses Dokument unwiderruflich ins Archiv verschieben?")=1;
@Do(@SetField("status"; temp); @Command([FileSave]));"";"")
Und mal die Frage, was Du damit bezwecken wolltest ?
@Command(status = temp; [FileSave])
-
Bin jetzt bei folgender Formel:
temp := "2"
@If(status = "1" & rücklauf = "ja";
@If(@Prompt([YESNO];"Erledigt?";"Möchten Sie dieses Dokument unwiderruflich ins Archiv verschieben?")=1;
@Do(@SetField("status" ; temp); @Command([FileSave]));"");"")
Das Feld wird auch auf 2 gesetzt -> wird aus Ansicht gelöscht. Dennoch noch eine Fehlermeldung, dass Befehl nicht ausgeführt werden kann. An was stört sich da Notes?
-
... Dokument nicht im "Editier"-Modus ?
-
In der ersten Zeile fehlt schon wieder das ";". Ich hoffe mal, daß ist nen Abtippfehler ? ;)
-
Also, wie geschrieben... Felder werden richtig gesetzt. Dokument gespeichert - aber trotzdem Fehlermeldung, dass Befehl nicht ausgeführt werden kann??? :-[
Wie kann ich das Dokument anweisen bearbeitbar zu sein?
-
Zum Beispiel so:
@Command( [EditDocument]; "1" )
Als kleiner Hinweis möchte ich dir die Designer-Hilfe ans Herz legen...ist nicht böse gemeint.
Gruß
LuckyMan
-
Sorry, dass ich nochma stören muss... aber ich bekomme immer noch die Fehlermeldung, dass ausgewählter Befehl nicht ausgeführt werden kann... ich habe jetzt folgende Formel die soweit auch funzt - Dokument kann auch bearbeitet werden:
@SetTargetFrame("main");
@If(Form!="NewDocument";@Prompt([OK];"Falsch markiert";"Bitte wählen Sie ein Dokument, das Sie als erledigt kennzeichnen möchten. Danke!");"");
@If(rücklauf = "nein";@Prompt([OK];"Fehler";"Dieses Dokument wurde noch nicht als zurück gemeldet!");"");
@If(status = "1" & rücklauf = "ja";
@If(@Prompt([YESNO];"Erledigt?";"Möchten Sie dieses Dokument unwiderruflich ins Archiv verschieben?")=1;
@Do(@SetField("status" ; "2");
@SetField("erledigt" ; @Now);
@SetField("erledigt_von" ; @Name([CN];@UserName));
@Command([FileSave]));@Return(0));@Return(0))
Ich habe auch keine Formel beim schliessen des Documents o. ä. Werde nicht schlau aus der Fehlermeldung. Kann ich diese auch durch einen Befehl unterdrücken?
-
Habs rausbekommen
musste nach letzten Befehl bei OK noch @Return(0) einfügen. Dann war die Fehlermeldung weg.
Vielen, herzlichen dank nochmal!!! :-*
-
Aaah, ich war wohl zu blind ! Ich war davon ausgegangen, daß die Aktion aus einem Dokument heraus ausgelöst wird.
Du hast das Dokument gar nicht geöffnet, oder ? In dem Fall funktioniert das @Command([FileSave]) nicht und löst dann vermutlich die Fehlermeldung aus.
-
Das ist es Driri.
Ich habs auch grad ausprobiert. Ohne das FileSave funktioniert es einwandfrei.
Was das allerdings mit dem @Return(0) zu tun hat, ist mit schleierhaft...
-
Das mit dem Return(0) hab ich eh nicht verstanden. An der Stelle hätte auch ein "" gereicht ;)
-
Moment Silver!!!
Wo hast du denn das @Return(0) eingebaut ?
Wenn es nach dem letzten OK steht,
also statt dem "" bei der Zeile
@If(rücklauf = "nein";@Prompt([OK];"Fehler";"Dieses Dokument wurde noch nicht als zurück gemeldet!");""),
ist klar, daß keine Fehlermeldung mehr kommt. Die Aktion wird dann nämlich abgebrochen wenn im Feld rücklauf nicht "nein" steht.
Dein ganzer Code läuft dann auch falsch...
-
Das ist übrigens auch der Unterschied Ingo...
@Return(0) bricht die ganze Aktion ab.
"" macht nix.
-
Das ist übrigens auch der Unterschied Ingo...
@Return(0) bricht die ganze Aktion ab.
"" macht nix.
Das weiß ich wohl, ich meinte auch nur, daß das Return(0) da unten IMO keinen Sinn mehr macht, da ja keine weiteren Befehle kommen.
Aber woher weißt Du, daß ich Ingo heiße ?
-
Gutes Gedächtnis.... ;D
Früher hast du öfter mit Ingo unterschrieben. Wie andere User (Eknori, Koehlerbv, Semeaphoros, TMC, Hoshee, ...) heißen ist ja auch bekannt.