Powerbuilder pour les completement Geeks !

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 09-10-2007 07:33:12

LeCiao  
Membre Geek
Date d'inscription: 05-09-2007
Messages: 87
Pépites: 18
Banque: 362,050,507,885,535

[RESOLU] Pb couleur écriture sur DW impression

Voilà j'ai un petit soucis, et c'est pas facile à expliquer...

Sur notre appli, on utilise un objet qui construit dynamiquement une DW d'impression à partir d'une DW de la fenêtre.
Sur la DW de la fenêtre l'utilisateur peut paramètrer la couleur de fond et la couleur de texte des colonnes.
Mon problème vient du fait que la DW d'impression imprime le texte de toutes les colonnes de la couleur que choisit l'utilisateur MAIS toujours sur fond blanc.
Du coup quand l'utilisateur a choisi une couleur de fonte blanche et bien l'impression ne sort rien (blanc sur fond blanc)...

Dans mon code générique de fabrication de ma DW d'impression, je voudrais gérer le fait que si l'écriture est blanche on la remet en noire, et je ne trouve pas de solution à ce problème.

Voici le code mis au niveau de la propriété Color de toutes les colonnes :

Code: pb

f_get_font_color_blotter(selection)


En exportant la DW on obtient donc le code :

Code: pb

color=0~tf_get_font_color_blotter(selection)


Et voici une partie du code de génération de la DW d'impression à partir de la DW de l'écran

Code: pb

FOR li_current_las_objects_position = 1 TO li_las_objects_size
  IF Not ( lb_visible ) THEN  // Si la colonne est invisible
    ls_current_modify =  las_object [ li_current_las_objects_position ] + ".Visible=0" + "~t" + &
                  las_object [ li_current_las_objects_position ] + ".X=1" + "~t" + &
                  las_object [ li_current_las_objects_position ] + ".Y=1"
  ELSE                             // Sinon on la positionne au bon endroit et on lui donne la bonne taille
    ls_current_modify =  las_object [ li_current_las_objects_position ] + ".X=" + string ( ll_x ) + "~t" + &
                  las_object [ li_current_las_objects_position ] + ".Width=" + string ( ll_width ) + "~t" + &
                  las_object [ li_current_las_objects_position ] + ".Border=0"
  END IF

  gnv_app.iuo_dw_services.uof_add_statement_in_modify_string ( ls_global_modify , ls_current_modify )
NEXT


Donc mon idée serait de modifier le code :

Code: pb

    ls_current_modify =  las_object [ li_current_las_objects_position ] + ".X=" + string ( ll_x ) + "~t" + &
                  las_object [ li_current_las_objects_position ] + ".Width=" + string ( ll_width ) + "~t" + &
                  las_object [ li_current_las_objects_position ] + ".Border=0"


Comme ci-dessous, mais en rajoutant un test si la fonte de couleur blanche (valeur=16777215) alors on met en noir :

Code: pb

    ls_current_modify =  las_object [ li_current_las_objects_position ] + ".X=" + string ( ll_x ) + "~t" + &
                  las_object [ li_current_las_objects_position ] + ".Width=" + string ( ll_width ) + "~t" + &
                  las_object [ li_current_las_objects_position ] + ".Border=0" + "~t" + &
                  las_object [ li_current_las_objects_position ] + ".Color=0"


Mais c'est là que ça bloque car je ne vois pas comment écrire mon test ?????

Dernière modification par LeCiao (10-10-2007 08:09:29)

Hors ligne

 

#2 09-10-2007 07:44:59

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Pb couleur écriture sur DW impression

D'après : La fonction DESCRIBE()

Je dirai que le code suivant devrait fonctionner (sans garanties) :

Code: pb

dw_1.Describe("Evaluate('uneColonne.Color',1)")


Quoi qu'il en soit, tu trouveras plus d'infos ici que sur la doc de PB. Je te conseille d'utilsier la fonction de recherch du site (mais pas la recherche rapide)




Edit : La réponse à ta question a déjà été posté sur ce forum
[ASTUCE] Récup dans dw valeur propriété d'un de ses objets à une ligne donnée




PS : Mais pourquoi ne pas appeler directement f_get_font_color_blotter ?

Dernière modification par shahin (09-10-2007 07:54:08)


never let people work on more than one thing at once.

Hors ligne

 

#3 09-10-2007 07:48:14

Melke  
L'Enigmatique Troll Taciturne
Lieu: Paris
Date d'inscription: 30-05-2007
Messages: 385
Pépites: 9,994
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Pb couleur écriture sur DW impression

Salut

Il ne manque pas n modify sur le Background plutôt que color
Color je pense que c'est pour les parties de ta datawindow (Detail, Header...)
Et Background pour un objet particulier...




Diantre... je était à côté de la plaque...

Dernière modification par Melke (09-10-2007 07:57:11)

Hors ligne

 

#4 09-10-2007 09:31:20

LeCiao  
Membre Geek
Date d'inscription: 05-09-2007
Messages: 87
Pépites: 18
Banque: 362,050,507,885,535

Re: [RESOLU] Pb couleur écriture sur DW impression

shahin a écrit:

D'après : La fonction DESCRIBE()

Je dirai que le code suivant devrait fonctionner (sans garanties) :

Code: pb

dw_1.Describe("Evaluate('uneColonne.Color',1)")

Le problème c'est que dans mon code générique je n'ai plus de DW, seulement des tableaux de string, donc je ne peux plus utiliser Describe et donc Evaluate non plus.

shahin a écrit:

Quoi qu'il en soit, tu trouveras plus d'infos ici que sur la doc de PB. Je te conseille d'utilsier la fonction de recherch du site (mais pas la recherche rapide)




Edit : La réponse à ta question a déjà été posté sur ce forum
[ASTUCE] Récup dans dw valeur propriété d'un de ses objets à une ligne donnée

Oui j'avais trouvé ce code, mais comme dit précédement je n'ai plus ma DW au moment où je dois modifier cette propriété.

shahin a écrit:

PS : Mais pourquoi ne pas appeler directement f_get_font_color_blotter ?

Parce que cette fonction est utilisable sur la DW qui me pose problème mais pas sur d'autresDW de l'appli et comme le code de construction de la DW d'impression est générique, ça va pas marcher...

Hors ligne

 

#5 10-10-2007 08:08:33

LeCiao  
Membre Geek
Date d'inscription: 05-09-2007
Messages: 87
Pépites: 18
Banque: 362,050,507,885,535

Re: [RESOLU] Pb couleur écriture sur DW impression

En fait j'ai trouvé la solution en modifiant la fonction f_get_font_color_blotter... Mais je trouve pas cela très propre !!!
J'aurais bien aimé modifié la propriété color...

Dernière modification par LeCiao (10-10-2007 08:08:48)

Hors ligne

 

#6 10-10-2007 16:46:38

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Pb couleur écriture sur DW impression

LeCiao a écrit:

Parce que cette fonction est utilisable sur la DW qui me pose problème mais pas sur d'autresDW de l'appli et comme le code de construction de la DW d'impression est générique, ça va pas marcher...

Dans ce cas, faire une recherche pour voir si f_get... est utilisée ou pas


never let people work on more than one thing at once.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22