Domino 9 und frühere Versionen > ND8: Entwicklung
User erlauben nur ein Dokument in einer DB zu erstellen
werner16:
Hallo,
wir wollen für eine kurze Mitarbeiterbefragung eine kleine Datenbank einrichten,
in der die MA in einer Maske kurz ein paar Fragen beantworten sollen.
Wie kann ich gewährleisten, dass jeder MA nur einmal an der Umfrage teilnimmt?
Gibt es eine Möglichkeit abzufragen wenn der User ein neues Dokument erstellt
ob von ihm bereits eines vorhanden ist?
Oder generell wenn er die Datenbank öffnet?
Die DB ist so, das der User beim öffnen der DB einen Navigator und eine Startmaske
zu sehen bekommt, auf der auf einen Button 'Teilnehmen' klickt.
Jetzt soll er dies eben nur einmal können!
Gruß,
Werner
klaussal:
Vor dem Speichern (im Querysave) abfragen, ob der User schon ein Doc angelegt hat.
--- Code: --- '---- schon gewählt ?
Set view = db.GetView( "(.werhatschon)" )
Set docSearch = view.GetFirstDocument
While Not ( docSearch Is Nothing )
If docSearch.name(0) = doc.name(0) Then
Msgbox "Schon gewählt !"
continue = False
Exit Sub
End If
Set docSearch= view.GetNextDocument( docSearch )
Wend
--- Ende Code ---
udo187:
Hallo !
Eine Möglichkeit in aller Kürze: Alle Befragungsdokumente werden zuvor erstellt, Status "Neu", kann auch ein Abgleich mit einer bestehenden Mitarbeiterdatenbank erfolgen.
Wenn der User das Dokument bearbeitet, z.B. Button "einreichen" -> Statusänderung auf "eingereicht", kein ändern mehr möglich (ev. Autorenfeld ausleeren).
Damit jeder User sein Dokument bekommt, wird der Username benötigt. Leserfelder sind bei einer Mitarbeiterbefragung wahrscheinlich auch sinnvoll.
Gruss
Udo
pram:
Vorweg: Ein 100%iger Schutz ist (in Notes) nur sehr schwierig umzusetzen. Insbesondere wenn Repliken beteiligt sind.
Ich würde eine Lookup-Ansicht machen, in der man den Usernamen nachschlagen kann und im QueryOpen der Maske eben nachsehen, ob gerade versucht wird, ein neues Dokument zu erzeugen und ob es schon ein Dokument für den Benutzer gibt.
Man kann die Logik auch in den Button rein programmieren, der in der Ansicht nachsieht, ob schon teilgenommen wurde und ggf. dieses Dokument wieder öffnet.
(Enfacher geht es evtl noch mit Userprofilen, diese kann man aber nicht in einer Ansicht darstellen)
Bedenke: Namen können sich ändern (Heirat) und man kann dann 2x teilnehmen
Gruß
Roland
werner16:
Hallo,
ersmal vielen Dank für die Antworten.
@klauss:
Versuche mich gerade an Deinem Script für das Querysave, bekomme
da leider nur die Fehlermeldung 'Variant does not contain an object'
wenn ich das Dokument speicher!?!
Gruß,
Werner
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln