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

Discussion: Table et combo

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2008
    Messages : 50
    Points : 16
    Points
    16

    Par défaut Table et combo

    Bonjour,

    Dans la combo j’affiche la liste d’un fichier que j’ai appelé Option, dans ce fichier je peux créer mes options, pour mon test j’ai créé Option1, Option2, Option3 et Option4.

    Quand je sélectionne la première ligne Option1) et que je clic sur ajouter il m’insère bien la ligne dans mon tableau, si je veux rajouter une autre ligne, le problème quel que soit la ligne sélectionné, il m’insère toujours ligne 1 (Option1).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SI COMBO_Option = "" ALORS
    Info("Veuillez sélectionner une option")
    RepriseSaisie(COMBO_Option)
    SINON
    FichierVersEcran()
    TableAjoute(TABLE_Option, Option.Option + TAB + Option.Date)
    FIN
    Merci de votre aide

    Nom : Capture.PNG
Affichages : 73
Taille : 58,7 Ko

  2. #2
    Membre éclairé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    juin 2017
    Messages
    560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : juin 2017
    Messages : 560
    Points : 887
    Points
    887

    Par défaut

    Bonjour,
    A première vue tu n'a pas codé COMBO_Option.
    En supposant que ta COMBO renvoie la PK de ta table option (valeur mémorisée dans la description), il faut coder "Sélection d'une ligne" dans ta COMBO.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HLitRecherche(COMBO_Option,PK_Option,MoiMême)
    Tu te place donc sur l'enregistrement choisi. Dans ton cas, tu étais toujours sur le premier enregistrement.

    Par ailleurs, je ne vois pas pourquoi tu as un FichierVersEcran dans ton code, surtout à cet endroit.

    Rq:Tu peux même te passer du bouton "Ajouter" en codant directement dans la partie "Sélection d'une ligne".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    HLitRecherche(COMBO_Option,PK_Option,MoiMeme)
    TableAjoute(TABLE_Option, Option.Option + TAB + Option.Date)
    Il y a peut être plus simple, mais ça tourne

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2008
    Messages : 50
    Points : 16
    Points
    16

    Par défaut Table et Combo

    Bonjour Voroltinquo,

    Merci de ta réponse, je bricole sur Windev j'essaye de m'aider avec la doc en ligne et les précieuses aide du forum, j'utilise le plus souvent le rad.

    Petit question de novice a quoi correspond PK, j'ai fait une copie d'écran de la description combo

    Merci

    Nom : Capture01.jpg
Affichages : 72
Taille : 67,6 Ko

  4. #4
    Membre éclairé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    juin 2017
    Messages
    560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : juin 2017
    Messages : 560
    Points : 887
    Points
    887

    Par défaut

    La PK correspond à la clé primaire (Primary Key) chez toi, c'est IDOption

    En relisant mon précédent post j'ai vu une erreur au niveau du HlitRecherche.
    Il faut lire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HLitRecherche(Option,PK_Option,MoiMême)
    Il y a peut être plus simple, mais ça tourne

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2008
    Messages : 50
    Points : 16
    Points
    16

    Par défaut

    Effectivement sans le bouton c'est plus simple j'ai mis le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HLitRecherche(Option,IDOption,MoiMême)
    TableAjoute(TABLE_Option, Option.Option + TAB + Option.Date)
    et il m'ajoute toujours que la première ligne

    Copie de mon fichier Option

    Nom : Capture02.jpg
