PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Paramétrage de 2 requêtes différentes dans un état
Paramétrage de 2 requêtes différentes dans un état
Débuté par LC, 14 mar. 2018 13:58 - 44 réponses
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 14 mars 2018 - 13:58
Bonjour,
je souhaiterais "attacher" 2 requêtes différentes (l'une ou l'autre) suivant un critère à un état.
Je n'ai rien trouvé, j'ai pourtant fait dans l'ouverture de l'état : moimeme..nomsource = REQ_1 ou REQ_2
mais ça ne fonctionne pas, comment faut-il faire ?
Posté le 14 mars 2018 - 14:17
Voilà une des grosses limitations de travailler avec l'éditeur de requête c'est que le code SQL les requêtes hormis les paramètres n'est pas manipulable dynamiquement, on ne peut pas y ajouter des rubriques, jointure ect... à chaque fois il faut faire une requête différente...

D'où l'avantage de travailler avec du code SQL et hexecuterequeteSQL et parcours de la source ( de plus on a le contrôle du moment de l'exécution... nombre de fois je vois la même requêtes exécutée 2 ou 3 fois inutilement )

Si tu ne sais pas faire des requêtes SQL manuellement ( comme un maçon qui ne sait pas faire du ciment. ) tu peux toujours la créer avec l'éditeur et la copier / coller une chaine SQL ou récupérer le code SQL par Marequête..codeSQL

Bon Dev
Marc Fastré
www.marc-fastre.be
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 14 mars 2018 - 15:32
Bonjour, je ne me suis pas fait comprendre ou bien as tu mal lu .... ce n'est pas le problème de faire des requêtes (ça je sais faire), c'est le problème de les rattacher en dynamique à mon état, (peut importe de quelle manière elles ont étés faites) comment doit on faire ?
dans l'onglet données de la description de l'état j'ai bien mis : "par programmation" mais du coup après on lui déclare ou ?
Posté le 14 mars 2018 - 15:43
LC a écrit :
Bonjour, je ne me suis pas fait comprendre ou bien as tu mal lu .... ce n'est pas le problème de faire des requêtes (ça je sais faire), c'est le problème de les rattacher en dynamique à mon état, (peut importe de quelle manière elles ont étés faites) comment doit on faire ?
dans l'onglet données de la description de l'état j'ai bien mis : "par programmation" mais du coup après on lui déclare ou ?


Tu devrais pouvoir changer la source de données ( donc la requête ) par cette syntaxe:

MonEtat..FichierParcouru = MaRequete2
et éventuellement accompagnée de : MonEtat..RubriqueParcourue = "RubriqueParcourueEtat2"

Mais bon... les deux requêtes doivent pour bien faire doivent sélectionner les même rubriques ca limite l'intérêt

Bon Dev
Marc Fastré
www.marc-fastre.be
Membre enregistré
1 623 messages
Popularité : +100 (114 votes)
Posté le 14 mars 2018 - 16:49
Sinon,

Il est peut être possible (suivant le but recherché et la manière de traiter les données de votre problématique) d'effectuer la requête AVANT de lancer l'impression de l’état et de stocker les résultat dans un objet.
Objet qui sera passé en paramètre à l'état et utilisé comme source de données.
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 14 mars 2018 - 17:00
ou dois je mettre ces lignes ? à l'ouverture de l'état ?
dois je laisser : par programmation ?
Posté le 14 mars 2018 - 18:07
LC a écrit :
ou dois je mettre ces lignes ? à l'ouverture de l'état ?
dois je laisser : par programmation ?


Oui par programmation dans le code d'initialisation de l'état


MonEtat..fichierparcouru = MaRequete2

OU

MonEtat..fichierparcouru = "MaRequete2"


A Essayer je fais cela avec des tables et cela fonctionne jamais essayer avec un état je programme mes sources de données moimême

Bon Dev
Marc Fastré
www.marc-fastre.be
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 14 mars 2018 - 19:51
ça n'existe pas ..fichierparcouru
Posté le 15 mars 2018 - 08:18
LC a écrit :
> ça n'existe pas ..fichierparcouru
Bonjour

pour un état ce n'est pas ..fichierParcouru mais ..NomSource

https://doc.pcsoft.fr/fr-FR/?2511035

Trouvé en 60 secondes en cherchant un peu...

Bon Dev
Marc Fastré
www.marc-fastre.be
Membre enregistré
3 846 messages
Popularité : +227 (347 votes)
Posté le 15 mars 2018 - 08:37
Bonjour,
Essaye de voir du côté de ..MaSource

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 15 mars 2018 - 09:34
j'avais trouvé (moins de 60 secondes) mais ça ne marche pas ...
Posté le 15 mars 2018 - 10:06
Je peux te dire que MARCHER, ca na MARCHERA jamais

FONCTIONNER peut être...

Si tu avais au moins pris le peine de communiquer le message d'erreur je te dirais pq ca ne fonctionne pas.. mais là je te laisser chercher un peu autour de de ma solution qui fonctionne parfaitement
Game over

Marc Fastré
www.marc-fastre.be
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 15 mars 2018 - 11:02
pfuu ... tu joues sur les mots ... "le maçon qui ne sait pas faire de ciment", "60 secondes pour trouver", "marcher au lieu de fonctionner"
tu peux peut être éviter de faire ces réflexion hein ... si tu es un champion du monde pourquoi es tu sur ce forum ? tu sais tout ? tu ne te trompes jamais, un peu d'humilité monsieur ...
Posté le 15 mars 2018 - 11:18
LC a écrit :
pfuu ... tu joues sur les mots ... "le maçon qui ne sait pas faire de ciment", "60 secondes pour trouver", "marcher au lieu de fonctionner"
tu peux peut être éviter de faire ces réflexion hein ... si tu es un champion du monde pourquoi es tu sur ce forum ? tu sais tout ? tu ne te trompes jamais, un peu d'humilité monsieur ...


Si tu cherches un peu tu verras que je suis sur ce forum pour répondre et tres rarement pour poser des questions

Mais après 25 ans j'estime que je suis bien loin d'avoir fait le tour

Mais quand je ne sais pas, je CHERCHE, j'ESSAIE, je DEDUIT... je n'attends pas que l'on m'apporte la solution sur un plateau sans même expliquer ce qui me bloque

c'est peut-être pcq quand j'ai débuté il n'y avait ni google, ni forum...

Bon Dev
Marc Fastré
www.marc-fastre.be
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 15 mars 2018 - 11:44
Je fais exactement pareil, je cherche d'abord avant de demander, et je n'avais pas non plus ni google ni tout ça lorsque j'ai commencé
il y a fort longtemps ... bien avant toi ...
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 17 mars 2018 - 17:57
je relance le truc car je n'ai toujours pas réussi à paramétrer la requête rattachée à un état.
j'ai donc essayé (dans l'initialisation de l'état ) :
MaRequete.MonParam = Parametres
HExécuteRequête(MaRequete)
nb est un entier = HNbEnr(MaRequete)
Trace(nb)
Etat..NomSource = MaRequete

la trace me donne bien le nombre d'enregistrement de ma requête, cependant j'ai le message de l'aperçu qui me dit :
il n'y a pas de données à imprimer
Comment dois je faire ?
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 18 mars 2018 - 03:21
LC a écrit :
je relance le truc car je n'ai toujours pas réussi à paramétrer la requête rattachée à un état.
j'ai donc essayé (dans l'initialisation de l'état ) :
MaRequete.MonParam = Parametres
HExécuteRequête(MaRequete)
nb est un entier = HNbEnr(MaRequete)
Trace(nb)
Etat..NomSource = MaRequete

la trace me donne bien le nombre d'enregistrement de ma requête, cependant j'ai le message de l'aperçu qui me dit :
il n'y a pas de données à imprimer
Comment dois je faire ?


Normal, quand tu lances ton état la requête source est vide. Tu dois mettre ce code AVANT d'appeler ton état, et non dans son code d'init.

Cdt,

Marc (un autre :D)
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 18 mars 2018 - 15:39
Bonjour, merci pour ta réponse, mais lorsque je mets ce code dans la fenêtre appelant l'état juste avant le iimprimeetat,
j'ai le message d'erreur sur la ligne Etat..NomSource = MaRequete : le champ Etat est inconnu
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 18 mars 2018 - 17:33
Oui effectivement....

Le plus simple dans ton cas reste d'utiliser un tableau de structure ou d'objet.

Déclare une structure ou un objet contenant tous les champs dont tu as besoin dans ton état.
Dans le code d'init de ton état :
Procedure MonEtat(gtabStructure est un tableau de STExpédition)

Ensuite ton état doit être rempli non pas par programmation, mais par variable (databinding), et tu sélectionnes la variable globale déclarée plus haut.
Tu lies chaque champs de ton état à un membre de ta structure.

Dans le code appelant ton état, du lances la requête que tu veux, puis tu la parcours pour remplir un tableau de structure que tu passeras en paramètre à ton état :
iImprimeEtat(ETAT_MonEtat, tabStructure)
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 18 mars 2018 - 19:15
Merci mais je ne comprends pas comment cela peut être si compliqué d'affecter une requête ou une autre à un état ...
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 18 mars 2018 - 19:32
Je comprends ta frustration. Mais quand on a passé plus d'une demie-heure à réfléchir à un problème sans trouver la solution, alors qu'en 5 minutes on peut faire différemment et tout aussi propre (voir plus dans ce cas), je pense qu'il ne faut pas chercher plus loin.
Membre enregistré
165 messages
Popularité : +12 (12 votes)
Posté le 18 mars 2018 - 19:52
Bonjour;

La requête est interne ?

Bon Dev.
Posté le 19 mars 2018 - 09:14
Hola ca patauge toujours ;(

Dans le code d'initialisation de l'état :

MonEtat..NomSource = "REQ_Requete2"


Si tu met le nom de la requête sans les quotes ca provoque une erreur

Il y a un exemple dans la doc https://doc.pcsoft.fr/fr-FR/?2511035 :

ETAT_EtatTableClient..NomSource = "FEN_MaFenêtre.TABLE_TableProspect"


Bon Dev
Marc Fastré
www.marc-fastre.be
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 19 mars 2018 - 11:54
oui 2 requêtes internes et suivant une condition je souhaiterais rattacher l'une ou l'autre à mon état
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 19 mars 2018 - 11:58
Oui je l'avais vu ça, mais j'ai toujours le même message (il n'y a pas de données à imprimer) y compris si je met des guillemets
Membre enregistré
3 846 messages
Popularité : +227 (347 votes)
Posté le 19 mars 2018 - 12:49
Je suppose que tu as testé les requêtes hors état

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 19 mars 2018 - 13:51
oui bien sur, je l'ai indiqué plus haut, j'ai positionné une trace qui me donne le nombre d'enreg.
Membre enregistré
190 messages
Popularité : +21 (23 votes)
Posté le 19 mars 2018 - 14:10
Bonjour


une solution personnelle qui me convient bien pour un état défini par programmation.


Dans le code Ouverture de ETAT_test :
Procedure ETAT_TEST (parametres...)

gsdData_Etat est une Source dede Données
gsReq_Etat est une chaîne = [
SELECT
NOM as Nom,
PRENOM as Prenom,
....
FROM
...
WHERE
... %1 ... %2
]

// resultat de la requete dans la source de données
HExécuteRequêteSQL(gsdData_Etat,hRequêteDéfaut,ChaîneConstruit(gsReq_Etat, param1, param2,....))

flg_lecture est un booléen = HLitPremier(gsdData_Etat)



Dans le code Lecture des données de ETAT_test :
SI PAS flg_lecture ALORS RENVOYER Faux //
LIB_NOM = gsdData_Etat.Nom
LIB_PRENOM = gsdData_Etat.Prenom

flg_lecture = HLitSuivant(gsdData_Etat)


Rien de plus! c est personnalisable
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 19 mars 2018 - 15:26
Heu .. j'ai pas compris ce code .. comment "dis" tu à l'état que c'est cette requête qui est rattachée ?
tu fais bien un HExécuteRequêteSQL mais comment l'état va gérer les ruptures et autres ... ?
Membre enregistré
190 messages
Popularité : +21 (23 votes)
Posté le 19 mars 2018 - 15:47
tout se passe dans la partie "Lecture des données de l'état" , qui ne fait que boucler tant que tu ne renvoies pas faux.

Dans cette partie, il faut parcourir à l'aide de HLitSuivant et renvoyer faux si fin de lecture.

Pour gerer les ruptures, ajouter un bloc dans l'état (ITERATION1 par exemple)
et suivant la condition que tu définis toujours dans la partie "lecture des donnés"
SI condition... alors iimprimeBloc(ITERATION1)


de l'aide : https://doc.pcsoft.fr/?1011034&name=etat_sur_une_source_donnees_programmee
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 19 mars 2018 - 15:58
les ruptures automatiques ne sont pas gérées du coup je suppose ... pfuu ça devient galère. tout à la main juste parce qu'on ne peut
pas paramétrer 2 requêtes différentes .. (en fait ce sont les 2 mêmes mise à part des paramètres dans le where)
Merci quand même pour tes réponses.
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 19 mars 2018 - 16:18
Tout ça pour ça !!!!

Pour gérer des paramètre différents dans le WHERE, tu mets tous les paramètres dont tu as besoin dans tes deux requêtes, puis tu mets à NULL ceux que tu ne veux pas utiliser lors de l'appel de ta requête...
Posté le 19 mars 2018 - 16:59
LC a écrit :
(en fait ce sont les 2 mêmes mise à part des paramètres dans le where)

31 messages pour enfin savoir ce que tu veux faire ( et non comment tu veux le faire )

Marc Fastré
www.marc-fastre.be
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 19 mars 2018 - 17:38
ben .. je l'ai dis depuis le premier message :
"Bonjour,
je souhaiterais "attacher" 2 requêtes différentes (l'une ou l'autre) suivant un critère à un état.
Je n'ai rien trouvé, j'ai pourtant fait dans l'ouverture de l'état : moimeme..nomsource = REQ_1 ou REQ_2
mais ça ne fonctionne pas, comment faut-il faire ?"

peut importe les 2 requêtes .. je ne peux pas mettre à null ..
dans une requête il y a un EXIST dans le WHERE et l'autre un NOT EXIST dans le WHERE
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 19 mars 2018 - 17:41
Il est normal que je demande "comment faire" au résultat que je souhaite ...
voici la requête (l'autre est avec un EXIST ou lieu du NOT EXIST)
SELECT
PROPRIETAIRES.PRO_CIVILITE AS PRO_CIVILITE,
PROPRIETAIRES.PRO_NOM AS PRO_NOM,
PROPRIETAIRES.PRO_PRENOM AS PRO_PRENOM,
PROPRIETAIRES.PRO_COMPLNOM AS PRO_COMPLNOM,
PROPRIETAIRES.PRO_ADRESSE AS PRO_ADRESSE,
PROPRIETAIRES.PRO_COMPLADRESSE AS PRO_COMPLADRESSE,
PROPRIETAIRES.PRO_LIEUDIT AS PRO_LIEUDIT,
PROPRIETAIRES.PRO_CODEPOSTAL AS PRO_CODEPOSTAL,
PROPRIETAIRES.PRO_VILLE AS PRO_VILLE,
PROPRIETAIRES.PRO_SOUMISATVA AS PRO_SOUMISATVA,
BRANCHES.BRA_LIBELLE AS BRA_LIBELLE,
PARCELLES.PAR_ANNEE AS PAR_ANNEE,
PARCELLES.PAR_SECTCADASTRE AS PAR_SECTCADASTRE,
PARCELLES.PAR_NUMCADASTRE AS PAR_NUMCADASTRE,
PARCELLES.PAR_SURFACE AS PAR_SURFACE,
COMMUNES.COM_LIBELLE AS COM_LIBELLE,
LIEUXDITS.LIE_LIBELLE AS LIE_LIBELLE,
PARCELLES.PAR_CLEPROPRIETAIRE AS PAR_CLEPROPRIETAIRE,
PARCELLES.PAR_CLE AS PAR_CLE
FROM PARCELLES
INNER JOIN PROPRIETAIRES
ON (PROPRIETAIRES.PRO_CLE = PARCELLES.PAR_CLEPROPRIETAIRE)
INNER JOIN BRANCHES
ON (BRANCHES.BRA_CLE = PARCELLES.PAR_CLEBRANCHE)
INNER JOIN LIEUXDITS
ON (LIEUXDITS.LIE_CLE = PARCELLES.PAR_CLELIEUDIT)
INNER JOIN COMMUNES
ON (COMMUNES.COM_CLE = LIEUXDITS.LIE_CLECOMMUNE)
WHERE (PARCELLES.PAR_ANNEE = {Pannee})
AND (PARCELLES.PAR_CLEPROPRIETAIRE IN ({PListeProprio}))
AND (NOT EXISTS (SELECT FAC_CLE
FROM FACTURES
WHERE (FACTURES.FAC_CLEPROPRIETAIRE = PARCELLES.PAR_CLEPROPRIETAIRE)
AND (FACTURES.FAC_ANNEEFACTURE = PARCELLES.PAR_ANNEE)))
ORDER by
PROPRIETAIRES.PRO_NOM Asc,
PROPRIETAIRES.PRO_PRENOM Asc,
BRANCHES.BRA_LIBELLE Asc,
PARCELLES.PAR_CLE Asc
Membre enregistré
165 messages
Popularité : +12 (12 votes)
Posté le 19 mars 2018 - 18:08
Bonjour;

Sous WinDev 20 :
Pour tester, j'ai créé deux requêtes de sélection sur deux fichiers différents mais avec les mêmes noms de rubriques, et un état basé sur la 1ère requête.
dans ouverture de l'état j'ai mis le code suivant :
Procedure ETAT_SansNom1(gnToto est un entier)
SI gnToto = 1 ALORS
MoiMême..NomSource="REQ_SansNom1"
SINON
MoiMême..NomSource="REQ_SansNom2"
FIN


Le test me donne le résultat voulu.
------------------------

Ma question :
Quel est l’inconvénient de créer deux états distincts chacun basé sur une requête et le test se fait avant l'appel pour impression ?

Bon Dev.
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 19 mars 2018 - 18:47
Merci pour ta réponse, mais j'ai déjà essayé ça (au début même) et c'est pour cela que je continue à poser la question
car suite à ça, j'ai le message qui me dit qu'il n'y à pas d'enregistrement à imprimer. alors que ma requête me donne bien les enregistrements
escomptés. Quand à ta question sur "l'inconvénient" de faire 2 états identiques, c'est une plaisanterie non ?
je vais construire 2 fois le même état (un imprimé complexe d'une facture avec pleins de champs et dessins) parce qu'une requête change ... hu !
on me l'avait jamais proposé celle là ! Excuse moi de ma réaction, je suis bien conscient que tu prends du temps pour répondre à ma demande,
Dans le codage on factorise plutôt que de dupliquer :merci:
Membre enregistré
190 messages
Popularité : +21 (23 votes)
Posté le 19 mars 2018 - 19:30
Certain que dans les paramètres de l'état : les données imprimées viennent de : Une requête du projet soit sélectionné ??

Parce que si c est par programmation de sélectionné, normal qu'il n y ait rien.
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 19 mars 2018 - 19:53
Dans mon état j'ai mis : les données imprimées viennent de : REQ_premiererequete
Dans l'évènement : ouverture de l'état je code :
MoiMême..NomSource = "REQ_deuxièmerequete"
et bien .. l'état s'exécute avec la requete1 ... pfuu
c'est bien compliqué pour un pb vraiment simple ..
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 19 mars 2018 - 20:47
LC a écrit :
> c'est bien compliqué pour un pb vraiment simple ..

Et on en revient donc à ce qu'on te dis depuis le début : Arrête de te faire ch**r avec ça, et lie ton état à une variable de type tableau d'objet ou tableau de structure. Ça marcherait déjà...
Membre enregistré
165 messages
Popularité : +12 (12 votes)
Posté le 19 mars 2018 - 22:52
LC a écrit :

> Dans le codage on factorise plutôt que de dupliquer
------------------------------------------------------------------

Bonjour;

Merci pour ton conseil, mais depuis un bon moment j'essaye de factoriser et je n'ai pas pu TOUT factoriser, j'essaye d'éliminer la duplication, j'ai pas pu aussi. "MINIMISER" ===> OUI

Au fait, au lieu d'envoyer deux requêtes presque similaires à ton état, FACTORISE et écris une seule requête ;)

Bon Dev
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 20 mars 2018 - 15:19
Hé ! la bonne blague Marc Lazzarini, tous le monde m'a donné sa réponse ... guillemet, pas guillemet, nomsource, fichierparcouru, etc ... alors pas étonnant qu'il y ai 35 messages, je suis poli, j'écoute et je réponds à ce que l'on me demande.
Par contre un objet rattaché à l'état je veux bien ... mais tout gérer à la main y compris les ruptures, c'est quand même
fastidieux et pas du tout efficace, d'autant plus qu'il y a quand même la propriété MonEtat..Nomsource qui existe
alors c'est pas pour rien je suppose... je vais donc poser la question à PCSOFT.
Merci à tous pour vos réponses, (c'est aussi pour cela que la conversation dure ...)
Membre enregistré
628 messages
Popularité : +0 (16 votes)
Posté le 20 mars 2018 - 15:22
Et bien je veux bien faire une seule requête ... (j'ai donné le code sql plus haut de ma requête),
j'ai 2 cas : le EXISTS et le NOT EXISTS
si tu as une solution je suis preneur ...
Posté le 20 mars 2018 - 15:52
Pour ma part ce code fonctionne parfaitement, les données sont bien affichées

Procedure ETAT_SansNom1(gnToto est un entier)
SI gnToto = 1 ALORS
MoiMême..NomSource="REQ_SansNom1"
SINON
MoiMême..NomSource="REQ_SansNom2"
FIN

Mais c'est une solution qui va t'amener à multiplier tes requêtes et donc le code redondant...

Le problème c'est que ce que tu veux faire il faut le faire avec un état géré par programmation sur lequel tu décris et adapte ton code sql en fonction de tes paramètres, tu parcours ta source de données et tu fais tes affectation des rubriques toi même

Perso j'ai toujours utilisé cette technique bien plus souple et évolutive et je n'ai jamais passé des journées sur un rapport pour autant... ca prend peut être qq minutes de plus ok, mais le temps que tu a passé à chercher ca serait fini depuis bien longtemps...

Je l'ai bien stipulé sur mon premier message les parcours sur requêtes c'est assez limité

Bon Dev
Marc Fastré
www.marc-fastre.be
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 20 mars 2018 - 17:38
LC a écrit :
Hé ! la bonne blague Marc Lazzarini, tous le monde m'a donné sa réponse ... guillemet, pas guillemet, nomsource, fichierparcouru, etc ... alors pas étonnant qu'il y ai 35 messages, je suis poli, j'écoute et je réponds à ce que l'on me demande.
Par contre un objet rattaché à l'état je veux bien ... mais tout gérer à la main y compris les ruptures, c'est quand même
fastidieux et pas du tout efficace, d'autant plus qu'il y a quand même la propriété MonEtat..Nomsource qui existe
alors c'est pas pour rien je suppose... je vais donc poser la question à PCSOFT.
Merci à tous pour vos réponses, (c'est aussi pour cela que la conversation dure ...)


Dans la solution de l'état rempli par variable (tableau d'objet), tu n'as strictement rien à gérer à la main...