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
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
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
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 ?
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
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.
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.
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
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.
bah, à DBCtrlGrid
PAS DE DESTIN, C'EST CE QUE NOUS FAISONS
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
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager