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 Discussion :

Remplacer des données dans QTableView et pas dans la QTable


Sujet :

Bases de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de katanaenmousse
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 220
    Par défaut Remplacer des données dans QTableView et pas dans la QTable
    Bonjour,
    J'utilise actuellement une QTableView pour afficher un QSqlQueryModel d'une table appelée PiecesDispo.

    La Table PiecesDispo contient les données suivantes :
    - ReferencePiece
    - QuantitePiece

    J'ai une autre table appelee Designation qui contient les données suivantes :
    - ReferencePiece
    - DesignationPiece
    (toutes les ReferencePiece n'ont pas forcement de DesignationPiece)

    Je voudrai que mon QTableView affiche les données de la table PiecesDispo mais en remplacant les valeurs de la colonne RefencePiece par la DesignationPiece correspondante quand elle existe et sans que cela ne modifie la base.

    Quelqu'un peut il me donner un coup de main?
    Merci beaucoup

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 159
    Par défaut
    Bonjour,

    Tu as deux solutions : Soit par le QSQlQueryModel, dans lequel tu pourrais donner une requête multitable, solution que je n'ai jamais tentée (ne connais pas le comportement du modèle dans ce cas en modification), sinon, utilise un QSqlRelationalTableModel pour la table PiecesDispo
    A cet objet tu ajoutes un QSqlRelation comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .h
    QSqlRelationalTableModel *model;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .cpp
    model->setTable("PiecesDispo");
    model->setRelation(model->fieldIndex("ReferencePiece"), QSqlRelation("Designation","ReferencePiece","DesignationPiece"));
    De ce que je me souviens, c'est tout ce qui est nécessaire pour que le QTableView remplace le champs ReferencePiece par ce que tu lui auras demandé d'afficher.
    Par contre, cela part du principe que ReferencePiece est une clé unique de la table Designation. Par contre, s'il n'y a pas de valeur désignation pour une référence donnée, il n'y aura pas d'affichage (je ne crois pas qu'il affiche la clé si la valeur à afficher est nulle. a vérifier).
    Si tu ajoutes un ItemDelegate (tableView->setItemDelegate(QSqlRelationalDelegate)) à ta QSqlTableView, le champs Désignation pourra se transformer en boite combo pour te permettre de choisir une référence de piece.

    Voila, j'espère que ça t'aidera.
    Cordialement,
    M.P.

Discussions similaires

  1. [XL-2013] Remplacer des données dans un tableau avec une formule
    Par capnice dans le forum Excel
    Réponses: 7
    Dernier message: 23/05/2015, 22h12
  2. insertion des numéros qui n'existe pas dans la base de données
    Par cisco.nat dans le forum Général Java
    Réponses: 5
    Dernier message: 09/07/2013, 12h39
  3. problème auto remplacement des données dans une table
    Par rezguiinfo dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 26/02/2013, 21h32
  4. [XL-2007] Remplacer des données dans une autre feuille
    Par dodo28 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/04/2009, 19h44
  5. [RegEx] remplacer des données dans plusieurs fichiers
    Par sam01 dans le forum Langage
    Réponses: 3
    Dernier message: 11/12/2007, 14h03

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