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

Composants VCL Delphi Discussion :

Problème DBGrid avec Columns mentionnées et PickList


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Par défaut Problème DBGrid avec Columns mentionnées et PickList
    Bonjour tout le monde!
    j'ai deux questions concernant un DBGrid sur lequel j'ai fixé les colonnes en utilisant la propriété 'Columns' et pour quelques unes de mes collones j'ai remplie la propriété PickList :

    1) comment je peux capter un evenement de clique sur un element de ma liste Picklist (sachant que j'ai fait des listes sur trois de mes collones) ???

    2) j'ai deux champs de type Char(3) qui représentent des codes de pannes (des chiffres peu significatifs) or, moi je veux afficher dans ces champs dans mon DBGrid le nom des pannes (des chaines de caractères saisies auparavant dans mon picklist) (pour faciliter la lecture du DBGrid) et comme ça, lors de la mise à jour, je pourrai alors capter l'element saisi dans la liste (la liste contient les noms des pannes) et remplacer ce nom par son code pour l'inserer dans ma table!!

    Si quelqu'un à une idée, j'en serai reconnaissant!
    Merci

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 089
    Par défaut
    1) OnEditButtonClick
    2) Problème de la liaison, tu peux remplir ta picklist avec les libellés, et dans propriétés Objects (tu y stocke un pointeur sur ShortString[3] et via OnEditButtonClick, tu tente l'assoc)

    Sinon, tu mets dans ta picklist une chaine contenant le code et le libellé concaténer, avec des espaces si le code ne fait pas toujours 3 de longueur genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    A   - Panne A
    AA  - Panne AA
    AAA - Panne AAA
    AAB - Panne AAB
    normalement, cela va tronquer tout seul dans la base ... en tout cas, j'ai fait cela chez un de mes employeurs, il y avait derrière du TClientDataSet lié sur Oracle ou SQLServer selon les clients ... je l'ai fait aussi en Paradox, ...
    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

  3. #3
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    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 491
    Par défaut
    salut

    dans le dataset cree un nouveau champs reference
    rempli le nom
    le type et la taille si necessaire
    click sur reference
    rempli le champs cle de ta table maitre
    puis rempli l'ensemble de donné : c'est ta table de libelle
    ensuite le champs cle corespondant
    et enfin le champs resultat sera le libelle
    et le tour est jouer reste plus qu'a choisir le champs dans ta nouvelle
    colone de ton dbgrid
    y'a rien de plus simple

    @+ phil

  4. #4
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Par défaut (RE) Problème DBGrid avec Columns mentionnées et PickList
    Re bonjour,
    merci infiniment pour votre aide!
    il me reste un autre probleme,
    je sais que c'est une question debile
    d'habitude je travaille avec un ADOConnection, ADOQuery et DataSource plus un DBGrid, et je n'ai jamais travaillé avec le composant TClientDataSet ni avec ADOTable, et là je me trouve bloqué car j'arrive pas à le lié avec mes composants :
    j'ai mis dans sa propriété MasterSource : MaDataSource
    et j'ai bel et bien remplis les données de mon champ de reference mais j'ai pas de résultats!
    sachant que j'ai les données suivante:
    Table Panne (code, heureDebut, heureFin, codePb, CodeIng)
    Table probleme (codePb, Probleme)

    et je veux afficher dans mon grid (qui contient la table panne) à la place des codePb le probleme associé au code!

    dans le remplissage des données du champ reference, j'ai mis les données suivante :
    Nom : Probleme
    Type :String
    Taille : 50
    champ clé : codePb
    ensemble de données : ADOQuery2 (sachant que j'ai mis dans le code source ADOQuery2.SQL.Add('select * from probleme'))
    clé de référence : codePb
    champ résultat : Probleme

    et dans le ADOQuery qui alimente mon DBGrid j'ai mis :
    ADOQuery.SQL.Add('select code, heureDebut, heureFin, codePb as Probleme, CodeIng from probleme'))
    ....
    et là, ça ne me donne aucun résultat!
    aidez moi SVP

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    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 491
    Par défaut
    salut

    salut

    Citation Envoyé par othland
    ...
    Table Panne (code, heureDebut, heureFin, codePb, CodeIng)
    Table probleme (codePb, Probleme)

    et je veux afficher dans mon grid (qui contient la table panne) à la place des codePb le probleme associé au code!

    dans le remplissage des données du champ reference, j'ai mis les données suivante :
    Nom : Probleme
    Type :String
    Taille : 50
    champ clé : codePb
    ensemble de données : ADOQuery2 (sachant que j'ai mis dans le code source ADOQuery2.SQL.Add('select * from probleme'))
    clé de référence : codePb
    champ résultat : Probleme

    et dans le ADOQuery qui alimente mon DBGrid j'ai mis :
    ADOQuery.SQL.Add('select code, heureDebut, heureFin, codePb as Probleme, CodeIng from probleme'))
    ....
    et là, ça ne me donne aucun résultat!

    encore une fois, désolé pour le derrangement
    Merci pour votre aide!!
    je ne travail pas avec ADO mais le principe en devrais etre le meme

    a tu verifier que la deuxieme requete est ouvert ?
    l'utilisation du client dataset dans ce cas la n'est pas necessaire

    le champs reference est bien creer dans le adoquery principal ?


    @+ Phil

    PS : je ne repond pas au message PV

  6. #6
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Par défaut re
    Bonjour,

    bref, j'ai pu me débrouiller avec un ADODataset mais y a une erreure inconnue qui me bloque :
    je vous donne tous les détails :
    dans le commandText de mon ADODataSet1 j'ai mis la requete suivante :
    'select code, heureDebut, heureFin, codePb, CodeIng from Panne where heureFin is null'

    et dans le commandText de mon ADODataSet2 j'ai mis la requete suivante :
    'select codePb, Probleme from probleme'

    et j'ai créé un champ référence dans mon ADODataSet1 comme suit :
    nom : Probleme
    type : String
    Taille : 50
    Type : Référence
    Champ clé : codePb
    Ensemble de données : ADODataSet2
    Clés de référence : codePb
    Champ résultat : Probleme

    et dans le Onshow de ma fenetre, je met :
    ADODataSet2.Open;
    ADODataSet1.Open;

    mais là, BOUM, ça m'affiche :
    'Le projet à provoqué une classe d'exception EOleException avec le message : 'Une erreur inconnue s'est produite'. Processus stoppé....'

    Avez vous une idée de cela??
    Merci pour votre aide!!

Discussions similaires

  1. Problème avec column ambiguously defined
    Par eric___ dans le forum SQL
    Réponses: 2
    Dernier message: 16/12/2010, 11h22
  2. [XL-2007] Problème avec columns.count
    Par issoram dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 29/09/2010, 16h30
  3. [Lazarus] [SVN 0.9.29.23665] Problème étrange avec un dbgrid
    Par ovni76 dans le forum Lazarus
    Réponses: 6
    Dernier message: 13/02/2010, 11h12
  4. Problème de DBGrid avec une requête Compute
    Par dark_geek dans le forum Composants VCL
    Réponses: 4
    Dernier message: 04/07/2009, 11h16
  5. problème JSP avec JBuilder et Weblogic 7
    Par viny dans le forum JBuilder
    Réponses: 2
    Dernier message: 24/04/2003, 08h07

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