|
| [WD 25] WebService - Remplir Table via JSON |
| Iniciado por Gurdarr, 24,abr. 2020 10:52 - 2 respuestas |
| |
| | | |
|
| |
Miembro registrado 237 mensajes |
|
| Publicado el 24,abril 2020 - 10:52 |
Bonjour,
Je repose mon message /question car je n'ai plus accès au premier.
Je voulais savoir si il y avait une autre méthode que de faire un pour tout pour remplir une table depuis une chaine JSON reçu par un WEBService
En gros un équivalent de ConstruitTableFichier qui est plus rapide qu'un pour tout.
pour le moment je me suis créer les deux fonction suivantes mais j'aimerai les améliorer pour gagner en vitesse. MaVariable JSON contient deux tableaux un pour les données et un pour le format
Procedure TableauVersTable(p_Table est un Champ,p_Tableau) sMaLigne est une chaîne vMonVar est un Variant TableSupprimeTout(p_Table) SI p_Tableau..Occurrence > 0 ALORS Sablier(Vrai) p_Table..AffichageActif = Faux POUR n = 1 _À_ p_Tableau..Occurrence vMonVar = p_Tableau[n] POUR TOUT Colonne de vMonVar..Membre sMaLigne += Colonne +TAB FIN TableAjoute(p_Table,sMaLigne) sMaLigne = "" FIN p_Table..AffichageActif = Vrai Sablier(Faux) FIN
Procedure ConstruitTableTableau(p_Table est un Champ,p_Tableau,p_Tableau_Format_HFSQL) vMonVar est un Variant col est un Champ sNomColonne est une chaîne nTypeHFSQL est un entier SI p_Tableau..Occurrence > 0 ALORS TableSupprimeTout(p_Table) POUR nColonne = TableOccurrence(p_Table..NomComplet, toColonne) _À_ 1 PAS -1 col <- TableEnumèreColonne(p_Table..NomComplet, nColonne) ChampSupprime(col..NomComplet) FIN vMonVar = p_Tableau[1] POUR TOUT Colonne de vMonVar..Membre sNomColonne = Remplace(Colonne..Nom," ","_") col <- ChampCrée(p_Table..NomComplet+".COL_"+Remplace(Colonne..Nom," ","_"),typColonne) nTypeHFSQL = p_Tableau_Format_HFSQL[sNomColonne] iFormateColonne(nTypeHFSQL) col..Titre = Colonne..Nom FIN FIN
PROCEDURE INTERNE iFormateColonne(nP_TypeHFSQL est un entier) SELON nP_TypeHFSQL CAS 2,15,16,23,30,32,33 col..TypeSaisie = typSaisieTexte CAS 10,14 col..TypeSaisie = typSaisieDate col..MasqueAffichage = "JJ/MM/AAAA" CAS 11 col..TypeSaisie = typSaisieHeure col..MasqueAffichage = "HHh MMmin SS CC" CAS 24,25 col..TypeSaisie = typSaisieTexte col..MasqueAffichage = "JJ/MM/AAAA HHh MMmin SS CC" CAS 12,1,3,4,5,12,19,20 col..TypeSaisie = typSaisieNum col..MasqueAffichage = "999 999 999;-999 999 999[Rouge];0;<NULL>" CAS 6,7,13,31 col..TypeSaisie = typSaisieNum col..MasqueAffichage = "999 999 999,99;-999 999 999,99[Rouge];0;<NULL>" CAS 17 col..TypeSaisie = typSaisieMonétaire col..MasqueAffichage = maskMonétaireSystème CAS 27 col..TypeSaisie = typSaisieNum CAS 18,21 AUTRE CAS col..TypeSaisie = typSaisieTexte FIN FIN
Le code d'appel
sP_ParamJson est une chaîne = VariantVersJSON(v) sMonResultat est une chaîne = CLIENT_LISTER(sP_ParamJson) vVResulta est un Variant = JSONVersVariant(sMonResultat)
SI vVResulta.erreur.Code = 0 ALORS ConstruitTableTableau(TABLE_SansNom1,vVResulta.Resultats,vVResulta.Format) TableauVersTable(TABLE_SansNom1,vVResulta.Resultats) TableAjuste(TABLE_SansNom1) SINON Erreur(vVResulta.erreur.Libelle) FIN |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 160 mensajes |
|
| Publicado el 24,abril 2020 - 12:01 |
| L’assemblage .net "Newtonsoft.Json" va te faciliter énormément la vie |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 237 mensajes |
|
| Publicado el 24,abril 2020 - 16:00 |
Ma curiosité est plus que piqué, merci freak per
Mais je suis allé sur https://www.newtonsoft.com/json puis ensuite j'ai installer Nuget fait la magnifique ligne de commande en powershell "Install-Package Newtonsoft.Json" et je me retrouve pas avec la même version ^^
et surtout je n'ai pas l'assemblage qui apparait dans la liste dans Windev |
| |
| |
| | | |
|
| | | | |
| | |
|