Autor Thema: Querydocumentdelete  (Gelesen 1902 mal)

Offline pl001

  • Aktives Mitglied
  • ***
  • Beiträge: 170
Querydocumentdelete
« am: 24.03.05 - 13:43:27 »
Hallo,

ich möchte, dass in meiner Datenbank Dokumente in allen Ansichten und Ordnern nach dem drücken der ENTF-Taste und eine Bestätigung sofort gelöscht werden.

Ich habe zwar schon einige Lösungsansätze hier im Forum gefunden, doch da ich mich mit LS bisher noch nicht auskenne, komme ich mit probieren nicht wirklich weiter.

Viele Grüsse

Peter

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: Querydocumentdelete
« Antwort #1 am: 24.03.05 - 13:57:54 »
Code
antwort = Msgbox("Sollen wirklich alle markierten Dokumente gelöscht werden?", 292, "Frage")
If antwort <> 6 Then
   continue = False
   Exit Sub
End If

Dim dc As Notesdocumentcollection
Set dc = Source.Documents
Call dc.RemoveAll(True)
Gruß
Dirk

Offline pl001

  • Aktives Mitglied
  • ***
  • Beiträge: 170
Re: Querydocumentdelete
« Antwort #2 am: 24.03.05 - 14:55:48 »
Danke,

aber wie würde dann "Call dc.RemoveAll(True)" ausehen?

Gruß
Peter

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: Querydocumentdelete
« Antwort #3 am: 24.03.05 - 15:02:59 »
die Msgbox ist die Abfrage, wird die nicht mit "Ja" beantwortet wird das Script unterbrochen.

In dc stehen alle markierten Dokument und ein "Call dc.RemoveAll(True)" löschte diese Dokumente.

Call dc.RemoveAll(True) ... löscht schon alles
Gruß
Dirk

Offline pl001

  • Aktives Mitglied
  • ***
  • Beiträge: 170
Re: Querydocumentdelete
« Antwort #4 am: 24.03.05 - 15:06:37 »
Ok, habe ich jetzt verstanden, nur leider werden die Dokumente nur mit dem Papierkorb markiert. Wie kann man die ausgewählten Dokumente gleich löschen?

Gruß
Peter

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: Querydocumentdelete
« Antwort #5 am: 24.03.05 - 15:12:06 »
Du könntest noch ein
Code
dim ws as new NotesUIWorkSpace
ws.ViewRefresh
daranhängen.
Gruß
Dirk

Offline pl001

  • Aktives Mitglied
  • ***
  • Beiträge: 170
Re: Querydocumentdelete
« Antwort #6 am: 24.03.05 - 15:16:05 »
Danke, nur leider fragt er nach dem Schliessen der DB jetzt nocheinmal noch, ob die Dokumente gelöscht werden sollen, obwohl sie ja bereits gelöscht wurden.

Gruß
Peter

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: Querydocumentdelete
« Antwort #7 am: 24.03.05 - 15:21:14 »
dann bleibt nur eine Schlaife über alle Dokumente und ein "Call doc.Remove(True)" . Allerdings musst Du diese Zeile bei Notes 6.x dann durch "Call doc.RemovePermanently(True)" ersetzen.
Gruß
Dirk

Offline pl001

  • Aktives Mitglied
  • ***
  • Beiträge: 170
Re: Querydocumentdelete
« Antwort #8 am: 24.03.05 - 15:36:41 »
Hmm, wie schon gesagt, kenne ich mich mit LS nicht aus.
Über ein Beispielscript wäre ich sehr dankbar.


Gruß
Peter

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: Querydocumentdelete
« Antwort #9 am: 24.03.05 - 15:53:29 »
Code
antwort = Msgbox("Sollen wirklich alle markierten Dokumente gelöscht werden?", 292, "Frage")
If antwort <> 6 Then
   continue = False
   Exit Sub
End If

Dim dc As Notesdocumentcollection
Set dc = Source.Documents
dim doc as NotesDocument
dim doc_temp as NotesDocument
set doc = dc.getFirstDocument

while Not doc is Nothing
  set doc_temp = dc.GetNextDocument(doc)
  Call doc.Remove(True)
  set doc = doc_temp
wend
ist aber langsamer als dc.RemoveAll(True)
Gruß
Dirk

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Querydocumentdelete
« Antwort #10 am: 24.03.05 - 19:25:33 »
Was hier unbedingt noch rein sollte ist ein ErrorHandling.

Außerdem würde ich auch nicht über NotesDocumentCollection gehen, sondern auch wie oben schon gezeigt die einzelnen Docs in einer Schleife abarbeiten.

Warum?
Du kannst mit einem Counter arbeiten und über ein ErrorHandling sauber abfangen, wenn z.B. ein User 5 Dokumente zum löschen ausgewählt hat, aber nur z.B. bei 3 Dokumenten löschen darf, und bei den anderen 2 Dokumenten nur Leser ist.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz