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 :

Sélection dans les tables


Sujet :

WinDev

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 4
    Points
    4
    Par défaut Sélection dans les tables
    Bonjour,

    j'ai quelques difficultés avec la programmation de la sélection de mes lignes dans les tables.

    Mon appli utilise 6 fichiers simples dans lesquels se trouvent des listes de noms.
    Une liste "tampon" et 5 listes "groupes".
    Sans rentrer dans les détails, j'aimerais que lorsque j'appuie sur un bouton, le bandeau de sélection de ma table descende d'un élément à chaque fois.

    Aussi, si possible j'aimerais pouvoir copier une sélection de plusieurs éléments, donc sans les copier un par un
    ----------->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	GROUP1.nAME = COL_NAMES..ValeurAffichée
    	HAjoute(GROUP1)
    	TableAffiche(TABLE_GROUP1)
    En espérant avoir une réponse, je vous remercie d'avance. A bientôt.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,

    Pour le bandeau:
    Tu peux récupérer l'indice de la ligne sélectionnée avec TableSelect().
    Tu peux sélectionner une ligne avec TableSelectPlus.

    Pour la copie:
    Tu peux récupérer le nombre de ligne sélectionnées avec TableSelectOccurrence, et l'indice des lignes avec TableSelect().
    Je te laisse écrire la boucle...

    Tatayo.

  3. #3
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 173
    Points : 83
    Points
    83
    Par défaut
    Si tu ne comprends pas, essais ces lignes de codes pour ton bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    i est un entier
    i=TableSelect(Nom_Table)
     
    i=i+1
    TableSelectPlus(TABLE_Diplome,i)

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Voilà je vous mets une copie de la routine que j'ai faite:

    i est un entier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SI TABLE_GROUP1..Visible = Vrai ALORS
    	i = TableSelect(TABLE_GROUP1)
     
    	TableSelectMoins(TABLE_GROUP1,i)
    	TableSelectPlus(TABLE_GROUP1,i+1)
    	TableAffiche(TABLE_GROUP1)
    FIN
    Ca ne fontionne toujours pas pourtant j'ai pas l'impression qu'y a une erreur.
    Sinon pour le débordement j'imagine que je devrais faire une condition avec la fonction tableoccurrence que i ne devra pas dépasser mais dans un premier temps ce n'est pas ce qui est indispensable....

    Sinon quand je mets certaines lignes en commentaire, au premier clic il reste sur le premier, ensuite il sélectionne le deuxième en même, puis au troisième clic le troisième élément....

  5. #5
    Membre éprouvé Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Points : 1 156
    Points
    1 156
    Par défaut
    Bonjour, ton code un peu remanié :
    Citation Envoyé par BLacKBirD306 Voir le message
    Voilà je vous mets une copie de la routine que j'ai faite:

    i est un entier

    SI TABLE_GROUP1..Visible = Vrai ALORS
    POUR i = 1 _A_ TableSelectOccurrence(TABLE_GROUP1)
    TableSelect(TABLE_GROUP1,i)
    //TableSelectMoins(TABLE_GROUP1,i)
    .....
    TableSelectPlus(TABLE_GROUP1,i+1)
    TableAffiche(TABLE_GROUP1)
    FIN

    Ca ne fontionne toujours pas pourtant j'ai pas l'impression qu'y a une erreur.
    Sinon pour le débordement j'imagine que je devrais faire une condition avec la fonction tableoccurrence que i ne devra pas dépasser mais dans un premier temps ce n'est pas ce qui est indispensable....

    Sinon quand je mets certaines lignes en commentaire, au premier clic il reste sur le premier, ensuite il sélectionne le deuxième en même, puis au troisième clic le troisième élément....
    Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    J'ai testé le code suivant:

    i est un entier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SI TABLE_GROUP1..Visible = Vrai ALORS
    	POUR i = 1 _A_ TableSelectOccurrence(TABLE_GROUP1)
    	TableSelect(TABLE_GROUP1,i)
    	TableSelectMoins(TABLE_GROUP1,i)
    	TableSelectPlus(TABLE_GROUP1,i+1)
    	TableAffiche(TABLE_GROUP1)
    	FIN
    FIN
    ça ne fonctionne toujours pas autant visuellement que dans le programme puisque d'après l'action de mon bouton, l'élément sélectionné n'a pas changé...

    je remercie déjà ceux qui m'ont répondu jusqu'à présent

  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,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    i est un entier
     
    SI TABLE_GROUP1..Visible = Vrai ALORS
      POUR i = 1 _A_ TableSelectOccurrence(TABLE_GROUP1)
        TableSelect(TABLE_GROUP1,i)
        TableSelectMoins(TABLE_GROUP1,i)
        TableSelectPlus(TABLE_GROUP1,i+1)
      FIN
    FIN
    Si tu fais un TableAffiche, il reconstruit la table en rafraichissant les données et en sélectionnant donc la première ligne.
    Il faut donc supprimer cette ligne.

    Juste une remarque au passage, si tu ne fais que la boucle, à l'écran tu passeras de la ligne sélectionnée à la dernière sans vraiment voir le changement ligne à ligne car cela ne va pas prendre trop de millisecondes comme boucle ....
    Si tu veux voir un effet de ligne à ligne, il te faut ajouter un multitache pour temporiser d'une seconde par ligne par exemple.

    à bientôt,

    Nicolas

  8. #8
    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
    Si tu veux que derrière le bouton, il n'y ait qu'un changement d'une ligne, ne pas faire de boucle !

  9. #9
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 173
    Points : 83
    Points
    83
    Par défaut
    je suis du même avis que Nicolas: pas besoin d'une boucle pour passer à la ligne suivante. Utilise ces les lignes de codes et tu veras:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    i est un entier
    i=TableSelect(TABLE_Diplome)
    SI i<TableOccurrence(TABLE_Diplome,toTotal) ALORS
    	i=i+1
    	TableSelectPlus(TABLE_Diplome,i)
    SINON
    	TableSelectPlus(TABLE_Diplome,1)
    FIN

  10. #10
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 173
    Points : 83
    Points
    83
    Par défaut
    N'oublie pas remplacer Table_Diplôme par le nom de ta Table. OK

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Voilà j'ai testé le dernier code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    i est un entier
    i=TableSelect(TABLE_GROUP1)
    SI i<TableOccurrence(TABLE_GROUP1,toTotal) ALORS
    	i=i+1
    	TableSelectPlus(TABLE_GROUP1,i)
    SINON
    	TableSelectPlus(TABLE_GROUP1,1)
    FIN
    sans remettre le TableAffiche après et ça ne fonctionne toujours pas.

    Je remercie encore une fois tous ceux qui ont déjà répondu.

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Qu'est-ce que tu entends par "ça ne fonctionne toujours pas" ? La permière ligne est toujours sélectionnée ? La sélection ne change pas ?

    Si tu mets un point d'arrêt sur la première ligne et que tu traces pas à pas ton code, qu'est-ce qui se passe ? Quelles sont les valeurs de i, de tableOccurrence ?

    Tatayo.

  13. #13
    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,
    Je crois qu'une copie d'ecran aiderait grandement afin de cerner toute la problèmatique.
    Après, je pense que le code de chaque bouton sera important.
    Mais déjà, voir la fenetre serait un plus...
    le savoir est dans les livres, 'the magic touch F1'
    Amicalement
    Eric

  14. #14
    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
    je vois que tu as enlevé le TableSelectMoins(TABLE_GROUP1,i), donc si tout se passe normalement tu devrais avoir de plus en plus de lignes sélectionnées ....

  15. #15
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Bonjour, en fait au moment où j'appuie sur le bouton, la ligne de la table se désélectionne mais la suivante n'est pas sélectionnée, ni visuellement, ni au niveau du programme puisque le nom suivant n’apparaît pas dans la fenêtre d'envoi.

    Je joins un print screen d'une partie de mon appli. Donc lorsque l'on clique sur le bouton "send", le programme envoie chaque caractère l'un à la suite de l'autre, ensuite il augmente "Number" de 1 et doit aussi passer au nom suivant, d'où mon problème.
    Images attachées Images attachées  

  16. #16
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Est-ce que tu peux nous montrer le code complet de ton bouton ?

    Tatayo.

  17. #17
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Voilà le code de mon bouton



    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    	LIB_SENT = LIB_GEN1+LIB_GEN2+LIB_GEN3+LIB_GEN4+LIB_LETTER1+LIB_LETTER2+LIB_LETTER3+LIB_LETTER4+LIB_LETTER5+LIB_LETTER6+LIB_LETTER7+LIB_LETTER8+LIB_LETTER9+LIB_LETTER10+LIB_LETTER11+LIB_LETTER12+LIB_LETTER13+LIB_LETTER14
     
    	AS_00 = SAI_NUMBER
    	AS_01 = LIB_GEN1
    	AS_02 = LIB_GEN2
    	AS_03 = LIB_GEN3
    	AS_04 = LIB_GEN4
     
    	sOuvre(3,1,1)	
     
    SI LIB_LETTER1 = " " ALORS
    	AS_05 = "0"
    SINON
    	AS_05 = LIB_LETTER1
    FIN
    	sEcrit(3,AS_05)
     
    SI LIB_LETTER2 = " " ALORS
    	AS_06 = "0"
    SINON
    	AS_06 = LIB_LETTER2
    FIN
    //	sEcrit(3,AS_06)
     
    SI LIB_LETTER3 = " " ALORS
    	AS_07 = "0"
    SINON
    	AS_07 = LIB_LETTER3
    FIN
    //	sEcrit(3,AS_07)
     
    SI LIB_LETTER4 = " " ALORS
    	AS_08 = "0"
    SINON
    	AS_08 = LIB_LETTER4
    FIN
    //	sEcrit(3,AS_08)
     
    SI LIB_LETTER5 = " " ALORS
    	AS_09 = "0"
    SINON
    	AS_09 = LIB_LETTER5
    FIN
    //	sEcrit(3,AS_09)
     
    SI LIB_LETTER6 = " " ALORS
    	AS_10 = "0"
    SINON
    	AS_10 = LIB_LETTER6
    FIN
    //	sEcrit(3,AS_10)
     
    SI LIB_LETTER7 = " " ALORS
    	AS_11 = "0"
    SINON
    	AS_11 = LIB_LETTER7
    FIN
    //	sEcrit(3,AS_11)
     
    SI LIB_LETTER8 = " " ALORS
    	AS_12 = "0"
    SINON
    	AS_12 = LIB_LETTER8
    FIN
    //	sEcrit(3,AS_12)
     
    SI LIB_LETTER9 = " " ALORS
    	AS_13 = "0"
    SINON
    	AS_13 = LIB_LETTER9
    FIN
    //	sEcrit(3,AS_13)
     
    SI LIB_LETTER10 = " " ALORS
    	AS_14 = "0"
    SINON
    	AS_14 = LIB_LETTER10
    FIN
    //	sEcrit(3,AS_14)
     
    SI LIB_LETTER11 = " " ALORS
    	AS_15 = "0"
    SINON
    	AS_15 = LIB_LETTER11
    FIN
    //	sEcrit(3,AS_15)
     
    SI LIB_LETTER12 = " " ALORS
    	AS_16 = "0"
    SINON
    	AS_16 = LIB_LETTER12
    FIN
    //	sEcrit(3,AS_16)
     
    SI LIB_LETTER13 = " " ALORS
    	AS_17 = "0"
    SINON
    	AS_17 = LIB_LETTER13
    FIN
    //	sEcrit(3,AS_17)
     
    SI LIB_LETTER14 = " " ALORS
    	AS_18 = "0"
    SINON
    	AS_18 = LIB_LETTER14
    FIN
    //	sEcrit(3,AS_18)
     
    i est un entier
    i=TableSelect(TABLE_GROUP1)
    SI i<TableOccurrence(TABLE_GROUP1,toTotal) ALORS
    	i=i+1
    	TableSelectPlus(TABLE_GROUP1,i)
    SINON
    	TableSelectPlus(TABLE_GROUP1,1)
    FIN
     
     
    SI SAI_NUMBER < 255 ALORS
    	SAI_NUMBER++
    FIN
    je n'utilise pas encore tout étant donné que j'aimerais tester la sélection avant ...

  18. #18
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Si tu mets un point d'arrêt sur la ligne 109, et que tu traces pas à pas, qu'est-ce que ça donne ?

    Tatayo.

  19. #19
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Voilà il y a un problème au niveau de la sélection. En fait en cliquant sur le deuxième élément de la liste, i = -1 comme résultat de i=TableSelect(Table_Group1). Donc y a un soucis quelque part...

  20. #20
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    si i = -1, c'est que la table à été désélectionné.
    Tu a envoyé tout le code, il n'y a pas de code dans le tableau ?
    Aucune aide par MP, utilisez le forum.

Discussions similaires

  1. Les polices dans les tables et les requêts
    Par zooffy dans le forum Access
    Réponses: 3
    Dernier message: 21/06/2006, 11h06
  2. Gestion des durées dans les tables Access
    Par climz dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 24/05/2006, 15h29
  3. Validation dans les tables
    Par Isabelle27 dans le forum Access
    Réponses: 8
    Dernier message: 02/05/2006, 15h14
  4. Gestion des NULL dans les tables externes
    Par plouf2244 dans le forum Firebird
    Réponses: 1
    Dernier message: 23/03/2006, 16h55
  5. Comment voir les champs créés dans les tables?
    Par Missvan dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/02/2004, 10h27

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