PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → [WD9] Détournement du type "Source de données"
[WD9] Détournement du type "Source de données"
Débuté par info, 16 nov. 2005 17:42 - 3 réponses
Posté le 16 novembre 2005 - 17:42
Bonjour,

J'ai eu l'idée de détourner le type "Source de données" afin de l'utiliser
pour créer des structures dynamiques (=pas besoin de déclarer les membres,
une simple assignation suffit pour que le membre de la structure existe).

Exemple :
--------------------------
MaStructure est source de donnees

MaStructure.nom="Toto"
MaStructure.age#
MaStructure.DateNaissance=DateSys()

Info(MaStructure.nom, MaStructure.age, MaStructure.DateNaissance)
--------------------------

Jusqu'à là, tout va bien et fonctionne comme voulu.

L'étape suivante consiste, dans une autre portion de code, à obtenir la
liste des membres de la structure afin de traiter chacun (toujours sans
aucune déclaration préalable).
Je comptais logiquement sur hListeRubrique(), mais cela ne fonctionne pas
(je ne jette pas la pierre à Pcsoft car il s'agit d'un détournement de
l'objet original du type "source de données").
Néanmoins, si quelqu'un a une idée permettant de récupérer la liste des
membres, je suis preneur...

Merci d'avance.

Michel Fages
Posté le 16 novembre 2005 - 18:58
Salut

Amusant ! Ca ressemble à du Javascript :)

J'ai noté que Dimension(MaStructure) retourne 4.
A part ça, Occurrence - POUR TOUT - [] - .. ne marchent pas.

Tu réalises bien sûr que ce type de code risque de ne pas être
portable en WinDev 10 ou de faire planter ton appli ?


Merci pour ce petit (hum) moment de détente.


--
Ciao
Pat Biker
http://aaa.windev.free.fr/


On Wed, 16 Nov 2005 16:42:21 +0100, "Hexo7" <info@hexo7.net> wrote:


Bonjour,

J'ai eu l'idée de détourner le type "Source de données" afin de l'utiliser
pour créer des structures dynamiques (=pas besoin de déclarer les membres,
une simple assignation suffit pour que le membre de la structure existe).

Exemple :
--------------------------
MaStructure est source de donnees

MaStructure.nom="Toto"
MaStructure.age#
MaStructure.DateNaissance=DateSys()

Info(MaStructure.nom, MaStructure.age, MaStructure.DateNaissance)
--------------------------

Jusqu'à là, tout va bien et fonctionne comme voulu.

L'étape suivante consiste, dans une autre portion de code, à obtenir la
liste des membres de la structure afin de traiter chacun (toujours sans
aucune déclaration préalable).
Je comptais logiquement sur hListeRubrique(), mais cela ne fonctionne pas
(je ne jette pas la pierre à Pcsoft car il s'agit d'un détournement de
l'objet original du type "source de données").
Néanmoins, si quelqu'un a une idée permettant de récupérer la liste des
membres, je suis preneur...

Merci d'avance.

Michel Fages
Posté le 17 novembre 2005 - 08:27
Hexo7 a écrit :
Bonjour,

J'ai eu l'idée de détourner le type "Source de données" afin de l'utiliser
pour créer des structures dynamiques (=pas besoin de déclarer les membres,
une simple assignation suffit pour que le membre de la structure existe).

Exemple :
--------------------------
MaStructure est source de donnees

MaStructure.nom="Toto"
MaStructure.age#
MaStructure.DateNaissance=DateSys()

Info(MaStructure.nom, MaStructure.age, MaStructure.DateNaissance)
--------------------------

Jusqu'à là, tout va bien et fonctionne comme voulu.

L'étape suivante consiste, dans une autre portion de code, à obtenir la
liste des membres de la structure afin de traiter chacun (toujours sans
aucune déclaration préalable).
Je comptais logiquement sur hListeRubrique(), mais cela ne fonctionne pas
(je ne jette pas la pierre à Pcsoft car il s'agit d'un détournement de
l'objet original du type "source de données").
Néanmoins, si quelqu'un a une idée permettant de récupérer la liste des
membres, je suis preneur...

Merci d'avance.

Michel Fages


Bonjour Michel

C'est un des sujet que nous avons couvert depuis longtemps.
il faut matérialiser la source de donnée en un fichier HyperFile pour
l'utiliser avec les fonctions HXXX comme s'il s'agissait d'un fichier de
l'analyse... jsuqu'à annulation de la description.

Je t'invite à lisre ce dossier au paragraphe "Fichiers temporaires /
externes"
http://www.wdforge.org/modules/icontent/index.php…

Bien à toi
--
++ R&B
WDForge.org
Posté le 17 novembre 2005 - 09:46
Bonjour,

Pourqoi ne pas ajouter à chaque structure un membre "Champ" contenant les noms, types, tailles .

Pour Ton cas :

Mastructure.Champ = "Nom,C,10;Age,N,4;DateNaissance,D,8; etc

Liste du membre 3 :
extraitchaine( ExtraitChaine(MaStructure.champ, 3, ";"),1,",")

Type du membre 3 :
extraitchaine( ExtraitChaine(MaStructure.champ, 3, ";"),2,",")

Longueur du membre 3 :
extraitchaine( ExtraitChaine(MaStructure.champ, 3, ";"),3,",")


Cordialement,

C.AUBRY