Page 1 sur 1

Pb pour lire les champs d'un doc personnes

MessagePublié: 18 Oct 2010 à 15:20
par Noob
Bonjour,

Je suis en train d'ecrire un petit agent tout com et je bloque sur la récup des infos de la fiche personne de la vue $Users du names.nsf ...

Cet agent doit parcourir les doc de la vue users pour trouver les bals qui approchent le seuil d'alerte de leurs quotas.

je récupére bien le nom du nsf, j'arrive à récupérer la taille, le quotas, le seuil mais je n'arrive pas à obtenir le ni le nom de la personne, ni l'adresse internet, nil es infos complémentaire (ex : telephone, company, etc)
je vois bien les infos dans le debugeur sur la propriétés ITEMS et/ou sur
Columnvalues mais je n'arrive pas à lire les valeurs en lotus scripts :

Dans items, les valeurs ne sont pas toujours à la même place dans le tableau, donc iompossible d'y accéder par l'indice (ex internetadress qui est en position 10 ou pas)
Comment faire pour y accéder par le nom du champ ?

Sur columnValue, il est plus facile de retrouver ces petits mais comment lire les valeurs quand la zone contient plusieurs valeurs ?

Si qq'un pouvait me donner un petit exemple cela serait fort sympa !

Merci d'avance pour votre aide ! (en espérant avoir été clair)


Noob

MessagePublié: 18 Oct 2010 à 15:33
par Michael DELIQUE
salut

setcolumnvalue c'est pour récupérer la valeur de la colonne (qui n'est pas forcement celle du document)

pourquoi n'irais tu pas tout simplement chercher les valeur dans le document. les champs y sont toujours nommé de la même manière.

pour l'exemple d'internetadress cherche le champ internetadress dans le masque.

tu cherches dans quelle champs du masque ?

MessagePublié: 18 Oct 2010 à 15:46
par Noob
>pourquoi n'irais tu pas tout simplement chercher les valeur dans le >document.

parce que je ne sais pas comment faire :-( je sais ouvrir et parcourir une vue, apres je fais du reverse avec le debugeur...

comment jj'accede au masque/document depuis ma vue $VIMPeople/$users ? via l'universal id ? avez vous un exemple d'ouverture de doc svp ?

Ps : merci de m'avoir répondu :-)

MessagePublié: 18 Oct 2010 à 15:59
par Michael DELIQUE
re, tu n'as pas de designer Lotus ? ni d'aide en ligne ?

un exemple


Code : Tout sélectionner
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim entry As NotesViewEntry
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set view = db.GetView("By Category")
view.AutoUpdate = False
Set entry = view.GetEntryByKey("Cars")
Set doc = entry.Document
Call doc.PutInFolder("Machines")

MessagePublié: 19 Oct 2010 à 00:23
par roubech
vite fait un autre exemple qui te montre comment parcourir une vue pour consulter les docs et afficher certains de leurs champs ... recherche chaque fonction que tu ne connais pas dans l'aide de ton designer pour comprendre

[syntax="LotusScript"]Dim s as New NotesSession
Dim db as NotesDatabase
Dim view as NotesView
Dim doc as NotesDocument

set db = s.CurrentDatabase
set view = db.GetView("($People)")
set doc = view.GetFirstDocument()
While not doc is Nothing
print "Prénom:" & doc.FirstName(0)
print "Nom:" & doc.LastName(0)
print "Adresse internet:" & doc.InternetAddress(0)
set doc = view.GetNextDocument(doc)
Wend[/syntax]

MessagePublié: 19 Oct 2010 à 11:17
par Noob
Merci à tous les deux !

donc mon code était bon, j'étais juste sur la mauvaise vue ;-)
j'avais testé $VIMPeople/$users ... c'est là, ou c'est compliqué lotus ...

MessagePublié: 20 Oct 2010 à 21:38
par roubech
si tu utilises columnvalues pour réupérer les valeur, le choix de la vue est primordial
par contre si tu récupère les champs explicitement, la seule chose qui compte dans la vue, c'est la formule de sélection

après, la vue ($users) présente la particularité d'afficher plusieurs variantes de noms pour une même personne. en parcournt les docs un par un de la vue, tu risque de passer 2 fois sur un même doc