Domino 9 und frühere Versionen > ND7: Entwicklung

Agenten aufrufen

<< < (4/4)

klaussal:
Mal so als Anregung:


--- Code: ---This view action deselects all documents in the current view.


Sub Click(Source As Button)
  Dim ws As New NotesUIWorkspace
  Dim uiview As NotesUIView
  Set uiview = ws.CurrentView
  Call uiview.DeselectAll
End Sub
--- Ende Code ---

koehlerbv:
Wenn Du jetzt noch eine sinnvolle Begründung liefern würdest, warum Du das in einem Agent haben möchtest ... Bis dahin lohnt es sich unsererseits eher weniger, sich mit dem Problem zu beschäftigen.

Bernhard

Dubidu:

--- Zitat von: klauss am 01.04.08 - 15:57:17 ---Mal so als Anregung:


--- Code: ---This view action deselects all documents in the current view.


Sub Click(Source As Button)
  Dim ws As New NotesUIWorkspace
  Dim uiview As NotesUIView
  Set uiview = ws.CurrentView
  Call uiview.DeselectAll
End Sub
--- Ende Code ---

--- Ende Zitat ---

Hi klauss,
soweit ich weiss gibt es einen Unterschied zwischen dem Deselectieren der Häckchen (was obiges macht) und dem rückgängig machen der zum löschen markierten Dokumenten.

@Bernhard:
Bei einer Funktion komme ich ja um das Continue-Problem auch nicht herum.

Seltsamerweise funktioniert auch nicht der Code, wenn ich ihn in eine Library kopiere:


--- Code: ---Function deleteSelected()
On Error Goto EH

Dim continue As  Variant
Dim nuiw As New NotesUIWorkspace
Dim yes_Cancel As Integer
Dim uiview As NotesUIView

Set uiview = nuiw.CurrentView
'Msgbox lsf.CurrentDB.AllUnprocessedDataRecords.lSize
If uiview.ViewName = "Papierkorb" Or uiview.ViewName = "MitarbeiterListe"Then

yes_Cancel = Messagebox("Achtung! Dies löscht unwiederruflich die Daten!", 3 + 48, "ACHTUNG!")

If yes_Cancel = 6 Then 'Ja

'Dim nuiw As New NotesUIWorkspace

Dim ns As New NotesSession
Dim db As NotesDatabase
Set db = ns.CurrentDatabase

Dim dc As NotesDocumentCollection

Dim nextdoc As NotesDocument
Dim doc As NotesDocument

Set dc = db.UnprocessedDocuments ' Markierte View-Einträge! :-)
Set doc = dc.GetFirstDocument

Do While Not (doc Is Nothing)
Set nextdoc = dc.GetNextDocument(doc)
Call doc.RemovePermanently(True)
Set doc = nextdoc
Loop

Call nuiw.ViewRefresh

%REM
Dim itUnprocessed As GISNCIterator
Dim dr As GISNotesDataRecord

Set itUnprocessed = lsf.CurrentDB.AllUnprocessedDataRecords
While itUnprocessed.hasNextElement
Set dr = itUnprocessed.nextElement
Call dr.nd.Remove(True)

Wend
%END REM
Else
Continue = False
End If
Call nuiw.ViewRefresh
End If
PE: Exit Function
EH: Call raiseError("", Err, Error$, Erl)
End Function
--- Ende Code ---

Die Abfrage wird zwar ausgeführt, aber die Dokumente werden nicht gelöscht, wenn man auf "Ja" klickt. Es tut sich nichts. Es kommt nicht mal eine Fehlermeldung. Die Löschmarkierung wird jedoch vorgenommen (was ja ok ist).

Liebe Grüße
Giordano

Axel:
Im Moment stehe ich etwas auf dem Schlauch. Was ist denn aus deinem Agenten geworden?
Oder ist die Funktion der Ersatz für den Agenten?

Wo und wie rufst du denn die Funktion auf? Zeig' mal ein bisschen Code.

Also ganz grob würde ich das so lösen:


--- Code: ---Sub QueryDocumentDelete(Source As NotesUIDatabase, Continue As Boolean)

  Dim collection As NotesDocumentCollection
  Dim doc As NotesDocument
  Dim tmpdoc As NotesDocument

  Set collection = Source.Documents   'Alle markierten Dokumente
  If collection.Count = 0 Then Exit Sub

  If Messagebox("Achtung! Dies löscht unwiederruflich die Daten!", 3 + 48, "ACHTUNG!") = 6 Then
    Set doc = dc.GetFirstDocument

    While Not (doc Is Nothing)
      Set tmpdoc = collection.GetNextDocument(doc)
      Call doc.Remove(True)
      Set doc = tmpdoc
    Wend

  End If

End Sub

--- Ende Code ---

Axel
 

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln