FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV 2024
→
Créer une variable de type combinaison xxxx
Créer une variable de type combinaison xxxx
Débuté par Pierre-yves, 25 mar. 2023 18:29 - 5 réponses
Connectez-vous…
Pierre-yves
#1
Membre enregistré
47 messages
Posté le 25 mars 2023 - 18:29
Bonjour,
Afin d'obtenir un code le plus générique possible dans un modèle de champ, je souhaite créer une variable de type combinaison selon le nom d'une combinaison stocké dans une chaine.
Je souhaiterais faire quelque chose du genre:
Couleur est une
C
ombinaison
Bleu
Rouge
Vert
FIN
NomDeLaCombinaison
est chaîne
=
"Couleur"
MaCombinaisonAManipuler
est un
{
NomDeLaCombinaison
,
indCombinaison
}
MaCombinaisonAManipuler
[
CombinaisonDepuisNom
(
NomDeLaCombinaison
,
"Bleu"
)
] =
Vrai
Bien sur, les indirections sur les combinaisons n'existent pas en V28.
Avez-vous déjà rencontré ce besoin et avez vous une solution ?
D'avance merci à tous,
--
La complexité d'une solution doit être adaptée à la complexité du problème qu'elle essaye de résoudre.
Signaler
0
0
Voroltinquo
#2
Membre enregistré
3 844 messages
Popularité : +227 (347 votes)
Posté le 26 mars 2023 - 12:50
Bonjour,
Avant tout, Couleur est un mot réservé, il est étonnant que tu n'ais pas eu d'erreur à ce niveau.
Dans un 2° temps la doc explique l'affectation d'un membre d'une combinaison qui n'a rien à voir avec ce que tu écris
Le code statique devient donc :
C
Couleur
est
C
ombinaison
Rouge
Vert
Bleu
FIN
oMaCouleur
est une
C
Couleur
oMaCouleur
[
Bleu
]
=
Vrai
Tu veux déclarer dynamiquement une variable, il faut donc utiliser une compilation dynamique, un truc du style :
saNomCombinaison
est une chaîne
saCodeBleuVrai
est une chaîne
procBleuVrai
est Procedure
saNomCombinaison
=
"CCouleur"
saCodeBleuVrai
=
[
oMaCombinaison est %1
oMaCombinaison[Bleu
]
=
Vrai
]
saCodeBleuVrai
=
ChaîneConstruit
(
saCodeBleuVrai
,
saNomCombinaison
)
procBleuVrai
=
Compile
(
saCodeBleuVrai
)
SI PAS
ErreurDétectée
ALORS
procBleuVrai
(
)
SINON
Erreur
(
ErreurInfo
(
)
)
FIN
--
Il y a peut être plus simple, mais, ça tourne
Signaler
0
1
404 ERROR
#3
Membre enregistré
287 messages
Popularité : +51 (79 votes)
Posté le 27 mars 2023 - 11:41
Les énumérations et les combinaisons ne sont pas disponibles en compilation dynamique.
saCodeBleuVrai
=
[
oMaCombinaison est %1
oMaCombinaison[Bleu
]
=
Vrai
]
Tu devrai tester ton code avant de donner de fausses solution.
@Pierre-yves Malheureusement ce n'est pas possible
Peut-être dans les futures version ?
--
#DKR
Message modifié, 27 mars 2023 - 11:42
Signaler
1
2
Pierre-yves
#4
Membre enregistré
47 messages
Posté le 31 mars 2023 - 21:18
Bonjour à tous,
Merci 404 ERROR, et merci également à Voroltinquo.
Une solution serait d'avoir une procédure globale avec un beau SELON avec toutes les combinaisons déclarées/utilisées dans le projet.
C'est n'est pas une vrai solution car à chaque création d'une combinaison, je vais devoir ajouter un "CAS" dans ce SELON !
Et le code de sélection des valeurs devra être dupliquée dans chaque "CAS".
Merci à vous en tout cas, en espérant que le support tombe sur nos échanges et apporte une vrai solution.
--
La complexité d'une solution doit être adaptée à la complexité du problème qu'elle essaye de résoudre.
Signaler
0
0
Pierre-yves
#5
Membre enregistré
47 messages
Posté le 31 mars 2023 - 21:36
oui... ça marche:
Procedure
renvoiCombinaisonValeurs
(
s
NomCombinaison
est chaîne
,
tab
ValeurCombinaison
est tableau de chaîne
)
SELON
s
NomCombinaison
CAS
"CBN_Type_Tarif"
co
MaCombinaison
est un
C
BN_Type_Tarif
POUR
TOUT
s
Item
de
tab
ValeurCombinaison
co
MaCombinaison
[
CombinaisonDepuisNom
(
s
NomCombinaison
,
s
Item
)
] =
Vrai
FIN
RENVOYER
co
MaCombinaison
CASE
"TypeContact"
co
MaCombinaison
est un
TypeContact
POUR
TOUT
s
Item
de
tab
ValeurCombinaison
co
MaCombinaison
[
CombinaisonDepuisNom
(
s
NomCombinaison
,
s
Item
)
] =
Vrai
FIN
RENVOYER
co
MaCombinaison
AUTRE
CAS
ExceptionDéclenche
(
1
,
"Type de combinaison non connue !"
)
FIN
--
La complexité d'une solution doit être adaptée à la complexité du problème qu'elle essaye de résoudre.
Signaler
1
0
404 ERROR
#6
Membre enregistré
287 messages
Popularité : +51 (79 votes)
Posté le 01 avril 2023 - 10:27
Oui c'est une solution éventuellement de faire un selon à la main
--
#DKR
Signaler
0
0
→ Revenir à WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte