PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Accéder aux champs d'un état depuis mon projet
Accéder aux champs d'un état depuis mon projet
Started by Delphine, Mar., 23 2017 10:21 AM - 6 replies
Registered member
85 messages
Popularité : +1 (1 vote)
Posted on March, 23 2017 - 10:21 AM
Bonjour,

Je cherche à accéder aux champs d'un état afin notamment de savoir si l'état indiqué contient bien un libellé qui possède une valeur particulière.

Le compilateur ne m'indique pas d'erreur lorsque j'écris la ligne de code suivante :
SI ETAT_Test.DEBUT_DOCUMENT.LIB_Test = "Test" ALORS
Info("Etat valide")
SINON
Info("Etat non conforme")
FIN

Mais à l'exécution, j'ai systématiquement l'erreur suivante :

Le champ 'ETAT_Test.DEBUT_DOCUMENT.LIB_Test' est inconnu.

Pourtant la complétion automatique de code me propose bien mon champ (l'état que je teste contient bien le champ concerné) et je n'ai pas d'erreur de compilation...

Savez-vous comment procéder ?

Merci d'avance pour votre aide.

Cordialement,

Delphine
Posted on March, 23 2017 - 12:23 PM
Bonjour

le compilateur ne te mets pas d'erreur parce que c'est un code valide,
et qu'il ne sait pas QUAND et OU tu vas l'appeler.

Par exemple, si tu l'appelle depuis un code de l'état, ca fonctionnera bien

-MAIS-

La logique du code d'un état est de n'exister QUE pendant la CREATION de
celui ci (ce n'est pas une fenêtre qui reste ouverte). L'aperçu ne fait
qu'afficher le résultat le RESULTAT de l'état. L'état n'existe déjà plus
à ce moment la...

Donc, je ne sais pas QUAND tu essaye de faire ça, mais le résultat me
parait cohérent

Cordialement

--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Le 3/23/2017 à 4:21 AM, Delphine a écrit :
Bonjour,

Je cherche à accéder aux champs d'un état afin notamment de savoir si
l'état indiqué contient bien un libellé qui possède une valeur
particulière.

Le compilateur ne m'indique pas d'erreur lorsque j'écris la ligne de
code suivante :
SI ETAT_Test.DEBUT_DOCUMENT.LIB_Test = "Test" ALORS
Info("Etat valide")
SINON
Info("Etat non conforme")
FIN

Mais à l'exécution, j'ai systématiquement l'erreur suivante :

Le champ 'ETAT_Test.DEBUT_DOCUMENT.LIB_Test' est inconnu.

Pourtant la complétion automatique de code me propose bien mon champ
(l'état que je teste contient bien le champ concerné) et je n'ai pas
d'erreur de compilation...

Savez-vous comment procéder ?

Merci d'avance pour votre aide.

Cordialement,

Delphine
Registered member
85 messages
Popularité : +1 (1 vote)
Posted on March, 23 2017 - 2:08 PM
Bonjour Fabrice,

En fait je veux tester si mon état est un état autorisé avant de m'en servir (on laisse la possibilité d'avoir des états personnalisés mais je veux être sûre qu'ils sont conformes à mes attentes).
Donc ce bout de code est appelé dans mon projet et non pas dans le code de mon état.
Comment devrais-je procéder ?

Cordialement,

Delphine
Posted on March, 23 2017 - 3:32 PM
Bonne question...

comment sont personnalisés les états ? Par les utilisateurs avec état et
requête ?

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com

Le 3/23/2017 à 8:08 AM, Delphine a écrit :
Bonjour Fabrice,

En fait je veux tester si mon état est un état autorisé avant de m'en
servir (on laisse la possibilité d'avoir des états personnalisés mais je
veux être sûre qu'ils sont conformes à mes attentes).
Donc ce bout de code est appelé dans mon projet et non pas dans le code
de mon état.
Comment devrais-je procéder ?

Cordialement,

Delphine
Registered member
85 messages
Popularité : +1 (1 vote)
Posted on March, 23 2017 - 4:22 PM
Oui c'est ça ;-)

Cordialement,

Delphine
Posted on March, 23 2017 - 7:23 PM
je n'utilise pas état et requete, donc ce que je vais dire ci-dessous
est hypothétique...

Je sais que les utilisateurs peuvent changer beaucoup de chose, et je
suppose donc qu'ils peuvent supprimer du code existant.

Donc, comme le seul code qui peut vérifier des éléments d'un rapport
doit être DANS le rapport, si les utilisateurs peuvent le supprimer, tu
as un problème...

Perso, j'essayerais de le résoudre de la façon suivante :
- le code de vérification est dans une procédure globale
- dans le code du rapport, la ou les éléments à vérifier sont présent,
tu appelle la procédure globale
- cette procédure globale, EN PLUS de faire la vérif, doit aussi être la
seule capable de retourner certains éléments INDISPENSABLES du rapport
(de manière que les utilisateurs ne puissent pas obtenir leur rapport
s'ils suppriment l'appel)
- la procédure en question étant appelé quand le rapport est déjà en
cours d'impression ne peut PAS empêcher son édition, mais elle peut
imprimer un gros "RAPPORT INCORRECT" par dessus en diagonale avec un
imprimeMOT, par exemple.

A explorer, donc, ...

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Le 3/23/2017 à 10:22 AM, Delphine a écrit :
Oui c'est ça ;-)

Cordialement,

Delphine
Registered member
85 messages
Popularité : +1 (1 vote)
Posted on March, 24 2017 - 10:48 AM
Bonjour Fabrice,

Je ne pensais pas que le code qui peut vérifier des éléments d'un état devait obligatoirement être dans l'état, du coup ça perturbe ce que je souhaitais faire.

Merci beaucoup pour ta suggestion que je vais étudier.

Cordialement,

Delphine