Affichages : 68
Taille : 36,0 Ko

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    2 526
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : décembre 2013
    Messages : 2 526
    Points : 5 434
    Points
    5 434

    Par défaut

    Dans l'aide de la fnction hLitRecherche() ici , il y a un exemple.

    Après l'appel de la fonction hLitRecherche, il y a la vérification : si hTrouve() alors ... ok sinon ... pas ok finIl faut systématiquement faire cette vérification. Ca prend 20 secondes pour taper les 3 ou 4 lignes de code en question, et ça permet de ne pas tourner en rond pendant des heures parce que le programme ne fait pas ce qu'on veut.

    Et si le programme ne trouve pas la ligne voulue dans le fichier, alors il faut afficher plein d'informations pour essayer de comprendre ce qui se passe. Par exemple afficher la valeur qui était recherchée, et dire que cette valeur n'a pas été trouvée.
    Ici, j'ai une très vague idée de ce qui se passe, mais pour en être sûr, il faut passer par ce test sur htrouve().
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2008
    Messages : 50
    Points : 16
    Points
    16

    Par défaut

    Merci tbc92

    Voici le code par rapport a l'aide en ligne que tu ma fourni, le test a fonctionné et j'ai placé ma ligne tableajout, il fallait aussi que je mette une clé avec doublon sur la rubrique option.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    HLitRecherche(Option, Option, MoiMême)
    SI HTrouve() = Vrai ALORS
    	TableAjoute(TABLE_Option, Option.Option + TAB + Option.Date)
    SINON
    	Erreur("Aucun enregistrement ne correspond")
    FIN

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2008
    Messages : 50
    Points : 16
    Points
    16

    Par défaut

    Dans mon bouton Valider j'ai mis :

    quand je relance les lignes ajouté sont pas présente, je peux chercher dans quoi

  9. #9
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    2 526
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : décembre 2013
    Messages : 2 526
    Points : 5 434
    Points
    5 434

    Par défaut

    Dans le hLitRecherche(), tu as remplacé le 2ème paramètre idOption par Option. Ok, ma vague idée était la bonne. Je pense que je n'aurais pas corrigé comme ça, mais ok.

    Pour ton nouveau problème, la fonction hEnregistre ne va pas changer miraculeusement ton fichier.

    Si tu fais option.option = 'nouvelle valeur' puis henregistre(), ok , ça va modifier la dernière ligne lue.
    si tu fais option.option = 'nouvelle valeur' puis hajoute() , ok, ça va ajouter une nouvelle ligne.

    Mais si tu fais hEnregistre(), comme ça, dans le vide, Windev va réécrire dans le fichier Option la même chose que ce qu'il vient de lire.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2008
    Messages : 50
    Points : 16
    Points
    16

    Par défaut

    Merci tbc92,

    je vais chercher un peu, le but est de comprendre aussi ce qu'on fait.

  11. #11
    Membre éclairé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    juin 2017
    Messages
    560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : juin 2017
    Messages : 560
    Points : 887
    Points
    887

    Par défaut

    Dans ton post 5, il est logique (sauf hasard) que ton HLitRecherche te renvoie un faux.
    Tu fait une recherche sur IDOption en lui passant la valeur de Option (la valeur retournée par la combo, valeurr mémorisée dans la description.) Il faut que ta recherche se fasse sur la même rubrique. L'idéal dans ce cas est de faire une recherche sur la PK, cela évite d'avoir à gérer le cas où il y a 2 options ayant le même nom.
    Qui plus est , HLitRecherche sur une chaîne en Windev a parfois des comportements bizarres, même avec l'option hidentique, ou en utilisant HLitRecherchePremier. On est obligé de contrôler après. (Cela s'est peut être arrangé au cour du temps, je n'ai pas vérifié)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SI HLitRecherchePremier(MaTable,MaRubriqueChaine,sRecherche) ALORS //Equivalent à HlitRecherche,SI HTrouve
         SI MaTable.MaRubriqueChaine=sRecherche Alors
              Traitement nominal
         SINON
              Enregistrement non trouvé
         FIN
    FIN
    Il y a peut être plus simple, mais ça tourne

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2008
    Messages : 50
    Points : 16
    Points
    16

    Par défaut

    Bonjour Voroltinquo,

    Merci, je vais tester aussi cette solution, maintenant je but sur l'enregistrement de ma table, les lignes s'intègre bien sauf que quand je relance l'appli il ne sont plus présent.

    Merci

  13. #13
    Membre éclairé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    juin 2017
    Messages
    560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : juin 2017
    Messages : 560
    Points : 887
    Points
    887

    Par défaut

    Dans l'initialisation, il suffit de récupérer les enregistrements précédents et de les ajouter via TableAjouteLigne (préférable à TableAjoute cf https://doc.pcsoft.fr/fr-FR/?3074017...joute_fonction)
    Il y a peut être plus simple, mais ça tourne

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2008
    Messages : 50
    Points : 16
    Points
    16

    Par défaut

    Je sais pas trop comment faire pour la sauvegarde j'au beau suivre les exemples ça ne fonctionne pas.

  15. #15
    Membre éclairé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    juin 2017
    Messages
    560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : juin 2017
    Messages : 560
    Points : 887
    Points
    887

    Par défaut

    La solution la plus simple est de parcourir séquentiellement les lignes de ton champ table et de les enregistrer à l'endroit où ils doivent être.
    Il y a peut être plus simple, mais ça tourne

  16. #16
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : avril 2018
    Messages : 62
    Points : 63
    Points
    63

    Par défaut

    Salut Baxter89. Est-ce possible de voir ton fichier de donnée "Option"?
    Je veux dire dans l'éditeur d'analyses.
    N'oubliez pas le petit pouce, si mon message vous a été utile.

  17. #17
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : avril 2018
    Messages : 62
    Points : 63
    Points
    63

    Par défaut

    Ok j'ai vu le fichier de donnée. Voila donc ce que je te propose.
    J'ai expliqué ce que j'ai fait en commentaire dans le code.
    La capture d'écran:Nom : Capture.JPG
Affichages : 25
Taille : 34,8 Ko

    Voila le code de mon bouton ajouter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //Ma combo n'est pas avec saisie, donc pas besoin de vérifier si elle est vide
    Option.Option=COMBO_Option..ValeurAffichée
    Option.Date=Maintenant()
    HAjoute(Option)
     
    //Après l'ajout, je rempli mon tableau avec le contenu de mon fichier de donnée
     
    TableSupprimeTout(TABLE_Option)
    POUR TOUT Option 
     
    	TableAjouteLigne(TABLE_Option,Option.Option,Option.Date)
     
    FIN

    S'il y a des incompréhension, je serai là pour expliquer
    N'oubliez pas le petit pouce, si mon message vous a été utile.

Discussions similaires

  1. [WD20] probleme hajoute sur table avec combo
    Par gz.yassine dans le forum WinDev
    Réponses: 4
    Dernier message: 23/06/2017, 13h56
  2. [WD14] Table avec combo
    Par aurabarth dans le forum WinDev
    Réponses: 2
    Dernier message: 30/06/2011, 01h10
  3. [WD14] Table avec Combo
    Par willytito dans le forum WinDev
    Réponses: 5
    Dernier message: 06/09/2010, 16h35
  4. [WD12] Table et Combo
    Par seb_reunion dans le forum WinDev
    Réponses: 3
    Dernier message: 09/12/2008, 05h37
  5. filtre table avec combo
    Par bahi2007 dans le forum WinDev
    Réponses: 2
    Dernier message: 31/05/2007, 16h33

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