Script - Lecture des champs d'un document Notes

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

Script - Lecture des champs d'un document Notes

Messagepar jordane45 » 29 Oct 2010 à 17:40

Bonjour,

(pour le langage.. au choix mais de préférence du VB ou sinon en AutoIT )

Sauriez-vous par hasard comment je pourrais procéder pour pouvoir récupérer le contenu de TOUS les champs d'un document Notes ?

Je m'expliqe : J'arrive bien à lire le titre du document (.WindowTitle), le texte d'un élément selectionné (GetSelectedText())

Mais j'ai, dans mon document des "ListBox" qui s'ouvrent lorsque l'on clique sur un bouton (sorte de boutons radios pleins).
Ce sont ces champs là que je n'arrive pas à lire.
Dans un premier temps il faudrait au moins que je puisse récupérer la valeur sélectionnée dans ce champ (et au cas où, si vous savez comment faire, pouvoir extraire toute la liste contenue dans ce champ).

Pour info :
voici en AutoIT comment je procède pour lire le texte sélectionné :
Code : Tout sélectionner
$uidoc =$WorkSpace.CurrentDocument
$txt = $uidoc.GetSelectedText()
MsgBox(0,"",$Txt)


Info² : Je travaille sur lotus notes 7 (et ne dispose pas de la parti desinger).


J'espère avoir été assez clair.
Par avance merci à vous.

Cordialement,
Jordane.
jordane45
Premier posts
Premier posts
 
Message(s) : 16
Inscrit(e) le : 12 Fév 2010 à 17:54

Messagepar roubech » 29 Oct 2010 à 19:48

Bonjour,

Sans vouloir te vexer, je m'interroge sur ta fonction et ton but.
En effet, tu ne pocède pas le client Designer. Tu ne semble pas connaitre la programmation sous Lotus Notes, le language en @Formula ni LotusScript (proche du basic)
En tant qu'admin, et de plus d'un naturel suspicieux, je préfère maitrise le code qui s'exécute dans l'environnement dont j'ai la responsabilité. J'ai du mal à envisager un utilisateur "bidouiller" des trucs dans son coin sans être concient de ce qu'il fait. je m'en voudrais de donner des informations qui pourrait aller à l'encontre de ton admin.
Mais, s'il s'agit juste d'un export, je ne pense pas que tu mette en péril l'infra (à part piller de l'information)
Pour exporter la liste des champs, nom + valeur, d'un document donnée, il suffit de le selectionner puis d'utiliser le menu Fichier \ Exporter tu laisse le type par défaut (structured texte de mémoire), suivant, tu coche, le (s) doc(s) sélectionné(s) et voilà
Pour la liste des valeurs possible pour les listes de choix, c'est autre chose. Soit ces choix sont alimentés à partir d'une table de paramétrage, alors c'est tout simple, tu va voir la table. Soit les valeur sont en dur dans le code, alors là le plus simple c'est d'aller voir le code, sinon attaquer le code du masque (API ou export DXL)
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar jordane45 » 02 Nov 2010 à 08:25

Sans vouloir te vexer, je m'interroge sur ta fonction et ton but.
En effet, tu ne pocède pas le client Designer. Tu ne semble pas connaitre la programmation sous Lotus Notes, le language en @Formula ni LotusScript (proche du basic)
En tant qu'admin, et de plus d'un naturel suspicieux, je préfère maitrise le code qui s'exécute dans l'environnement dont j'ai la responsabilité. J'ai du mal à envisager un utilisateur "bidouiller" des trucs dans son coin sans être concient de ce qu'il fait. je m'en voudrais de donner des informations qui pourrait aller à l'encontre de ton admin.


Bonjour,
Ca ne me vexe pas. Pour ce qui est de connaitre le LotusScript ou le langage en @Formula ... je n'ai jamais eu l'occasion de l'apprendre....
Quand à ce qui est de mon poste (et du fait de Bidouiller ) ... ça n'a pas d'importance quand à ma question.
Pour ce qui est de la sécurité.. un Admin a la possibilité d'Octroyer les droits ou non.. sur les bases / documents afin d'en empecher la lecture (ou modification..suppression..etc.) selon ses besoins.

Bref, en ce qui me concerne, comme tu peux le penser, je ne cerhche qu'à Lire le contenu de documents qui se trouvent dans une bibliothèque (sur laquelle j'ai les droits en lecture/modif, création et suppression).

Pour détailler un peu plus ma demande (et ainsi lever la suspricion) voici ce dont j'ai besoin (et dans quel but) :

Pour mon travail (je préscise ) :
Je dois modifier un ensemble de documents se trouvant dans une bibiliotheque
Ces documents contiennent différents champs ( Richtext et aussi ces fameux champs listes (dont je ne connais pas le nom ni le fonctionnement).
A partir d'un document excel, je dois donc parcourir la bibliothèque (ce que je fais déjà) puis, pour chaque document correspondant à ma recherche, y modifier les différents champs.
Afin d'éviter la "bidouille" et aussi gagner du temps, je souhaiterai éviter d'accéder aux différents champs par des "tabulations" et taper directement dans l'objet via une connexion DDE.

Je vais essayer de jeter un oeil aux propositions qui m"ont été faites mais j'avoue que je ne comprend pas trop comment faire avec ce dont tu me parles.

Cordialement,
Jordane.
jordane45
Premier posts
Premier posts
 
Message(s) : 16
Inscrit(e) le : 12 Fév 2010 à 17:54

Messagepar Michael DELIQUE » 02 Nov 2010 à 09:17

hello

déjà un tuto d'initiation au Lotus script (ça pourrait t'aider un peu) => http://forum.dominoarea.org/initiation- ... 12997.html

ensuite les champs liste sont des champs notes (texte) comme les autres. c'est juste leur présentation qui change.

un champ notes est considéré comme un array et quand il ya plusieurs valeurs ton array a plusieurs ligne.

maintenant si ton besoin est de récupérer la liste qui est sélectionnable ça va etre bcp mais alors bcp plus compliqué.
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 jordane45 » 02 Nov 2010 à 09:59

Bonjour,
Merci pour cette réponse.
je vais regarder ce tuto.

Maintenant, en cherchant un peu, j'ai trouvé ma réponse :
j'utilise : $uidoc.FieldGetText(Nomduchamp).

Bonne journée
jordane45
Premier posts
Premier posts
 
Message(s) : 16
Inscrit(e) le : 12 Fév 2010 à 17:54

Messagepar amahi » 02 Nov 2010 à 11:06

Je suppose que ce genre de detail ne t'interesse pas mais sache que le fait de passer par le uidoc va obliger ton "script" a ouvrir tes documents un par un.
C'est long
Pense a les refermer une fois que tu les as lu, personne ne le ferra a ta place !
@Novaliance
amahi
Empereur des posts
Empereur des posts
 
Message(s) : 1032
Inscrit(e) le : 08 Jan 2007 à 16:57
Localisation : Region parisienne

Messagepar jordane45 » 02 Nov 2010 à 12:15

Merci. :-)

Je suis de toutes façon obligé de passer document par document (devant modifier certaines valeurs s'y trouvant).
J'ouvre donc le document, lis les informations , modifie celles qui m'interesse puis quitte en sauvegardant.
Je peux ainsi parcourir l'ensemble de mes documents et y effectuer les modifications voulues.

Encore merci pour votre aide.

Bonne journée à tous.
jordane.
jordane45
Premier posts
Premier posts
 
Message(s) : 16
Inscrit(e) le : 12 Fév 2010 à 17:54

Messagepar roubech » 02 Nov 2010 à 21:31

ce que voulais dire amahi, c'est qu'il y a 2 façons de manipuler les documents :
Back End = en utilisant la classe NotesDocument, image en mémoire du document dans la base
Front End = en utilisant la classe NotesUIDocument, représentant le document ouvert à l'écran.
Tu n'es pas obligé d'ouvrir visuellent tous les docs à l'écran pour les traiter, tu peux les parcourir en mémoire, c'est généréalement plus rapide.
pour parcourir les docs sélectionnés, regarde UnprocessedDocumentsdans l'aide :
http://publib.boulder.ibm.com/infocente ... PERTY.html
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar roubech » 02 Nov 2010 à 21:37

jordane45 a écrit:Quand à ce qui est de mon poste (et du fait de Bidouiller ) ... ça n'a pas d'importance quand à ma question.

ce que je voulais dire, c'est es-tu administrateur Lotus ou developper Lotus ou developpeur avec un autre langage ou n'es tu pas informaticien ? En bref, comment doit on te repondre ? est-ce que c'est la logique Notes que tu ne maitrise pas mais si on te donne un vague algo tu va pouvoir le comprendre et l'interpreter ? ou si on te donne un exemple de code, tu vas être capable de le lire et trouver la signification de chaque fonction dans l'aide pour en comprendre le sens
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar roubech » 02 Nov 2010 à 21:40

jordane45 a écrit:
Pour exporter la liste des champs, nom + valeur, d'un document donnée, il suffit de le selectionner puis d'utiliser le menu Fichier \ Exporter

Je vais essayer de jeter un oeil aux propositions qui m"ont été faites mais j'avoue que je ne comprend pas trop comment faire avec ce dont tu me parles.


As-tu pu faire ce test : sélectionner un ou plusieurs doc et utiliser le menu Fichier \ Exporter
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