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

Bases de données Delphi Discussion :

[Dbgrid] Pointer sur une ligne précise


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier Avatar de Nzs26
    Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 136
    Points : 76
    Points
    76
    Par défaut [Dbgrid] Pointer sur une ligne précise
    Bonjour,

    Je dispose d'un dbgrid relier à une table.

    Je voudrais que lorsque que je saisie l'identifiant de la table, le dgbrid pointe directement sur la ligne correspondante à mon identifiant.

    Je n'ai pas trouvé la propriété correspondante ni sa synthaxe !

    Merci d'avance pour votre aide

    NZs

  2. #2
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Bonjour,

    Il faut positionner ta table (dataset) sur le bon enregistrement, la DBGrid qui est relié à cette table suivra toute seule.

    Pour cela, tu peux utiliser FindKey, FindNearest, GotoKey etc...

    F1 sur ces termes

  3. #3
    Membre régulier Avatar de Nzs26
    Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 136
    Points : 76
    Points
    76
    Par défaut
    Mon soucis est que je ne veux pas que mon dataset pointe sur l'enregistrement.

    Je m'explique plus en détail :

    - mon dbgrid est intégrer dans un formulaire qui permet de réaliser des ajouts, modification et suppression de contrôles

    - mon dbgrid liste alors tous les enregtrisement contenus dans ma table : cette dernier stocke différents lieux possibles.

    - Quand je sélectionne un contrôle déjà enregistré, j'aimerai que tous les lieux de contrôles s'affichent dans mon dbgrid et que le lieu enregistré la première fois soit pointé.

    - Pour ce faire, je stocke l'identifiant du contrôle dans un panel debug. Il me permet notamment d'effectuer une requête qui remplit mes différentes zones de saisie : code du contrôle, nom du contrôle, type ect ...

    C'est pour cette raison que je ne peux pas effectué le 'pointage' dans le datasource de mon dbgrid ( j'espère que j'ai été assez claire ^^');

    Voila, en espérant votre aide

    Nzs

  4. #4
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Je n'ai pas tout compris

    Mais une chose est sure, le TDBGrid ne contient aucune donnée, il est rattaché à un TDataset (qui lui, contient les données).
    L'affichage de la ligne courante du DBGrid correspondra toujours à la position du curseur sur la TDataset qui lui est rattaché.

    -> le fait de changer la ligne du DBGrid à la souris implique une modification du curseur sur le Dataset
    -> le fait de changer le positionnement du curseur du dataset impliquera une ligne courante différente sur le DBGrid...

    Voila, après vu que je n'ai pas compris exactement le but du jeu, je ne peux pas aller plus loin dans l'explication.

  5. #5
    Membre régulier Avatar de Nzs26
    Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 136
    Points : 76
    Points
    76
    Par défaut
    Effectivement, mon explication était belle est bien superflue, je vais donc tenter d'être plus précise :

    Alors, j'ai un formulaire qui me permet d'ajouter des données ou de les supprimer.

    J'ai un dbgrid qui stocke des lieux.

    Pour ajouter un lieu à un contrôle aucun soucis : je parcours le dbgrid et extrait l'identifiant de ma ligne sur l'évènement afterscroll.

    Pour modifier une donnée, cela se complique puisque je voudrai que le dbgrid pointe sur le lieu déjà sélectionné parmis tous les lieux. En faite je veux que l'utilisateur sache que pour tel contrôle, tel lieu a déjà été sélectionné mais lui laisser la possibilité d'en sélectionner un autre dans le dbgrid.

    Je pensais faire varier le pointeur en fonction du lieu mais peut-être n'est-ce pas la meilleure solution ?

    En espérant avoir été plus claire ce coup-ci, merci !

    NZs

  6. #6
    Membre régulier Avatar de Nzs26
    Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 136
    Points : 76
    Points
    76
    Par défaut
    Je me suis encore mal exprimée ou personne n'a la solution ?

    Moi je compte sur vous hein !

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 8
    Points : 9
    Points
    9
    Par défaut GotToBookMark
    Salut ,
    je ne sais pas quel est le bug exacte dans ton code surtout que tu ne nous as pas foruni un code source Mais pour te dire
    pour se pointer sur une dbgrid et choisir une séléction taches d'utiliser :
    un TBookMark qui se pointe sur une ligne (Row ) bien déterminée
    Voici un bout de code qui peut t'aider et toujours F1 pour t'appuyer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dbgrid1.Datasource.Dataset.GoToBookMark(Pointer(Dbgrid1.SelectedRows))
    Mon explication est que je pense que ton probléme est du fait que tu cherches à te positionner sur le Dbgrid , essaie donc le jeu de signet
    J'espére que ça t'aidera
    Bonne journée

  8. #8
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    je pense que vous avez deux solutions.
    1) Utiliser un string grid que vous chargez depuis votre base de données.
    2) Utiliser deux objet Dataset l'un des dataset sera explicitement dédié au dbgrid

  9. #9
    Membre régulier Avatar de Nzs26
    Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 136
    Points : 76
    Points
    76
    Par défaut
    Je vous remercie de votre aide, c'est exactement les renseignements que je recherchée !



    NZs

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

Discussions similaires

  1. [Toutes versions] Positionnement sur une ligne précise dans un formulaire
    Par Didier L dans le forum Contribuez
    Réponses: 3
    Dernier message: 28/10/2015, 13h21
  2. Couper un fichier sur une ligne précise
    Par boobz79 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 05/09/2013, 11h07
  3. Pointer sur une ligne de DBGrid
    Par kabish dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/05/2009, 14h54
  4. Une macro à faire sur une ligne précise
    Par JPDU92 dans le forum VBA Word
    Réponses: 5
    Dernier message: 31/01/2008, 12h13
  5. pointer sur une ligne d'un TStringGrid
    Par jeannot27 dans le forum C++Builder
    Réponses: 7
    Dernier message: 20/10/2004, 10h56

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