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

Delphi Discussion :

DBNavigator bouton Next


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Auditeur informatique
    Inscrit en
    Février 2019
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2019
    Messages : 53
    Points : 37
    Points
    37
    Par défaut DBNavigator bouton Next
    Salut tout le monde,

    J'utilise DBNavigator (nbFirst, nbPrior, nbNext, nbLast) pour parcourir les enregistrements d'une table X (Id, Code, Désignation..........etc) dans des DBEdit, tout fonctionne bien sauf le bouton "Next" lui parcoure jusqu'au 11em enregistrement puis recommence depuis le 1er. J'ai beau chercher l'erreur mais je ne trouve pas ! Quel'un a une réponse a ce problème ? Merci par avance !

    Nom : DBNavigator.PNG
Affichages : 364
Taille : 8,2 Ko

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Trop peu d'informations pour répondre, j'ai simplement déduit qu'il s'agissait d'un programme VCL, la structure de la table n'indiquant pas de contraintes (ni index)

    C'est peut-être tout simplement dû au tri de la source de données, au jeu d'essai ou au code, mais certainement pas au DBNavigator (ça se saurait depuis le temps )

    P.S. Genre d'infos : version de Delphi, SGBD, composants pour se connecter à la table, contraintes de la table ...
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    Besoin de plus d'infos. Un seul datasource ? Relation maitre détail ....

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    qu'elle est le problème ? .
    Tu as 11 enregistrement et au douzième il repart de 1 ?
    en faites c'est un fonctionnement normal du dataset et pas du dbnavigator

    je ne met pas le code du Tdataset ici
    mais la methode MoveBy est responsable de ce fonctionnement
    il est aussi valable pour le bouton prior
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  5. #5
    Expert confirmé Avatar de sergio_is_back
    Homme Profil pro
    Responsable informatique, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable informatique, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 084
    Points : 5 604
    Points
    5 604
    Par défaut
    Ça dépend aussi du comportement du dataset auquel ton dbnavigator est lié
    Essaye après mettre après Dataset.FetchAll juste après ton Dataset.Open;

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par anapurna Voir le message
    Tu as 11 enregistrement et au douzième il repart de 1 ?
    en faites c'est un fonctionnement normal du dataset et pas du dbnavigator
    Je ne suis pas d'accord, normalement le(s) bouton(s) devien(nen)t inactif(s) quand on arrive en fin de fichier
    idem pour cette reflexion
    Citation Envoyé par sergio_is_back
    Essaye après mettre après Dataset.FetchAll juste après ton Dataset.Open;
    dans vos deux réponses, cela présuppose qu'il s'agisse d'un Dataset, comme nous n'avons aucune information à ce sujet ...
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Auditeur informatique
    Inscrit en
    Février 2019
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2019
    Messages : 53
    Points : 37
    Points
    37
    Par défaut
    [QUOTE=SergioMaster;11226863]Bonjour,

    Trop peu d'informations pour répondre, j'ai simplement déduit qu'il s'agissait d'un programme VCL, la structure de la table n'indiquant pas de contraintes (ni index)

    C'est peut-être tout simplement dû au tri de la source de données, au jeu d'essai ou au code, mais certainement pas au DBNavigator (ça se saurait depuis le temps )

    P.S. Genre d'infos : version de Delphi, SGBD, composants pour se connecter à la table, contraintes de la table ...
    C’était la discussion que j'avais ouvert y a quelques mois et dont vous m'avez répondu !
    C'est le faite d'utiliser DBLookupComboBox pour le champ "Designation" qui limite le bouton "next" de DBNavigator au 11em enregistrement alors que la table en question en a plus de 400 enregistrements. une fois au 11em, ca repart du 9em jusqu'au 11em et et jamais plus ! et le bouton reste actif. Par contre les autres bouton a savoir 'nbFirst, nbPrior, nbLast' eux fonctionne parfaitement

    voici le lien de la discusion :
    https://www.developpez.net/forums/d1...-dbnavigator1/

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Citation Envoyé par mimiferry Voir le message
    c'est par là qu'il aurait fallu commencer ! Et je rappelle mon indication
    Citation Envoyé par SergioMaster
    ce n'est pas prévu pour ça non plus !
    Vous êtes sûre que le code est resté le même ? Vous êtes sûre que votre table ne contient pas de doublons sur la Désignation ?

    Il y a un mélange de "genre" qui doit poser problème du fait que vous devez certainement utilisé un seul datasource (supposition car encore une fois vous ne nous fournissez aucun code ni dfm !)
    Le DBNavigator est sensé faire quoi ? Comme dans la discussion précédente naviguer dans l'ensemble des Désignations dans le DBLookupComboBox ou naviguer dans la table ?

    En regardant votre image écran, seul élément d'information, j'ai l'impression qu'il y a un problème de conception, il faudrait la description de la source de données pour en avoir confirmation !
    Non, décidément, il manque d'informations

    Pour se faire une idée, il faut : la description de la table (les colonnes avec explication pour savoir à quoi cela correspond) avec ses contraintes (clé primaire, index, contraintes référentielles), un jeu d'essais (une partie ou la totalité des 400 colonnes)
    , une explication claire de ce que le DBNavigateur est censé faire.
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Auditeur informatique
    Inscrit en
    Février 2019
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2019
    Messages : 53
    Points : 37
    Points
    37
    Par défaut
    Bonsoir tout le monde,

    Merci pour toutes vos réponses !

    Effectivement, le problème vient de 'doublons' dans la table de données et spécialement le champ 'Désignation' lié au composant "DBLookupComboBox" pour affichage !
    La table contient plus de 400 enregistrements et malheureusement beaucoup de 'doublons' (la source de mon pb) mais j'ai trouvées une solution en rajoutant des espaces ou des caractères dans les champs dont la désignation est doublé (voir triplé ou plus)

  10. #10
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    AMHA ce n'était pas la solution, il y a sous-jacent un gros problème de conception de la table
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  11. #11
    Nouveau membre du Club
    Femme Profil pro
    Auditeur informatique
    Inscrit en
    Février 2019
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2019
    Messages : 53
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    AMHA ce n'était pas la solution, il y a sous-jacent un gros problème de conception de la table
    En fait ce n'est pas des doublons mais c'est le champs "désignation" qui possède plusieurs champs de même appellation. C'est comme avoir plusieurs fois le même prénom dans la même table mais "DBLookupComboBox" et/ou "DBNavigator" n'aime pas trop ça j'ai donc inséré des espaces vide dans les champs concernés.

  12. #12
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    C'est bien pour cette raison que je parle de problème de conception la table X (id*, code_yr, etc.) devrait avoir une référence avec une table Y (code*r, désignationu)
    Obtenir les infos se fait via un SQL
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT X.ID,X.CODE_y,Y.DESIGNATION FROM X JOIN Y ON X.CODE_y=Y.CODE
    Le combobox est rempli avec Y

    Légende
    * clé primaire
    r Relation (foreign key)
    u Unique
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  13. #13
    Nouveau membre du Club
    Femme Profil pro
    Auditeur informatique
    Inscrit en
    Février 2019
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2019
    Messages : 53
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    C'est bien pour cette raison que je parle de problème de conception la table X (id*, code_yr, etc.) devrait avoir une référence avec une table Y (code*r, désignationu)
    Obtenir les infos se fait via un SQL
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT X.ID,X.CODE_y,Y.DESIGNATION FROM X JOIN Y ON X.CODE_y=Y.CODE
    Le combobox est rempli avec Y

    Légende
    * clé primaire
    r Relation (foreign key)
    u Unique
    Voici la structure de la table telle qu'elle a été conçue :
    Nom : Capturetable.PNG
