OVH Cloud OVH Cloud

WD9 et POO

4 réponses
Avatar
Sylvain Laffont
Bonjour,

J'ai 3 classes CConteneurPoste->CPoste->CLignePoste

CConteneurPoste contient un tableau dynamique de CPoste
CPoste contient un tableau dynamique de CLignePoste.

Lorsque j'ajoute un CPoste à mon CConteneurPoste je n'est pas de problème,
je peut acceder à ses différentes propriétés.
Mais je ne peut pas acceder aux méthodes (fonctions) de CPoste pour créer
des CLigne Poste.

Par exemple:
---------
CDevis est un objet CConteurPoste
CDevis:AjoutePoste()
CDevis:ListePoste[1]:Libelle="POSTE 1"
CDevis:ListePoste[1]:AjouteLigne()
CDevis:ListePoste[1]:ListeLigne[1]:Libelle="Ligne1 Poste1"
---------

Je n'est pas de problème pour récupérer mes propriétés Libellé de mon poste
mais j'ai une erreur sur le libelle de la ligne car WD9 n'execute pas le
code de ma méthode AjouteLigne

Voici le code simplifié de mes classes :


CConteneurPoste est une classe
ListePoste est un tableau dynamique de 0 CPoste
PRIVÉ
count est un entier = 0
FIN

FONCTION AjoutePoste ()
:count++
Dimension(:ListePoste,:count)
RENVOYER :Count

---------------------------
CPoste est une classe
Commentaire est un chaîne = "" // Commentaire du poste
Libelle est un chaîne = "" // Libelle du poste
Numero est un entier = 0 // Numero du poste
PROTÉGÉ
ID est un entier = 0 // ID d'un poste
PUBLIC
ListeLigne est un tableau dynamique de 0 CLignePoste
PRIVÉ
Count est un entier = 0
FIN

FONCTION AjouteLigne ()
:Count++
Dimension(:ListeLigne,:Count)
RENVOYER :Count

--------------------
Je précise que mes constructeur n'attend aucun paramètre fixe
De plus lorsque j'ai transformé AjouteLigne() en fonction retournant
l'indice de la ligne, windev me dit gentillement qu'AjouteLigne aurais du
retourné une valeur, mais il ne retourne rien vu que le code n'est pas
executé.

Voilà donc si quelqu'un peut éclairer ma lanterne :)
Cordialement
S.Laffont

4 réponses

Avatar
Pascal R.
Bonjour,

Personnellement je n'aime pas acceder directement a un element de
tableau d'une table.

Je cree une méthode GetElement( indice) qui renvoie
l'élément correspondant.

J'ai des classes du même style que toi, et n'ai jamais eu
de soucis en faisant, par exemple

CDevis:GetPoste(1):GetLigne(1):Libelle="Ligne1 Poste1"

A voir, car je n'utilise pas WD9 mais WD55 et WD75

Pascal



Sylvain Laffont a écrit :
Bonjour,

J'ai 3 classes CConteneurPoste->CPoste->CLignePoste

CConteneurPoste contient un tableau dynamique de CPoste
CPoste contient un tableau dynamique de CLignePoste.

Lorsque j'ajoute un CPoste à mon CConteneurPoste je n'est pas de problème,
je peut acceder à ses différentes propriétés.
Mais je ne peut pas acceder aux méthodes (fonctions) de CPoste pour créer
des CLigne Poste.

Par exemple:
---------
CDevis est un objet CConteurPoste
CDevis:AjoutePoste()
CDevis:ListePoste[1]:Libelle="POSTE 1"
CDevis:ListePoste[1]:AjouteLigne()
CDevis:ListePoste[1]:ListeLigne[1]:Libelle="Ligne1 Poste1"
---------

Je n'est pas de problème pour récupérer mes propriétés Libellé de mon poste
mais j'ai une erreur sur le libelle de la ligne car WD9 n'execute pas le
code de ma méthode AjouteLigne

Voici le code simplifié de mes classes :


CConteneurPoste est une classe
ListePoste est un tableau dynamique de 0 CPoste
PRIVÉ
count est un entier = 0
FIN

FONCTION AjoutePoste ()
:count++
Dimension(:ListePoste,:count)
RENVOYER :Count

---------------------------
CPoste est une classe
Commentaire est un chaîne = "" // Commentaire du poste
Libelle est un chaîne = "" // Libelle du poste
Numero est un entier = 0 // Numero du poste
PROTÉGÉ
ID est un entier = 0 // ID d'un poste
PUBLIC
ListeLigne est un tableau dynamique de 0 CLignePoste
PRIVÉ
Count est un entier = 0
FIN

FONCTION AjouteLigne ()
:Count++
Dimension(:ListeLigne,:Count)
RENVOYER :Count

