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 :

Table & Combo


Sujet :

WinDev

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 181
    Points : 62
    Points
    62
    Par défaut Table & Combo
    Bonjour,

    j'ai actuellement une table donc deux colonnes sont des combos.
    Le contenu de la deuxième combo est dépendant de la valeur affichée de la première combo.

    Ma table est une table de saisie et je suis entrain de travailler sur la modification de mes enregistrements.

    Voici mon 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
    SI DESCRIPTION_PARTENAIRE..NouvelEnregistrement = Faux ALORS
     
    //recherche des enregistrements
    	HLitRecherche(DOCUMENTS,IDDESCRIPTION_PARTENAIRE,DESCRIPTION_PARTENAIRE.IDDESCRIPTION_PARTENAIRE)
     
    	SI HTrouve(DOCUMENTS) ALORS
     
    		//Ajout de ligne dans ma Table
    		TableAjouteLigne(TABLE_DOCUMENTS,DOCUMENTS.IDDOCUMENTS,DOCUMENTS.choix1,DOCUMENTS.choix2)
     
    		//On récupère la valeur dans la première combo : OK
    		ComboOuvre(COL_Choix1) //obligatoire pour pouvoir récupérer l'indice nIndice1
    		nIndice1 est un entier = ListeCherche(COL_Choix1,DOCUMENTS.choix2,Vrai)
    		nVal est une chaîne = TABLE_DOCUMENTS.COL_Choix1[TABLE_DOCUMENTS][nIndice1]
    		TABLE_DOCUMENTS.COL_Choix1[TABLE_DOCUMENTS] = nVal
    		ListeSelectPlus(COL_Choix1,nIndice1)
    		ComboFerme(COL_Choix1)
     
    		//On récupère la valeur dans la deuxième combo : NE MARCHE PAS
    		ComboOuvre(COL_Choix2)
    		Trace(TABLE_DOCUMENTS.COL_Choix2[TABLE_DOCUMENTS]..Contenu) // affiche les bonne valeurs théoriques
    		Trace(ListeOccurrence(COL_Choix2))// Affiche 0 alors que ..contenu m'affiche bien des valeurs
    		nIndice2 est un entier = ListeCherche(COL_Choix2,DOCUMENTS.choix3,Vrai)
    		Trace(nIndice2) //Affiche 0
    		nVal2 est une chaîne = TABLE_DOCUMENTS.COL_Choix2[TABLE_DOCUMENTS][nIndice2]
    		TABLE_DOCUMENTS.COL_Choix2[TABLE_DOCUMENTS] = nVal2
    		ListeSelectPlus(COL_Choix2,nIndice2)
    		ComboFerme(COL_Choix2)
     
    		HLitSuivant(DOCUMENTS)
     
    FIN
    Lorsque la commande s’exécute elle s'ouvre sans valeur et si on la ré-ouvre une deuxième fois les valeurs s'affichent.
    Je pense donc que le problème viendrais du fait que certaines tâches n'ont pas le temps de s’exécuter avant que les suivantes démarrent.
    Faut-il utiliser ??
    Merci pour votre aide!

  2. #2
    Membre régulier
    Homme Profil pro
    Gérant
    Inscrit en
    Septembre 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Gérant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2007
    Messages : 121
    Points : 105
    Points
    105
    Par défaut
    Bonjour,

    Est ce que ta deuxieme combo à une liaison vers ton analyse ?

    Pourrais tu décrire très rapidement ce que tu as mis dans comboOuvre(choix2) ?
    lordre des opération parait être bon, je ne pense pas que ca vienne de ca.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 181
    Points : 62
    Points
    62
    Par défaut
    Ma deuxième combo n'as pas de liaison vers mon analyse.
    Dans le code de ma combo2 il n'y a rien.
    Ensuite pour recevoir les valeurs dans ma deuxième combo j’exécute le code à partir de la rubrique "Sortie de col_choix1":

    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
    choix  = TABLE_DOCUMENTS.COL_Choix1[TABLE_DOCUMENTS]..ValeurAffichée
     
    //On force le contenu à 0
    TABLE_DOCUMENTS.COL_Choix2[TABLE_DOCUMENTS]..Contenu = ""
     
    HFiltre(TYPES_DOCUMENTS,choix1,choix)
    HLitPremier(TYPES_DOCUMENTS, hRespecteFiltre)
     
    SI HTrouve(TYPES_DOCUMENTS) = 0 ALORS
    	TABLE_DOCUMENTS.COL_Choix1[TABLE_DOCUMENTS]..Contenu = ""
    FIN
     
    Multitâche() // je ne sais pas s'il est indispensable
     
    TANTQUE PAS HEnDehors()
     
    	choix2 est une chaîne = TYPES_DOCUMENTS.choix2
     
    	SI  TABLE_DOCUMENTS.COL_Choix2[TABLE_DOCUMENTS]..Contenu = "" ALORS
    		TABLE_DOCUMENTS.COL_Choix2[TABLE_DOCUMENTS]..Contenu = ""  + RC + choix2		
    	SINON
    		TABLE_DOCUMENTS.COL_Choix2[TABLE_DOCUMENTS]..Contenu += RC + choix2
    	FIN
     
    	HLitSuivant(TYPES_DOCUMENTS)
    FIN
     
    RepriseSaisie(COL_Choix2)
     
    HDésactiveFiltre(TYPES_DOCUMENTS)

  4. #4
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Salut Fontag!

    A tout hasard, vois tu que le code de désactivation du filtre ne s’exécutera jamais, puisque tu fais une reprisesaisie() juste avant?
    Ne serait ce pas la cause de ton souci?

    Bon DEV

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 181
    Points : 62
    Points
    62
    Par défaut
    Malheureusement non aucun changement constaté

  6. #6
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    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 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Ne peux tu pas faire les traitements pour affecter ta combo2 après avoir fini de charger ta table ?
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  7. #7
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    je me permets de reprendre ton 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
     
    choix  = TABLE_DOCUMENTS.COL_Choix1[TABLE_DOCUMENTS]..ValeurAffichée
     
    //On force le contenu à 0
    TABLE_DOCUMENTS.COL_Choix2[TABLE_DOCUMENTS] = ""
     
    HFiltre(TYPES_DOCUMENTS,choix1,choix)
    HLitPremier(TYPES_DOCUMENTS, choix1,hRespecteFiltre)
     
    SI PAS HTrouve(TYPES_DOCUMENTS) ALORS
    	TABLE_DOCUMENTS.COL_Choix1[TABLE_DOCUMENTS] = ""
    SINON
        TABLE_DOCUMENTS.COL_Choix2[TABLE_DOCUMENTS] += RC + TYPES_DOCUMENTS.choix2
        HLitSuivant(TYPES_DOCUMENTS,choix1)
        TANTQUE PAS HEnDehors(TYPES_DOCUMENTS)
    	TABLE_DOCUMENTS.COL_Choix2[TABLE_DOCUMENTS] += RC + TYPES_DOCUMENTS.choix2
     
    	HLitSuivant(TYPES_DOCUMENTS,choix1)
        FIN
    FIN
     
    HDésactiveFiltre(TYPES_DOCUMENTS)
     
    RepriseSaisie(COL_Choix2)
    à bientôt,

    Nicolas

Discussions similaires

  1. [WD14] Table avec combo
    Par aurabarth dans le forum WinDev
    Réponses: 2
    Dernier message: 30/06/2011, 01h10
  2. [WD14] Table avec Combo
    Par willytito dans le forum WinDev
    Réponses: 5
    Dernier message: 06/09/2010, 16h35
  3. [WD12] Table et Combo
    Par seb_reunion dans le forum WinDev
    Réponses: 3
    Dernier message: 09/12/2008, 05h37
  4. filtre table avec combo
    Par bahi2007 dans le forum WinDev
    Réponses: 2
    Dernier message: 31/05/2007, 16h33
  5. Combo box et liste de valeurs contenues dans ma table
    Par TieumB dans le forum C++Builder
    Réponses: 14
    Dernier message: 05/04/2004, 18h47

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