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 :

Créer un DBLookUpComboBox sur un DBCtrlGrid


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 37
    Points : 19
    Points
    19
    Par défaut Créer un DBLookUpComboBox sur un DBCtrlGrid
    Bonjour
    Je voudrais créer un DBLookUpComboBox sur un DBCtrlGrid et définir un ListSource.
    Mais cela me génère une erreur : Opération non permise sur un DBCtrlGrid.
    Quelqu'un peut-il m'en dire un peu plus?
    Merci

  2. #2
    say
    say est déconnecté
    Membre expérimenté
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 300
    Points
    1 300
    Par défaut
    Bjr, je rencontre le problème (qui est logique mais doit bien y avoir une solution)
    as tu avancé sur cette problématique?

    merci d'avance
    Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain)
    _ _ _ _ _ _ _ _ _

    La planète ne nous appartient pas, elle nous a été prêtée par nos enfants
    _ _ _ _ _ _ _ _ _

    Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres

  3. #3
    Membre confirmé
    Avatar de Manopower
    Inscrit en
    Décembre 2003
    Messages
    516
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 516
    Points : 453
    Points
    453
    Par défaut
    Bonjour,
    Tu arrives à créer un DBLookup dans ta Ctrlgrid et tu n'arrives pas à lui affecter un listsource ou bien tu n'arrives pas à créer le DBlookUp ?

  4. #4
    say
    say est déconnecté
    Membre expérimenté
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 300
    Points
    1 300
    Par défaut
    affecter une listsource..en l'occurrence, opération interdite ds DbCtrlGrid..

    une idée?
    Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain)
    _ _ _ _ _ _ _ _ _

    La planète ne nous appartient pas, elle nous a été prêtée par nos enfants
    _ _ _ _ _ _ _ _ _

    Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres

  5. #5
    Membre régulier Avatar de jibe74
    Inscrit en
    Avril 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 172
    Points : 112
    Points
    112
    Par défaut
    Bonjour,

    Je planche sur le même problème. En fait, en mettant un DBLookUpComboBox et en renseignant seulement la propriété ListField (pas ListSource ni KeyField), ça fonctionne tant bien que mal si on met comme DataField le champ LookupField correspondant.

    En fait, la saisie à la souris fonctionne bien, mais c'est un peu catastrophe avec la saisie clavier (en gros, seul le dernier caractère frappé est pris en compte !). J'ai tenté plusieurs choses sans réussir à obtenir un comportement satisfaisant. J'ai essayé avec un RxDBLookUpComboBox, et là c'est presque parfait. Sauf qu'il faut bien penser à valider la saisie par Enter, alors qu'on a tendance à utiliser la touche Tab comme avec les autres composants.

    Voilà où j'en suis. Si quelqu'un a des idées, ça m'intéresse ! Je continue à chercher... Peut-être un autre composant, ou une autre Grid...
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi ! Albert Einstein.

  6. #6
    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
    Citation Envoyé par celine33 Voir le message
    Bonjour
    Je voudrais créer un DBLookUpComboBox sur un DBCtrlGrid et définir un ListSource.
    Mais cela me génère une erreur : Opération non permise sur un DBCtrlGrid.
    Quelqu'un peut-il m'en dire un peu plus?
    Merci
    que tu veux faire exactement??
    car c'est normal, DBlookup récupére des donnée d'une autre table, et affiche dans sa zone edit selui qui correspont au critére en déplassant le curseur dans cette table,
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  7. #7
    Membre régulier Avatar de jibe74
    Inscrit en
    Avril 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 172
    Points : 112
    Points
    112
    Par défaut
    Salut,

    Vu la date du post de celine33, je ne suis pas sûr qu'elle repassera...

    Si j'ai bien compris sa question, le problème n'était pas tant de savoir comment fonctionne un DBLookupComboBox, mais elle s'interrogeait sur le fait qu'il était impossible de définir un ListSource, et donc de définir cette "autre table" dont tu parles .

    Je pense qu'il n'y a pas d'autre moyen avec un DBCtrlGrid (en tous cas je n'ai pas trouvé comment faire...) que d'utiliser non pas le champ "normal", mais un LookupField. A ce moment là, si on désire le modifier par une DBLookupComboBox, il n'est plus nécessaire de définir une ListSource, celle-ci étant déjà définie au niveau du champ.

    Comme je l'ai mentionné, cela fonctionne très bien sans définir ce ListSource, et en ne renseignant que la propriété ListField.

    Le seul problème qui reste est le comportement lors d'une saisie clavier, mais là je pense que c'est un problème de conception du composant, puisque l'équivallent de la RxLib a un comportement bien meilleur.

    Je reste peu satisfait de cette solution et étudie la SMDBGrid qui permet vraiment une foule de choses très intéressantes. Mais je n'ai pas réussi à faire fonctionner correctement la liste déroulante...

    Toute idée est donc bienvenue, que ce soit avec DBLookupComboBox ou RxDBLookupComboBox sur DBCtrlGrid, ou avec SMDBGrid.
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi ! Albert Einstein.

  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
    avec de bricolage oui,
    une seul dblookupcombobox caché, devient visible sur le composant dblookaup

    comme on a besoin d'une seul à un moment données
    mais bien sur c'est de bricolage
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  9. #9
    Membre régulier Avatar de jibe74
    Inscrit en
    Avril 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 172
    Points : 112
    Points
    112
    Par défaut
    Salut,

    Excuse-moi, mais je ne comprends pas à quoi tu fais allusion ? Au problème que je rencontre avec SMDBGrid, à celui de celine33 ? Au LookupField ? A DBCtrlGrid, à RxDBCtrlGrid... ?
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi ! Albert Einstein.

  10. #10
    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
    bah, à DBCtrlGrid
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  11. #11
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Faut dire qu'il faut le vouloir tout de même, le DBCtrlGrid gère déjà un curseur sur son DataSet associé (d'ailleurs, cela fait bcp de composant à l'écran) et dans cette grille rajouter un DBLookupCombo qui va rajouter un autre curseur (d'ailleurs va-t-il géré un curseur pour l'ensemble ou autant que par lignes dans la grille et devrat recalculer à chaque défilement de celle-ci, un gros bordel de DataLink, ...)

    Une solution un peu pourrie mais qui pourrait fonctionner, mettre une simple DBCombo, et remplir les chaines (items ou strings) de celle-ci à la création de la fenêtre avec une requête sur la table Lookup (en général c'est des dicos, donc quelques milliers d'élements au pire, si plus, j'utilise pour ma part, un MasterSource\MasterKey et une Grille), après je ne sais pas si les items sont dupliqués pour chaque instance (chaque enregistrement visible dans la grille, surtout pour l'ergonomie), si oui, cela risque d'être consommateur en mémoire (si liste très longue)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  12. #12
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 37
    Points : 19
    Points
    19
    Par défaut
    Bonjour,
    Cela fait un moment que j'ai envoyé ce post. J'ai sans doute trouvé une solution de contournement... mais depuis 2 ans, j'avoue ne pas me souvenir laquelle, d'autant que je ne travaille plus sous Delphi depuis plus d'un an.
    Je clôture donc le post.
    Charge à vous d'en recréer un si besoin.
    Bon dev à tous

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

Discussions similaires

  1. [Servlet] Créer un fichier sur un poste distant
    Par JohnBlatt dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 07/05/2005, 18h51
  2. Réponses: 2
    Dernier message: 03/02/2005, 13h21
  3. Créer un dossier sur serveur distant
    Par TorÕ02 dans le forum C++
    Réponses: 7
    Dernier message: 11/10/2004, 17h30
  4. quel langage pour créer des "applications" sur 1 s
    Par jaribu dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 30/07/2003, 14h06
  5. Créer des objets sur la pile ?
    Par Cornell dans le forum Langage
    Réponses: 8
    Dernier message: 03/03/2003, 11h47

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