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 07-08-2013 08:39:53

Maestro  
Membre
Date d'inscription: 16-01-2007
Messages: 19
Pépites: 75
Banque: 0

Datawindow: Comment lire la hauteur d'une colonne (autosize)

Bonjour,

j'ai une datawindow qui à un group. Dans le group j'ai quelques colonnes dont une est en autosize height à la fin du group header. J'aimerai avoir la hauteur de cette colonne et après adapter un cadre (rectangle) à cette hauteur (donc y = 0 et height de rectangle: height initial + nouvelle hautueur de la colonne).

Je sais qu'on peut utiliser rowheight mais ça c'est pour le Detail Band. J'ai essayé describe("evaluate('colonne.height',0)") me donne une invaide expression. rowheight c'est bien mais il faudrait la même chose pour le group header?

je suis en PB 11.5.2.

Des idées???

Hors ligne

 

#2 07-08-2013 09:06:59

Dadone  
Membre Power Geek
Lieu: Avon (Seine et Marne)
Date d'inscription: 19-02-2007
Messages: 252
Pépites: 985
Banque: 0
Site web

Re: Datawindow: Comment lire la hauteur d'une colonne (autosize)

La syntaxe que vous avez utilisé à mon avis ne fonctionne pas car le terme clé evaluate n'a pas sa place .
Donc essayez sans evaluate.

describe("<nom de la colonne>.height'")

Hors ligne

 

#3 07-08-2013 09:09:40

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

Re: Datawindow: Comment lire la hauteur d'une colonne (autosize)

Bonjour, apparemment tu n'es pas le premier à te casser les dents sur cette problématique : http://pbadonf.fr/forum/viewtopic.php?id=3321


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

Hors ligne

 

#4 07-08-2013 09:47:46

Maestro  
Membre
Date d'inscription: 16-01-2007
Messages: 19
Pépites: 75
Banque: 0

Re: Datawindow: Comment lire la hauteur d'une colonne (autosize)

J'ai dejà essayé avec describe height mais tu reçois la hautueur initiale. J'ai même essayé dans le clicked event d'aller chercher quelquechose mais en vain.
Le group header est en  autosize et pareil un describe("datawindow.header.1.height") te donne la hauteur initiale. C'est énervant que Sybase alias SAP ;) n'arrive a bien intégrer leur idées par tout. C'est bien un rowheight() pourquoi pas alors de faire aussi un groupheight etc... . J'ai un workaround mais bon la donnée n'est pas groupé comme il le faut. je le mais dans le trailer du group. Quelqu'un peut essayer en 12.5.2., comme je n'ai pas encore migré vers, qui sait peut-être ça fonctionne la.

Hors ligne

 

#5 07-08-2013 10:00:10

Dadone  
Membre Power Geek
Lieu: Avon (Seine et Marne)
Date d'inscription: 19-02-2007
Messages: 252
Pépites: 985
Banque: 0
Site web

Re: Datawindow: Comment lire la hauteur d'une colonne (autosize)

erasorz a écrit:

Bonjour, apparemment tu n'es pas le premier à te casser les dents sur cette problématique : http://pbadonf.fr/forum/viewtopic.php?id=3321

J'ai réussit à placer une ligne en fonction de la hauteur dynamique du header mais de manière complétement détournée.

Le principe est le suivant : pour la zone située dans le header qui est en autosize height c'est de prendre le nombre de caractères maximum pour l'affichage d'une ligne et lorsqu'elle a reçut les données à afficher c'est de calculer combien de lignes elle va devoir créer afin d'afficher toutes les données.
Après tu places où tu veux les objets puisque tu connais l'agrandissement.
C'est de la bidouille mais je l'ai testé cela fonctionne.

Dernière modification par Dadone (07-08-2013 10:27:56)

Hors ligne

 

#6 07-08-2013 12:18:44

Maestro  
Membre
Date d'inscription: 16-01-2007
Messages: 19
Pépites: 75
Banque: 0

Re: Datawindow: Comment lire la hauteur d'une colonne (autosize)

Dadone: ;) J'ai essayé cela aussi, mais le petit bmol c'est quand tu as un carriage return, comment le prendre en consideration? et de mettre tous ça dans l'expression un peut compliquer, non? Ta solution le prend en consideration?

Hors ligne

 

#7 07-08-2013 12:21:14

