Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: 2Consultants am 14.11.02 - 11:59:13

Titel: In einer Ansicht das Löschen von Dokumente verhindern
Beitrag von: 2Consultants am 14.11.02 - 11:59:13
Hallo Leute,
ich möchte in einer Ansicht verhindern das die dort zu sehenden Dokumente gelöscht werden können (in einer anderen muß es aber wieder möglich sein).
Ich weiß es gibt da ein kleines Script, ich hatte es auch schon mal.... ::)
Wer hat das parat? Das wäre sehr nett! ;D

Gruß Christian
Titel: Re:In einer Ansicht das Löschen von Dokumente verhindern
Beitrag von: Rob Green am 14.11.02 - 12:15:58
dazu ist das Datenbank Script "QueryDocumentDelete" zuständig. Das Event gibt es in der View nicht.

Daher mußt Du vorher checken, in welchem View der User steckt, um ein Doc zu löschen.

Das geht über
Set notesUIView = notesUIWorkspace.CurrentView

Wenn es dann ein View sein soll, der Löschen nicht zuläßt, schreibst Du

Dim workspace As New NotesUIWorkspace
Dim view As NotesUIView
Set view = workspace.CurrentView
if view.ViewName="NaNaNaNaaa" Then
continue = false
End if
Titel: Re:In einer Ansicht das Löschen von Dokumente verhindern
Beitrag von: 2Consultants am 15.11.02 - 08:27:26
Joh, das wars! Ich hatte immer noch im Kopf das das auch in einem Ansichtevent realisierbar wäre. Aber so ist auch OK!
Titel: Re: In einer Ansicht das Löschen von Dokumente verhindern
Beitrag von: Schnubbel am 09.12.10 - 12:03:43
Habe dank Suche das Thema gefunden... war auch genau, das was ich gesucht habe. Ich habe einen 6.5 er Client und habe folgendes Script ins beschriebene Script eingefügt:

Code
Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
	On Error Goto Fehlermeldung
	
	Dim i As Integer
	
	Dim workspace As New NotesUIWorkspace
	Dim view As NotesUIView
	Set view = workspace.CurrentView
	
	If view.ViewName= "Vertagsdokumente"Then
		continue = False
	End If
	
	Exit Sub ' Wichtig, sonst gibt es immer ne Fehlermeldung mit Zeile 0 etc.
	
Fehlermeldung:
	
	Msgbox "Fehler " + Cstr(Err) + ": " + Error() + " in Zeile " + Cstr(Erl) + "aufgetreten"
	
	Exit Sub 
	
End Sub

Leider funktioniert das aber nicht, hat sich da evtl. was in der Zwischenzeit getan ?

Schonmal schönen Dank
Der Schnubbel  :)
Titel: Re: In einer Ansicht das Löschen von Dokumente verhindern
Beitrag von: Axel am 09.12.10 - 12:25:29
Der Thread ist uralt. Warum erstellst du keinen neuen und verlinkst dann aus den alten. Außerdem befindet sich der Thread im 5er-Forum und du nutzt aber 6.5.

Was mir auf Anhieb aufgefallen ist, ist vermutlich ein Schreibfehler:

...
If view.ViewName= "Vertagsdokumente"Then
...

Müsste das nicht Vertragsdokumente heißen?


Getan hat sich in der Zwischenzeit da nichts.

Axel
Titel: Re: In einer Ansicht das Löschen von Dokumente verhindern
Beitrag von: Schnubbel am 09.12.10 - 12:31:55
Öhmm.. dachte es wäre besser.. hierauf zu antworten...

Ja, das war ein Rechtschreibfehler.. aber geht trotzdem nicht. Fällt dir nochwas auf?

Ich bin leider relativ neu im Geschäft was Lotus Script angeht... ich habe als Test eine Msgbox in das Event geschrieben und dann ein Dokument gelöscht.. die wird mir aber auch nicht angezeigt... keine Ahnung ob das so gewollt ist :)
Titel: Re: In einer Ansicht das Löschen von Dokumente verhindern
Beitrag von: Axel am 09.12.10 - 12:46:19
Hast du die Datenbank nach der Änderung auch mal geschlossen und wieder geöffnet. Notes ist nämlich groß in Cachen.

Axel
Titel: Re: In einer Ansicht das Löschen von Dokumente verhindern
Beitrag von: Schnubbel am 09.12.10 - 13:01:24
Ja, darin hab ich auch gedacht. Ich hab den Desiger geschlossen,meinen Cache gelöscht (also die cache.ndk) und dann meinen Client geschlossen. Aber nichts passiert :(
Titel: Re: In einer Ansicht das Löschen von Dokumente verhindern
Beitrag von: Peter Klett am 09.12.10 - 13:16:09
Ich würde das nicht von einer Ansicht abhängig machen, sondern immer den Inhalt der Dokumente überprüfen. In NotesUIDatabase gibt es die Documents, das sind alle relevanten Dokumente (z.B. die zum Löschen markierten).

Ansonsten baut sich jemand eine private Ansicht oder einen privaten Ordner und löscht die Dokumente von dort. Oder der Name der Ansicht wird in einem späteren Update geändert bzw. es kommen neue Ansichten dazu, dann denkt niemand daran, das QueryDocumentDelete zu ändern.
Titel: Re: In einer Ansicht das Löschen von Dokumente verhindern
Beitrag von: Schnubbel am 09.12.10 - 13:45:55
Danke Peter und Axel. Nach verzweifelten Cache-Löschen, Client restarten etc. pp. funktioniert es nun. Deinen Einwand Peter werde ich mit in meine Lösung einbeziehen.  8)