Page 4 sur 5

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

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

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

Publié:
07 Oct 2010 à 09:07
par Steph_
merci beaucoup
je teste ça tout de suite

Publié:
07 Oct 2010 à 09:09
par Steph_
ça marche nickel !
maintenant je teste avec mon champ multivalué

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

Publié:
08 Oct 2010 à 07:26
par Michael DELIQUE
re,
prend ton champ et fait un split sur le séparateur de valeurs

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

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


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

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

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

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

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

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