Maestro  
Membre
Date d'inscription: 16-01-2007
Messages: 19
Pépites: 75
Banque: 0

Re: Datawindow: Comment lire la hauteur d'une colonne (autosize)

Ca c'est mon expression:

Code:

if( isnull( dhp_remarque ),224,224+(if(int(len( dhp_remarque)/35) = 0,0,int(len( dhp_remarque)/35) + 1))*60)

où 35:  nombre de caractère par ligne et 60: la hauteur par ligne

Hors ligne

 

#8 07-08-2013 12:27:11

rincevent  
Modérateur
Award: bf
Lieu: Belgique
Date d'inscription: 06-02-2007
Messages: 722
Pépites: 100,002,023
Banque: 0

Re: Datawindow: Comment lire la hauteur d'une colonne (autosize)

Attention, tous les caractères ne prennent pas forcément la même place suivant la police choisie.

tu mets beaucoup plus de "i"  que de "w" sur une ligne par exemple.


http://img114.imageshack.us/img114/8519/userbar175801nb.gif
Pourquoi ne puis-je vivre comme n'importe quel être humain ? Pourquoi mon destin est-il de ne pouvoir cesser de me battre ?

Hors ligne

 

#9 07-08-2013 12:28:48

Dadone  
Membre Power Geek
Lieu: Avon (Seine et Marne)
Date d'inscription: 19-02-2007
Messages: 252
Pépites: 985
Banque: 0
Site web

Re: Datawindow: Comment lire la hauteur d'une colonne (autosize)

Maestro a écrit:

Dadone: ;) J'ai essayé cela aussi, mais le petit bmol c'est quand tu as un carriage return, comment le prendre en consideration? et de mettre tous ça dans l'expression un peut compliquer, non? Ta solution le prend en considération?

En ce qui concerne l'expression non, cela n'est pas compliqué pour le problème initialement posé.
En revanche pour le nouveau problème, il s'agit de compter les retours à la ligne dans une colonne en saisie, si j'ai bien compris.
Si on arrive à les compter la formule devient un peu plus complexe mais rien de rédhibitoire
Alors comment fait-on pour récupérer le nombre de retour à la ligne, peut être que quelqu'un connait la réponse ?

Dernière modification par Dadone (07-08-2013 12:35:24)

Hors ligne

 

#10 07-08-2013 12:34:04

Dadone  
Membre Power Geek
Lieu: Avon (Seine et Marne)
Date d'inscription: 19-02-2007
Messages: 252
Pépites: 985
Banque: 0
Site web

Re: Datawindow: Comment lire la hauteur d'une colonne (autosize)

rincevent a écrit:

Attention, tous les caractères ne prennent pas forcément la même place suivant la police choisie.

tu mets beaucoup plus de "i"  que de "w" sur une ligne par exemple.

Il est toujours possible de prendre une police à espacement constant.
Et si une ligne contient suffisamment de caractères tu auras en probabilités a peu près toujours le même nombre de caractères.

Dernière modification par Dadone (07-08-2013 12:38:46)

Hors ligne

 

#11 07-08-2013 12:55:14

Dadone  
Membre Power Geek
Lieu: Avon (Seine et Marne)
Date d'inscription: 19-02-2007
Messages: 252
Pépites: 985
Banque: 0
Site web

Re: Datawindow: Comment lire la hauteur d'une colonne (autosize)

Dadone a écrit:

Alors comment fait-on pour récupérer le nombre de retour à la ligne, peut être que quelqu'un connait la réponse ?

Directement dans l'objet datawindow cela ne semble pas possible.
Il faut donc créer une fonction globale qui retourne le nombre de retour à la ligne et utiliser cette fonction dans l'objet datawindow en lui passant les données contenues dans la colonne.

Dernière modification par Dadone (07-08-2013 12:57:04)

Hors ligne

 

#12 07-08-2013 13:07:48

rincevent  
Modérateur
Award: bf
Lieu: Belgique
Date d'inscription: 06-02-2007
Messages: 722
Pépites: 100,002,023
Banque: 0

Re: Datawindow: Comment lire la hauteur d'une colonne (autosize)

Programmation orienté probabilité


http://img114.imageshack.us/img114/8519/userbar175801nb.gif
Pourquoi ne puis-je vivre comme n'importe quel être humain ? Pourquoi mon destin est-il de ne pouvoir cesser de me battre ?

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22