--------------------
Je précise que mes constructeur n'attend aucun paramètre fixe
De plus lorsque j'ai transformé AjouteLigne() en fonction retournant
l'indice de la ligne, windev me dit gentillement qu'AjouteLigne aurais du
retourné une valeur, mais il ne retourne rien vu que le code n'est pas
executé.

Voilà donc si quelqu'un peut éclairer ma lanterne :)
Cordialement
S.Laffont




Avatar
Sylvain Laffont
Merci de ton aide je vais essayé comme ceci.
Cordialement
S.Laffont
"Pascal R." a écrit dans le message de news:
d4qeqd$6ro$
Bonjour,

Personnellement je n'aime pas acceder directement a un element de
tableau d'une table.

Je cree une méthode GetElement( indice) qui renvoie
l'élément correspondant.

J'ai des classes du même style que toi, et n'ai jamais eu
de soucis en faisant, par exemple

CDevis:GetPoste(1):GetLigne(1):Libelle="Ligne1 Poste1"

A voir, car je n'utilise pas WD9 mais WD55 et WD75

Pascal



Sylvain Laffont a écrit :
Bonjour,

J'ai 3 classes CConteneurPoste->CPoste->CLignePoste

CConteneurPoste contient un tableau dynamique de CPoste
CPoste contient un tableau dynamique de CLignePoste.

Lorsque j'ajoute un CPoste à mon CConteneurPoste je n'est pas de
problème, je peut acceder à ses différentes propriétés.
Mais je ne peut pas acceder aux méthodes (fonctions) de CPoste pour créer
des CLigne Poste.

Par exemple:
---------
CDevis est un objet CConteurPoste
CDevis:AjoutePoste()
CDevis:ListePoste[1]:Libelle="POSTE 1"
CDevis:ListePoste[1]:AjouteLigne()
CDevis:ListePoste[1]:ListeLigne[1]:Libelle="Ligne1 Poste1"
---------

Je n'est pas de problème pour récupérer mes propriétés Libellé de mon
poste mais j'ai une erreur sur le libelle de la ligne car WD9 n'execute
pas le code de ma méthode AjouteLigne

Voici le code simplifié de mes classes :


CConteneurPoste est une classe
ListePoste est un tableau dynamique de 0 CPoste
PRIVÉ
count est un entier = 0
FIN

FONCTION AjoutePoste ()
:count++
Dimension(:ListePoste,:count)
RENVOYER :Count

---------------------------
CPoste est une classe
Commentaire est un chaîne = "" // Commentaire du poste
Libelle est un chaîne = "" // Libelle du poste
Numero est un entier = 0 // Numero du poste
PROTÉGÉ
ID est un entier = 0 // ID d'un poste
PUBLIC
ListeLigne est un tableau dynamique de 0 CLignePoste
PRIVÉ
Count est un entier = 0
FIN

FONCTION AjouteLigne ()
:Count++
Dimension(:ListeLigne,:Count)
RENVOYER :Count

--------------------
Je précise que mes constructeur n'attend aucun paramètre fixe
De plus lorsque j'ai transformé AjouteLigne() en fonction retournant
l'indice de la ligne, windev me dit gentillement qu'AjouteLigne aurais du
retourné une valeur, mais il ne retourne rien vu que le code n'est pas
executé.

Voilà donc si quelqu'un peut éclairer ma lanterne :)
Cordialement
S.Laffont





Avatar
Sylvain Laffont
Finalement il s'agissait bien d'un planage de windev :/
J'ai fait réparer le projet et tout c'est mis à marcher, une compilation ne
changeait rien.
Cordialement

"Pascal R." a écrit dans le message de news:
d4qeqd$6ro$
Bonjour,

Personnellement je n'aime pas acceder directement a un element de
tableau d'une table.

Je cree une méthode GetElement( indice) qui renvoie
l'élément correspondant.

J'ai des classes du même style que toi, et n'ai jamais eu
de soucis en faisant, par exemple

CDevis:GetPoste(1):GetLigne(1):Libelle="Ligne1 Poste1"

A voir, car je n'utilise pas WD9 mais WD55 et WD75

Pascal



Sylvain Laffont a écrit :
Bonjour,

J'ai 3 classes CConteneurPoste->CPoste->CLignePoste

CConteneurPoste contient un tableau dynamique de CPoste
CPoste contient un tableau dynamique de CLignePoste.

Lorsque j'ajoute un CPoste à mon CConteneurPoste je n'est pas de
problème, je peut acceder à ses différentes propriétés.
Mais je ne peut pas acceder aux méthodes (fonctions) de CPoste pour créer
des CLigne Poste.

