Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

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.

#51 28-08-2007 16:06:48

Mr Pink Eyes  
Power Excel
Award: bf
Lieu: Helsinki
Date d'inscription: 14-06-2007
Messages: 226
Pépites: 10,800
Banque: 24,007,877,677,213

Re: Exporter une DW mise en forme dyn. dans PB vers EXCEL

fmxstyle a écrit:

J'ai un probleme pour la recup de la valeur de la couleur de fond d'une cellule....

For c = 1 to numcols
   
    colname         = dw_cash_flow.describe("#" + string(c) + ".name")
    col_VISIBLE    = dw_cash_flow.describe("#" + string(c) + ".visible")
       
    if integer(col_VISIBLE) = 1 then
        For r = 1 to numrows
            col_TYPE            = dw_cash_flow.describe(colname + ".coltype")
            col_BACKCOLOR              = dw_cash_flow.describe("Evaluate("+ "'" + colname + ".BackGround.Color, "+ "'" + string(r)  + ")" )
                       
            xlsub.cells[r,c]                   = dw_cash_flow.object.data[r,c]
            xlsub.cells[r,c].Interior.Color     = long(col_BACKCOLOR)
           
        Next
    end if
Next

Qu'est ce qui ne va pas c'est pas COLOR le nom de la propriété pourtant non ?

T'as essayé avec BackGroundColor plutot (sans le point) ?


http://www.blagoticone.com/avatar/animes/017.gif

Hors ligne

 

#52 28-08-2007 16:11:37

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: Exporter une DW mise en forme dyn. dans PB vers EXCEL

carrement et c pareil.... COLOR aussi testé pas mieux....

Il n y a que cette methode (evaluate dans un decribe) pour recupe la valeur d'une propriété d'une cellule de la DW ?


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#53 28-08-2007 16:15:55

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: Exporter une DW mise en forme dyn. dans PB vers EXCEL

Essaies ça :

Code: pb

col_BACKCOLOR = dw_cash_flow.describe("Evaluate(" + colname + ".BackGround.Color, " + string(r)  + ")" )

Tu dois donc tu peux (Kant)

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

Hors ligne

 

#54 29-08-2007 06:22:17

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: Exporter une DW mise en forme dyn. dans PB vers EXCEL

Avec le code suivant :

col_BACKCOLOR = dw_cash_flow.describe("Evaluate(" + colname + ".BackGround.Color, " + string(r)  + ")" )

Pas mieux qu'avant car en debug je recupere un "!" dans ma variable de type string col_backcolor... je cherche je cherche mais pas moyen pour le moment


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#55 29-08-2007 07:16:17

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: Exporter une DW mise en forme dyn. dans PB vers EXCEL

