Insertion de plusieurs fichiers de meme nom ds un document
Probleme:
En enregistrant dans un document plusieurs fichiers de meme nom, mais de répertoires differents. Lotus change le nom des fichiers.
Pour compliquer les choses, il y a aussi des fichiers de noms differents.
Le probleme est de récuperer les noms véritables des fichiers.
S'il y a 10 fichiers du meme nom, c'est facile.
S'il y a 5 fichiers de nom X, et 5 autres de nom Y, c'est impossible, sauf à utiliser ce code.
Le code est utilisable à partir de Lotus Notes 6.5. Il est à utiliser dans un action de masque. Il est facilement adaptable en java, mais pas avec les formules ou les API C.
En enregistrant dans un document plusieurs fichiers de meme nom, mais de répertoires differents. Lotus change le nom des fichiers.
Pour compliquer les choses, il y a aussi des fichiers de noms differents.
Le probleme est de récuperer les noms véritables des fichiers.
S'il y a 10 fichiers du meme nom, c'est facile.
S'il y a 5 fichiers de nom X, et 5 autres de nom Y, c'est impossible, sauf à utiliser ce code.
Le code est utilisable à partir de Lotus Notes 6.5. Il est à utiliser dans un action de masque. Il est facilement adaptable en java, mais pas avec les formules ou les API C.
- Code : Tout sélectionner
Sub Click(Source As Button)
'Maxime Choucroun 23/06/2010
'Le but de ce bouton (à mettre dans un form)
'est de récuperer tout les noms d'ORIGINE des fichiers insérés
'dans le document.
'Attention: Si 2 fichiers sont insérés dans le document avec le
'meme nom (mais de repertoires differents),
'alors l'affichage donnera ce nom.
'Alors que Lotus Notes renomme systematiquement le nom du second fichier.
Dim uiworkspace As New NotesUIWorkspace
Dim uidoc As NotesuiDocument
Dim adoc As NotesDocument
Set uidoc = uiworkspace.CurrentDocument
Set adoc = uidoc.Document
Set rtitem = adoc.GetFirstItem("Body")
If rtitem Is Nothing Then
Msgbox("Erreur: Pas de champ Body")
Exit Sub
End If
Set rtnav = rtitem.CreateNavigator
oflg = rtnav.FindFirstElement(RTELEM_TYPE_FILEATTACHMENT)
If (oflg = False) Then
Msgbox("Pas de fichier(s) attaché(s)")
Exit Sub
End If
Do While oflg
If oflg Then Set rtobj = rtnav.GetElement
If rtobj.Type = EMBED_ATTACHMENT Then
aname = rtobj.Source
Msgbox(aname)
End If
oflg = rtnav.FindNextElement(RTELEM_TYPE_FILEATTACHMENT)
Loop
End Sub