Bonjour,

C'est toujours moi avec mes problèmes de programmation qui n'en finissent pas. Aujourd'hui je voulais vous posez un nouveau cas qui se résume ainsi:

J'ai deux QTableView la première contient l'ensemble des employés et l'autre contient les formations effectuées. Pour le moment les deux tables m'affichent l'une l'ensemble de l'effectif et autre l'ensemble de l'effectif qui a subi une ou plusieurs formation.
Je voudrais filtrer la deuxième TableView (Formation) en fonction de la matricule de l'employé sélectionnée dans la première TableView.
Ainsi, Je me suis inspiré de l'exemple précédent (Lien entre deux QComboBox) pour filtrer la table mais sans résultat.
Je demande votre aide.

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
19
20
21
22
23
24
25
26
27
28
 
 
#Model des employés
 
        self.modellisteemloyes = QSqlRelationalTableModel(self)
        self.modellisteemloyes.setTable('Agents')
        self.modellisteemloyes.setEditStrategy(QSqlRelationalTableModel.OnManualSubmit)
        self.modellisteemloyes.select()
        self.modellisteemloyes.setSort(0, Qt.AscendingOrder)
        self.ui.tableViewEmployes.setSortingEnabled(True)
        self.ui.tableViewEmployes.setModel(self.modellisteemloyes)
        self.ui.tableViewEmployes.resizeColumnsToContents()
        self.ui.tableViewEmployes.selectionModel().currentRowChanged.connect(self.setFiltreFormat)
 
#Model employés ayant subi une ou plusieurs formations
 
        self.modellisteformation = QSqlRelationalTableModel(self)
        self.modellisteformation.setTable('Formations')
        self.modellisteformation.setEditStrategy(QSqlRelationalTableModel.OnManualSubmit)
        self.modellisteformation.select()
        self.modellisteformation.setSort(0, Qt.AscendingOrder)
        self.ui.tableViewformasuivi.setSortingEnabled(True)
        self.ui.tableViewformasuivi.setModel(self.modellisteformation)
        self.ui.tableViewformasuivi.resizeColumnsToContents()
 
    def setFiltreFormat(self, row):
        Matricule=self.modellisteemloyes.selectionModel(self.modellisteemloyes.index(row,0, QModelIndex()))
        self.modellisteformation.setFilter("Matricule = {}".format(Matricule))