Pas de problème (pb), que du PowerBuilder (PB) ^^

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 28-09-2006 12:02:00

Steph  
crazy gamer
Lieu: Paris
Date d'inscription: 08-09-2006
Messages: 154
Pépites: 99,825
Banque: 11,934,987,430,796,550

[RESOLU] DataWindow expression

Salut, c'est de nouveau moi :D

J'avance petit à petit dans mon développement.

Mon problème d'aujourd'hui :

J'ai une datawindow avec plein de champs. J'ai également des boutons (d'ailleurs c'est pas des boutons mais des statictext pour simuler des boutons enfoncés ou non) et selon le bouton cliqué, j'affiche tel ou tel champ.

Actuellement, sur le click d'un bouton, j'ai
champ1.visible = true
champ2.visible = true
champ3.visible = false
champ4.visible = false
....

Mais j'ai beaucoup de champs.
Je voudrais donc savoir si quelqu'un connait une façon plus simple de gérer ce système d'affichage ?
Peut-être avec les expressions mais je ne connais pas du tout.

Merci

Hors ligne

 

#2 28-09-2006 12:42:21

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] DataWindow expression

tu travailles sur quelle version de pb ?
pour utiliser des pseudos boutons ?
car, si tu as la possibilité de mettre des boutons sur ta datawindow, c'est beaucoup mieux ! et plus facile à gerer.

tu peux aussi mettre tout ton script pour gerer l'acces des champs ?

A+


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 28-09-2006 12:53:21

Steph  
crazy gamer
Lieu: Paris
Date d'inscription: 08-09-2006
Messages: 154
Pépites: 99,825
Banque: 11,934,987,430,796,550

Re: [RESOLU] DataWindow expression

J'utilise PB 9

Je peux mettre des boutons dans la datawindow mais ils ne peuvent pas avoir l'apparence de bouton enfoncés. C'est pour ça que j'utilise des statictext et que je joue avec le border en Lowered ou Raised.

J'aimerais éviter, si possible, de mettre champ1.visible = true pour chaque champ sous chaque bouton.

Hors ligne

 

#4 28-09-2006 13:37:22

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] DataWindow expression

je viens de creer une fonction globale...
mais tu peux l'integrer dans ta window... ou dans un user objet

le meme principe,
tu copies le contenu dans un fichier texte
tu sauvegardes en tant que "f_colonne_visible.srf"
et tu l'importes sur ton projet.

Code: pb

$PBExportHeader$f_colonne_visible.srf
global type f_colonne_visible from function_object
end type

forward prototypes
global subroutine f_colonne_visible (datawindow adw_dw, string as_colonne[], string as_visible[])
end prototypes

global subroutine f_colonne_visible (datawindow adw_dw, string as_colonne[], string as_visible[]);/**********************************************************************************************/
/* Nom    : f_colonne_visible                                             */
/* But    :                                                         */
/* Arguments:                                                        */
/* Appel    :                                                         */
/* Remarques:                                                         */
/* Histo    : SKA - sept 2006                                              */
/**********************************************************************************************/
long     ll_i
string  ls_modify

for ll_i = 1 to upperbound(as_colonne)
  ls_modify = ls_modify + ' ' + as_colonne[ll_i] + ".visible=" +as_visible[ll_i]
next

if ll_i > 0 then
  adw_dw.modify(ls_modify)
end if

end subroutine

Apres ca,
voila le script que j'utilise...
si ca peut te faciliter la tache ?

il faut juste que tu mettes les noms de colonnes concernées,
et si elles doivent etre invisible ou non...ect...

Code: pb

string  ls_colonne[]
string  ls_visible[]

ls_colonne[1] = "scommandbutton"
ls_colonne[2] = "scheckbox"

ls_visible[1] = '1'
ls_visible[2] = '0'

f_colonne_visible(dw_detail,ls_colonne,ls_visible)

Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#5 28-09-2006 13:52:34

Steph  
crazy gamer
Lieu: Paris
Date d'inscription: 08-09-2006
Messages: 154
Pépites: 99,825
Banque: 11,934,987,430,796,550

Re: [RESOLU] DataWindow expression

Tu passes par un fonction, c'est pas bête.
Je vais voir ça.

Par contre, y'a pas un moyen d'utiliser l'expression sur Visible des champs dans une datawindow ?
Ca m'aurait permis de comprendre le fonctionnement :D

En tout cas merci, ça va bien m'aider ce truc :D

Hors ligne

 

#6 28-09-2006 14:02:32

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] DataWindow expression

Regarde bien le code...
Ca ne concerne que les colonnes des datawindows...enfin, de la datawindow concernée plutot...


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#7 28-09-2006 14:13:39

Steph  
crazy gamer
Lieu: Paris
Date d'inscription: 08-09-2006
Messages: 154
Pépites: 99,825
Banque: 11,934,987,430,796,550

Re: [RESOLU] DataWindow expression

Oui, c'est ce qu'il me faut

Par contre, va quand même falloir que je me tape une ligne pour chaque champ (ls_colonne[1] = "scommandbutton") donc ça revient un peu au même

Ce qui aurait été super bien, c'est qu'il soit possible de rattacher des champs à un group box, comme ça, tu rends visible ou non seulement le group box

Bon ben, à l'attaque, je me tape les lignes :D

Dernière modification par Steph (28-09-2006 14:28:58)

Hors ligne

 

#8 28-09-2006 14:17:49

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] DataWindow expression

ca, c'est pas trop dur !
une fois que tu as etabli ta liste des colonnes,
apres, il suffit juste de faire du copier-coller...
et la fonction se chargera du reste...


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#9 28-09-2006 15:20:38

Steph  
crazy gamer
Lieu: Paris
Date d'inscription: 08-09-2006
Messages: 154
Pépites: 99,825
Banque: 11,934,987,430,796,550

Re: [RESOLU] DataWindow expression

Ca marche niquel :D

Par contre, j'ai changé quelque trucs :
J'ai déclaré le ls_colonne en variable d'instance et initialisé avec tous les champ à l'ouverture de la fenêtre.

J'ai pas mis de ls_visible par contre j'ai dupliqué la boucle pour afficher et changé l'appel de la fonction :

Code: pb

FOR ll_i = 1 TO 59
    ls_modify = ls_modify + ' ' + a_s_colonne[ll_i] + ".visible=" + a_s_etape1
NEXT

FOR ll_i = 60 TO 83
    ls_modify = ls_modify + ' ' + a_s_colonne[ll_i] + ".visible=" + a_s_etape2
NEXT

FOR ll_i = 84 TO 93
    ls_modify = ls_modify + ' ' + a_s_colonne[ll_i] + ".visible=" + a_s_etape3
NEXT

Code: pb

fw_colonne_visible(dw_derogation, ls_colonne, '1', '0', '0')

Comme ça, selon où je clique, j'ai juste à changer les 1 et 0 dans l'appel :D

Merci bien

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22