cześć
Jak mogę uzyskać dostęp do danych wpisanych w innym formularzu? Jest możliwość zrobić w tym przypadku friend class? Jest to prawidłowe podejście? Jak to zrobić?
void MainWindow::on_pbEdytujKlienta_clicked()
{
edytujklienta klient;
klient.setModal(true);
klient.exec();
// QString Nazwisko;
//Nazwisko=ui->lineNazwisko->text();
QString ID;
ID=ui->leEdytujKlienta->text();
QSqlQuery updateQuery = QSqlQuery(db);
updateQuery.prepare("UPDATE tKlient SET NAZWISKO = :newNAZWISKO WHERE ID = :id ");
updateQuery.bindValue(":newNAZWISKO", Nazwisko);
updateQuery.bindValue(":id", ID);
updateQuery.exec();
queryModelKlienci = new QSqlQueryModel(this); // tworzę obiekt modelu
queryModelKlienci->setQuery("SELECT * FROM [Projekt1].[dbo].[tKlient]"); // dodaję zapytanie
ui->tableKlienci->setModel(queryModelKlienci); // podpinam model pod kontrolkę typu QTableView
}
W MainWindow w pobieram numer ID rekordu, który chcę udytować. Potem chcę, aby wyskoczyło okienko z uzupełnionymi starymi danymi, następnie edytować np. NAZWISKO i zapisać.
KOMUNIKACJA MIEDZY SLOTAMI:
#include "ui_edytujklienta.h"
#include <QtSql>
#include "mainwindow.h"
edytujklienta::edytujklienta(QWidget *parent) :
QDialog(parent),
ui(new Ui::edytujklienta)
{
ui->setupUi(this);
}
edytujklienta::~edytujklienta()
{
delete ui;
}
void edytujklienta::onNewTextEntered(const QString &text)
{
qDebug() << "ODEBRANO numer ID: " << text ;
ui->lNumerKlienta->setText("text");
}
void edytujklienta::on_leImie_returnPressed()
{
}
void edytujklienta::on_lineNazwisko_returnPressed()
{
}
void edytujklienta::on_lineUlica_returnPressed()
{
}
void edytujklienta::on_lineNrDomu_returnPressed()
{
}
void edytujklienta::on_lineNrMieszkania_returnPressed()
{
}
void edytujklienta::on_linePESEL_returnPressed()
{
}
void edytujklienta::on_lineAdresMailowy_returnPressed()
{
}
void edytujklienta::on_lineKodPocztowy_returnPressed()
{
}
void edytujklienta::on_lineMiejscowosc_returnPressed()
{
}
void edytujklienta::on_pbZatwierdz_clicked()
{
QString Nazwisko,Imie, Ulica, NrDomu, NrMieszkania, PESEL,AdresMiasto, AdresEmail, KodPocztowy, Miejscowosc;
Nazwisko=ui->lineNazwisko->text();
Imie=ui->leImie->text();
Ulica=ui->lineUlica->text();
NrDomu=ui->lineNrDomu->text();
NrMieszkania=ui->lineNrMieszkania->text();
PESEL=ui->linePESEL->text();
AdresMiasto = ui->lineMiejscowosc->text();
AdresEmail = ui->lineAdresMailowy->text();
KodPocztowy = ui->lineKodPocztowy->text();
Miejscowosc =ui->lineMiejscowosc->text();
QSqlQuery updateQuery ;
updateQuery.prepare("UPDATE tKlient SET NAZWISKO = :newNAZWISKO, IMIE = :newIMIE, PESEL = :newPESEL, ADRES_MIASTO = :newADRES_MIASTO, ADRES_EMAIL = :newADRES_EMAIL, ADRES_KOD_POCZTOWY = :newADRES_KOD_POCZTOWY, ADRES_ULICA = :newADRES_ULICA, ADRES_NR_BUDYNKU = :newADRES_NR_BUDYNKU WHERE ID = :id ");
updateQuery.bindValue(":newIMIE",Imie);
updateQuery.bindValue(":newNAZWISKO", Nazwisko);
updateQuery.bindValue(":newPESEL",PESEL);
updateQuery.bindValue(":newADRES_MIASTO",AdresMiasto);
updateQuery.bindValue(":newADRES_EMAIL",AdresMiasto);
updateQuery.bindValue(":newADRES_KOD_POCZTOWY",KodPocztowy);
updateQuery.bindValue(":newADRES_ULICA",Ulica);
updateQuery.bindValue(":newADRES_NR_BUDYNKU", NrMieszkania);
updateQuery.exec();
if(updateQuery.exec()){
qDebug()<< "Record zaktualizowany";
}else
{
qDebug() << "Error: brak aktualizacji";
}
}
void edytujklienta::on_pbAnuluj_clicked()
{
}
void edytujklienta::on_pbZatwierdz_clicked() potrzebuje ID czyli zmienna text z void edytujklienta::onNewTextEntered(const QString &text).