![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| OpenOffice Forum d'entraide sur OpenOffice.org. Avant de poster : La F.A.Q OpenOffice |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: décembre 2006
Messages: 26
|
Je voudrais retrouver dans une macro (openoffice) le contenu d'un document, des champs utilisateur (user field) afin de leur donner une valeur recueillie par un inputbox. Mais je ne parviens pas à retrouver les variables qui y sont liées. Dois-je passer par un conteneur ? Merci pour les réponses
|
|
|
|
|
|
#2 (permalink) |
|
Invité de passage
![]() Date d'inscription: octobre 2007
Messages: 9
|
Bonjour
S'il s'agit bien des champs utilisateur qui sont accessible via le menu Fichier => Propriétés => Utilisateur dont tu parles, je pense que le bout de code suivant devrait t'inspirer Code :
sub champsUtilisateur()
dim mesInfos as object
dim nbInfos as long, i as long
mesInfos = thisComponent.DocumentInfo
nbInfos = mesInfos.getUserFieldCount
for i = 0 to nbInfos -1
print mesInfos.getUserFieldName(i) & " = " & mesInfos.getUserFieldValue(i)
next i
for i = 0 to nbInfos -1
mesInfos.setUserFieldName(i,"nouveau nom " & cstr(i+1) )
mesInfos.setUserFieldValue(i,"nouvelle valeur " & cstr(i+1) )
next i
for i = 0 to nbInfos -1
print mesInfos.getUserFieldName(i) & " = " & mesInfos.getUserFieldValue(i)
next i
end sub
|
|
|
|
|
|
#3 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: décembre 2006
Messages: 26
|
Merci pour la réponse. En fait ces champs sont insérés dans le document par insert/fields/other/ onglet "variables" insertion de "user field" dans le document avec une valeur null (""). En suite, je voudrais par programmation, demander à l'utilisateur via un "inputbox" d'introduire lui-même le nom à donner à la variable qui s'afficherait ensuite dans le document. J'ai déjà passé qlq jours mais j'y arrive pas. Merci pour ton aide
|
|
|
|
|
|
#4 (permalink) |
|
Invité de passage
![]() Date d'inscription: octobre 2007
Messages: 9
|
Ok, bah j'avais une chance sur deux, hein ?
Bon, je réajuste le tir et te propose ce code là : Code :
sub main
ajoutChampUser("Champ test 1","valeur A")
ajoutChampUser("Champ test 2","valeur B")
ajoutChampUser("Champ test 3","valeur C")
end sub
sub ajoutChampUser(n as string,v as string)
dim MF as object
' si le champs n'existe pas déjà, on le crée
if not ThisComponent.TextFieldMasters.hasByName("com.sun.star.text.FieldMaster.User." & n ) then
MF = thisComponent.createInstance("com.sun.star.text.FieldMaster.User")
MF.Name = n
else ' sinon, on le sélectionne
MF = thisComponent.textFieldMasters.getByName("com.sun.star.text.FieldMaster.User." & n)
end if
' on met sa valeur à jour
MF.content = v
end sub
* edit : je précise que cette sub ne fait qu'ajouter une entrée dans la liste des champs visible via Insertion => Champ => Autre => Variables => Champ d'utilisateur. Ca ne l'affiche pas dans le document |
|
|
|
|
|
#5 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: décembre 2006
Messages: 26
|
Merci, ça marche ! Du coup, ça commence à se débloquer !
Cependant et dans ma logique, j'aurais voulu connaître le nom des variables par une méthode qui aurait pu me mettre tous les noms des champs dans un tableau de string. Cela dans le but de demander à l'utilisateur d'entrer les données avec comme titre de l'imputbox le nom de la variable. Je cherche donc à réaliser (ou me faire réaliser par d'autre dans ce cas!) un moyen d'insérer du contenu dans les variables sans connaître à l'avance ces variables. Si tu as des idées et je remarque avec plaisir que tu en connais un bout, ton aide est la bienvenue. Et encore merci. |
|
|
|
|
|
#6 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: décembre 2006
Messages: 26
|
Salut Athanaze,
Grace à ton aide j'ai réglé mon problème. Mais j'en ai un autre, c-à-d que je voudrais faire un peu la même chose mais avec des "inputfield". Je m'aperçoit que j'ai assez de mal à bien comprendre les bibrairies d'openoffice (com.sun.star. etc). Il y a un tutorial qlq part ? Peux-tu me donner qlq règles pour bien comprendre? Je te remercie d'avance. J'ai besoin |
|
|
|
|
![]() |
![]() |
||
comment lister le contenu d'un document writer
|
||
| Outils de la discussion | |
|
|