Pb pour lire les champs d'un doc personnes

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Pb pour lire les champs d'un doc personnes

Messagepar Noob » 18 Oct 2010 à 15:20

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
Noob
Posteur néophyte
Posteur néophyte
 
Message(s) : 51
Inscrit(e) le : 08 Juil 2009 à 17:15

Messagepar Michael DELIQUE » 18 Oct 2010 à 15:33

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 ?
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Noob » 18 Oct 2010 à 15:46

>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 :-)
Noob
Posteur néophyte
Posteur néophyte
 
Message(s) : 51
Inscrit(e) le : 08 Juil 2009 à 17:15

Messagepar Michael DELIQUE » 18 Oct 2010 à 15:59

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")
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar roubech » 19 Oct 2010 à 00:23

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]
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar Noob » 19 Oct 2010 à 11:17

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 ...
Noob
Posteur néophyte
Posteur néophyte
 
Message(s) : 51
Inscrit(e) le : 08 Juil 2009 à 17:15

Messagepar roubech » 20 Oct 2010 à 21:38

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
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille


Retour vers Développement

cron