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