Powerbuilder pour les completement Geeks !

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 06-02-2009 06:59:42

zolouchka  
Membre
Date d'inscription: 06-02-2009
Messages: 9
Pépites: 48
Banque: 0

[RESOLU] Apprendre à créer un treeview

Bonjour,
je suis grande débutante en pb je travaille sur la version 11.5.
et actuellement je cerche juste à faire des maquettes écrans pour cela j'ai besoin de faire un treeview dans une fenêtre à gauche pour me servir en qqs sorte de menu, étant une maquette j'aimerai pouvoir crée mon treeview dans le script en créant les niveau et les item à la main avec pour valeur des chaines de caractère, (je veux pas aller chercher les valeur d'items dans ma base de données mais plutot dans des variables de chaine de caractère)
je remercie par avance la personne qui pourra me sauver en m'expliquant comment faire.

Dernière modification par zolouchka (08-02-2009 09:22:10)

Hors ligne

 

#2 06-02-2009 08:58:46

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Apprendre à créer un treeview

Bonjour, tu trouveras un exemple dans l'aide HTML de PB avec des données issues de la BDD, que tu pourras simplifier pour l'adapter à ton cas

Using DataWindow information to populate a TreeView
A useful implementation of the TreeView control is to populate it with information that you retrieve from a DataWindow. To do this your application must:


Declare and instantiate a DataStore and assign a DataWindow object
Retrieve information as needed
Use the retrieved information to populate the TreeView
Destroy the DataStore instance when you have finished

Because a TreeView can display different types of information at different levels, you will probably define additional DataWindows, one for each level. Those DataWindows usually refer to different but related tables. When an item is expanded, the item becomes a retrieval argument for getting child items.

Populating the first level
This example populates a TreeView with a list of composers. The second level of the TreeView displays music by each composer. In the database there are two tables: composer names and music titles (with composer name as a foreign key).

This example declares two DataStore instance variables for the window containing the TreeView control:


datastore ids_data, ids_info

This example uses the TreeView control's Constructor event to:


Instantiate the DataStore
Associate it with a DataWindow and retrieve information
Use the retrieved data to populate the root level of the TreeView:

Code: pb

 //Constructor event for tv_1
 treeviewitem tvi1, tvi2
 long ll_lev1, ll_lev2, ll_rowcount, ll_row
 
 //Create instance variable datastore
 ids_data = CREATE datastore
 ids_data.DataObject = "d_composers"
 ids_data.SetTransObject(SQLCA)
 ll_rowcount = ids_data.Retrieve()
 
 //Create the first level of the TreeView
 tvi1.PictureIndex = 1
 tvi1.Children = TRUE
 //Populate the TreeView with
 //data retrieved from the datastore
 FOR ll_row = 1 to ll_rowcount
       tvi1.Label = ids_data.GetItemString(ll_row, &
       'name')
       This.InsertItemLast(0, tvi1)
 NEXT


Populating the second level
When the user expands a root level item, the ItemPopulate event occurs. This script for the event:


Instantiates a second DataStore
Its DataWindow uses the composer name as a retrieval argument for the music titles table.

Inserts music titles as child items for the selected composer
The handle argument of ItemPopulate will be the parent of the new items:

Code: pb

 //ItemPopulate event for tv_1
 TreeViewItem tvi1, tvi2
 long ll_row, ll_rowcount
 
 //Create instance variable datastore
 ids_info = CREATE datastore
 ids_info.DataObject = "d_music"
 ids_info.SetTransObject(SQLCA)
 
 //Use the label of the item being populated 
 // as the retrieval argument
 This.GetItem(handle, tvi1)
 ll_rowcount = ids_info.Retrieve(tvi1.Label)
 
 //Use information retrieved from the database
 //to populate the expanded item
 FOR ll_row = 1 to ll_rowcount
       This.InsertItemLast(handle, &
       ids_info.GetItemString(ll_row, &
       music_title'), 2)
 NEXT



Destroying DataStore instances
When the window containing the TreeView control closes, this example destroys the DataStore instances:

Code: pb

 //Close event for w_treeview
 DESTROY ids_data
 DESTROY ids_info

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 06-02-2009 09:01:21

hellkinder  
Kinder Surprise
Award: chocomordutk6
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 902
Pépites: 0
Banque: 10,524,230,367,490

Re: [RESOLU] Apprendre à créer un treeview

Bonjour zolouchka,

En complément de réponse au post d'erasorz, tu peux aller faire un tour dans l'aide PB (touche F1)

Tu recherches dans l'onglet Index : TreeViewItem Control

A cet endroit, tu trouveras déjà pas mal d'informations sur les propriétés et fonctions d'un tel objet. Tu y trouveras entre autres les fonctions InsertItem, DeleteItem, leur variantes (InsertItemSort, InsertItemFirst, etc...), ExpandItem, CollapseItem etc. Bref, tout ce qu'il te faut pour créer et manipuler un treeview.


http://img510.imageshack.us/img510/4229/userbar1204625572ha9.gif
"Pour la première fois dans l'histoire de l'humanité, tous les peuples de la Terre ne forment qu'un"

Hors ligne

 

#4 06-02-2009 09:19:44

zolouchka  
Membre
Date d'inscription: 06-02-2009
Messages: 9
Pépites: 48
Banque: 0

Re: [RESOLU] Apprendre à créer un treeview

merci tous les deux c'est sympa de m'avoir répondu si vite, je venais justement de découvrir le monde merveilleux de l'aide html!!!! si un jour je deviens une experte à titre de revenche!!!

Hors ligne

 

#5 06-02-2009 09:37:37

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Apprendre à créer un treeview

Bonjour zolouchka,

Pour info, depuis la version 10.5 de PB (Merci hellkinder ), tu as aussi la possibilité de créer des datawindows de type treeview.
Pour une maquette, sans accès à la base de données, une source de type "external" fera parfaitement l'affaire.


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#6 06-02-2009 10:06:57

zolouchka  
Membre
Date d'inscription: 06-02-2009
Messages: 9
Pépites: 48
Banque: 0

Re: [RESOLU] Apprendre à créer un treeview

c'est vrai j'ai essayé mais cela me semble difficile à gérer:on a accès au script de cette datawindow uniquement dans la page dans lequel on colle le datawindow treeview du coup les propriétés insertitem n'existe pas et là pour le coup je suis totalment perdu, si tu as un tuyau sur la fabrication et le remplissage de ce typ d'objet je suis preneuse....
a+
merci pour ta réponse

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22