Page 2 sur 2

Publié:
03 Nov 2010 à 14:43
par clementbp
Ce n'est pas un bouton qui est dans une vue mais il est directement dans le masque.

Publié:
03 Nov 2010 à 14:51
par Michael DELIQUE
ahhhh... ok !
alors remplace le code par
dim uiwork as New Notesuiworkspace
set doc = uiwork.currentDocument.document
si tu n'as pas un objet Notesuidocument d'instancié et d'accessible
le code que tu as utilisé sert pour la sélection dans une vue

Publié:
03 Nov 2010 à 15:07
par clementbp
Merci cette fois je recois bien le mail c'est super
Par contre pour le cas des pièces jointes je ne comprend toujours pas comment je dois faire.
j'ai deux solutions, soit je fais un champs texte riche qui s'appel CorpsTexte dans lequel je peut joindre des fichiers (je l'ai fais et j'ai un message d'erreur), ou alors je mets toutes mes pieces jointes dans un champs de type texte riche amélioré.
Comment faire :
Pour info le code a mettre dans le bouton du masque est :
Sub Click(Source As Button)
On Error Goto ErreurHandle
Dim session As NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim rtItem As NotesRichTextItem
Dim uiwork As New Notesuiworkspace
Set session = New NotesSession
Set db = session.CurrentDatabase
Set doc = uiwork.currentDocument.document
If doc Is Nothing Then
Error 9999,"doc is Nothing"
Elseif doc.HasItem("CorpsTexte") = False Then
Error 9999, "No field : CorpsTexte"
End If
Dim nbCopy As Boolean
nbCopy = False
Dim memo As NotesDocument
Set memo = New NotesDocument( db )
If nbCopy = False Then
'si pas de Piece jointe
Call memo.ReplaceItemValue( "Body", doc.GetItemValue( "CorpsTexte" ))
Else
'si piece jointe
Set rtItem = doc.GetFirstItem("CorpsTexte")
If Not rtItem Is Nothing Then
Call rtItem.CopyItemToDocument(memo,"Body")
End If
End If
Call memo.ReplaceItemValue( "Subject", "Objet du mail" )
Call memo.ReplaceItemValue( "Form", "Memo" )
Call memo.Send( False, "clement@aaaa.fr" )
Exit Sub
ErreurHandle:
Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
Exit Sub
End Sub

Publié:
03 Nov 2010 à 15:10
par Michael DELIQUE
re,
aucune raison de passé par un texte rich amélioré.
la premiere solution est la bonne passe ton champ "CorpsText" en richtext et dans le code que je t'ai envoyé passe nbCopy à true

Publié:
03 Nov 2010 à 15:26
par clementbp
J'ai essayé ce que tu m'as dis par contre j'ai toujours un message d'erreur.
Le code est :
Sub Click(Source As Button)
On Error Goto ErreurHandle
Dim session As NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim rtItem As NotesRichTextItem
Dim uiwork As New Notesuiworkspace
Set session = New NotesSession
Set db = session.CurrentDatabase
Set doc = uiwork.currentDocument.document
If doc Is Nothing Then
Error 9999,"doc is Nothing"
Elseif doc.HasItem("CorpsTexte") = False Then
Error 9999, "No field : CorpsTexte"
End If
Dim nbCopy As Boolean
nbCopy = True
Dim memo As NotesDocument
Set memo = New NotesDocument( db )
If nbCopy = False Then
'si pas de Piece jointe
Call memo.ReplaceItemValue( "Body", doc.GetItemValue( "CorpsTexte" ))
Else
'si piece jointe
Set rtItem = doc.GetFirstItem("CorpsTexte")
If Not rtItem Is Nothing Then
Call rtItem.CopyItemToDocument(memo,"Body")
End If
End If
Call memo.ReplaceItemValue( "Subject", "Objet du mail" )
Call memo.ReplaceItemValue( "Form", "Memo" )
Call memo.Send( False, "clement.pequignet@jurafiltration.fr" )
Exit Sub
ErreurHandle:
Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
Exit Sub
End Sub

Publié:
03 Nov 2010 à 15:27
par Michael DELIQUE
quel message d'erreur ?
tu as regardé en débug ce qui ne vas pas ?

Publié:
03 Nov 2010 à 15:36
par clementbp
Le message est le suivant.
Ca se situe à ce niveau là du code
Elseif doc.HasItem("CorpsTexte") = False Then
Error 9999, "No field : CorpsTexte"
End If

Publié:
03 Nov 2010 à 15:40
par Michael DELIQUE
tu as bien un champ CorpsText ?
essais d'enregistrer ton doc avec le traitement

Publié:
03 Nov 2010 à 15:47
par clementbp
Oui c'etait tout simplement ça.
Il fallait que le document soit enregistré avant que l'agent s'exécute.
C'est parfait maintenant tout fonctionne à merveille.
Merci beaucoup tu m'as encore une fois bien dépanné.
Merci et bonne journée

Publié:
03 Nov 2010 à 16:30
par clementbp
Bon je suis vraiment trop nul mais si je veux enregistrer le document au début de mon code comment je peut faire
Je pensais mettre un "Call doc.save"
J'ai vu qu'il y avait des argument entre parenthèse mais à quoi servent ils ?

Publié:
03 Nov 2010 à 16:33
par Michael DELIQUE
essais ça
- Code : Tout sélectionner
dim UIDoc as NotesUIdocument
set UIdoc = uiwork.currentDocument
call Uidoc.save
Set doc = UIdoc.document