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, Memo, affichage par ligne


Sujet :

Bases de données Delphi

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 5
    Points : 0
    Points
    0
    Par défaut DBgrid, Memo, affichage par ligne
    bonjour a tous
    je veux importer le contenu d'un Memo dans un DBGrid
    j'utilise ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    GotoBookmark((Pointer(DBGridrecherche.SelectedRows.Items[i])));
    Memo1.lines.Add(FQuery.Queryclient.FieldByName('Nom').AsString);
    FQuery.tabaffichage.Edit;
    FQuery.tabaffichage.FieldByName('Nom').AsString:=Memo1.lines.Text;
    FQuery.tabaffichage.Post;

    mais le problème est qu'il m'affiche toutes les lignes du Memo dans une seule case du DBgrid
    merci d'avance

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par mohandesga Voir le message
    je veux importer le contenu d'un Memo dans un DBGrid
    j'utilise ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    GotoBookmark((Pointer(DBGridrecherche.SelectedRows.Items[i])));
    Memo1.lines.Add(FQuery.Queryclient.FieldByName('Nom').AsString);
    FQuery.tabaffichage.Edit;
    FQuery.tabaffichage.FieldByName('Nom').AsString:=Memo1.lines.Text;
    FQuery.tabaffichage.Post;
    mais le problème est qu'il m'affiche toutes les lignes du Memo dans une seule case du DBgrid
    En effet, cela fait exactement ce que vous avez écrit.
    Pour rappel, un DBgrid est une grille (~ tableau) de lignes et de colonnes qui représente le contenu d'un ensemble de données (TDataSet et ses descendants comme TTable, TQuery, etc).
    Si vous voulez transférer le contenu du Memo dans votre grille (si tant est que cela soit ce que vous souhaitiez réellement faire ), il faut lire votre Memo ligne par ligne, découper chaque ligne en autant de morceaux qu'il y a de colonnes et distribuer ces éléments découpés dans chaque colonne de votre grille. Faut-il encore que l'ordre du découpage soit cohérent avec les colonnes de votre ensemble de données.

    Ensuite :
    • S'agit-il d'ajouter des données ?
      Ce n'est pas Edit qu'il faut alors utiliser mais Append, voire Insert.
    • ou de les modifier ?
      Etes vous sur d'être positionné sur la bonne ligne ?
      Le contenu du mémo correspond-il à une seule ligne de la table ?
    Philippe.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 5
    Points : 0
    Points
    0
    Par défaut dbgrid
    ja suis debutant en dev et excusez moi j'ai pas bien métrisé votre reponse.vous pouvez m'expliquer par un code comme example svp sachent que une seule colonne dans mn DBGrid
    et j'utilise un Memo pour transférer des lignes sélectionnées dans un DBgid dans un autre DBGrid
    mais j'arrive pas à separer les lignes de mon Memo pour pouvoir importer chaque ligne du memo dans une ligne de mon DBGid

  4. #4
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Citation Envoyé par mohandesga Voir le message
    ja suis debutant en dev et excusez moi j'ai pas bien métrisé votre reponse.vous pouvez m'expliquer par un code comme example svp sachent que une seule colonne dans mn DBGrid
    et j'utilise un Memo pour transférer des lignes sélectionnées dans un DBgid dans un autre DBGrid
    mais j'arrive pas à separer les lignes de mon Memo pour pouvoir importer chaque ligne du memo dans une ligne de mon DBGid
    Bien, il s'agit en fait de copier des données d'un ensemble de données source vers un ensemble de données destination.
    Les DBGrid ne sont la que pour visualiser ces ensembles et permettre de sélectionner quelles données seront copiées.
    Une remarque : je ne vois pas trop l'intérêt de passer par un mémo intermédiaire.
    Avant de vous aiguiller vers une solution, j'aimerais que vous posiez clairement le problème. Indiquez nous comment tout cela est organisé et décrivez les données que vous voulez copier, cad :
    • chaque DBGrid, l'ensemble de données auquel il est lié (TTable, TQuery ou autre),
    • la nature de la donnée à copier.
    Philippe.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 5
    Points : 0
    Points
    0
    Par défaut dbgrid
    j'ai un DBGrid recherche qui affiche le nom des clients ,c'est "DBGrirrecherche" représenté dans mon code.Ce dernier est lié à une tQuery "QueryClient" à travers une datasource.
    Mon objectif est de chercher une liste de clients dans ce DBGrid
    et une fois la recherche est faite
    j'importe les noms des clients selectionnes dans un autre DBGid
    pour se faire j'ai utilisé une table paradox "tableaffichage",constituée par une seule colonne et je la remplie par l'intermidiare d'une Memo
    c'est à dire
    une fois j'ai terminé la selection de la liste des clients je rempli mon Memo par les noms de ces clients et je rempli ma table affichage par ces noms
    mais mon probleme c'est que tous les noms figure dans une seule ligne de ma table d'affichage

  6. #6
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Citation Envoyé par mohandesga Voir le message
    j'ai un DBGrid recherche qui affiche le nom des clients ,c'est "DBGrirrecherche" représenté dans mon code.Ce dernier est lié à une tQuery "QueryClient" à travers une datasource.
    Mon objectif est de chercher une liste de clients dans ce DBGrid
    et une fois la recherche est faite
    j'importe les noms des clients selectionnes dans un autre DBGid
    pour se faire j'ai utilisé une table paradox "tableaffichage",constituée par une seule colonne et je la remplie par l'intermidiare d'une Memo
    c'est à dire
    une fois j'ai terminé la selection de la liste des clients je rempli mon Memo par les noms de ces clients et je rempli ma table affichage par ces noms
    mais mon probleme c'est que tous les noms figure dans une seule ligne de ma table d'affichage
    Donc je confirme que passer par un Memo ne revient à rien d'autre qu'ajouter une étape inutile dans votre traitement !

    Il faut parcourir l'ensemble des signets (bookmark) et pour chacun d'eux, ajouter un enregistrement dans la table affichage avec la donnée lue.
    Grossièrement, cela donne en supposant que FQuery est une fiche (descendant de la classe TForm) dans laquelle se trouve vos différents composants, que le traitement est appelé depuis un bouton nommé BtnCopier dont l'événement OnClick est géré par la procédure BtnCopierClick :
    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
    procedure TFQuery.BtnCopierClick(Sender: TObject);
    var
     i: Integer;
    begin
      // Je parcours tous mes signets
      for i := 0 to DBGridRecherche.SelectedRows.Count - 1 do
      begin
        // Je me positionne sur le i° signet
        DBGridRecherche.DataSource.DataSet.GotoBookmark((Pointer(DBGridrecherche.SelectedRows.Items[i])));
        //Memo1.lines.Add(FQuery.Queryclient.FieldByName('Nom').AsString); <= INUTILE !
        // Je rajoute une ligne vide
        Self.tabaffichage.Append;
        // Je remplis cette ligne
        Self.tabaffichage.FieldByName('Nom').AsString := Self.Queryclient.FieldByName('Nom').AsString;
        // Je "valide" cette ligne dans la table
        Self.tabaffichage.Post;
      end;
    end;
    Compte tenu de ce que j'ai dit précédemment (je suis dans une procédure de ma classe fiche), je pourrais éviter d'utiliser Self et je proscris l'utilisation de FQuery (une instance de classe dans une méthode de classe est dangereux et source de bug).
    Philippe.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 5
    Points : 0
    Points
    0
    Par défaut dbgrid
    Merci bcq

  8. #8
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    pourquoi pas un simple composant DB: dbmemo par exmple
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    bonjour a tous
    comment rendre certains items d'un combobox non selectionnables?
    merci d'avance

  10. #10
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Citation Envoyé par mohandesga Voir le message
    bonjour a tous
    comment rendre certains items d'un combobox non selectionnables?
    merci d'avance
    Ouvrez un autre sujet. Cette question n'a rien à voir avec le sujet abordé jusqu'à présent !

    Et aussi
    Philippe.

Discussions similaires

  1. [Galerie] Affichage par ligne
    Par zeroara dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 12/12/2009, 16h58
  2. Affichage par ligne des données.
    Par saymon dans le forum InfoPath
    Réponses: 1
    Dernier message: 29/05/2009, 12h32
  3. Affichage par ligne de JTables
    Par inzaghi dans le forum Composants
    Réponses: 3
    Dernier message: 13/02/2009, 09h35
  4. Affichage par ligne
    Par Rajhonson dans le forum Langage
    Réponses: 4
    Dernier message: 17/11/2006, 14h01
  5. nombre de caractères par ligne à l'affichage
    Par trotters213 dans le forum Oracle
    Réponses: 3
    Dernier message: 03/11/2005, 09h51

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