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 :

Fonctionnement de TableAffiche


Sujet :

WinDev

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Points : 130
    Points
    130
    Par défaut Fonctionnement de TableAffiche
    Bonjour,

    Je voudrais savoir comment fonctionne la fonction TableAffiche, et après avoir relu maintes fois l'aide je me tourne vers vous J'essaye de faire un truc tout simple : J'ai une table en affichage seulement, liée à un fichier, un bouton modif et un champ qui recopie ce qu'il y a dans la table à chaque fois qu'on sélectionne une ligne. Quand on clique sur modifier, on peut modifier ce qu'il y a dans le champ puis ensuite un clic sur le bouton velider valide la modif. Seulement le problème c'est qu'avec TableAffiche, le bandeau de sélection se repositionne au début, quelque soit le paramètre que j'utilise (taCourantEnreg, taCourantBandeau, ...) même avec un entier "en dur" j'ai essayé avec 3 par exemple mais ça me replace au début quand même. Alors à quoi correspond le paramètre "position" ? L'id du fichier lié à la table ? Le numéro d'enregistrement ?

    Voici le code de mon bouton valider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SI HLitRecherchePremier(FICHIER, id, TABLE_FICHIER.id) ALORS
    	FICHIER.nom = SAI_FICHIER_nom // Mon champ de saisie
    	HModifie(FICHIER)
    FIN
    HAnnuleRecherche
    mode_selection()
     
    PROCEDURE mode_selection()
    TableAffiche(TABLE_FICHIER, taCourantEnreg)
    FichierVersEcran() // Pour remettre mon champ à jour
    DonneFocus(TABLE_FICHIER)

  2. #2
    Membre habitué
    Homme Profil pro
    En rupture avec la societé
    Inscrit en
    Novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : En rupture avec la societé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 144
    Points : 194
    Points
    194
    Par défaut
    salut

    enleve le FichierVersEcran dans procedure il sert a rien.

    si tu fais un hlitRecherchePremier tu te positionne sur l'enregistrement.
    Meme apres le hmodifie un simple TableAffiche suffit et ton hannulerecherche met le apres le tableAffiche

    a plus

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Points : 130
    Points
    130
    Par défaut
    Oui mais ma procédure je ne l'appelle pas que là...
    Le FichierVersEcran sert à mettre à jour mon champ de saisie pas ma table donc si j'en ai besoin.
    Et je ne veux laisse le HAnnuleRecherche dans la même procédure que le HLitRecheche pour être bien sûr que la recherche est fermée à chaque fois.

  4. #4
    Membre habitué
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Points : 130
    Points
    130
    Par défaut
    Cela dit j'ai quand même essayé ce que tu m'as dit mais ça n'a pas fonctionné.

    J'ai fait comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SI HLitRecherchePremier(FICHIER, id, TABLE_FICHIER.id) ALORS
    	FICHIER.nom = SAI_FICHIER_nom // Mon champ de saisie
    	HModifie(FICHIER)
    FIN
    TableAffiche(TABLE_FICHIER, taCourantEnreg)
    HAnnuleRecherche

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Première chose, si j'étais toi, je ne mettrais pas "Si HlitRecherchePremier"
    car ceci ne t'indique pas si tu as trouvé l'enregistrement mais juste si la recherche s'est bien passée.
    Utilise plutôt cette forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Hlitrecherchepremier(fichier....)
    si htrouve(fichier) alors
    ...
    // là tu es sûr d'avoir trouvé ton enregistrement
    fin
    ensuite pour le Tableaffiche, il y a une constante windev qui marche bien:
    taCourantBandeau, après avoir fait le tableaffiche il se repositionne sur la ligne qui était sélectionnée.

    En espérant que ça t'aide.

  6. #6
    Membre habitué
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Points : 130
    Points
    130
    Par défaut
    Ha merchi pour le HTrouve c'est vrai que c'est plus juste par rapport à ce que je veux faire.

    J'ai déjà essayé le taCourantBandeau et malheureusement ça ne fonctionne pas ça me repositionne en haut de la table

  7. #7
    Membre habitué
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Points : 130
    Points
    130
    Par défaut
    Pour être plus exact, le bandeau ne bouge pas, mais les valeurs derrière si !

    Par exemple si dans ma table j'ai (>...< représente le bandeau de sélection) :

    TABLE
    -------
    AAA
    CCC
    >DDD<

    Et que je modifie le "DDD" en "BBB", je vais avoir, après le TableAffiche :

    TABLE
    -------
    AAA
    BBB
    >CCC<

    Donc le bandeau qui reste en position 3 mais la ligne sous le bandeau ne représente plus le même enregistrement dans le fichier.

    Et ce, que j'utilise taCourantBandeau ou taCourantEnreg je pige pas trop...

  8. #8
    Nouveau membre du Club
    Inscrit en
    Novembre 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 27
    Points : 27
    Points
    27
    Par défaut
    Dans ce que je vois de ce que tu dis

    Indice Valeur dans table
    1 AAA
    2 BBB
    3 >CCC<

    Tu modifies ton 3eme enregistrement, tu as un filtre qui fait que ce que tu saisies viens se mettre en position 2 à l'écran. Mais ton enregistrement restera toujours le 3ème dans ta table.

    Vérifie le avec le Vérificateur de donnée. La première colonne te donne l'indice.

    Dans ton fichier >CCC< ----> BBB est toujours ton enregistrement numéro 3. Seul la valeur du champ est différente. Et tu fais un tri en plus dans cette colonne, ce qui à l'écran est différent, mais ne change pas en faite dans ta table physique.

    Indice de table et valeur de champs, ce sont deux paramètres à distinguer ainsi que Valeur Réel réelle dans la table et Valeur à l'écran.

    Tu peux utiliser la fonction Trace pour voir à l'écran tes manipulations sur les bandeaux lors des test.

    Que se passe-t-il si tu modifie >BBB< indice N°2 de ta table. Ton bandeau reste-il sur le 2 ou se place-t-il en fin d'enregistrement ? (essaie de modifier pour que cela ai un impact sur le tri de la valeur à l'écran.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Le soucis peu venir aussi au niveau du tableau, de son réglage lors de sa conception; vérifie comment tu as programmé au niveau des réactions de saisie par exemple.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 90
    Points : 100
    Points
    100
    Par défaut
    Utilise la fonction sans paramètre. Tu auras toujours des soucis (modification du libellé "CCC" en "AAA" et ça marche plus).

    Fais un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TableAffiche(TABLE_FICHIER)   // on met à jour toute la table
    TableSelectPlus(TABLE_FICHIER, TableCherche(id, FICHIER.id)) // on sélectionne l'enregistrement

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    oui.. classique. Ce problème je l'ai corrigé en faisant ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    hlitrecherchepremier(fichier,id,fichier.id)
    TableModifieLigne(TABLE,-1,fichier.rubrique1,fichier.rubrique2)
    TableEnregistre(TABLE)
    je suis même pas sur que le hlitrecherchepremier soit obligatoire puisque tu viens d'enregistrer, mais bha dans le doute ça fait pas de mal

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    essai ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableAffiche(nom_de_ta_table,taCourantPremier)
    j'espère que c'est ce que tu cherches.

  13. #13
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 451
    Points
    2 451
    Par défaut
    Aaaah, enfin.
    Depuis le temps qu'on attendait la fin de ce post, ça en fait un paquet de jours.
    Et même très exactement : DateDifférence("20010109", "20150317")

    sql_13, z'êtes toujours aussi distrait ? ou bien c'est de l'humour ?

  14. #14
    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

  15. #15
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 344
    Points : 3 860
    Points
    3 860
    Par défaut
    Très bon ^^

  16. #16
    Membre averti
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 256
    Points : 435
    Points
    435
    Par défaut
    Bien vu !

    En plus, il y a une erreur dans un des post: même en 2008, HLitRecherchePremier renvoyait bien la valeur de HTrouve() !
    (je dis ça au cas ou un débutant tomberait sur ce post déterré par erreur)

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/01/2009, 17h30
  2. Réponses: 5
    Dernier message: 14/05/2003, 14h51
  3. [Turbo Pascal] TP7 fonctionne en QWERTY
    Par callahan dans le forum Turbo Pascal
    Réponses: 9
    Dernier message: 08/02/2003, 21h49
  4. Prb de fonctionnement dans SaveDialog avecInitialDir
    Par boyerf dans le forum Composants VCL
    Réponses: 4
    Dernier message: 12/12/2002, 21h46
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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