PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Déclarer une énumération par programmation
Déclarer une énumération par programmation
Iniciado por AZIZ AIT ZAGHAR, 06,abr. 2024 10:47 - 7 respuestas
Miembro registrado
12 mensajes
Publicado el 06,abril 2024 - 10:47
Bonjour,

Je me demande s'il est possible de remplir une énumération par programmation, je m'explique :

habituellement on le fait comme ça

ETypeProduit est une Enumération

CSimple = 1
CDescription = 2
CSpécification = 3
CConfiguration = 4

FIN


Mais si on a une Fichier dans lequel les informations le l'énumération sont présentent, par exemple dans notre cas un fichier HFSQL <Type_produit>, l'idée est que dès qu'on ajoute un nouveau type dans le fichier l'énumération qui est créée par programmation vas automatiquement se mettre à jour, ça me paraissait tellement évident sur le coup, mais il semble que cela ne soit pas si simple.

Je pensait qu'il serait possible de déclarer une énumération et ensuite ajouter des "membres" à l'énumération par programmation comme on le ferait pour un tableau, ou même de créer l'énumération en lui passant un tableau de "membres".

Je sais qu'il y a des rubriques de Type énumération mais il semble qu'elles ne soit pas gérée dans certaines configurations de base de données et je ne souhaites pas les utiliser.

S'il y a une autre manière de faire, je suis preneur.

Cordialement.
Miembro registrado
3.892 mensajes
Popularité : +227 (347 votes)
Publicado el 06,abril 2024 - 12:06
Bonjour,
Ce n'est pas possible. Il faut créer une table TypeProduit et la relier à produit, comme on le fait par exemple avec ville pour une adresse

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
12 mensajes
Publicado el 06,abril 2024 - 13:34
Merci pour la réponse,

C'est effectivement ce que j'ai mis en place, j'ai créée une table Type_produit avec laquelle j'ai créée une classe Modèle MType_produit.
Donc si je comprends bien les énumérations doivent toujours être faites "en dur"

Ce n'est pas dramatique mais je trouve ça dommage.

Question par rapport au forum lui même, il n'y a pas une une fonction qui dit que le sujet est résolue, clos ou encore actif ?
Miembro registrado
3.892 mensajes
Popularité : +227 (347 votes)
Publicado el 06,abril 2024 - 13:52
AZIZ AIT ZAGHAR a écrit :
Donc si je comprends bien les énumérations doivent toujours être faites "en dur"

Il faut considérer l'énumération (ou la combinaison) comme une constante.
La seule souplesse que l'on peut avoir c'est d'étendre une énumération, un peu comme un héritage. Mais là encore, c'est "en dur".

AZIZ AIT ZAGHAR a écrit :
Question par rapport au forum lui même, il n'y a pas une une fonction qui dit que le sujet est résolue, clos ou encore actif ?

Malheureusement non

--
Il y a peut être plus simple, mais, ça tourne
Mensaje modificado, 06,abril 2024 - 13:58
Miembro registrado
12 mensajes
Publicado el 06,abril 2024 - 16:17
Je n'était pas sûr mais Jérôme Aerts de PC soft avait fait un webinaire sur les énumérations et combinaisons et lors du passage en revue des questions présente sur le chat, il y avait cette question sur la possibilité de créer dynamiquement des énumérations et il a répondue que par principe elles sont statiques car n'étant pas appelées à beaucoup varier, mais il était possible de le faire par la compilation dynamique. Il en parle à t=22min 30s
Problème, il dit que c'est possible mais n'en dit pas plus.



Je suis en train d'essayer mais j'ai du mal avec la compilation dynamique, pour le moment ce n'est pas un franc succès !
Miembro registrado
3.892 mensajes
Popularité : +227 (347 votes)
Publicado el 06,abril 2024 - 18:21
Cela m'étonne, d'après la doc de la fonction Compile (la dernière phrase, tout en bas de la page, avant la liste des exemples unitaires.)
Les énumérations et les combinaisons ne sont pas disponibles en compilation dynamique.

Qui plus est, j'avais déjà tenté le coup il y a quelques années et, en effet, on a une superbe erreur de compilation. C'est à l'issue de ce fiasco que j'ai lu la doc jusqu'au bout du bout

--
Il y a peut être plus simple, mais, ça tourne.
Quand tout a échoué utilise l'option RTFM.
Mensaje modificado, 06,abril 2024 - 18:32
Miembro registrado
3.892 mensajes
Popularité : +227 (347 votes)
Publicado el 06,abril 2024 - 19:22
Par ailleurs, même si cela était possible, l'énumération ne serait, à priori, visible que dans le code compilé dynamiquement.

--
Il y a peut être plus simple, mais, ça tourne
Mensaje modificado, 06,abril 2024 - 19:24
Miembro registrado
12 mensajes
Publicado el 06,abril 2024 - 19:48
Merci, pour le retour, décidément je m'orientes toujours vers des impasses. On va donc rester sur la déclaration "en dur"

Disons que le sujet est clos.