Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

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 16-08-2008 09:53:42

disneb  
Membre completement Geek
Lieu: Bejaia
Date d'inscription: 16-01-2008
Messages: 118
Pépites: 1,622
Banque: 0

ajout d'un item dans une dddw

bonjour,
voila j'ai une dddw en list_view, je veux ajouter un item à ma dddw (du genre ajouter un compte) je le fais avec un setitem, mais je n'arrive pas a afficher le text "ajouter un compte" en gros j'ai a la fin de ma liste une ligne vide!

Hors ligne

 

#2 16-08-2008 10:25:47

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: ajout d'un item dans une dddw

Bonjour Disneb,

Bon j'ai pas PB sous la main mais je pense que de tête j'arriverais à pondre un code qui explicatif.

Pour cela je suppose que tu as ta datawindow dw_1 qui possède le champ_1 de type dropdowndatawindow
La dropdowndatawindow possède le champ champ_child_1

Code: pb

// Déclaration des variables
Integer li_code_retour
DataWindow ldw_child


// Je récupère ma dropdowndatawindow
li_code_retour = dw_1.GetChild("champ_1", ldw_child)

// Je teste si c'est bien une dropdowndatawindow
If (li_code_retour <> 0) Then
MessageBox("Erreur", "Champ_1 n'est pas une dropdowndatawindow"
return
End If

// J'ajoute une ligne dans ma datawindowchild (à toi de voir à quel endroit tu veux l'insérer, pour l'exemple je le met en ligne 1)
ldw_child.InsertRow(1)

// J'édite le contenu de la nouvelle ligne que j'ai rajouté
ldw_child.SetItem(1,"champ_child_1", "Ajouter un compte") //  /!\ Je ne sais plus si on déclare la ligne avant la colonne


Voilà j'espère ne pas trop avoir répondu a coté de la plaque


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#3 16-08-2008 10:32:19

disneb  
Membre completement Geek
Lieu: Bejaia
Date d'inscription: 16-01-2008
Messages: 118
Pépites: 1,622
Banque: 0

Re: ajout d'un item dans une dddw

c'est la maniere dont laquelle j'ai procédé
mais je ne sais pas pour quelle raison, au lieu d'avoir une ligne ajouter un compte j'ai une ligne vide, dans laquelle une fois selectionnée il me retourne la valeur "ajouter un compte"

Hors ligne

 

#4 16-08-2008 20:20:16

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: ajout d'un item dans une dddw

disneb a écrit:

c'est la maniere dont laquelle j'ai procédé
mais je ne sais pas pour quelle raison, au lieu d'avoir une ligne ajouter un compte j'ai une ligne vide, dans laquelle une fois selectionnée il me retourne la valeur "ajouter un compte"

Dans ce cas c'est surement que tu n'initialise pas la bonne colonne pour l'affichage.

Quand tu déclare un colonne étant de type dropdowndatawindow tu dois renseigner 3 champs :
- La datawindow qui constituera ta dropdowndatawindow
- Le champ qui constituera l'affichage dans cette dropdowndatawindow
- Le champ qui constituera la valeur retourné par cette dropdowndatawindow

Je pense que tu initialise le champ qui constitue la valeur retournée par la dropdowndatawindow à la place de celle réservée à l'affichage.

Dernière modification par Nephtis (16-08-2008 20:21:18)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#5 16-08-2008 23:16:50

disneb  
Membre completement Geek
Lieu: Bejaia
Date d'inscription: 16-01-2008
Messages: 118
Pépites: 1,622
Banque: 0

Re: ajout d'un item dans une dddw

voila exactement ce que j'ai mis

Code: pb

datawindowchild lds_compte
a=dw_ecriture.getchild('comptes_num_cpt',lds_compte)
messagebox("test" ,a)   //il me retourne bien la valeur "1"

lds_compte.settransobject(sqlca)
nb_lign=lds_compte.rowcount()
nb_lign++
if (this.getcolumn()=3) then // la colonne de la dddw est bien la 3eme
  if lds_compte.retrieve()>0 then
    lds_compte.InsertRow(nb_lign)
    lds_compte.SetItem(nb_lign,1, "<Ajouter un compte>")
  end if
end if


je ne sais pas où ça cloche...

Dernière modification par disneb (16-08-2008 23:17:56)

Hors ligne

 

#6 17-08-2008 12:41:33

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: ajout d'un item dans une dddw

En fait ce qu'il me manque juste à vérifier c'est ce que j'avais précisé au dessus : quelles sont les colonnes de ta dropdowndatawindow qui définissent la colonne 'comptes_num_cpt' de la datawindow 'dw_ecriture'

Ouvre le datawindowobject associé à la datawindow dw_ecriture (clic droit sur ta datawindow dw_ecriture sur ta fenêtre puis Modify datawindow... pour aller plus vite ^^)

Clic droit sur la colonne 'comptes_num_cpt' puis propriétés.

On se place dans l'onglet 'Edit' et tu dois normalement avoir une fenêtre de ce type :

Cliquez pour agrandir (tiré du cours Power Builder 6 par la pratique)

Les deux colonnes que j'ai encadré en rouge sont celles qui définissent les valeurs d'affichage et de retour pour la dddw.

Je reprends ton code :

Code: pb

datawindowchild lds_compte
a=dw_ecriture.getchild('comptes_num_cpt',lds_compte)
messagebox("test" ,a)   //il me retourne bien la valeur "1"

lds_compte.settransobject(sqlca)
nb_lign=lds_compte.rowcount()
nb_lign++
if (this.getcolumn()=3) then // la colonne de la dddw est bien la 3eme
  if lds_compte.retrieve()>0 then
    lds_compte.InsertRow(nb_lign)
    lds_compte.SetItem(nb_lign,1, -1) // Là tu initialise la colonne qui sert normalement à récupérer la valeur de la ligne. *Voir la petite note après pour une explication supplémentaire
    lds_compte.SetItem(nb_lign,"ta_colonne_display", "<Ajouter un compte>") // Là tu initialise l'affichage de la colonne
  end if
end if


* : J'imagine que la notion de "compte" est crée comme ceci: un chiffre positif qui identifie le compte avec un libellé attaché par numéro de compte. Ici j'ai initialisé à -1 mais libre à toi de l'initialiser avec n'importe quelle autre valeur

Dernière modification par Nephtis (17-08-2008 12:42:25)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#7 17-08-2008 13:17:51

disneb  
Membre completement Geek
Lieu: Bejaia
Date d'inscription: 16-01-2008
Messages: 118
Pépites: 1,622
Banque: 0

Re: ajout d'un item dans une dddw

j'ai bien initialisé ma dddw, pour la colonne display à num_cpt (car j'ai envie qu'une fois cliqué sur un des choix il lui selectionne le num de compte) et pour la data colonne à num_cpt bien sur
maintenant cette dddw contient une datawindow avec une seule colonne dans laquelle j'ai le numero de compte ainsi que le libellé associé (donc dans ma liste view il affiche les num de compte et les libellés associés, et une fois que j'en selectionne un il m'affiche dans ma datawindow control le compte selectionné (juste le compte))
y a surement un truc que j'ai pas du comprendre

Dernière modification par disneb (17-08-2008 13:18:42)

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22