PB à toute heure et à tout moment. (à parcourir avec modération)

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 12-07-2007 07:34:20

vanille  
Membre
Date d'inscription: 12-07-2007
Messages: 19
Pépites: 249
Banque: 88,408,971,912

[RESOLU] Redimensionner les colonnes d'une datawindow

Bonjour à tous,

voici mon problème,
je voudrai redimensionner la taille de mes colonnes à la taille maximum de la valeur des colonnes.

par exemple : colonne nom, j'ai deux lignes ramener par le retrieve qui sont : TOTO et TOUTOU

la valeur maximum de la colonne nom c'est TOUTOU, je voudrai que ma colonne nom prenne la largeur de TOUTOU.

Je ne sais pas si je me suis bien fait comprendre.

Par avance merci.

Hors ligne

 

#2 12-07-2007 08:21:23

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] Redimensionner les colonnes d'une datawindow

vanille a écrit:

Bonjour à tous,

voici mon problème,
je voudrai redimensionner la taille de mes colonnes à la taille maximum de la valeur des colonnes.

par exemple : colonne nom, j'ai deux lignes ramener par le retrieve qui sont : TOTO et TOUTOU

la valeur maximum de la colonne nom c'est TOUTOU, je voudrai que ma colonne nom prenne la largeur de TOUTOU.

Je ne sais pas si je me suis bien fait comprendre.

Par avance merci.

bijour,
il suffit de multiplier le nombre de valeur par rapport à la taille d'une seule valeur.
tu determines , sur ta datawindow, une colonne invisible, ne pouvant contenir qu'un Caractère.
et tu te bases par rapport à celle la...  celle-ci prenant en compte la taille de la colonne, du caractere, ect...

voila voilou


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

Hors ligne

 

#3 12-07-2007 08:38:20

vanille  
Membre
Date d'inscription: 12-07-2007
Messages: 19
Pépites: 249
Banque: 88,408,971,912

Re: [RESOLU] Redimensionner les colonnes d'une datawindow

Merci pour ton aide mais comme je suis un peu novice dans l'art, je n'ai rien compris.

Hors ligne

 

#4 12-07-2007 09:43:42

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

Re: [RESOLU] Redimensionner les colonnes d'une datawindow

Bonjour et bienvenue, si j'ai bien suivi le principe est de calculer la largeur de N caractères en extrapolant la taille de 1 caractère.
Attention : cela fonctionnera parfaitement uniquement avec les polices de caractères à chasse fixe (ex : courier)

EDIT : j'ai un doute datastore= pas de control
s'agit-il en fait de la taille de la colonne de données char(n) ? le cas échéant dans quel but ?


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

Hors ligne

 

#5 12-07-2007 13:58:02

vanille  
Membre
Date d'inscription: 12-07-2007
Messages: 19
Pépites: 249
Banque: 88,408,971,912

Re: [RESOLU] Redimensionner les colonnes d'une datawindow

Merci pour ton accueil eRaSorZ

j'ai besoin de redimensionner mes colonnes à la taille de la valeur maximale afin qu'à l'impression les utilisateurs ne se retrouvent pas avec des colonnes tronquées.

je vais t'expliquer depuis le début.
je dois afficher (valable aussi pour l'impression) des colonnes selon des critères choisis par l'utilisateur.
par exemple : lorsque l'utilisateur a choisi de chercher des personnes à partir d'une date qu'il a entré, il veut voir à l'écran la date, le nom et le prénom, s'il rentre juste le nom, il veut juste voir le le prénom puis le nom après. => donc l'ordre des colonnes n'est pas toujours le même.

voici ce que j'ai fait
1. j'ai une datawindow dw1 de type tabular qui ramène mes données issues de la table selon les critères choisis par l'utilisateur. (les colonnes sont : date, nom et prénom)
2. j'ai crée une datawindow dw2 de type external - grid avec les mêmes nombres de colonnes (les colonnes sont col1,col2 et col3)
3. je fais un rowscopy de la dw1 vers la dw2
4. le rajoute les entêtes dw2.modify("col1.text='Date'") etc
après avoir tout insérer, je voudrai redimensionner mes colonnes de tel sorte à ce que les colonnes ne soient pas trop larges ou trop petites

je ne sais pas si tu m'as compris.

En tous les cas, MERCI pour votre aide précieux.

Hors ligne

 

#6 12-07-2007 14:20:34

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

Re: [RESOLU] Redimensionner les colonnes d'une datawindow

Donc c'est effectivement une datawindow (et non un datastore...)

Le mieux serait d'avoir une DW grid avec les colonnes nom,prénom,date ajustée à la bonne taille dès le départ
ensuite l'utilisateur (si tu l'autorise) peut modifier la largeur des colonnes ou les déplacer à sa guise

Sinon par script :

Code: pb

// position
dw_1.modify( "column_1.x=100" )

// largeur
dw_1.modify( "column_1.width=500" )

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

Hors ligne

 

#7 12-07-2007 14:35:03

vanille  
Membre
Date d'inscription: 12-07-2007
Messages: 19
Pépites: 249
Banque: 88,408,971,912

Re: [RESOLU] Redimensionner les colonnes d'une datawindow

d'accord pour l'affichage mais en ce qui concerne l'impression?

c'est surtout l'impression qui m'inquiète.

à savoir que j'ai les PFCs à ma disposition mais je ne sais pas l'utiliser.

Hors ligne

 

#8 12-07-2007 14:44:13

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Redimensionner les colonnes d'une datawindow

Autre astuce de sioux
Attention il faut suivre :
1 - Poser une colonne (string) avec la propriété "autosize height" de cochée
2 - Mettre le paramètre escapement à 900 (90 degré) dans l'onglet font des propriété de la colonne
3 - Mettre la valeur à mesurer dans la colonne
4 - Récupérer la propriété Height de la colonne => c'est la longueur du texte en Pixel

Bon il faut encore tester le truc.... J'ai juste testé vite fait  dans le painter DW.


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#9 12-07-2007 14:53:35

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Redimensionner les colonnes d'une datawindow

Chrnico a écrit:

Autre astuce de sioux
Attention il faut suivre :
1 - Poser une colonne (string) avec la propriété "autosize height" de cochée
2 - Mettre le paramètre escapement à 900 (90 degré) dans l'onglet font des propriété de la colonne
3 - Mettre la valeur à mesurer dans la colonne
4 - Récupérer la propriété Height de la colonne => c'est la longueur du texte en Pixel

Bon il faut encore tester le truc.... J'ai juste testé vite fait  dans le painter DW.

Est-ce que qq peut faire le test avec un run ? j'ai pas d'appli sous la main....


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#10 12-07-2007 14:58:10

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Redimensionner les colonnes d'une datawindow

Chrnico a écrit:

Chrnico a écrit:

Autre astuce de sioux
Attention il faut suivre :
1 - Poser une colonne (string) avec la propriété "autosize height" de cochée
2 - Mettre le paramètre escapement à 900 (90 degré) dans l'onglet font des propriété de la colonne
3 - Mettre la valeur à mesurer dans la colonne
4 - Récupérer la propriété Height de la colonne => c'est la longueur du texte en Pixel

Bon il faut encore tester le truc.... J'ai juste testé vite fait  dans le painter DW.

Est-ce que qq peut faire le test avec un run ? j'ai pas d'appli sous la main....

Bon j'ai testé, ça marche pas...
D'autres idées ????

Au moins ça a remis la propriété escapement en lumière


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#11 12-07-2007 16:12:04

vanille  
Membre
Date d'inscription: 12-07-2007
Messages: 19
Pépites: 249
Banque: 88,408,971,912

Re: [RESOLU] Redimensionner les colonnes d'une datawindow

Merci pour ton aide Chrnico.

pour récupérer la taille de mes valeurs je me suis pris comme suit :

j'ai rajouté des computes dans ma datawindow (partie summary, je les rends invisible) dans lesquels je récupère la taille maximum de mes valeurs.

max(len(trim(macolonne)))

j'ai rajouté autant de computes que de colonnes.

donc j'ai le width des colonnes initialement et la taille des colonnes.
l'un en PBU et l'autre en long

je voudrais convertir la taille des colonnes en PBU et ça je ne sais pas faire.

SOS
le width est en PBU et la taille de la colonne

Hors ligne

 

#12 12-07-2007 16:55:51

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Redimensionner les colonnes d'une datawindow

vanille a écrit:

je voudrais convertir la taille des colonnes en PBU et ça je ne sais pas faire.

Vas voir l'aide sur les fonctions PixelsToUnits et UnitsToPixels.

vanille a écrit:

SOS
le width est en PBU et la taille de la colonne

L'unité de mesure de la DW est définie par la propriété  Units de l'onglet général


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#13 12-07-2007 17:35:21

vanille  
Membre
Date d'inscription: 12-07-2007
Messages: 19
Pépites: 249
Banque: 88,408,971,912

Re: [RESOLU] Redimensionner les colonnes d'une datawindow

j'ai déjà joué un peu avec ces deux fonctions. Je dois mal les utiliser

je pense que je vais faire comme eRaSoRZ.

Hors ligne

 

#14 13-07-2007 10:21:14

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] Redimensionner les colonnes d'une datawindow

voila une solution... tout droit sortie de ma botte secrete...

