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 :

Problème de passage de paramètre d'un etat composite vers un sous etat


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 372
    Par défaut Problème de passage de paramètre d'un etat composite vers un sous etat
    Bonjour,

    J'ai un problème avec le passage de paramètres entre mon état composite et mon sous état.

    Dans le code d'ouverture de l'état composite, j'utilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    PROCÉDURE MonEtat(pIDVar est un entier)
     
    iInitSousEtat(ETAT_DPE_Portrait_Parametres_Variante,pIDVar)
    dans le code de mon sous-etat, j'utilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    PROCÉDURE ETAT_DPE_Portrait_Parametres_Variante(iDVar est un entier)
     
    //Déclaration des variables
    Tab_Temp est un tableau associatif de réels
     
    //On recherche la variante
    HLitRecherchePremier(DPE_VARiante,IDDPE_VARiante,iDVar)
    SI iDVar = 0 _OU_ PAS HTrouve(DPE_VARiante) ALORS RETOUR
     
    //On transfert les données vers le tableau temporaire
    Tab_Temp <= Tab_Variantes[iDVar]
    J'ai besoin d'imprimer cet état plusieurs fois et en un seul document. Du coup, j'utilise le code suivant la fonction iEnchaînementAjoute avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iEnchaînementAjoute(sNomEtat,iParamEtat1)
    sNomEtat est une variable de type chaine et iParamEtat1 un entier

    L'état composite va se répéter autant de fois que nécessaire avec un pIDVar différent à chaque fois évidement.

    J'ai exécuté le code pas à pas et je vois que le paramètre pIDVar récupéré par l'état composite n'est pas correctement envoyé au sous etat
    A l'exécution de la la fonction iInitSousEtat, la valeur passée en paramètre au sous état est correcte et correspond bien à l’enregistrement cherché
    Mais quand je vérifie la valeur récupérée par le sous etat à son ouverture, ça n'est pas la même !?
    En fait, c'est la première valeur passée qui reste

    Du coup, la fonction iEnchaînementImprime() utilisée à la fin, imprime bien plusieurs états mais ils ont tous les mêmes données

    Je cherche mais je sèche

    Si vous avez un tuyau, je sui preneur

    Merci de votre aide ;-)

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 372
    Par défaut
    Si je passe mon paramètre sous la forme d'une variable globale, ça fonctionne.
    c'est curieux cet histoire de paramètre qui diffère entre le point de départ et d'arrivée non ?

  3. #3
    Expert confirmé
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 563
    Par défaut
    Hello lolo,

    Je ne suis pas surpris pour l'histoire de la variable globale. Après, ca ne me parait pas logique.

    Peut-être faudrait-il appeler le ST pour avoir une explication.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 372
    Par défaut
    Merci de l'info french, parfois je me demande si c'est moi qui bosse mal ou si le Windev bug
    Je renonce à appeler le ST car il me demande toujours de produire un projet qui produit le bug et j'ai toujours du mal à reproduire l'erreur dans un projet spécifique car je ne sais pas d'où elle vient.

    Maintenant j'ai un autre problème et il semble que ça soit aussi lié au fait que j'utilise la fonction iEnchainementAjoute.

    Dans le même état composite, j'appelle un état dans lequel une image va être affichée en fonction d'une valeur.
    le code :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    SELON ArrondiSupérieur(Tab_Temp["Indice_EP"],0)//ArrondiSupérieur(Val(Lib_EP),0)
    			CAS 1 À 49
    				Lib_EP..Y = Tab_Y[1]
    				Lib_EP..Couleur = Blanc
    				IMG_EP_P = "IMG_Etiquette_EP_A.png"
    			CAS 50 À 90
    				Lib_EP..Y = Tab_Y[2]
    				Lib_EP..Couleur = Blanc
    				IMG_EP_P = "IMG_Etiquette_EP_B.png"
    			CAS 91 À 150
    				Lib_EP..Y = Tab_Y[3]
    				Lib_EP..Couleur = Noir
    				IMG_EP_P = "IMG_Etiquette_EP_C.png"
    			CAS 151 À 230
    				Lib_EP..Y = Tab_Y[4]
    				Lib_EP..Couleur = Noir
    				IMG_EP_P = "IMG_Etiquette_EP_D.png"
    			CAS 231 À 330
    				Lib_EP..Y = Tab_Y[5]
    				Lib_EP..Couleur = Noir
    				IMG_EP_P = "IMG_Etiquette_EP_E.png"
    			CAS 331 À 450
    				Lib_EP..Y = Tab_Y[6]
    				Lib_EP..Couleur = Blanc
    				IMG_EP_P = "IMG_Etiquette_EP_F.png"
    			CAS > 450
    				Lib_EP..Y = Tab_Y[7]
    				Lib_EP..Couleur = Blanc
    				IMG_EP_P = "IMG_Etiquette_EP_G.png"
    			AUTRES CAS
    				Lib_EP..Y = Tab_Y[7]
    				IMG_EP_P = "IMG_Etiquette_EP_X.png"
    				Lib_EP = 0
    		FIN
    Cet état composite doit être répété 2 fois
    Si j'imprime les 2 exemplaire indépendamment l'un de l’autre, pas de problème, mes images apparaissent et sont parfaitement imprimées
    Mais si j'imprime en ayant utilisé la fonction iEnchainementAjoute puis iEnchaînementImprime(), seul le premier document est correct, le second n'a pas d'image
    Si je fais la même chose mais en demandant un aperçu écran, j'ai bien les images sur les deux exemplaires mais si j'imprime à partir du visualisateur, même problème, l'image du doc 2 ne s'imprime pas.
    Pourtant elle est bien visible à l'écran dans le visualisateur.
    Et plutôt que d'imprimer, j'exporte en PDF, pas de problème, l'image est bien là...

    J'y perd mon latin.

  5. #5
    Expert confirmé
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 563
    Par défaut
    Hello lolo,

    Je suis d'accord avec toi pour le st. Ma dernière requête a nécessité un projet. Mais comme c'était facile à reproduire, j'ai pu le faire en 5 min. Bon, je pense que le correctif apparaîtra en version 42, mais bon.
    Là ou je suis dubitatif, c'est quand on a un code migré au fil des versions (16 puis 18 puis 22 puis 24), qui ne fonctionne plus en 24...

    Les ienchainexxx sont assez "pointus" à faire, je trouve.

    Une astuce (une idée), à tester, est de charger tes images dans une variable/un tableau.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 372
    Par défaut
    Merci de ta réponse et merci pour l'astuce des images en variables,

    En fait, j'ai déjà testé l'astuce de la mise en variables des images mais j'ai toujours le problème.
    Ce qui est bizarre c'est que l'état en question contient d'autres images qui ne posent pas de problème.
    J'ai beau essayer de trouver une différence de paramétrage ou je ne sais quoi, je trouve rien

    J'ai trouvé une autre astuce mais bon, c'est beurk :
    - A la fin de mon enchainement, j'imprime vers un pdf que j'ajoute ensuite dans un nouvel enchainement et pour finir, j'imprime le nouvel enchainement vers l'imprimante et je supprime le fichier créé.

Discussions similaires

  1. Réponses: 19
    Dernier message: 09/06/2006, 10h03
  2. Problème de passage de paramètres à une procedure
    Par momo62 dans le forum x86 16-bits
    Réponses: 2
    Dernier message: 22/12/2005, 15h22
  3. [template] problème de passage de paramètres
    Par vinny_the_true dans le forum C++
    Réponses: 2
    Dernier message: 14/12/2005, 01h15
  4. Réponses: 9
    Dernier message: 13/05/2005, 03h13
  5. problème de passage de paramêtre sous mozilla
    Par mat10000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/09/2004, 10h48

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