Il y a effectivement une erreur de syntaxe, il faut ajouter un simple cote après le Evaluate( et un derrière le Color...

col_BACKCOLOR = dw_cash_flow.describe("Evaluate('" + colname + ".BackGround.Color', " + string(r)  + ")" )

Tout autre chose, pour ton cas, n'oublie pas également de vérifier le BackGround.Mode pour voir si tu n'es pas en transparent...


Tu dois donc tu peux (Kant)

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

Hors ligne

 

#56 29-08-2007 07:16:48

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: Exporter une DW mise en forme dyn. dans PB vers EXCEL

Chrnico a écrit:

Je veux bien aider qui veut à résoudre ses problèmes ou améliorer son code. De là à diffuser le code de la bibliothèque d'objets de N2I que j'améliore depuis pas mal d'années et qui me permet de gagner ma croute via mon métier d'éditeur, il y a un pas que je suis pas certain de vouloir franchir maintenant. J'espère que tu me comprends...

Non seulement je te comprend, mais je t'approuve.
Je voulais juste te chambrer


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

Hors ligne

 

#57 29-08-2007 08:09:27

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: Exporter une DW mise en forme dyn. dans PB vers EXCEL

Pareil que ce soit avec le nom de la colonne dans une string ou le numero de colonne dans la boucle...
Le message suivant de la DW apparait "expression is not valid"

col_BACKCOLOR    = dw_cash_flow.describe("Evaluate('" + colname + ".BackGround.Color', " + string(r)  + ")"

Ca commence a me saouler je n'avance plus... il me faut pourtant pouvoir recuperer la couleur de fond de ma cellule !

Une idée ?


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#58 29-08-2007 08:18:58

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: Exporter une DW mise en forme dyn. dans PB vers EXCEL

Le truc c'est que on ne peut pas parler aux propriété de la cellule dans la fonction EVALUATE non ? ca me semble faux rien que d'aspect. Si c'est pour evaluer une expression dans ce cas OK

Nouvelle idée dans ce cas : Pourquoi ne pas récupérer l'expression qui ce situe derriere le champ et l'integrer ensuite entre les parenthese de mon EVALUATE, comme cela il reevalue l'expression et me renvoie la bonne valeur non ?


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#59 29-08-2007 08:22:44

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: Exporter une DW mise en forme dyn. dans PB vers EXCEL

Comment se fait il qu'il soit si fastidieux d'avoir acces aux proprietés des champs de la datawindow sur une ligne données, je comprends pas qu'il n'est pas améliorer la facon d'y accéder par programmation, il aurait été utile de pouvoir coder dans ce genre :

dw_1.object.fieldname[i].background.color ou encore dw_1.object.fieldname.background.color[i]

c'est vraiment la misere ligne à ligne les champs d'une DW... vraiment !


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#60 29-08-2007 08:37:22

wazou1812  
Modératrice
Award: bf
Date d'inscription: 24-05-2006
Messages: 610
Pépites: 2,097
Banque: 3,536,631,712,504

Re: Exporter une DW mise en forme dyn. dans PB vers EXCEL

fmxstyle a écrit:

col_BACKCOLOR    = dw_cash_flow.describe("Evaluate('" + colname + ".BackGround.Color', " + string(r)  + ")"

Une idée ?

la doc de pb donne ça comme exemple

Code: pb

ls_data = dw_1.Describe("oval_1.Background.Color")


??

Hors ligne

 

#61 29-08-2007 08:39:56

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: Exporter une DW mise en forme dyn. dans PB vers EXCEL

Ouai mais la tu recuperera la couleur de fond sur la colonne en question pas sur la ligne, on est d'accord ?


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#62 29-08-2007 08:42:11

Mr Pink Eyes  
Power Excel
Award: bf
Lieu: Helsinki
Date d'inscription: 14-06-2007
Messages: 226
Pépites: 10,800
Banque: 24,007,877,677,213

Re: Exporter une DW mise en forme dyn. dans PB vers EXCEL

fmxstyle a écrit:

Comment se fait il qu'il soit si fastidieux d'avoir acces aux proprietés des champs de la datawindow sur une ligne données, je comprends pas qu'il n'est pas améliorer la facon d'y accéder par programmation, il aurait été utile de pouvoir coder dans ce genre :

dw_1.object.fieldname[i].background.color ou encore dw_1.object.fieldname.background.color[i]

c'est vraiment la misere ligne à ligne les champs d'une DW... vraiment !

Je suis assez d'accord avec toi sur ce point là.


http://www.blagoticone.com/avatar/animes/017.gif

Hors ligne

 

#63 29-08-2007 08:50:10

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: Exporter une DW mise en forme dyn. dans PB vers EXCEL

ls_data = dw_1.Describe("oval_1.Background.Color")

Effectivement la valeur de la couleur est récupérée mais elle ne change jamais malgré que sur la ligne elle soit rouge ou blanche....


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#64 29-08-2007 08:52:04

Mr Pink Eyes  
Power Excel
Award: bf
Lieu: Helsinki
Date d'inscription: 14-06-2007
Messages: 226
Pépites: 10,800
Banque: 24,007,877,677,213

Re: Exporter une DW mise en forme dyn. dans PB vers EXCEL

Bon, le problème vient du fait que la méthode Evaluate ne peut pas acceder aux propriétés de la colonne mais juste à sa valeur.

Je te conseil donc de mettre en place dans ta DW un computed field dans lequel tu récupère la valeur RGB en fonction de la valeur de ton champ. Après tu peux récuperer la couleur via un

Code: pb

dw_cash_flow.describe("Evaluate('moncomputed_field', " + string(r)  + ")" 


Je continue de chercher pour essayer de trouver un truc moins contraignant mais je te promets rien


http://www.blagoticone.com/avatar/animes/017.gif

Hors ligne

 

#65 29-08-2007 09:02:03

wazou1812  
Modératrice
Award: bf
Date d'inscription: 24-05-2006
Messages: 610
Pépites: 2,097
Banque: 3,536,631,712,504

Re: Exporter une DW mise en forme dyn. dans PB vers EXCEL

Ragardez un post d'un membre nommé "pautonnier", cela semble répondre à votre problème.

Hors ligne

 

#66 29-08-2007 09:08:26

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: Exporter une DW mise en forme dyn. dans PB vers EXCEL

c'est bien ce que j'avais lu dans l'aide de PB... grrrrrr

De toute facon pour colorer ligne a ligne les cellules de ma datawindow, j'ai du utiliser la technique suivante (tres contraignante selon moi) :

1. Ajouter dans la DW autant de champs couleur (soit la valeur en long de la couleur de fond souhaité pour le champ affiché) que de cellules pour lesquelles je souhaitait controler ligne a ligne la couleur.

2. J'ai affecté dans le background.color expression (dans le painter de la dw) la valeur du nouveau champ couleur ajouté

3. Par programmation je viens changer la valeur entiere du champ qui n'est autre que la valeur de la couleur de ma cellule => ca marche ...

exemple : un champ prix, un autre nommé prix_backcolor (entier) qui devient l'expression du background.color de PRIX

En prog je dit ceci :


for i = 1 to dw1.rowcount()
      if dw1.object.prix[i] < 0.00 then
           dw1.object.prix_backcolor[i] = rgb(255.0.0)
      else
           dw1.object.prix_backcolor[i] = rgb(255.255.255)
      end if
next

Ca marche mais paye ta gestion de la couleur de fond moi j'aurai aimé pouvoir la changer dynamiquement en accedant directement à la propriete mais sur la ligne .... Du coup la DW devient imbittable a force de rajouter des champs pour gerer tel ou tel propriete sur la ligne....

Dernière modification par fmxstyle (29-08-2007 09:11:05)


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#67 29-08-2007 09:21:56

Mr Pink Eyes  
Power Excel
Award: bf
Lieu: Helsinki
Date d'inscription: 14-06-2007
Messages: 226
Pépites: 10,800
Banque: 24,007,877,677,213

Re: Exporter une DW mise en forme dyn. dans PB vers EXCEL

Tu peux le gerer directement dans ta DW ça. Dans les propriétés de ton champ, tu ajoute en expression du backgroundcolor :

Code: pb

if(prix>0,rgb(255,255,255),rbg(255,0,0))


Sinon ta couleur de cellule, si elle ne dépend que du fait que ta valeur soit >0 ou non tu peux le gerer avec ce code :

Code: pb

col_BACKCOLOR = dw_cash_flow.describe("Evaluate('if(" + colname + "<0,rgb(255,0,0),rgb(255,255,255))', " + string(r)  + ")" )

Dernière modification par Mr Pink Eyes (29-08-2007 09:22:25)


http://www.blagoticone.com/avatar/animes/017.gif

Hors ligne

 

#68 29-08-2007 09:33:23

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: Exporter une DW mise en forme dyn. dans PB vers EXCEL

Ok pour le tip de Pautonnier...

Resumons la misere dans laquelle je me trouve :

1. Je dois coder un prog. générique permettant en gros l'export d'une DW telle qu'affichée à l'écran vers EXCEL.
2. En gros, récupérer la mise en forme d'un champ d'une DW sur une ligne donnée est une misere pas possible
    => Pour chacuns des champs de la DW, l'acces aux valeurs des proprietés de mise en forme sur une ligne donnée nécessite l'ajout d'un computed field ramenant la valeur souhaitée (via un decribe de cette proprieté).
3. Le prog doit pouvoir gérer different type de datawindow...

En gros faut que je recode à moi seul la librairie que j'avais téléchargé et testé DW2xls. Je sens que je vais debourser 50€ pas tard plutot que de passer une voir deux semaine pour avoir un resultat (moyen au final si cela se trouve)....

Je suis donc dans de beau draps avec ca....


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#69 29-08-2007 09:40:58

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: Exporter une DW mise en forme dyn. dans PB vers EXCEL

Ya aucun probleme sur ca Mr Pink Eyes mais encore une fois ce ne sera pas générique puisque dédié.

Moi je veux etre capable au pire de récupérer la proprieté de mise en forme quit à ce que cela passe par l'ajout dynamique d'un ou plusieurs computed field dont j'affecterai dynam. l'expression.

D'ailleurs a votre avis, pourrait on regler le probleme ou est ce qu'il serait possible d'ajouter dyn. un UNIQUE computed_field dont le role serait de me ramener les valeurs des diverses proprietés de mise en forme de ma cellule.

Comment ? Et bien si l'on peut d'une part ajouter un computed field dyn. dans la DW ET que l'on est en mesure de lui changer son expression (dyn. aussi) alors je pourrai avoir acces à toutes mes proprietés, non ? Serai ce possible et en terme de performance qu'est ce que cela donnerai?


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#70 29-08-2007 13:15:16

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: Exporter une DW mise en forme dyn. dans PB vers EXCEL

fmxstyle a écrit:

ls_data = dw_1.Describe("oval_1.Background.Color")

Effectivement la valeur de la couleur est récupérée mais elle ne change jamais malgré que sur la ligne elle soit rouge ou blanche....

Question : est-ce bien la couleur de fond de tes colonnes que tu changes à chaque ligne, ou celle du détail avec toutes tes colonnes en background.mode transparent ?


Tu dois donc tu peux (Kant)

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

Hors ligne

 

#71 29-08-2007 13:15:39

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: Exporter une DW mise en forme dyn. dans PB vers EXCEL

fmxstyle a écrit:

Ya aucun probleme sur ca Mr Pink Eyes mais encore une fois ce ne sera pas générique puisque dédié.

Moi je veux etre capable au pire de récupérer la proprieté de mise en forme quit à ce que cela passe par l'ajout dynamique d'un ou plusieurs computed field dont j'affecterai dynam. l'expression.

D'ailleurs a votre avis, pourrait on regler le probleme ou est ce qu'il serait possible d'ajouter dyn. un UNIQUE computed_field dont le role serait de me ramener les valeurs des diverses proprietés de mise en forme de ma cellule.

Comment ? Et bien si l'on peut d'une part ajouter un computed field dyn. dans la DW ET que l'on est en mesure de lui changer son expression (dyn. aussi) alors je pourrai avoir acces à toutes mes proprietés, non ? Serai ce possible et en terme de performance qu'est ce que cela donnerai?

Laisse tomber cette usine à gaz


Tu dois donc tu peux (Kant)

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

Hors ligne

 

#72 29-08-2007 13:19:08

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: Exporter une DW mise en forme dyn. dans PB vers EXCEL

fmxstyle a écrit:

Le truc c'est que on ne peut pas parler aux propriété de la cellule dans la fonction EVALUATE non ? ca me semble faux rien que d'aspect. Si c'est pour evaluer une expression dans ce cas OK

Nouvelle idée dans ce cas : Pourquoi ne pas récupérer l'expression qui ce situe derriere le champ et l'integrer ensuite entre les parenthese de mon EVALUATE, comme cela il reevalue l'expression et me renvoie la bonne valeur non ?

Oulala je fatigue !
Il faut décomposer l'opération en deux lignes :

Code: pb

ls_bckcolor = dw_1.Describe(ls_colonne + ".Background.Color")
if pos(ls_bckcolor,"~t") > 0 then
   ls_bckcolor = dw_1.describe("Evaluate('"+ls_bckcolor+"', " + string(r)  + ")" 
end if


Ainsi sur les colonnes sans formule, tu récupères la couleur directement, sinon tu interprêtes la formule.


Tu dois donc tu peux (Kant)

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

Hors ligne

 

#73 29-08-2007 15:13:38

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: Exporter une DW mise en forme dyn. dans PB vers EXCEL

Ca a résolu ton problème fmx ?


Tu dois donc tu peux (Kant)

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

Hors ligne

 

#74 29-08-2007 15:30:20

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: Exporter une DW mise en forme dyn. dans PB vers EXCEL

merci pour le bout de code. Disons que ca avance mais c'est pas encore ca ... je tiens au jus de toute facon...


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#75 04-09-2007 06:59:49

Fafois  
Nouveau membre
Date d'inscription: 04-09-2007
Messages: 1
Pépites: 3
Banque: 0

Re: Exporter une DW mise en forme dyn. dans PB vers EXCEL

Tiens, ces fonctionnalités me disent quelque chose ...
On peut aussi rajouter la création d'onglets quand le rowcount dépasse 65000 lignes, etc.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22