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 :

Valeurs retournées par composant


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 221
    Par défaut Valeurs retournées par composant
    Bonjour,
    j'ai fait un composant qui doit me retourner plusieurs valeurs. Pour se faire, j'ai utilisé une structure. Quand j'affiche mes valeurs de ma structure directement dans le composant, tout fonctionne très bien.

    Le problème est lorsque j'utilise mon composant dans un autre projet, je ne suis pas capable d'affecter la valeur de retour de mon composant à une structure que j'ai dans mon projet qui utilise le composant.

    J'ai pourtant créé une structure identique dans le projet qui utilise le composant.

    Voici le message d'erreur que j'obtiens
    On ne peut pas affecter à une structure autre chose qu'une structure de même définition.
    Merci d'avance pour votre aide et bonne journée
    --Samus535

  2. #2
    Membre Expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 915
    Par défaut
    Bonjour,

    Peux tu nous mettre la définition de la structure de ton composant ainsi que le code utiliser pour renvoyer la structure.


    Puis peux tu nous mettre la structure utilisé dans ton projet ainsi que la façon dont l'affecte.

    Merci.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 221
    Par défaut
    Citation Envoyé par mail.spam Voir le message
    Bonjour,

    1 - Peux tu nous mettre la définition de la structure de ton composant ainsi que le code utiliser pour renvoyer la structure.


    2 - Puis peux tu nous mettre la structure utilisé dans ton projet ainsi que la façon dont l'affecte.

    Merci.
    1 -
    Définition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ValRetourGetPrice est une structure
    	sCommCode est une chaîne
    	xCommRate est un numérique
    	sOrigin est une chaîne
    	xPrice est un numeric
    	nStatus est un entier
    	sMsg est une chaîne
    FIN
    Code pour retourner la structure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    stMesValeursDeRetour est un ValRetourGetPrice
    ...
    ...
    stMesValeursDeRetour = getNetPriceMc(param1, param2, param3, etc.)
    RENVOYER stMesValeursDeRetour

    2 - Définition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ValRetourGetPrice est une structure
    	sCommCode est une chaîne
    	xCommRate est un numérique
    	sOrigin est une chaîne
    	xPrice est un numeric
    	nStatus est un entier
    	sMsg est une chaîne
    FIN
    Affectation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    valRetour est un ValRetourGetPrice
    ...
    ...
    valRetour = Composant_Price.Get_Price(param1, param2, param3, etc.)

    S'il manque des informations n'hésite pas à les demander

    Merci et bonne journée
    --Samus535

  4. #4
    Membre Expert

    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
    Par défaut
    Bonjour,

    Ce genre de problématique m'intéresse particulièrement.

    Citation Envoyé par samus535 Voir le message

    J'ai pourtant créé une structure identique dans le projet qui utilise le composant.


    Voici le message d'erreur que j'obtiens
    On ne peut pas affecter à une structure autre chose qu'une structure de même définition.
    Le message d'erreur est très clair: tu dois utiliser la même définition de structure et non pas une définition de structure identique.

    As-tu essayé dans le projet de déclarer la variable valRetour avec le type défini dans le composant ?

    En effet, les structures définies dans le composant peuvent être utilisées dans les projets qui utilisent le composant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    valRetour est un Composant_Price.ValRetourGetPrice
    ...
    ...
    valRetour = Composant_Price.Get_Price(param1, param2, param3, etc.)
    _

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 221
    Par défaut
    Citation Envoyé par =JBO= Voir le message
    Bonjour,

    Ce genre de problématique m'intéresse particulièrement.



    Le message d'erreur est très clair: tu dois utiliser la même définition de structure et non pas une définition de structure identique.

    As-tu essayé dans le projet de déclarer la variable valRetour avec le type défini dans le composant ?

    En effet, les structures définies dans le composant peuvent être utilisées dans les projets qui utilisent le composant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    valRetour est un Composant_Price.ValRetourGetPrice
    ...
    ...
    valRetour = Composant_Price.Get_Price(param1, param2, param3, etc.)
    _
    Merci pour la réponse,
    le seul petit problème, c'est que je n'ai pas accès à ma structure dans le projet qui utilise le composant.

    Ma structure est définie dans l'initialisation du projet.

    Merci et bonne journée
    --Samus535

  6. #6
    Membre Expert

    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
    Par défaut
    Citation Envoyé par samus535 Voir le message
    le seul petit problème, c'est que je n'ai pas accès à ma structure dans le projet qui utilise le composant.

    Ma structure est définie dans l'initialisation du projet.
    Et tu appelles ça un "petit" problème !

    En fait c'est "LE" problème !

    Il faut définir cette structure dans le "traitement de déclaration de globales" d'une collection de procédures, ou d'une classe de ton composant.

    Il semblerait logique de le faire dans la collection de procédures où tu as défini la procédure Get_Price().
    _

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 221
    Par défaut
    Citation Envoyé par =JBO= Voir le message
    Et tu appelles ça un "petit" problème !

    En fait c'est "LE" problème !

    Il faut définir cette structure dans le "traitement de déclaration de globales" d'une collection de procédures, ou d'une classe de ton composant.

    Il semblerait logique de le faire dans la collection de procédures où tu as défini la procédure Get_Price().
    _
    J'ai changé de place la définition le ma structure pour la mettre dans les "Procédures globales de Composant_Price". J'ai ensuite recompilé mon composant. Ensuite si je vais dans le projet qui utilise le composant, quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    valRetour est un Composant_Price.<CTRL+Space>
    il me propose ValRetourGetPrice, mais lorsque je le choisi, j'ai le message d'erreur suivant:

    Le type ValRetourGetPrice est inconnu.
    Merci beaucoup et bonne journée
    --Samus535

  8. #8
    Membre Expert

    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
    Par défaut Un contournement ???
    Je n'ai pas trop le temps de t'aider.
    Si tu es pressé, je te propose un contournement facile à mettre en œuvre.

    Au lieu d'une structure, crée une classe avec le même nom et les mêmes membres que la structure.
    Ainsi, il n'y aura plus de problème de type inconnu.
    _

  9. #9
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 221
    Par défaut
    Bonjour à tous,
    j'ai refait quelques tests et ça ne fonctionne toujours pas.



    Lorsque j'appèle ma procédure de mon composant, j'essaye d'obtenir certaines informations de ma procédure. Je veux les stocker dans un classe, de la façon suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    test est un Composant_Price.ValRetourGetPrice
    test = Composant_Price.Get_Price("S","",0,"QC0063",1,"","00210","DR","2006-01-01","CD","",0,"B","",0,0,"")
    Trace(test:xPrice)
    Le petit problème est que j'ai le message d'erreur suivant :

    Erreur à la ligne 2 du traitement Clic sur BTN_GetPrice.
    On ne peut pas affecter à un objet autre chose qu'un objet de la même classe.
    Merci d'avance et bonne journée
    --Samus 535

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

Discussions similaires

  1. comment comparer les valeurs retournés par DBGrid
    Par Ice-tea dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/06/2006, 14h42
  2. Réponses: 1
    Dernier message: 22/05/2006, 11h27
  3. [SQL] Valeur retournée par une requête...
    Par Empty_body dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/01/2006, 22h13
  4. VB6 --> Valeurs retournées par une comboBox
    Par the java lover dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/12/2005, 16h26
  5. valeur retournée par un .js
    Par astrofiles dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/08/2005, 10h20

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