Page 4 sur 5

MessagePublié: 07 Oct 2010 à 06:35
par Steph_
le SendToEmett est correct
pour le reste je vais modifier comme tu as dit

MessagePublié: 07 Oct 2010 à 08:03
par Steph_
nemrod93 a écrit:re,
t'es en frontal dans ce cas je te conseille de préfixer ton document frontal (notesuidocument) en uidoc et de réserver doc pour le document dorsal (notesdocument)
je qui donne
set uidoc = notesuiworkspace.currentdocument
set doc = uidoc.document
c'est plus clair pour tout le monde

Pour ton résultat, tu devrais avoir 4 msgbox (une pour chaque élément), là tu à un vide (pas possible que le send fonctionne) et une chaine unique séparée par des virgules

Comment est renseigné "SendToEmett"? il est bien en "Autoriser valeurs multiples"? la gestion du séparateur est correcte?


je crois que je ne vais pas arrêter de galérer avec cette histoire de dorsal / frontal

voici mon code "qui marche"

Code : Tout sélectionner
Sub Click(Source As Button)
   
   Dim db As NotesDatabase
   Dim doc As NotesUIDocument
   Dim ws As New notesUIWorkspace
   Dim titre As String
   Set session =New NotesSession
   Set db = session.CurrentDatabase
   Set doc = ws.currentdocument
   titre = doc.FieldGetText( "RtitreSD" )
   Set newDoc = New NotesDocument(db)
   Set rtitem = New NotesRichTextItem( newDoc, "body" )
   
   
   newDoc.form="memo"
   newDoc.Subject =objet
   rtitem.AppendText(texte)
   
   Call rtitem.AppendDocLink ( doc.Document   , "Accès à la base")     
   newDoc.subject = "Demande d'intervention" +" - " +titre
   
   Set iconmail = New NotesItem(newDoc, "_ViewIcon",177)
   iconmail.IsSummary = True
   
   Call doc.save
   Call newDoc.save(False, False)
   Call newDoc.Send(True,"mail") 
   
   
End Sub


est-ce que ça te gênerait de le réécrire "proprement" et qu'il fonctionne encore ? c'est à dire utiliser les doc et uidoc aux bons endroits.
au moins je bosserais sur une base saine

MessagePublié: 07 Oct 2010 à 08:53
par Michael DELIQUE
voila ce que ça pourrait donner

Code : Tout sélectionner
   Dim Session As NotesSession
   Dim db As NotesDatabase
   Dim UIDoc As NotesUIDocument
   Dim UIWorkspace As New notesUIWorkspace
   Dim newDoc As NotesDocument
   Dim rtitem As NotesRichTextItem
   Dim titre As String
   Dim texte As String
   Dim objet As String
   Dim iconmail As NotesItem
   
   On Error Goto ErreurHandle
   
   Set session = New NotesSession
   Set db = session.CurrentDatabase
   Set UIDoc = UIWorkspace.currentdocument
   titre = UIDoc.FieldGetText( "RtitreSD" )
   
   Set newDoc = DB.CreateDocument
   Set rtitem = New NotesRichTextItem( newDoc, "body" )
   
   
   Call newDoc.ReplaceItemValue("Form","Memo")
   Call newDoc.ReplaceItemValue("Subject",objet)
   Call rtitem.AppendText(texte)
   
   Call rtitem.AppendDocLink ( UIDoc.Document   , "Accès à la base")     
   Call newDoc.ReplaceItemValue("Subject", "Demande d'intervention" +" - " +titre)
   
   Set iconmail = New NotesItem(newDoc, "_ViewIcon",177)
   iconmail.IsSummary = True
   
   Call UIDoc.save
   Call newDoc.save(False, False)
   Call newDoc.Send(True,"mail") 
   
   Exit Sub
ErreurHandle:
   Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur N° " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
   Exit Sub

MessagePublié: 07 Oct 2010 à 09:07
par Steph_
merci beaucoup

je teste ça tout de suite

MessagePublié: 07 Oct 2010 à 09:09
par Steph_
ça marche nickel !

maintenant je teste avec mon champ multivalué

MessagePublié: 08 Oct 2010 à 07:10
par Steph_
Bonjour

j'ai toujours le même problème
J'ai adapté le script dans plusieurs bases (j'en ai une vingtaine à préparer à une migration assez lourde)

et j'ai souvent des champs destinataires multivalués calculés, et même avec le nom complet j'ai l'impression que Notes ne l'interprète pas comme des noms différents mais comme une chaîne.

J'utilise ces champs pour de @Mailsend et ils fonctionnent très bien.
J'ai essayé de passer les champs en champs de type nom, ça ne marche pas non plus.
Il y a une façon spécifique de déclarer des noms en LS ? ou une façon de séparer les différentes valeurs d'un champ ?

MessagePublié: 08 Oct 2010 à 07:26
par Michael DELIQUE
re,

prend ton champ et fait un split sur le séparateur de valeurs

MessagePublié: 08 Oct 2010 à 07:36
par Steph_
J'essaie

MessagePublié: 08 Oct 2010 à 08:57
par Steph_
alors, en splittant le champ

(mon champ contient 4 nom prenom séparé par , espace)

dans le print j'obtiens

le 2ème nom/OU/O

et même pas le prénom

c'est tout :shock:

MessagePublié: 08 Oct 2010 à 09:02
par Steph_
dans le 1er split j'ai testé un champ que j'avais ajouté pour avoir l'adresse complète
nom prenom/OU/O

je viens de faire la même chose avec mon champ d'origine, et dans le print j'ai le 2ème nom de la liste avec une virgule

MessagePublié: 08 Oct 2010 à 09:53
par Michael DELIQUE
salut

l'espace n'ets pas le bon séparateur, tu utilises celui afficher et non celui enregistrer, regarde les parametre de ton champ

MessagePublié: 08 Oct 2010 à 10:19
par Steph_
on dirait bien que ça vient de là ...

mais j'ai bien "séparer valeur par virgule" dans le champ

MessagePublié: 08 Oct 2010 à 16:58
par roubech
je prend le train en marche ..

un champ de type texte, contenant une chaine avec plusieurs valeurs séparées par des virgules, sera considéré comme une chaine et non comme une liste, si le champ n'est pas typé multivalué
si tu veux une liste, il faut bien cocher multivalué dans les propriétés du champ

mais si tu change le type du champ, ça ne change pas automatiquement les doc qui sont déjà créés avec ce masque, il les réenregistrer

tu peux le vérifier en regardant les propriété d'un doc, 2ème onglet

si ton champ est bien mutlivalué :
newdoc.ReplaceItemValue( "SendTo", doc.MonChampSendTo )

si ton champ n'est pas multivalué (et que les aleurs sont séparées par des virgules) :
newdoc.ReplaceItemValue( "SendTo", split(doc.MonChampSendTo, ",") )

maintenant, je vois que tu pars d'un doc ouvert en UI, donc si tu passes par uidoc.FieldGetText, ton champ a beau être typé multivalué dans ton masque, cette méthode renvoi une chaine de texte

MessagePublié: 11 Oct 2010 à 07:09
par Steph_
merci, je vais essayer tout ça

MessagePublié: 11 Oct 2010 à 09:05
par Steph_
bon

je voudrais avoir confirmation ou éclaircissement

on a accès à certaines fonctions en frontal et d'autres en dorsal

Code : Tout sélectionner
Dim workspace As New NotesUIWorkspace
  Dim uidoc As NotesUIDocument
  Dim doc As NotesDocument   
  Set uidoc = workspace.CurrentDocument
  Set doc = uidoc.Document


est-ce que ça ça me permet d'utiliser les champs du document courant en dorsal ou pas ?