Par exemple:
---------
CDevis est un objet CConteurPoste
CDevis:AjoutePoste()
CDevis:ListePoste[1]:Libelle="POSTE 1"
CDevis:ListePoste[1]:AjouteLigne()
CDevis:ListePoste[1]:ListeLigne[1]:Libelle="Ligne1 Poste1"
---------

Je n'est pas de problème pour récupérer mes propriétés Libellé de mon
poste mais j'ai une erreur sur le libelle de la ligne car WD9 n'execute
pas le code de ma méthode AjouteLigne

Voici le code simplifié de mes classes :


CConteneurPoste est une classe
ListePoste est un tableau dynamique de 0 CPoste
PRIVÉ
count est un entier = 0
FIN

FONCTION AjoutePoste ()
:count++
Dimension(:ListePoste,:count)
RENVOYER :Count

---------------------------
CPoste est une classe
Commentaire est un chaîne = "" // Commentaire du poste
Libelle est un chaîne = "" // Libelle du poste
Numero est un entier = 0 // Numero du poste
PROTÉGÉ
ID est un entier = 0 // ID d'un poste
PUBLIC
ListeLigne est un tableau dynamique de 0 CLignePoste
PRIVÉ
Count est un entier = 0
FIN

FONCTION AjouteLigne ()
:Count++
Dimension(:ListeLigne,:Count)
RENVOYER :Count

--------------------
Je précise que mes constructeur n'attend aucun paramètre fixe
De plus lorsque j'ai transformé AjouteLigne() en fonction retournant
l'indice de la ligne, windev me dit gentillement qu'AjouteLigne aurais du
retourné une valeur, mais il ne retourne rien vu que le code n'est pas
executé.

Voilà donc si quelqu'un peut éclairer ma lanterne :)
Cordialement
S.Laffont





Avatar
Pascal R.
Si ca marche, c'est le principal.
Bon Dev.
Pascal

Sylvain Laffont a écrit :
Finalement il s'agissait bien d'un planage de windev :/
J'ai fait réparer le projet et tout c'est mis à marcher, une compilation ne
changeait rien.
Cordialement

"Pascal R." a écrit dans le message de news:
d4qeqd$6ro$

Bonjour,

Personnellement je n'aime pas acceder directement a un element de
tableau d'une table.

Je cree une méthode GetElement( indice) qui renvoie
l'élément correspondant.

J'ai des classes du même style que toi, et n'ai jamais eu
de soucis en faisant, par exemple

CDevis:GetPoste(1):GetLigne(1):Libelle="Ligne1 Poste1"

A voir, car je n'utilise pas WD9 mais WD55 et WD75

Pascal



Sylvain Laffont a écrit :

Bonjour,

J'ai 3 classes CConteneurPoste->CPoste->CLignePoste

CConteneurPoste contient un tableau dynamique de CPoste
CPoste contient un tableau dynamique de CLignePoste.

Lorsque j'ajoute un CPoste à mon CConteneurPoste je n'est pas de
problème, je peut acceder à ses différentes propriétés.
Mais je ne peut pas acceder aux méthodes (fonctions) de CPoste pour créer
des CLigne Poste.

Par exemple:
---------
CDevis est un objet CConteurPoste
CDevis:AjoutePoste()
CDevis:ListePoste[1]:Libelle="POSTE 1"
CDevis:ListePoste[1]:AjouteLigne()
CDevis:ListePoste[1]:ListeLigne[1]:Libelle="Ligne1 Poste1"
---------

Je n'est pas de problème pour récupérer mes propriétés Libellé de mon
poste mais j'ai une erreur sur le libelle de la ligne car WD9 n'execute
pas le code de ma méthode AjouteLigne

Voici le code simplifié de mes classes :


CConteneurPoste est une classe
ListePoste est un tableau dynamique de 0 CPoste
PRIVÉ
count est un entier = 0
FIN

FONCTION AjoutePoste ()
:count++
Dimension(:ListePoste,:count)
RENVOYER :Count

---------------------------
CPoste est une classe
Commentaire est un chaîne = "" // Commentaire du poste
Libelle est un chaîne = "" // Libelle du poste
Numero est un entier = 0 // Numero du poste
PROTÉGÉ
ID est un entier = 0 // ID d'un poste
PUBLIC
ListeLigne est un tableau dynamique de 0 CLignePoste
PRIVÉ
Count est un entier = 0
FIN

FONCTION AjouteLigne ()
:Count++
Dimension(:ListeLigne,:Count)
RENVOYER :Count

--------------------
Je précise que mes constructeur n'attend aucun paramètre fixe
De plus lorsque j'ai transformé AjouteLigne() en fonction retournant
l'indice de la ligne, windev me dit gentillement qu'AjouteLigne aurais du
retourné une valeur, mais il ne retourne rien vu que le code n'est pas
executé.

Voilà donc si quelqu'un peut éclairer ma lanterne :)
Cordialement
S.Laffont