Supprimer les fichiers attachés des mémos sélectionnés
Ce tips à pour objet d'ajouter une action au menu outils dans les vues d'une mailbox pour supprimer d'un coup tous les fichiers attachés des mémos sélectionnés sans avoir donc à ouvrir chaque mémo et supprimer les fichiers attachés.
Créer une action partagée nommé : "Outils\Supprimer les fichiers attachés", choisissez le language Lotuscript et dans l'évènement Click copier/coller le code ci-après.
Vous n'avez plus qu'à insérer l'action partagée dans les vues de votre mailbox.
L'utilisateur pourra alors sélectionner un ensemble de mémo et lancer l'action à partir du bouton Outils.
Vous pouvez en faire une variante pour proposer à l'utilisateur de sauvegarder d'abord les fichiers attachés dans un répertoire de son choix.
Créer une action partagée nommé : "Outils\Supprimer les fichiers attachés", choisissez le language Lotuscript et dans l'évènement Click copier/coller le code ci-après.
- Code : Tout sélectionner
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim view As NotesUIView
Dim docs As NotesDocumentCollection
Dim doc As NotesDocument
Dim rtitem As Variant
Dim askme As Integer
Dim user As NotesName
Dim rtnav As NotesRichTextNavigator
Dim onav As NotesEmbeddedObject
On Error Goto Errors
askme = ws.Prompt (PROMPT_YESNO,"Supprimer les fichiers attachés", "Vous êtes sur le point de supprimer tous les fichiers attachés des documents sélectionnés, voulez-vous vraiment continuer ?")
If askme = 1 Then
Set db = ws.CurrentDatabase.Database
Set view = ws.CurrentView
If Not( db Is Nothing ) Then
Set docs = db.Unprocesseddocuments
If Not( docs Is Nothing ) Then
If( docs.Count > 0 ) Then
Set user = New NotesName(db.Parent.UserName)
Set doc = docs.GetFirstDocument()
While Not( doc Is Nothing )
Set rtitem = doc.GetFirstItem( "Body" )
If Not( rtitem Is Nothing ) Then
If ( rtitem.Type = RICHTEXT ) Then
If( Isarray(rtitem.EmbeddedObjects) ) Then
Set rtnav = rtitem.CreateNavigator
Forall o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then
Set onav = rtnav.GetFirstElement(RTELEM_TYPE_FILEATTACHMENT)
If Not( onav Is Nothing ) Then
Call rtnav.SetPosition(onav)
Call rtitem.BeginInsert(rtnav)
Call rtitem.Appendtext(|[attachement "|+onav.Name+|" supprimé par |+user.Abbreviated+|]|)
Call rtitem.EndInsert()
Call o.Remove()
Call rtitem.Update()
End If
End If
End Forall
Call doc.Save( True, True )
End If
End If
Set rtitem = Nothing
End If
Set doc = docs.GetNextDocument(doc)
Wend
If Not( view Is Nothing ) Then
Call view.DeselectAll()
End If
Call ws.ViewRefresh()
End If
End If
End If
End If
ExitSub:
Exit Sub
Errors:
Dim errmsg As String
errmsg = "(Error #: " & Str(Err) & ") " & Error$
Print errmsg
Resume Next
End Sub
Vous n'avez plus qu'à insérer l'action partagée dans les vues de votre mailbox.
L'utilisateur pourra alors sélectionner un ensemble de mémo et lancer l'action à partir du bouton Outils.
Vous pouvez en faire une variante pour proposer à l'utilisateur de sauvegarder d'abord les fichiers attachés dans un répertoire de son choix.