1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

Aucune syntaxe de Désérialise ne correspond

Discussion dans 'Windev' créé par Amiiinee77, Nov 16, 2025.

Tags:
  1. Amiiinee77

    Amiiinee77 Member

    Inscrit:
    Fev 10, 2024
    Messages:
    67
    J'aime reçus:
    0
    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]
     
    Tags:
  2. Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    638
    J'aime reçus:
    355
    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
     
    Gemini1961 apprécie ceci.
  3. Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    638
    J'aime reçus:
    355
    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
     
     
  4. Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    638
    J'aime reçus:
    355
    Je pense qu'il a lâché l'affaire.
     
  5. Isabelle

    Isabelle Well-Known Member

    Inscrit:
    Jan 18, 2018
    Messages:
    451
    J'aime reçus:
    308

    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...
    Il est coutumier du fait.
    Quand il a la solution, il se barre, sans merci.
     

Partager cette page

Chargement...