IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

procédure manipulatrice de "Champ Table" [WD12]


Sujet :

WinDev

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 69
    Points : 64
    Points
    64
    Par défaut procédure manipulatrice de "Champ Table"
    Bonsoir à tous,

    Je cherche à faire une procédure qui remplit divers champs tables. Je ne sais pas comment passer le champ table à ma procédure autrement que par les indirections...J'aimerais l'équivalent d'un pointeur sur un objet en C++. Soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PROCEDURE Rfresh_liste(sChemin_avec_nom_generique_fichier est une chaîne, table_traitee est ????)
    Mon problème est que mettre à la place des ?????

    Merci d'avance pour votre aide,

    Cédric

  2. #2
    Membre chevronné Avatar de EDM-TAHITI
    Homme Profil pro
    Directeur Service informatique et projet développement
    Inscrit en
    Janvier 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur Service informatique et projet développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 994
    Points : 1 995
    Points
    1 995
    Par défaut
    Hello,
    puisque tu connais le C++, tu dois savoir que les pointeurs ont differentes notion tel que Huge, etc...
    Là, il me semble que tu prefererais savoir le nom de la table par passage de parametres (je me trompe?)
    Aussi voici ce que j'utilise comme variable native dans Windev
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    NomFen est une chaine = sansespace(mafenetre..nom)
    NomTable est une chaine = "NomdeLaTable"
    // appel de la procedure
    RECONNAIS_TABLE(NomFen, NomTable)
     
     
    // procedure de test
    Procedure RECONNAIS_TABLE(_NOMFENETRE, _NOMTABLE)
     
    info("Nom de la table = "+sansespace(_NOMFENETRE)+sansespace(_NOMTABLE)
     
    // nombre de linge
    NbOccurence est un netier = tableoccurrence({_NONFENETRE"+"."+_NOMTABLE}
    // et pour le reste imagination.....
    Voila, j'espere avoir répondu a ta question
    Amicalement
    le savoir est dans les livres, 'the magic touch F1'
    Amicalement
    Eric

  3. #3
    Membre expérimenté Avatar de klbsjpolp
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 065
    Points : 1 322
    Points
    1 322
    Par défaut
    Bonjour,

    La solution de EDM-TAHITI est très bonne mais je ne vois pas l'utilité de tous ces SansEspace? Si le champ a des espaces, ils doivent rester là. Avec cette solution, tu peux aussi utiliser les indirections pour accéder aux propriétés de ta table.

    Une autre solution serait de ne pas typer ton paramètre et de passer ta table directement.
    «Un problème bien défini est un problème à moitié résolu.»

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 69
    Points : 64
    Points
    64
    Par défaut
    Merci pour votre aide.
    Je pense que dans ce que vous me montrez, on utilise l'indirection.
    J'aimerais justement ne pas passer le nom de l'objet mais l'objet en lui même (ou du moins savoir si c'est possible). J'aimerais en fait déclarer dans ma procédure le passage de l'objet table ou un pointeur mais je ne sais comment faire... je ne connais pas le type notamment?

    Bon W-E à tous.

  5. #5
    Membre chevronné Avatar de EDM-TAHITI
    Homme Profil pro
    Directeur Service informatique et projet développement
    Inscrit en
    Janvier 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur Service informatique et projet développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 994
    Points : 1 995
    Points
    1 995
    Par défaut
    Hello,
    La solution que je te propose pointe directement sur l'objet, comme si tu l'affectais directement.
    Je me souviens de l'anpersande (&) sous windev fonctionnait. Essayes de voir de ce cote, je ne suis pas devant la machine qui va bien, mais je crois me souvenir que je l'ai utilisé quelques fois, mais compte tenu que les systemes ont évolué, vouloir adresser directement un objet en mémoire me semble dangereux.
    Amicalement
    le savoir est dans les livres, 'the magic touch F1'
    Amicalement
    Eric

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,
    Citation Envoyé par cgr_007 Voir le message

    J'aimerais justement ne pas passer le nom de l'objet mais l'objet en lui même (ou du moins savoir si c'est possible). J'aimerais en fait déclarer dans ma procédure le passage de l'objet table ou un pointeur mais je ne sais comment faire... je ne connais pas le type notamment?
    Comme le mentionne klbsjpolp dans la présente discussion, ou encore _Azul_ dans cette autre discussion Windev ou non ?...

    Il est possible de passer un élément d'IHM (fenêtre ou champ) en paramètre d'une procédure.

    Le paramètre ne doit pas être typé.
    Ensuite, dans le corps de la procédure, le paramètre est alors considéré comme étant "la" fenêtre ou "le" champ correspondant.

    Notamment on peut accéder aux propriétés ou modifier leur valeur sans faire d'indirection, directement via le paramètre.

    Mais, comme il n'y a pas de gestion de type, on perd les aides à la programmation (complétion du code, aide contextuelle...).


    P.S. Je me suis permis d'ajouter ce message car j'ai mis du temps à comprendre cette possibilité du WLangage et je ne crois pas être le seul.
    _

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 69
    Points : 64
    Points
    64
    Par défaut Merci
    Un tout grand merci pour votre aide...
    J'ai ce que je souhaitais

    P.S. Je me suis permis d'ajouter ce message car j'ai mis du temps à comprendre cette possibilité du WLangage et je ne crois pas être le seul.
    en effet...

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo