Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: werner16 am 20.11.13 - 09:20:19

Titel: User erlauben nur ein Dokument in einer DB zu erstellen
Beitrag von: werner16 am 20.11.13 - 09:20:19
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
Titel: Re: User erlauben nur ein Dokument in einer DB zu erstellen
Beitrag von: klaussal am 20.11.13 - 09:29:40
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
Titel: Re: User erlauben nur ein Dokument in einer DB zu erstellen
Beitrag von: udo187 am 20.11.13 - 09:32:23
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
Titel: Re: User erlauben nur ein Dokument in einer DB zu erstellen
Beitrag von: pram am 20.11.13 - 09:32:55
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
Titel: Re: User erlauben nur ein Dokument in einer DB zu erstellen
Beitrag von: werner16 am 20.11.13 - 10:07:07
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

Titel: Re: User erlauben nur ein Dokument in einer DB zu erstellen
Beitrag von: klaussal am 20.11.13 - 10:12:19
Ich kenne dein Script nicht. Alle Dims und sets gesetzt ? Was sagt der Debugger ?
Titel: Re: User erlauben nur ein Dokument in einer DB zu erstellen
Beitrag von: werner16 am 20.11.13 - 10:18:57
Hallo klauss,

ich habe nur das von Dir gepostet Script bei der Maske im Objekt 'Querysave'
eingefügt (das war ja leer) und in der Zeile:

Set view = db.GetView( "(.werhatschon)" )

meine Ansicht hinterlegt, also

Set view = db.GetView( "(Ergebnis)" )

eingetragen.

Gruß,
Werner
Titel: Re: User erlauben nur ein Dokument in einer DB zu erstellen
Beitrag von: klaussal am 20.11.13 - 10:26:37
Das reicht nicht !

Es fehlen bestimmt alle set-Anweisungen und alle Dim's......
Titel: Re: User erlauben nur ein Dokument in einer DB zu erstellen
Beitrag von: werner16 am 20.11.13 - 10:39:30
Hi,

da merke ich, dass ich seit knapp 5 Monaten nichts mehr in Notes programmiert habe!  :(

Gruß,
Werner
Titel: Re: User erlauben nur ein Dokument in einer DB zu erstellen
Beitrag von: umi am 20.11.13 - 13:50:38
Moin

Evtl. einfach als Profildokument? Beim speichern das Autorenfeld anpassen, dann kann der User das nicht mehr bearbeiten.