Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
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
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
Bonjour, apparemment tu n'es pas le premier à te casser les dents sur cette problématique : http://pbadonf.fr/forum/viewtopic.php?id=3321
Hors ligne
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
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
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
Ca c'est mon expression:
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
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.
Hors ligne
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
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
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
Programmation orienté probabilité
Hors ligne
Pages: 1