|
| Erreur de liaison sur le champ source |
| Iniciado por avauxaurelien, 26,mar. 2019 10:55 - 4 respuestas |
| |
| | | |
|
| |
| Publicado el 26,marzo 2019 - 10:55 |
Bonjour,
Voila que je travaille sur WinDev 24 depuis peu et je suis confronté à un problème.
J'ai une erreur fatale de programmation :
Erreur à la ligne 1 du traitement Clic sur BTN_Valider1. Vous avez appelé la FONCTION EcranVersFichier. Erreur de Liaison sur le champ Source <SAI_Numéro_de_facture>. Erreur de Liaison sur le champ Source <SAI_Numéro_de_facture>.
J'explique un peu le contexte :
J'ai une fenêtre qui contient un onglet avec deux volets, dans cette même fenêtre j'ai déclaré plusieurs variables de type Enregistrement
gTINVENTAIRE est un Enregistrement de TINVENTAIRE gTCOMPTABILITÉ est un Enregistrement de TCOMPTABILITÉ
gTINVENTAIRE est liée aux champs du premier volet et gTCOMPTABILITÉ à ceux du deuxième volet. J'ai un bouton de validation dans chacun des volets avec le code
EcranVersFichier(FEN_FICHE_INVENTAIRE, "gTINVENTAIRE") pour le premier et
EcranVersFichier(FEN_FICHE_INVENTAIRE, "gTCOMPTABILITÉ") pour le second
Lorsque je valide le formulaire du premier volet, ça fonctionne, ma variable Enregistrement gTINVENTAIRE est bien modifiée. Mais si j'essaye avec le formulaire du deuxième volet, j'ai l'erreur citée plus haut et le programme plante.
Merci d'avance pour votre aide. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 26,marzo 2019 - 12:26 |
| Est-ce que tu n'aurais pas deux champs reliés à la même donnée de tes enregistrements (Ça expliquerait le fait que le message d'erreur apparaisse deux fois) |
| |
| |
| | | |
|
| | |
| |
| Publicado el 26,marzo 2019 - 13:55 |
Non j'ai déjà vérifier plusieurs fois, et même refait entièrement le formulaire. Je ne comprend pas pourquoi cela fonctionne pour le premier formulaire mais pas pour le deuxième, je l'ai programmé de la même façon.
De plus je viens d'essayer avec une nouvelle fenêtre, je déclare ma variable Enregistrement, je place deux champs reliés à la même rubrique et quand je fais EcranVersFichier je n'ai pas d'erreur, il recopie la valeur du premier champ et ensuite l'écrase avec la valeur du deuxième, mais aucune erreur. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.640 mensajes |
|
| Publicado el 26,marzo 2019 - 14:41 |
Hello,
Je ne suis pas sur mais, il me semble que EcranVersFichier utilise implicitement la sérialisation et la sérialisation n'aime pas les accents.. Essaye en renommant ta variable gTCOMPTABILITÉ en gTCOMPTABILITE ?
Sinon, tente la même chose mais avec EcranVersSource() C'est a peu près pareil mais bon.. Un enregistrement de fichier n'etant pas vraiment un fichier a proprement parlé.. normalement EcranVersSource est fait pour ca. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 26,marzo 2019 - 15:31 |
Je viens d'essayer avec EcranVersSource et en retirant les accents, ça ne change rien du tout à mon erreur.
Je viens de trouver mon erreur, à un endroit dans le code j'affecte Null à ma variable gTCOMPTABILITÉ et donc dès que je fais un EcranVersFichier sur cette variable, le programme plante.
Un exemple de procédure (définie dans une classe CTINVENTAIRE)
Procedure GLOBAL Ajouter(LOCAL mTINVENTAIRE est un Enregistrement de TINVENTAIRE)
TINVENTAIRE = mTINVENTAIRE
HTransactionDébut(Localhost) SI HAjoute(TINVENTAIRE) ALORS mTINVENTAIRE_HISTO est un Enregistrement de TINVENTAIRE_HISTO mTINVENTAIRE_HISTO.ID_TINVENTAIRE = TINVENTAIRE.ID mTINVENTAIRE_HISTO = TINVENTAIRE mTINVENTAIRE_HISTO.OPÉRATION = "Ajout" CTINVENTAIRE_HISTO.Ajouter(mTINVENTAIRE_HISTO) HTransactionFin(Localhost) RENVOYER TINVENTAIRE FIN
RENVOYER Null
CAS ERREUR: HTransactionAnnule(Localhost) ErreurPropage() CAS EXCEPTION: HTransactionAnnule(Localhost) ExceptionPropage()
Donc si je fait :
gTINVENTAIRE est un Enregistrement de TINVENTAIRE gTINVENTAIRE.LIBELLÉ = "test"
gTINVENTAIRE = CTINVENTAIRE.Ajouter(gTINVENTAIRE)
Si la procédure Ajouter renvoie Null, je ne peux plus utiliser ma variable gTINVENTAIRE pour faire des EcranVersFichier.
En tout cas merci pour votre aide. |
| |
| |
| | | |
|
| | | | |
| | |
|