OVH Cloud OVH Cloud

[WD8] ..type sur indirection

4 réponses
Avatar
Louis
Pour palier à mon problème d'odre dans les groupes,

j'ai renommé mes champs concernés CRIT_1 CRIT_2 etc.

Qui peut me dire pourquoi ce code génère une erreur au DEUXIEME passage ?

_______________________________________________________________

champ est une chaîne
x est entier = 1

BOUCLE

champ="CRIT_"+NumériqueVersChaine(x)

SI PAS ChampExiste(champ)SORTIR

SELON {champ}..Type

CAS typDate , typTexte, typHeure
...
CAS typListe
...
CAS typComboSNS,typInterr
...
FIN
x++

FIN
___________________________________________


merci

Louis

4 réponses

Avatar
Manu Pavy
Louis a fait part de :

Pour palier à mon problème d'odre dans les groupes,

j'ai renommé mes champs concernés CRIT_1 CRIT_2 etc.

Qui peut me dire pourquoi ce code génère une erreur au DEUXIEME pas sage ?

_______________________________________________________________

champ est une chaîne
x est entier = 1

BOUCLE

champ="CRIT_"+NumériqueVersChaine(x)

SI PAS ChampExiste(champ)SORTIR

SELON {champ}..Type

CAS typDate , typTexte, typHeure
...
CAS typListe
...
CAS typComboSNS,typInterr
...
FIN
x++

FIN
___________________________________________


merci

Louis




je mettrai le test avant :

champ est une chaîne
x est entier = 1

Tant que ChampExiste(champ)

champ="CRIT_"+NumériqueVersChaine(x)


SELON {champ}..Type

CAS typDate , typTexte, typHeure
...
CAS typListe
...
CAS typComboSNS,typInterr
...
FIN
x++

FIN

Je pense qu en faisant un tant que, c'est mieux : le style boucle ...
fin rappel les goto de basic et dans le langage actuel, on n'utilise
plus c est direction inconditionnel
En esperant que ca marche

Manu
Avatar
Louis
J'ai oublié de préciser que le plantage avait lieu sur l'instruction

{champ}..type

au premier pasage pas problème , je recupère le type du champ CRIT_1

au second passage , ERREUR : La propriété 'Type' est interdite sur une
variable de type 'chaîne'. !!!!!

en fait le problème n'a lieu qu'a la suite des traitement que j'avais
remplacé dans mon post par des ... à 100 lieux de les mettre en cause...


à savoir :

crit =crit + "/" + {champ} ou crit =crit + "/" + {champ}..Valeur
!!!


pour ce qui est du test champexiste , il forcement rester à sa place
d'origne... c'est la condition de sortie

à suivre

merci


"Manu Pavy" a écrit dans le message de news:
cmg96o$39o$
Louis a fait part de :

Pour palier à mon problème d'odre dans les groupes,

j'ai renommé mes champs concernés CRIT_1 CRIT_2 etc.

Qui peut me dire pourquoi ce code génère une erreur au DEUXIEME passage ?

_______________________________________________________________

champ est une chaîne
x est entier = 1

BOUCLE

champ="CRIT_"+NumériqueVersChaine(x)

SI PAS ChampExiste(champ)SORTIR

SELON {champ}..Type

CAS typDate , typTexte, typHeure
...
CAS typListe
...
CAS typComboSNS,typInterr
...
FIN
x++

FIN
___________________________________________


merci

Louis



je mettrai le test avant :

champ est une chaîne
x est entier = 1

Tant que ChampExiste(champ)

champ="CRIT_"+NumériqueVersChaine(x)


SELON {champ}..Type

CAS typDate , typTexte, typHeure
...
CAS typListe
...
CAS typComboSNS,typInterr
...
FIN
x++

FIN

Je pense qu en faisant un tant que, c'est mieux : le style boucle ...
fin rappel les goto de basic et dans le langage actuel, on n'utilise
plus c est direction inconditionnel
En esperant que ca marche

Manu
Avatar
Louis
autant pour moi...

je retire mes précisions...


le code suivant plante bien au SECOND pasage sur la ligne

type = {champ}.. type !!!

ERREUR : La propriété 'Type' est interdite sur une variable de type
'chaîne'. !!!!!


pourquoi ?

__________________________________
champ="CRIT_"+NumériqueVersChaine(x)
TANTQUE ChampExiste(champ)
type ={champ}..Type
x++
champ="CRIT_"+NumériqueVersChaine(x)
FIN
__________________________________


merci

Louis
Avatar
Louis
OUBLIER TOUT

j'avais une variable et un champ du même nom



honte à moi


merci quand même

:-(