tu ajoutes une datawindow , en invisible (je n'ai pas essayé par une datastore, ca devrait fonctionner)

ici, elle s'appelle dw_1

et dans un script :

Code: pb

string   ls_syntax
string  ls_presentation
string  ls_sql, ls_erreur
long          ll_longueur
ls_sql = "select  'pbadonf camembert aware' as 'pbdf'"
ls_presentation   = "style(type=tabular)"  
ls_syntax = SQLCA.SyntaxFromSQL(ls_sql,ls_presentation, ls_erreur)
  
IF Len(ls_erreur) > 0 THEN
    MessageBox("Information", &
      "Erreur dans: " + ls_erreur)
    RETURN  
END IF
  
dw_1.Create( ls_syntax, ls_erreur)
  
IF Len(ls_erreur) > 0 THEN
  MessageBox("Information", &
  "Erreur dans: " + ls_erreur)
  RETURN  
END IF
  
dw_1.Settransobject(sqlca)
dw_1.retrieve()

ll_longueur = long(dw_1.object.pbdf.width)


tout se joue dans le ls_sql = "select  'pbadonf camembert aware' as 'pbdf'"

donc, à chaque fois que tu voudras determiner la taille d'une colonne, tu mettras le contenu de ton texte...
j'ai testé , et ca fonctionne super top


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

Hors ligne

 

#15 13-07-2007 10:53:35

vanille  
Membre
Date d'inscription: 12-07-2007
Messages: 19
Pépites: 249
Banque: 88,408,971,912

Re: [RESOLU] Redimensionner les colonnes d'une datawindow

Bonjour pick ouic,

merci, je vais tester.

je te tiendrai au courant.

Hors ligne

 

#16 13-07-2007 11:31:23

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

Re: [RESOLU] Redimensionner les colonnes d'une datawindow

pick ouic a écrit:

voila une solution... tout droit sortie de ma botte secrete...
...

Joli, tu devrais t'accorder un paquet de pépites pour ça, en tout cas moi je prends bonne note de l'astuce.


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

 

#17 13-07-2007 12:50:09

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] Redimensionner les colonnes d'une datawindow

pour info, la taille de la longueur recupérée est en unité pb.

il suffit apres de faire... pour l'avoir en unité pixel.

Code: pb

ll_longueur = long(dw_1.object.pbdf.width)
ll_longueur = UnitsToPixels(ll_longueur, XUnitsToPixels!)


et pour le height

ce sera :

Code: pb

ll_hauteur = long(dw_1.object.pbdf.height)
ll_hauteur = UnitsToPixels(ll_hauteur, YUnitsToPixels!)

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

Hors ligne

 

#18 13-07-2007 12:53:20

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Redimensionner les colonnes d'une datawindow

pick ouic a écrit:

voila une solution... tout droit sortie de ma botte secrete...

tu ajoutes une datawindow , en invisible (je n'ai pas essayé par une datastore, ca devrait fonctionner)

ici, elle s'appelle dw_1

et dans un script :

Code: pb

string   ls_syntax
string  ls_presentation
string  ls_sql, ls_erreur
long          ll_longueur
ls_sql = "select  'pbadonf camembert aware' as 'pbdf'"
ls_presentation   = "style(type=tabular)"  
ls_syntax = SQLCA.SyntaxFromSQL(ls_sql,ls_presentation, ls_erreur)
  
IF Len(ls_erreur) > 0 THEN
    MessageBox("Information", &
      "Erreur dans: " + ls_erreur)
    RETURN  
END IF
  
dw_1.Create( ls_syntax, ls_erreur)
  
IF Len(ls_erreur) > 0 THEN
  MessageBox("Information", &
  "Erreur dans: " + ls_erreur)
  RETURN  
END IF
  
dw_1.Settransobject(sqlca)
dw_1.retrieve()

ll_longueur = long(dw_1.object.pbdf.width)


tout se joue dans le ls_sql = "select  'pbadonf camembert aware' as 'pbdf'"

donc, à chaque fois que tu voudras determiner la taille d'une colonne, tu mettras le contenu de ton texte...
j'ai testé , et ca fonctionne super top

Pas mal !
Je regrette de ne pas avoir trouvé avant toi
Mais bon, je suis en vacances (4 jours seulement ) et ma femme trouve que je passe déjà beaucoup de temps sur ce forum


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#19 13-07-2007 13:02:00

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] Redimensionner les colonnes d'une datawindow

ha ha ha ha hah


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

Hors ligne

 

#20 13-07-2007 14:11:55

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

Re: [RESOLU] Redimensionner les colonnes d'une datawindow

Chrnico a écrit:

Mais bon, je suis en vacances (4 jours seulement ) et ma femme trouve que je passe déjà beaucoup de temps sur ce forum

Va t'aérer la tête, on te gardes ta place au chaud t'inquiète ;-)


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

 

#21 13-07-2007 16:25:28

vanille  
Membre
Date d'inscription: 12-07-2007
Messages: 19
Pépites: 249
Banque: 88,408,971,912

Re: [RESOLU] Redimensionner les colonnes d'une datawindow

coucou tous,

he bien je n'ai pas eu le temps de tester pour toutes mes colonnes mais je l'ai fait pour une.
Et ça a l'air de marcher.

Je te tire mon chapeau pick ouic.
Je suis très contente de connaitre ce forum.

Bon week end à tous.

PS on peut classer le sujet je pense.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22