Page 2 sur 2

MessagePublié: 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.

MessagePublié: 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

MessagePublié: 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

MessagePublié: 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

MessagePublié: 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

MessagePublié: 03 Nov 2010 à 15:27
par Michael DELIQUE
quel message d'erreur ?

tu as regardé en débug ce qui ne vas pas ?

MessagePublié: 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

MessagePublié: 03 Nov 2010 à 15:40
par Michael DELIQUE
tu as bien un champ CorpsText ?

essais d'enregistrer ton doc avec le traitement

MessagePublié: 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

MessagePublié: 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 ?

MessagePublié: 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