Autor Thema: Neue Dokumente lassen sich nicht löschen  (Gelesen 1934 mal)

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Neue Dokumente lassen sich nicht löschen
« am: 30.12.08 - 08:38:55 »
Hallo liebes Forum,

kurz vor Jahresende komm ich nochmal mit einem Verständnisproblem, bei dem ihr mir sicher helfen könnt. Vorab möchte ich es aber nicht versäumen, Euch allen für die vielfältige Hilfe im vergangenen Jahr zu danken. Ohne Euch sähe die Lotus Script Welt bei mir viel grauer aus, als sie eh schon ist   ;) Ich wünsche Euch allen einen guten Rutsch nach 2009, wir werden uns sicherlich wiedersehen  :D

Nun meine Frage:

Ich habe einfache Dokumente, die die Anwender erstellen können, und die zum Schluß mit den Formelbefehlen

Code
@Command([FileSave]);
@Command([FileCloseWindow])

gespeichert werden.

Da ich in der Datenbank das Löschen der Dokumente mit der Entf. Taste unterbunden habe, habe ich in einer Ansicht einen Button zum Dokumente löschen, der wie folgt funktioniert:


Code
Sub Initialize
	Dim session As New NotesSession
	Dim db As Notesdatabase
	Dim collMarked As NotesDocumentCollection
	Dim docToChange As NotesDocument
	Dim docTemp As NotesDocument
	
	Dim nuiw As New NotesUIWorkspace
	
'Hol die aktuelle Datenbank
	Set db=session.CurrentDatabase
'Hol die markierten Dokumente
	Set collMarked = db.UnprocessedDocuments
'Hol das erste der Markierten Dokumente
	Set docToChange = collMarked.GetFirstDocument
	
'Schleife um die markierten Dokumente der Reihe nach zu löschen	
	While Not (docToChange Is Nothing)
		
' Das nächste zu löschende Dokument wird schonmal rausgesucht		
		Set docTemp = collMarked.GetNextDocument (docToChange)
		
'Das aktuell markierte Dokument wird gelöscht		
		Call docToChange.Remove( True)
		
'Das schon rausgesuchte,  nächste Dokument wird zum aktuellen Dokument		
		Set docToChange = docTemp
	Wend
	
	Call nuiw.ViewRebuild

End Sub

Das Löschen funktioniert soweit eigentlich ganz OK. Nur ist mir letzthin aufgefallen, dass es bei neu angelegten Dokumenten, die ich gleich wieder löschen will, eben nicht funktioniert. Geh ich aus der Ansicht raus und wieder rein, dann klappt es wieder.

Woran kann das liegen?

 :-:


« Letzte Änderung: 30.12.08 - 13:34:10 von iukhdh »
Thomas von der IuK

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Neue Dokumente lassen sich nicht löschen
« Antwort #1 am: 30.12.08 - 08:48:10 »
Morgähn!

Vermutlich daran, dass der View-Index noch nicht aktualisiert wurde. Hier könnte ein ViewRebuild nach dem Speichern ev. helfen.
Sprich Dich aber diesbezüglich mit Deinem Admin ab, da dieser Befehl doch einiges an Ressourcen am Server bindet.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Driri

  • Gast
Re: Neue Dokumente lassen sich nicht löschen
« Antwort #2 am: 30.12.08 - 09:10:21 »
Noch ein kleiner Tipp. Die Zeilen hier, kann man durch eine einzige ersetzen :

Zitat
'Hol das erste der Markierten Dokumente
   Set docToChange = collMarked.GetFirstDocument
   
'Schleife um die markierten Dokumente der Reihe nach zu löschen   
   While Not (docToChange Is Nothing)
      
' Das nächste zu löschende Dokument wird schonmal rausgesucht      
      Set docTemp = collMarked.GetNextDocument (docToChange)
      
'Das aktuell markierte Dokument wird gelöscht      
      Call docToChange.Remove( True)
      
'Das schon rausgesuchte,  nächste Dokument wird zum aktuellen Dokument      
      Set docToChange = docTemp
   Wend

Und zwar einfach so :

Zitat
Call collMarked.RemoveAll(True)

Allerdings solltest Du dann auf eine leere Collection abfragen. Macht dann wieder 2 Zeilen mehr, ist aber immer noch kürzer  ;)

Zitat
If collMarked.Count > 0 Then
   Call collMarked.RemoveAll(True)
End If
« Letzte Änderung: 30.12.08 - 09:11:54 von Driri »

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Neue Dokumente lassen sich nicht löschen
« Antwort #3 am: 30.12.08 - 09:21:11 »
@martin
d.h., wenn ich einfach mal ne Stunde oder so warte, und dann versuche die Dokumente zu löschen (ohne vorher die Ansicht zu wechseln) müsste es dann ja wohl klappen. (Je nachdem, wieoft der View-Index aktualisiert wird)

@Driri
Danke für den Tipp. Der umständliche Code liegt daran, dass ich zwischendrin noch Abfragen hatte, die ggf. ein Löschen noch verhindern, falls bestimmte Werte gesetzt sind. Das hab ich aber inzwischen anders gelöst und rausgelöscht. Übrig blieb dieses Gerüst, welches ich nun natürlich so ändern kann (und werde) wie du vorgeschlagen hast.
Thomas von der IuK

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Neue Dokumente lassen sich nicht löschen
« Antwort #4 am: 30.12.08 - 10:46:54 »
@martin
d.h., wenn ich einfach mal ne Stunde oder so warte, und dann versuche die Dokumente zu löschen (ohne vorher die Ansicht zu wechseln) müsste es dann ja wohl klappen. (Je nachdem, wieoft der View-Index aktualisiert wird.
IMHO auch mit Ansichtswechsel, aber prinzipiell ja.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz