i |
Remplir une listbox avec une liste externe |
Méthode 1
On peut alimenter une liste soit élément par élément (on ajoute un item à la
fois) ou "en bloc" si l'on dispose des éléments dans une variable tableau.
Tu trouveras des exemples d'utilisation des méthodes & propriétés des listes
ici :
http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Basic/List_Box
Je te joins également un fichier exemple comprenant deux approches
différentes :
- Les procédures du module1 ouvre un fichier CSV dans Calc puis extraient
une plage pour alimenter la liste
- Les procédures du module2 lisent directement le fichier CSV pour alimenter
la liste
Dans les deux cas le même traitement est ensuite utilisé pour récupérer la
sélection dans la liste et mettre à jour un champ du document.
Pour faciliter la lecture chaque module est "complet" (reprise de procédure
commune).
Le document comprend deux boutons correspondant aux deux procédures.
http://nabble.documentfoundation.org/file/n3326571/DialogListeCSV.odt
DialogListeCSV.odt
Les modules comprennent en constante l'url du fichier CSV (et pour le
module1 la plage à utiliser).
Il convient bien entendu d'adapter ces valeurs à ton cas...
Nota :
- il s'agit là d'un exemple "vite fait" sans aucune réalité fonctionnelle
- beaucoup d'autres façons de faire existent...
Méthode 2
Avec un contrôle liste déroulante
dessiné dans le document (et donc rattaché à un formulaire) ?
Dans ce deuxième cas, une possibilité de solution serait :
1. Créer une base de données de type Texte (Fichier> Nouveau> BDD> Se
connecter à : Texte (indiquer le chemin où se trouve le fichier csv et les
paramètres de connexion)
2.Référencer cette base de données (dernière étape du dialogue de création
ou via Outils> Options> Base> Base de données
3.Dans le document writer contenant la liste, modifier le formulaire
sous-jacent en indiquant comme source de données la source créée ci-dessus
et comme table celle pointant sur le CSV concerné
4.Laisser vide la propriété "Champ de données" du contrôle liste
5.Définir sa propriété Type de contenu : SQL et le contenu. Par exemple :
SELECT "Nom" FROM "SourceTexte"
"Nom" est ici le nom du champ à afficher et "SourceTexte" le nom du fichier
CSV
NOTA : le choix fait dans la liste ne sera pas enregistré avec le document
(puisque la liste n'est associée à aucun champ).
Ci-joint un exemple avec une liste affichant le champ auteur de la
bibliographie par défaut (ici la source de type dbf mais le principe est le
même). Cette source de données étant en principe référencée par défaut le
document devrait fonctionner sans modification...
http://nabble.documentfoundation.org/file/n3316128/ListeSourceCSV.odt
ListeSourceCSV.odt