|
| DataBinDing et inverse de ..LiaisonFichier ??? |
| Iniciado por LM Concept, 06,jun. 2019 15:58 - 6 respuestas |
| |
| | | |
|
| |
Miembro registrado 405 mensajes |
|
| Publicado el 06,junio 2019 - 15:58 |
Bonjour a tous. Si on lie une structure à des champs., il possible de connaitre la variable liée au champ avec la propriété ..LiaisonFichier Exemple
Info(SAI_NOM..LiaisonFichier) Mais y a t il une propriété qui donne les contraire ?
Info(stAdresse:sNom..??????)
Merci de votre aide BON DEV |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 953 mensajes |
|
| Publicado el 06,junio 2019 - 16:20 |
bonjour LM Concept,
il faut je pense faire un parcours des champs de votre fenêtre avec la fonction EnumèreSousElement() pour ensuite tenter d'accéder à leur propriété ..LiaisonFichier et la comparer à ce que vous souhaitez.
=> https://doc.pcsoft.fr/fr-FR/?3064002&name=EnumereSousElement
un peu comme ceci :
Info(Saisie1..LiaisonFichier)
sParent est une chaîne = MaFenêtre..Nom
PROCEDURE INTERNE proc_int_enum_sous_elem(vp_Parent) sNomChamp est une chaîne = EnumèreSousElément(vp_Parent, enumPremier) TANTQUE sNomChamp <> "" sNomComplet est une chaîne = vp_Parent + "." + sNomChamp QUAND EXCEPTIONEXCEPTION DANS nType est un entier = {sNomComplet, indGPW}..Type SELON nType CAS typOnglet,typTable,typBarreOutils,typBoîteAOutils,typSuperChamp proc_int_enum_sous_elem(sNomComplet) CAS typOptionMenu AUTRE CAS SI {sNomComplet,indGPW}..LiaisonFichier=":mon_str_test.label" ALORS Trace("Found : "+sNomComplet+" ("+{sNomComplet,indGPW}..LiaisonFichier+")") FIN FIN FAIRE FIN sNomChamp = EnumèreSousElément(vp_Parent) FIN FIN
proc_int_enum_sous_elem(sParent)
bon dèvMensaje modificado, 06,junio 2019 - 16:20 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 405 mensajes |
|
| Publicado el 06,junio 2019 - 17:21 |
Bonjour, Merci pour l'info. Mais bon je vais faire cette méthode. C'est une fenêtre des 350 champs lié à un xmlDocument, et donc le parcours prend un peu de temps. Je pensais qu'il y aurait plus simple ! Une propriété qui m’était inconnue.
Merci et BON DEV |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.682 mensajes |
|
| Publicado el 07,junio 2019 - 08:50 |
Bonjour,
EN prenant la méthode de Christophe, tu peux tout simplement énumérer tous les champs et pour tous ceux qui ont une liaison les stocker dans un tableau associatif.
Du coup lorsque tu as besoin de savoir à quel champ appartient la liaison, il te suffit de regarder dans le tableau associatif, ce qui est très rapide.
Je verrai quelque chose comme ça:
gtaLiaisons est un tableau associatif de chaînes proc_int_enum_sous_elem(MoiMême)
PROCEDURE INTERNE proc_int_enum_sous_elem(vp_Parent) sNomChamp est une chaîne = EnumèreSousElément(vp_Parent, enumPremier) TANTQUE sNomChamp <> "" sNomComplet est une chaîne = vp_Parent + "." + sNomChamp QUAND EXCEPTIONEXCEPTION DANS nType est un entier = {sNomComplet, indGPW}..Type SELON nType CAS typOnglet,typTable,typBarreOutils,typBoîteAOutils,typSuperChamp proc_int_enum_sous_elem(sNomComplet) CAS typOptionMenu AUTRE CAS SI {sNomComplet,indGPW}..LiaisonFichier=":mon_str_test.label" ALORS gtaLiaisons[{sNomComplet,indGPW}..LiaisonFichier] = sNomComplet FIN FIN FAIRE FIN sNomChamp = EnumèreSousElément(vp_Parent) FIN
FIN
Au moment où tu recherches le champ lié :
SI gtaLiaisons[":mon_str_test.label"]..Existe ALORS {gtaLiaisons[":mon_str_test.label"],indChamp} = "toto" FIN
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 405 mensajes |
|
| Publicado el 07,junio 2019 - 09:03 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.682 mensajes |
|
| Publicado el 07,junio 2019 - 12:31 |
Bonjour,
J'avais pas vu ce post, j'utilise du Databinding sur des source xml et je n'ai pas ce problème. Par contre tu devrais essayer cette syntaxe. Chez moi pas de problème.
SourceVersEcran(FEN_TEST,"gDocXML")
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 405 mensajes |
|
| Publicado el 07,junio 2019 - 14:19 |
j'avais essayé avec et sans guillemet et cela ne fonctionnait pas ! Sans guillemet j'ai : Un élément de type 'xmlDocument' ne peut pas être converti vers type 'chaine unicode' Avec guillemet j'ai : Erreur de liaison sur le champ source de SAI_XXX (qui est le premier champ de le fenêtre...)
En tout cas ces deux soucis m'ont obligé à faire un tableau de structure qui désormais m'est bien utile ! 
Merci. BON DEV. |
| |
| |
| | | |
|
| | | | |
| | |
|