Salut l'équipe. Je reviens vers vous pour demander de l'aide sur un petit soucis que je fais face. J'ai deux code windev, code 01 fonctionnel, code 02 m'affiche l'erreur Aucune syntaxe de Désérialise ne correspond, et pourtant, ça me parait la meme logique. Voici le code 01 Code (Text): PROCÉDURE MaFenêtre(gModeoverture) STComposition est une Structure Qte est un numérique Prix est un numérique Unité est une chaîne id_component est un entier componentName est chaîne Reference est chaîne obs est une chaîne FIN SELON gModeoverture CAS "create" LIB_title = "Composition du produit : " SELON FenPrécédente() CAS "FEN_Fiche_Devis" LIB_title += FEN_Fiche_Devis.TABLE_Devis.COL_Désignation CAS "FEN_Fiche_Facture" LIB_title += FEN_Fiche_Facture.TABLE_Factures.COL_Désignation AUTRE CAS FIN CAS "update" LIB_title = "Modification de la composition du produit : " tabComposition1 est un tableau de STComposition gsChaineJson est un chaîne SELON FenPrécédente() CAS "FEN_Fiche_Devis" LIB_title += FEN_Fiche_Devis.TABLE_Devis.COL_Désignation gsChaineJson = FEN_Fiche_Devis.COL_Composition Désérialise(tabComposition1,gsChaineJson,psdJSON) TableSupprimeTout(TABLE_Composition) CAS "FEN_Fiche_Facture" LIB_title += FEN_Fiche_Facture.TABLE_Factures.COL_Désignation gsChaineJson = FEN_Fiche_Facture.TABLE_Factures.COL_Composition Désérialise(tabComposition1,gsChaineJson,psdJSON) TableSupprimeTout(TABLE_Composition) AUTRE CAS FIN POUR TOUT t DE tabComposition1 TableAjoute(TABLE_Composition,t.Qte+TAB+t.Prix+TAB+t.Unité+TAB+t.id_component+TAB+t.componentName+TAB+t.Reference) SAI_OBS = t.obs FIN calculeTotal() AUTRE CAS FIN Le code 02 : Code (Text): PROCÉDURE MaFenêtre(gModeOverture) STDetailQte est une Structure sDesignation est une chaîne xMetre est un numérique FIN SELON gModeOverture CAS "Création" CAS "Modif" Tab_DetailQte est un tableau de STDetailQte JSONData est une chaîne SI FenEtat(FEN_La_facture_de_vente) = Actif ALORS JSONData = FEN_La_facture_de_vente.COL_Detail_Qte FIN Désérialise(Tab_DetailQte,JSONData,psdJSON) TableSupprimeTout(TABLE_Detail_Quantité) POUR TOUT T DE Tab_DetailQte TableAjoute(TABLE_Detail_Quantité,T.sDesignation) i est un entier = TableOccurrence(TABLE_Detail_Quantité) TABLE_Detail_Quantité[I].COL_Mètres = T.xMetre FIN AUTRE CAS FIN Je vous remercie d'avance sur votre aide[/I]
Bonjour, Es tu sur que les buffers (et non les chaînes) soient au format JSON. Donc que COL_Detail_Qte et COL_Composition soient au format JSON. C'est vraiment rare d'afficher un truc du style Code (Text): [ { "Qte":1, "Prix":1.5, "Unit\u00e9":"l", "id_component":1, "componentName":"Composant 1", "Reference":"1234", "obs":"N\u00e9ant" }, { "Qte":2, "Prix":3, "Unit\u00e9":"g", "id_component":2, "componentName":"Composant 2", "Reference":"2345", "obs":"N\u00e9ant" } ] dans une colonne
Plus je relis les codes, plus 1-Je suis étonné dont la manière son utilisés les tableaux et le structures 2-Je me demande si la désérialisation est vraiment la solution appropriée. Commençons par les structures/classes. Lorsque l'on parle sérialisation, je préfère utiliser des classes, mais cela n'engage que moi. En ce qui concerne CComposition, on remarque, outre le fait que l'affectation Code (Windev): SAI_OBS = t.obs écrase SAI_OBS à chaque itération, le membre observation n'est pas utilisé pour remplir TABLE_Composition. Il n'a donc rien à faire dans le tableau utilisé pour remplir ce champ. Il est préférable d'écrire Code (Windev): CComposant est une Classe //Dans ce cas précis (de mémoire il s'agit de recette de cuisine,) le type numérique (128 bits,) n'est pas utile. //On peut se contenter d'un réel (32 bit.) Dans le pire des cas il suffit de modifier l'unité par sa sous-unité (1 mg au lieu de 0,001 g) m_pkId_component est entier sur 8 <Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!="id_component",clé unique> //la taille de la clé doit être la même que celle de la table m_saReference est chaîne <Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!="Reference"> //S'il s'agit de la référence interne à la société le membre peut être déclaré en clé unique m_saComponentName est chaîne <Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!="componentName"> m_rQte est un réel <Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!="Qte"> m_moPrix est un monétaire <Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!="Prix"> //80 bits, on pourrait se contenter d'un réel m_saUnité est une chaîne <Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!="Unité"> FIN CComposition est une Classe m_tabListeComposants est un tableau <Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!="Composants"> de CComposant m_saObs est une chaîne <Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!="obs"> FIN
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! Je pense qu'il a lâché l'affaire.Cliquez pour agrandir...