Autor Thema: Löschen von Dokumenten ohne aktualisieren  (Gelesen 1869 mal)

Offline Gogun_Beokz

  • Junior Mitglied
  • **
  • Beiträge: 83
  • Geschlecht: Männlich
Löschen von Dokumenten ohne aktualisieren
« am: 06.07.06 - 13:41:15 »
Hallo Zusammen,

ich hab im Forum mir schon einige Threads angeschaut aber nichts gefunden was richtig passt. Ich möchte einfach nur das der Benutzer beim drücken der entfernen Taste direkt gefragt wird ob die Dokumente aus der Datenbank gelöscht werden sollen oder nicht. Ohne F9 zu drücken oder die Datenbank zu verlassen, ich habe dazu folgendes geschieben.

Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
   Dim ws As New notesuiworkspace
   Dim uiview As notesuiview
   Dim view As NotesView   
   Dim doccoll As notesdocumentcollection
   Dim db As notesdatabase
   
   Set uiview = ws.CurrentView
   Set view = uiview.View
   
   Set db = source.Database
   Set doccoll = source.documents
   Call doccoll.RemoveAll(True)
   Call ws.ReloadWindow   
End Sub

Hier lösche ich das Dokument direkt, habe zuvor versucht einfach einen view.refresh zu machen oder einen Workspace.reload durchzuführen. Jedoch kommt dann nicht die Abfrage. Also habe ich mir gedacht, lösche ich die Dokumente einfach direkt ohne Abfrage (Skript oben). Man drückt nun entf und schon verschwindet das Dokument... drückt man nun jedoch F9 dann wird man gefragt ob das Dokument aus der Datenbank löschen will. Klickt man auf "nein" ist es trotzdem weg da ichs schon gelöscht habe. Das hat jetzt auch nichts mit dem Hacken "wiederherstellbare Löschungen zulassen" zu tun.

Hat jemand ne Idee?

Offline 0xse

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 507
  • Geschlecht: Männlich
Re: Löschen von Dokumenten ohne aktualisieren
« Antwort #1 am: 06.07.06 - 13:47:30 »
Call notesUIWorkspace.ViewRefresh

Würd ich mal so vorschlagen :)

Oder vor dem Löschen die gelöscht Markierung vom Dokument entfernen.

Offline Gogun_Beokz

  • Junior Mitglied
  • **
  • Beiträge: 83
  • Geschlecht: Männlich
Re: Löschen von Dokumenten ohne aktualisieren
« Antwort #2 am: 06.07.06 - 14:26:19 »
Danke,

also das mit dem ws.viewrefresh habe ich ausprobiert wollte aber nicht funktionieren. Die andere Idee ist gut aber funktioniert bei mir nicht vielleicht habe ich aber auch irgentwas falsch gemacht:

Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
   
   Dim ws As New notesuiworkspace
   Dim uiview As notesuiview
   Dim view As NotesView   
   Dim doccoll As notesdocumentcollection
   Dim db As notesdatabase
   
   Set uiview = ws.CurrentView
   Set view = uiview.View
   
   Set db = source.Database
   Set doccoll = source.documents
   
   Call uiview.DeselectAll   
   Call doccoll.RemoveAll(True)
   Call ws.ReloadWindow   

End Sub

Offline 0xse

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 507
  • Geschlecht: Männlich
Re: Löschen von Dokumenten ohne aktualisieren
« Antwort #3 am: 06.07.06 - 15:01:20 »
Probier es mal mit ws.ViewRefresh nach dem Löschen :)

Offline Gogun_Beokz

  • Junior Mitglied
  • **
  • Beiträge: 83
  • Geschlecht: Männlich
Re: Löschen von Dokumenten ohne aktualisieren
« Antwort #4 am: 06.07.06 - 16:06:57 »
ne macht keinen Unterschied... ist mir nicht ganz klar was das ViewRefresh so macht nach meiner Erfahrung...

Garnichts!

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Löschen von Dokumenten ohne aktualisieren
« Antwort #5 am: 06.07.06 - 16:35:02 »
Eine mögliche Lösung wäre folgendes.

Füge eine Aktion in deine Ansicht ein, die dir die Dokumente aus der DB löscht.
Du kannst das auch als gemeinsame Aktion machen, wenn du die Aktion in mehreren Ansichten brauchst.
 
Der Code könnte ganz grob so aussehen:

Dim ws As New notesuiworkspace
Dim doccoll As notesdocumentcollection
Dim db As notesdatabase
   
Set db = source.Database
Set doccoll = dbUnprocessedDocuments

If MessageBox("Wollen Sie wirklich löschen", 36, "Löschen") = 6 Then
    Call doccoll.RemoveAll(True)
End If


Im QueryDocumentDelete zeigst du dem User einen Hinweis an, das er bitteschön über die Aktion löschen soll.

Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)

  Messagebox "Zum Löschen von Dokumenten benutzen Sie bitte die Aktion 'Löschen'" _
      & Chr$(10) & "aus der Symbolleiste oder unter dem Menü Aktionen." , 64, "Löschen"         
  Continue = False
   
End Sub


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz