| |
Miembro registrado 31 mensajes |
|
| Publicado el 26,agosto 2020 - 10:42 |
Bonjour a tous, Je suis en train de m'entrainer à utiliser les classes, j'ai créer une table binder à ma classe, jusque la pas de souci.
Ma classe facture contient un tableau de LigneFacture qui est une autre classe. La table se rempli correctement, mais j'aimerais faire des modifications sur l'objet sur par la suite l'utilisateur final décide de modifier la qte par exemple. Ma question est la suivante : est-il possible de savoir l'objet cLigneFacture que je modifie à l'entré dans une ligne de la table ?
Merci a vous pour vos réponse, Benjamin L. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 26,agosto 2020 - 11:08 |
Salut Benjamin, oui bien-sûr, dans le contenu de la table sélectionne comme variable mémorisée "<Elément courant>" ainsi lorsque tu accéderas à la ligne i de ta table elle te retournera ton objet exemple:
i est un entier = TableSelect(MaTable) # Pour récupère l'indice de la ligne en cours sur la table MaLigneFacture est une cLigneFacture dynamique <- MaTable[i] Ensuite comme l'objet est dynamique il pointe directement sur ton objet du tableau, en gros toutes les modifications sur cet objet auront un impact direct sur l'objet de qui se trouve dans ton tableau n'hésite pas si tu as besoin d'autres informations ou si tu as du mal à comprendre
-- Il n'y a pas de mystère en informatique. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 31 mensajes |
|
| Publicado el 26,agosto 2020 - 11:21 |
Tous d'abord merci pour ta réponse aussi rapide. C'est ce que j'avais fait au début mais je me retrouve face a un mur. J'ai adapter ton exemple a mon cas de figure et ajouter celui-ci dans le code de selection de ligne.

|
| |
| |
| | | |
|
| | |
| |
| Publicado el 26,agosto 2020 - 11:29 |
Ensuite tu peux par programmation dans le code de sortie du champs faire toi même les affections Exemple: Sortie colonne qte
i est un entier = TableSelect(MaTable) MaLigneFacture est une cLigneFacture dynamique <- MaTable[i] MaLigneFacture.Qte = MaTable[i].Qte et faire tous les autres traitements que tu souhaiterai faire. D'ailleurs je peux te proposer de mettre des propriété sur tes membres pour automatiser tes calculs, par exemple sur le membre quantité où tu recalculera automatiquement les Totaux (HT, TTC) Si tu ne connais pas la notion de propriété hésite pas 
-- Il n'y a pas de mystère en informatique. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 31 mensajes |
|
| Publicado el 26,agosto 2020 - 11:41 |
J'ai oublié de te mettre l'erreur pour que tu puisse y voir plus clair :
On ne peut pas affecter à un objet autre chose qu'un objet de la même classe.
Pile des appels : PROCEDURE INTERNE SelectLigne (FI_Volet_Fiche_Saisie_Facture_NOUVEAU.PROCEDURE.GestionTableArticle), ligne 231 Procedure locale GestionTableArticle (FI_Volet_Fiche_Saisie_Facture_NOUVEAU.PROCEDURE.GestionTableArticle), ligne 27 Sélection d'une ligne de TABLE_M_tabProduitsClassiques (FI_Volet_Fiche_Saisie_Facture_NOUVEAU.FI_Volet_Fiche_Saisie_Facture_NOUVEAU.TABLE_M_tabProduitsClassiques), ligne 1
Date : 26/08/2020 11:40:56 Projet : Texam
Informations supplémentaires : Code Erreur : 2407 Module : 'wd250vm.dll (01F250089f - 25.0.480.3) EIT_TYPE_WDFILE : <8> EIT_IDCODE : <458752> |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 296 mensajes |
|
| Publicado el 26,agosto 2020 - 11:45 |
Benjamin LECOMTE a écrit :
J'ai oublié de te mettre l'erreur pour que tu puisse y voir plus clair : On ne peut pas affecter à un objet autre chose qu'un objet de la même classe.
Pile des appels : Procédure interne SelectLigne (FI_Volet_Fiche_Saisie_Facture_NOUVEAU.PROCEDURE.GestionTableArticle), ligne 231 Procédure locale GestionTableArticle (FI_Volet_Fiche_Saisie_Facture_NOUVEAU.PROCEDURE.GestionTableArticle), ligne 27 Sélection d'une ligne de TABLE_M_tabProduitsClassiques (FI_Volet_Fiche_Saisie_Facture_NOUVEAU.FI_Volet_Fiche_Saisie_Facture_NOUVEAU.TABLE_M_tabProduitsClassiques), ligne 1
Date : 26/08/2020 11:40:56 Projet : Texam
Informations supplémentaires : Code erreur : 2407 Module : 'wd250vm.dll (01F250089f - 25.0.480.3) EIT_TYPE_WDFILE : <8> EIT_IDCODE : <458752>
Possible de voir la ligne 1 de ta sélection de ligne de TABLE_M_tabProduitsClassiques Montre le code
-- Les innocents sont toujours accusé à tord. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 31 mensajes |
|
| Publicado el 26,agosto 2020 - 11:45 |
D'ailleur j'ai la même erreur en sortie de ligne
On ne peut pas affecter à un objet autre chose qu'un objet de la même classe.
Pile des appels : PROCEDURE INTERNE SortieLigne (FI_Volet_Fiche_Saisie_Facture_NOUVEAU.PROCEDURE.GestionTableArticle), ligne 221 Procedure locale GestionTableArticle (FI_Volet_Fiche_Saisie_Facture_NOUVEAU.PROCEDURE.GestionTableArticle), ligne 26 Sortie d'une ligne de TABLE_M_tabProduitsClassiques (FI_Volet_Fiche_Saisie_Facture_NOUVEAU.FI_Volet_Fiche_Saisie_Facture_NOUVEAU.TABLE_M_tabProduitsClassiques), ligne 1
Date : 26/08/2020 11:44:08 Projet : Texam
Informations supplémentaires : Code Erreur : 2407 Module : 'wd250vm.dll (01F250089f - 25.0.480.3) EIT_TYPE_WDFILE : <8> EIT_IDCODE : <458752> |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 296 mensajes |
|
| Publicado el 26,agosto 2020 - 11:46 |
Cette erreur est très simple tu affectes a ton objet un objet d'une autre classe fait juste voir ton bout de code
-- Les innocents sont toujours accusé à tord. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 31 mensajes |
|
| Publicado el 26,agosto 2020 - 11:50 |
Il n'y a que le code que tu m'a fournis

