#include "tfihm.h" #include "ui_tfihm.h" #include #include TFihm::TFihm(QWidget *parent) : QMainWindow(parent), ui(new Ui::TFihm) { ui->setupUi(this); flagClient = false; flagAgent = false; flagAlarme = false; flagGRV = false; flagInfosDepot = false; ui->gBClient->setHidden(true); // On crée un objet dédié à l'exploitation d'une BDD this->db = new QSqlDatabase(); // On indique à cet objet qu'il doit utiliser un driver SQLITE puisque c'est le format de notre BDD *this->db = QSqlDatabase::addDatabase("QSQLITE"); // On indique le chemin pour accéder à notre BDD db->setDatabaseName("C:/Users/xGeNeSiSx/Documents/GestionBDD/MaBase.sqlite"); //db->setDatabaseName("/home/tessierj/Documents/GestionBDD/MaBase.sqlite"); // qDebug() permet d'afficher des informations sur la console intégrée à Qt Creator // C'est très pratique pour le déboggage !! // ici, on s'assure que le driver SQLITE est bien chargé qDebug() << db->driverName(); // On ouvre la BDD... if (!db->open()) { QMessageBox::warning(0, QObject::tr("Erreur de connexion à la base de données"), this->db->lastError().text()); } else { // ...et, si ça réussit, on crée un objet qui nous servira à faire des requêtes SQL query = new QSqlQuery(); // Attention : à instancier après l'ouverture de la BDD } // On affiche un message de bug pour vérifier que la BDD est bien ouverte qDebug() << this->db->databaseName() << " is open ? " << this->db->isOpen(); } TFihm::~TFihm() { delete ui; } void TFihm::on_pbClient_clicked() { if(!flagClient && ui->cbClient->currentText() == "") { ui->lbSelectTable->setHidden(true); ui->gBClient->setHidden(false); ui->cbAgent->setHidden(true); ui->cbClient->setHidden(false); QString sql; ListClient.clear(); sql = "SELECT * FROM Client;"; // On prépare la requête //bool ok = query->prepare(sql); if( query->exec(sql)) { //...et on extrait les informations QString nom; while(query->next()) { Client nouveau; nouveau.index++; nouveau.id_Client = query->value(0).toInt(); nouveau.Nom = query->value(1).toString(); nouveau.Prenom = query->value(2).toString(); nouveau.MatriculeClient = query->value(3).toInt(); ListClient.append(nouveau); nom = nouveau.Nom; ui->cbClient->addItem(nom); } } sql = "Select Information_Depot.* FROM Client, a_Depose, Information_Depot WHERE Client.id_Client = " + QString::number(ListClient[ui->cbClient->currentIndex()].id_Client) + ";"; if( query->exec(sql)) { //...et on extrait les informations retournées pour les stocker dans une liste de chaines de caractères // ('theAirports') QString date; while(query->next()) { InfosDepot nouveau; nouveau.id_depot = query->value(0).toInt(); nouveau.poids = query->value(1).toInt(); nouveau.date = query->value(2).toDate(); nouveau.id_GRV = query->value(3).toInt(); ListClient[ui->cbClient->currentIndex()].depot.append(nouveau); date = nouveau.date.toString("dd.MM.yyyy"); ui->cbDateDepot->addItem(date); } } flagClient = true; flagAgent = false; } else if(!flagClient && ui->cbClient->currentText() != "") { ui->cbAgent->setHidden(true); ui->cbClient->setHidden(false); ui->cbClient->setCurrentIndex(0); ui->cbClient->currentIndexChanged(0); } } void TFihm::on_cbClient_currentIndexChanged(int index) { ui->lePrenomClient->setText(ListClient[index].Prenom); ui->leMatriculeClient->setText(QString::number(ListClient[index].MatriculeClient)); ui->cbDateDepot->clear(); } void TFihm::on_pbAgent_clicked() { if(!flagAgent && ui->cbAgent->currentText() == "") { flagClient = false; ui->lbSelectTable->setHidden(true); ui->gBClient->setHidden(false); ui->cbAgent->setHidden(false); ui->cbClient->setHidden(true); QString sql; QStringList buffer; ListAgent.clear(); buffer.clear(); sql = "SELECT * FROM Agent;"; // On prépare la requête //bool ok = query->prepare(sql); if( query->exec(sql)) { //...et on extrait les informations while(query->next()) { Agent nouveau; nouveau.index++; nouveau.id_Agent = query->value(0).toInt(); nouveau.Nom = query->value(1).toString(); nouveau.Prenom = query->value(2).toString(); nouveau.MatriculeAgent = query->value(3).toInt(); //buffer.append(query->value(0).toString()); ListAgent.append(nouveau); ui->cbAgent->addItem(nouveau.Nom); } } flagAgent = true; } else if(ui->cbAgent->currentText() != "") { ui->cbAgent->setHidden(false); ui->cbClient->setHidden(true); ui->cbAgent->setCurrentIndex(0); ui->cbAgent->currentIndexChanged(0); } } void TFihm::on_cbAgent_currentIndexChanged(int index) { ui->lePrenomClient->setText(ListAgent[index].Prenom); ui->leMatriculeClient->setText(QString::number(ListAgent[index].MatriculeAgent)); } void TFihm::on_cbDateDepot_currentIndexChanged(int index) { ui->lePoidsDepot->setText(QString::number(ListClient[ui->cbClient->currentIndex()].depot[index].poids)); }