Affichages : 286
Taille : 18,7 Ko

  14. #14
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Oui, mais ça ne m'avance pas vraiment sans explication.

    Id_cot c'est un identifiant de cotisant ou un identifiant de cotisation, ce n'est pas clair !
    Si c'est un identifiant de cotisation, comme par exemple pour établir des fiches de salaire (ce qui semble être le cas) alors il me semble qu'il ne devrait pas y avoir de doublons pour code_cot (nécessité d'une contrainte d'unicité) ni pour Designation_Cot.
    Si toutefois plusieurs cotisations devait avoir le même libellé (étrange mais ...) alors je ne comprends pas l'utilisation du combobox, au pire celui-ci devrait être relié non pas à la table entière mais à une requête du genre SELECT DISTINCT Designation_Cot FROM bibliorub
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  15. #15
    Nouveau membre du Club
    Femme Profil pro
    Auditeur informatique
    Inscrit en
    Février 2019
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2019
    Messages : 53
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Oui, mais ça ne m'avance pas vraiment sans explication.


    Si c'est un identifiant de cotisation, comme par exemple pour établir des fiches de salaire (ce qui semble être le cas) alors il me semble qu'il ne devrait pas y avoir de doublons pour code_cot (nécessité d'une contrainte d'unicité) ni pour Designation_Cot.

    Si toutefois plusieurs cotisations devait avoir le même libellé (étrange mais ...) alors je ne comprends pas l'utilisation du combobox, au pire celui-ci devrait être relié non pas à la table entière mais à une requête du genre SELECT DISTINCT Designation_Cot FROM bibliorub
    Oui il s'agit bien d'un programme pour éditer des fiches de salaire, ce qui est très complexe. Il n'y a pas se doublons pour 'code_cot' par contre 'Désignation' y en a plusieurs et je pense que c'est normal.
    Ex : pour 'Assurance vieillesse' tous les salariés ne cotisent pas le même taux, ça dépend du statut salarié, statut de l’entreprise, le salaire brut .......etc, d'ou la nécessite pour moi de créer d'autres attributs dans la même table pour bien paramétrer le champs 'désignation'

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Inno Setup] Bouton 'Next' Enable Property
    Par az0101 dans le forum Outils
    Réponses: 8
    Dernier message: 10/12/2009, 19h42
  2. [Prototype] Lightbox 2, afficher constamment le bouton next et previous
    Par morgan47 dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 18/08/2009, 12h12
  3. Comment changer un bouton "next" en "finish" dans un window form ?
    Par Battosaiii dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/10/2008, 13h11
  4. Désactiver le bouton next
    Par bibifock dans le forum Dreamshield
    Réponses: 2
    Dernier message: 03/03/2008, 09h24
  5. [Struts-Layout] Utilisation des boutons next et previous
    Par elsodiop dans le forum Struts 1
    Réponses: 3
    Dernier message: 13/02/2007, 11h56

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