Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Xantox am 02.02.05 - 08:43:37
-
Schönen Guten Morgen Zusammen,
ich bastle grad an einer Umfrage DB und wollte mal fragen, wie ihr folgendes im Ansatz lösen würdet:
Es ist momentan eine reine Notes-Client Lösung. Ein Notes-User soll die Datenbank per Link öffnen und eine Antwort auf die Umfrage geben.
Jetzt habe ich mir das so vorgestellt, das ich per Agent(?!) in das DB-Profildokument und dort wiederrum in ein Feld alle User eintragen lasse, die eine Umfrage Ordnungsgemäss abgespeichert haben.
Wenn jetzt ein User, der schon gevoted hat, wieder voten möchte (d.h. Maske öffnen oder beim speichern) soll das Profil-Dokument mit dem Feld der schon gewählten Personen abgefragt werden und wenn dies der Fall ist, dann erhält er eine Fehlermeldung und das Dok lässt sich nicht speichern.
Würdet ihr den Weg so gehen?
Wenn nein, habt ihr Tipps wie ich das mit Formelsprache erreichen kann?
Viele Grüße,
Stefan
-
Nein, den Weg würde ich so nicht gehen, weil du dann nämlich mit den Caching Mechanismen der Profildokumente zu kämpfen haben wirst.
Trag doch einfach alle user die gevotet haben in ein verstecktes Feld in deiner Umfrage ein und prüfe beim Speichern ab ob bereits ein Eintrag für diesen Benutzer vorhanden ist.
-
Hallo Thomas,
danke für den Tipp - ich probier das gleich mal aus. Nebenbei bau ich mir noch eine View und frage die schon gewählten User per dblookup dann ab.
Grüße,
Stefan
-
noch cooler ist -IMHO- wenn die Benutzer Autorzugriffsrechte haben, du alle, die voten sollen in ein Autorenfeld schreibst und den jeweiligen Voter aus diesem Feld beim Speichern rausschmeißt. Dann musst du nix mehr prüfen, das macht dann Notes.
-
@thomas
Ja das ist auch eine Möglichkeit, allerdings muss dann bei jeder Umfrage erst einmal der Kreis der berechtigten Benutzer festgelegt werden. Bei 50 MA ja kein Problem. Bei 500 schon eher.
-
Es sind ca. 260 User, die an dieser Umfrage teilnehmen ;-)
Bastle grad an Thomas Schultes Vorschlag und sieht bis jetzt ganz gut aus :-)
-
Hallo Zusammen,
@thomas: dein vorschlag war sehr gut - so habe ich es hinbekommen.
Ich habe jetzt leider noch ein kl. Problem, auf das ich einfach nicht komme. Vielleicht kann mir jemand mit geübten Programmierblick einen Hinweis geben, was an meiner folgenden Formel falsch ist.
Die Formel steckt in einem Button und das Feld "closed" ist ein Textfeld(editable) mit Defaultvalue "0".
FIELD closed := closed;
@If(
@IsNotMember(
@Name([CN];@UserName);
@DbColumn("":"recache"; ""; "config"; 1))
& closed = "0";
@Do(
@SetField("closed"; "1") +
@Command([FileSave]) +
@Command([FileCloseWindow]));
@Prompt(
[Ok];"Warnung";"Sie haben bereits an dieser Umfrage teilgenommen! Die Umfrage wird nun geschlossen und nicht gespeichert ") +
@Command([CloseWindow])
)
Das Dokument wird gespeichert und auch sonst funktioniert die Formel anscheinend, nur leider bekomme ich nach dem Speichern des Dokumentes folgende Fehlermeldung:
"Incorrect Data type for Operator or @Funktion: Text expected"
Für einen Hinweis bin ich sehr dankbar.
-
Hallöchen
was machen die "+" im @do(@setfield()+@command()+...)
-
Bei @Do werden die einzelnen Ausdrücke nicht mit "+", sondern mit ";" getrennt.
Da "+" ein Textoperator ist, kommt da vermutlich auch die Fehlermeldung her.
-
Bei @Do werden die einzelnen Ausdrücke nicht mit "+", sondern mit ";" getrennt.
Da "+" ein Textoperator ist, kommt da vermutlich auch die Fehlermeldung her.
DANKE euch beiden! Genau das war mein Fehler! Jetzt kommt keine Fehlermeldung mehr :)