|
| |
| |
| | | |
|
| | |
| |
Miembro registrado 31 mensajes |
|
| Publicado el 26,agosto 2020 - 11:52 |
Ninja CODEUR a écrit :
Cette erreur est très simple tu affectes a ton objet un objet d'une autre classe fait juste voir ton bout de code
-- Les innocents sont toujours accusé à tord.
C'est la ou je bloque, car mon tableau retourne un élement de type cLigneFact comme l'indique la photo plus haut dans le poste. Ensuite j'affecte cet élement a ma variable de type cLigneFacture. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 296 mensajes |
|
| Publicado el 26,agosto 2020 - 11:54 |
Vérifie la valeur de ton IdLigneSelect stp
-- Les innocents sont toujours accusé à tord. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 31 mensajes |
|
| Publicado el 26,agosto 2020 - 11:56 |
Tout me semble correct, sauf erreur de ma part

|
| |
| |
| | | |
|
| | |
| |
Miembro registrado 296 mensajes |
|
| Publicado el 26,agosto 2020 - 12:01 |
Très bizarre tu es sûr que tu as bien coché renvoyer l’élément courant et qu'il est de classe CligneFacture ? Sinon met un point d'arret avant MaLigneFacture est une ..... et teste dans le debogeur l'expression MaTable[i]
-- Les innocents sont toujours accusé à tord. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 31 mensajes |
|
| Publicado el 26,agosto 2020 - 12:05 |
Je viens de faire le test dans une autre fenêtre, en effet ton code fonctionne bien, j'applique la même chose a ma table visé dans ma fenetre principale, l'erreur ressort x) Imcompréhensible... Je continu d'investiger sur ce problème et revien vers toi dés que j'ai du nouveau. Encore merci pour ton aide |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 31 mensajes |
|
| Publicado el 26,agosto 2020 - 12:09 |
Je crois avoir identifier le probleme, et cela me paraît logique. Quand la ligne est vide, il n'y a pas encore d'ojet d'initialisé et donc une erreur se produit. La modification de l'objet ne peut se faire que quand j'ai quitté une premiere fois la ligne. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 296 mensajes |
|
| Publicado el 26,agosto 2020 - 12:36 |
hahahaha bah oui c'est logique si ton tableau est vide la ligne vide ne renvoi rien xD
-- Les innocents sont toujours accusé à tord. |
| |
| |
| | | |
|
| | |