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 31-03-2009 16:52:51

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,944

[RESOLU] Type de la colonne d'une DW

Salut à tous,   

Quelle fonction pourrais-je utiliser pour savoir  le type d’une colonne dans une DataWindow ?   

Merci d’avance

Dernière modification par mattdamon (31-03-2009 17:31:14)

Hors ligne

 

#2 31-03-2009 16:59:41

nico  
Modérateur
Award: bf
Lieu: Plélan le grand
Date d'inscription: 08-02-2007
Messages: 273
Pépites: 13
Banque: 9,223,372,036,854,775,808

Re: [RESOLU] Type de la colonne d'une DW

Code: pb

ls_type = Dw.Describe(ls_colonne+".Type")

Hors ligne

 

#3 31-03-2009 17:03:38

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,944

Re: [RESOLU] Type de la colonne d'une DW

Merci nico pour la réponse ainsi pour la rapidité

Hors ligne

 

#4 31-03-2009 17:08:20

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,944

Re: [RESOLU] Type de la colonne d'une DW

nico a écrit:

Code: pb

ls_type = Dw.Describe(ls_colonne+".Type")

Attend attend Nico, en faisant le débouggage ls_type me retourne : column    c'est quoi le problème ?

Hors ligne

 

#5 31-03-2009 17:19:00

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,944

Re: [RESOLU] Type de la colonne d'une DW

Merci Nico c'est fait...je l'ai testé avec le code ci-dessous :

Code: pb

ls_type = Dw.Describe(ls_colonne+".ColType")

Hors ligne

 

#6 31-03-2009 17:20:45

nico  
Modérateur
Award: bf
Lieu: Plélan le grand
Date d'inscription: 08-02-2007
Messages: 273
Pépites: 13
Banque: 9,223,372,036,854,775,808

Re: [RESOLU] Type de la colonne d'une DW

Tu ne  veux pas connaitre le type de d'objet ?
Autant pour moi, j'ai répondu un peu vite

Tu veux savoir si la colonne est de type caractère par exemple?

Code: pb

ls_type = Dw.Describe(ls_colonne+".ColType")

Hors ligne

 

#7 31-03-2009 17:21:51

nico  
Modérateur
Award: bf
Lieu: Plélan le grand
Date d'inscription: 08-02-2007
Messages: 273
Pépites: 13
Banque: 9,223,372,036,854,775,808

Re: [RESOLU] Type de la colonne d'une DW

Ben tu vois, t'as trouvé tout seul

Hors ligne

 

#8 31-03-2009 17:30:47

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,944

Re: [RESOLU] Type de la colonne d'une DW

   C'est RESOLU

Hors ligne

 

#9 31-03-2009 17:48:24

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,944

Re: [RESOLU] Type de la colonne d'une DW

Autant pour moi aussi, j'ai mis le sujet à RESOLU...

Est-ce qu'on peux pas faire le casting de String --> date, dateTime, Time

Ça marche pour les deux dernières CASE mais pas pour les trois premières.

Code: pb

   ls_type_argument = Dw.Describe(ls_argument+".ColType")

CHOOSE CASE ls_type_argument
      CASE "date"
        ld_date  = Dw.GetItemDate(al_ligne, Date(ls_argument))
      CASE "datet" 
        ldt_value  = Dw.GetItemDateTime(al_ligne,DateTime(ls_argument))
      CASE "time"
        lt_value  = Dw.GetItemTime(al_ligne,Time(ls_argument))    
      CASE "numbe", "decim" , "long", "real" 
        ll_value  = Dw.GetItemDecimal(al_ligne,Long(ls_argument))
      CASE "char("
        ls_value  = Dw.GetItemString(al_ligne,String(ls_argument))
  END CHOOSE

Dernière modification par mattdamon (31-03-2009 17:55:23)

Hors ligne

 

#10 31-03-2009 21:45:30

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

Re: [RESOLU] Type de la colonne d'une DW

ton code il donne limite envie de

un petit effort mon gars :

primo, je pense qu'en fait ls_type_argument = Left( Dw.Describe(ls_argument+".ColType"), 5 ) (peut-être un souci de ctrl^c/ctrl^v...)

deuxio, Dw.GetItemDate(al_ligne, Date(ls_argument))

GetItemXXX prend la ligne et la colonne (nom ou n°), du coup les deux derniers cas uniquement passent à la compil, et seul le GetItemString sera juste (string(une_string)=une_string) contrairement au Dw.GetItemDecimal(al_ligne,Long(ls_argument)) qui ne te renverra jamais rien de bon car Long(le_nom_de_colonne) ne sera de loin pas égal au numéro de la colonne...




date dwcontrol.GetItemDate ( long row, string column {, DWBuffer dwbuffer , boolean originalvalue } )
date dwcontrol.GetItemDate ( long row, integer column {, DWBuffer dwbuffer, boolean originalvalue } )

column   

The column location of the data. The datatype of the column must be date. Column can be a column number or a column name. The column number is the number of the column as it is listed in the Column Specification view of the DataWindow painter—not necessarily the number of the column in the Design view.

tertio, ton cas   ll_value  = Dw.GetItemDecimal sera erroné avec un nombre décimal, car tu l'affectes à un entier (il y aura un arrondi)


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

Hors ligne

 

#11 01-04-2009 10:00:49

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,944

Re: [RESOLU] Type de la colonne d'une DW

Bonjour,

J'ai oublié, hier,  de faire la mise à jour nécessaire dans la discussion parce que mon problème a été corrigé...

Merci et bonne journée

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22