1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

Les Classes en WM ?

Discussion dans 'Windev Mobile' créé par redha2010, Août 3, 2018.

  1. redha2010

    redha2010 Active Member

    Inscrit:
    Jan 25, 2018
    Messages:
    230
    J'aime reçus:
    226
    j'utilise sous WM22 des classes de données pour lié mon webservice
    j'ai rencontré deux problémes
    le 1er :
    sur l'emulateur tout passe bien ,et les données sont présents
    mais sous une appareil android physique pas de données

    le 2 eme:

    j'essai d'ajouter dans mon variable image dans ma classe mais l'image du produit ne s'affiche pas

    classe produit:
    Code (Text):
    MProduits est une Classe
       ID est un chaîne
       Description est une chaîne
       Photo est une Image
       Prix_Unitaire  est un entier
    FIN
    et j'ajoute un tableau dynamique de mes produits

    Code (Text):
    TableProduits est une Classe
    TableProduits est un tableau de MProduits dynamique
    FIN
    avec une méthode pour charger mes données

    Code (Text):
    PROCEDURE Load_Data()
    maReq est un restRequête
    maRep est un restRéponse
    vRestVariant est un Variant
    maReq.URL=WSURL+"/produits.php"
    maRep=RESTEnvoie(maReq)
    SI ErreurDétectée ALORS
        Erreur(ErreurInfo(errComplet))
    SINON
        vRestVariant=JSONVersVariant(maRep.Contenu)
        POUR TOUT ss DE vRestVariant
            clMesPr est MProduits
            clMesPr.ID=ss.Id
            clMesPr.Description=ss.Description
            clMesPr.Photo= dChargeImage(Décrypte(ss.photo,"",cryptNone,encodeBASE64))
            clMesPr.Prix_Unitaire=ss.Prix
            TableauAjoute(TableProduits,clMesPr)
        FIN
    FIN
     
    je fait la liaison de l'image dans un zone répété

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    mais l’exécution ne donne rien
     
    Tags:
    DirkPitt apprécie ceci.
  2. Ezekiel056

    Ezekiel056 Active Member

    Inscrit:
    Jan 17, 2018
    Messages:
    200
    J'aime reçus:
    154
    Bonjour !

    1) :
    Il faudrait vérifier que WSURL est bien initialisé avec la bonne URL depuis le mobile ? Si oui, qu'elle est bien accessible depuis l’extérieur ? (sinon, paramétrages routeur pour rediriger les ports)
    2) :
    Pour l'image, ya qq chose qui me gêne :
    clMesPr.Photo= dChargeImage(Décrypte(ss.photo,"",cryptNone,encodeBASE64))
    ne devrait il pas etre :
    clMesPr.Photo.image = dChargeImage(Décrypte(ss.photo,"",cryptNone,encodeBASE64))

    et vérifier que la méthode pour decoder le base64 soit la bonne, j'ai un doute. "dChargeImage(Décrypte(ss.photo,"",cryptNone,encodeBASE64))"
     
    DirkPitt apprécie ceci.
  3. redha2010

    redha2010 Active Member

    Inscrit:
    Jan 25, 2018
    Messages:
    230
    J'aime reçus:
    226
    1-pour l'url du webservice sa marche bien ,j'ai testé sans l'utilsation du classe
    2-j'ai essayer avec photo.image ,pas de rsultats aussi

    pour le decodage sa marche bien

     
  4. Ezekiel056

    Ezekiel056 Active Member

    Inscrit:
    Jan 17, 2018
    Messages:
    200
    J'aime reçus:
    154
    Oui mais quelle adresse a tu mis ?
    Car dans la vidéo que tu me montre, ton adresse commence par 127.0.0.1 .. ca ce n'est valable QUE depuis ton PC de developement.
    127.0.0.1 renvoi systématiquement au poste en cours.

    Je te conseille de mettre une trace :
    maReq.URL=WSURL+"/produits.php"
    info(maReq.URL)

    Recompile et redéploie sur le mobile et dit nous quelle adresse s'affiche STP

    Si tu vois 127.0.0.1, ca ne marchera pas.


    Car si effectivement le webservice que tu attaque est sur ton poste.. il va falloir soit mettre l'ip locale de ton pc (ex: 192.168.1.22) et t'assurer que ton mobile soit en wifi (le même reseau que le pc) soit ouvrir les ports dans ton routeur pour rediriger le port 80 vers ton pc.
     
  5. redha2010

    redha2010 Active Member

    Inscrit:
    Jan 25, 2018
    Messages:
    230
    J'aime reçus:
    226
    tout est configurer bien ,j'utilise deux exemples
    avec classe et sans classe
    et l’exemple créer sans classe marche trés bien
    mais avec l'exemple créer avec les classes ,pas d'erreurs mais aussi pas de données
     
  6. Ezekiel056

    Ezekiel056 Active Member

    Inscrit:
    Jan 17, 2018
    Messages:
    200
    J'aime reçus:
    154
    "tout est configurer bien" Visiblement pourtant un truc qui ne marche pas ***** :p
    As tu essayé ce que je t'ai conseillé ?

    Justement, il y a peut être un soucis de paramétrage dans ta classe qui fait qui ça n'adresse pas le bon site.
    Il faut debug étape par étape et s'assurer dans un premier temps que le Web service est bien appelé.

    C'est penible mais je te conseille de mettre des Infos() un peut partout pour t'assurer que tout es bon jusqu'a avoir une réponse incohérente et tu saura ce qui cloche.
     
    #6 Ezekiel056, Août 3, 2018
    Dernière édition par un modérateur: Août 3, 2018
  7. redha2010

    redha2010 Active Member

    Inscrit:
    Jan 25, 2018
    Messages:
    230
    J'aime reçus:
    226
    ok je vais re-testé encore

    après bcp de test j'ai emporter le projet en WM23
    la lecture des données se fait maintenant mais il me donne rien sur les détails
    je pense que c'est un problème de format des données !
    le 2 eme problème posé est résolu
    pas d'erreur coté de code
    l’erreur c’était dans un autre code coté affichage d'une ligne sur la zone répété
     
    #7 redha2010, Août 3, 2018
    Dernière édition par un modérateur: Août 3, 2018
  8. redha2010

    redha2010 Active Member

    Inscrit:
    Jan 25, 2018
    Messages:
    230
    J'aime reçus:
    226
    voila résultat d'affichage après l'utilisation WM23

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    reste a résoudre le problème du format des données
     
  9. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,882
    J'aime reçus:
    1,532
    si tu dis que sans classe cela fonctionne et que tu utilise JSONVersVariant alors ton format de donnee est JSON non!!!?
     
  10. redha2010

    redha2010 Active Member

    Inscrit:
    Jan 25, 2018
    Messages:
    230
    J'aime reçus:
    226

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    si tu dis que sans classe cela fonctionne et que tu utilise JSONVersVariant alors ton format de donnee est JSON non!!!?
    Cliquez pour agrandir...
    dans les 2 cas (avec ou sans classe) j'utilise JSONVersVariant la seule différence c'est l'ajout des données
    sans classe j'ajoute directement par ZoneRépétéeAjouteLigne
    avec classe j'ajoute les données dans un tableau dynamique
    le probleme c'est que dans l'emulateur tout passe bien, mais sur une Tablet sa donne pas la mémé resultat
     
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,882
    J'aime reçus:
    1,532
    La question est peut être hors sujet mais pourquoi veut tu absolument utilisé les classes?
    Personnellement, j'évite.
    La programmation objet aussi.
    Cela peut compliqué le code parfois sans raisons.
    Je les utilise en général pour faire de l'obfuscation si je pense qu'une décompilation peut être faîte et je souhaite pas donné une source.
     
  • redha2010

    redha2010 Active Member

    Inscrit:
    Jan 25, 2018
    Messages:
    230
    J'aime reçus:
    226

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    La question est peut être hors sujet mais pourquoi veut tu absolument utilisé les classes?
    Personnellement, j'évite.
    La programmation objet aussi.
    Cela peut compliqué le code parfois sans raisons.
    Je les utilise en général pour faire de l'obfuscation si je pense qu'une décompilation peut être faîte et je souhaite pas donné une source.
    Cliquez pour agrandir...
    pour l'utilisation des classes c'est juste une habitude .NET ,et encours de modification d'un projet HFSQL c/s et de ne pas aller plus loins je voulais juste modifier
    la liaison des données dans les zones répétés utilisés par des classes de données utilisant le websrvice créer.

    je pense que j’éviterai aussi l'utilisation des classes sur WM

    Hors sujet: j'ai remarqué que la taille d'apk générer par WM23 du même projet est moins volumineux de celle générer par WM22
    pour mon exemple:sur WM22 la taille est 14.5 Mo
    sur WM23 la taille est presque 11.6 Mo
     
  • Ezekiel056

    Ezekiel056 Active Member

    Inscrit:
    Jan 17, 2018
    Messages:
    200
    J'aime reçus:
    154
    Je pense que c'est un bon reflex de coder avec des classes.
    Ça permet la réutilisation du code plus facilement

    Parfois, on code quelque chose en pensant ne pas s'en reservir.. et quelques semaines on se retrouve dans le même cas de figure dans un contexte différent.. on fait des copier / coller et ça devient le bazar quand il faut faire une modif.

    Après, chacun sa méthode préférée, tant que ça fonctionne il faut conserver la méthode :)


    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    mais pour de petits projets.. ou des fenêtres a usage unique dans un but précis, effectivement , pour gagner du temps je ne m’embête pas avec les classes qui sont plus longues a coder.
     
  • Partager cette page

    Chargement...