mainform.cpp
departmentModel->setTable("department");
departmentModel
->setRelation
(Department_LocationId,
QSqlRelation("location",
"id",
"name"));
departmentModel->setSort(Department_Name, Qt::AscendingOrder);
departmentModel->setHeaderData(Department_Name, Qt::Horizontal,
tr("Dept."));
departmentModel->setHeaderData(Department_LocationId,
Qt::Horizontal, tr("Location"));
departmentModel->select();
ui->departmentView->setModel(departmentModel);
//ui->departmentView->setItemDelegate(new QSqlRelationalDelegate(this));
ui->departmentView->setColumnHidden(Department_Id, true);
ui->departmentView->resizeColumnsToContents();
ui->departmentView->horizontalHeader()->setStretchLastSection(true);
ui->departmentView->setCurrentIndex(departmentModel->index(0, 0));
//-------------------------------------------------------
connect(ui->editButton, SIGNAL(clicked()),
this, SLOT(editEmployees()));
//--------------------------------------------------------
void MainForm::editEmployees()
{
const QModelIndex index
= ui
->departmentView
->currentIndex
();
if (index.isValid()) {
EmployeeForm employeeform(ui->departmentView->model(), index.row(), this);
employeeform.exec();
}
}
departmentModel = new QSqlRelationalTableModel(this);
departmentModel->setTable("department");
departmentModel->setRelation(Department_LocationId, QSqlRelation("location", "id", "name"));
departmentModel->setSort(Department_Name, Qt::AscendingOrder);
departmentModel->setHeaderData(Department_Name, Qt::Horizontal,
tr("Dept."));
departmentModel->setHeaderData(Department_LocationId,
Qt::Horizontal, tr("Location"));
departmentModel->select();
departmentView = new QTableView;
ui->departmentView->setModel(departmentModel);
ui->departmentView->setSelectionBehavior(QAbstractItemView::SelectRows);
ui->departmentView->setSelectionMode(QAbstractItemView::SingleSelection);
ui->departmentView->setEditTriggers(QAbstractItemView::NoEditTriggers);
//ui->departmentView->setItemDelegate(new QSqlRelationalDelegate(this));
ui->departmentView->setSelectionMode(QAbstractItemView::SingleSelection);
ui->departmentView->setSelectionBehavior(QAbstractItemView::SelectRows);
ui->departmentView->setColumnHidden(Department_Id, true);
ui->departmentView->resizeColumnsToContents();
ui->departmentView->horizontalHeader()->setStretchLastSection(true);
ui->departmentView->setCurrentIndex(departmentModel->index(0, 0));
//-------------------------------------------------------
connect(ui->editButton, SIGNAL(clicked()),
this, SLOT(editEmployees()));
//--------------------------------------------------------
void MainForm::editEmployees()
{
const QModelIndex index = ui->departmentView->currentIndex();
if (index.isValid()) {
EmployeeForm employeeform(ui->departmentView->model(), index.row(), this);
employeeform.exec();
}
}
To copy to clipboard, switch view to plain text mode
employeeform.h
class EmployeeForm
: public QDialog{
Q_OBJECT
public:
~EmployeeForm();
class EmployeeForm : public QDialog
{
Q_OBJECT
public:
explicit EmployeeForm(QAbstractItemModel *model, int row, QWidget *p = 0);
~EmployeeForm();
To copy to clipboard, switch view to plain text mode
employeeform.cpp
employeeModel->setTable("employee");
employeeModel->setRelation(Employee_DepartmentId,
employeeModel->setSort(Employee_Name, Qt::AscendingOrder);
employeeModel->setHeaderData(Employee_Name, Qt::Horizontal,
tr("Name"));
employeeModel->setHeaderData(Employee_Extension, Qt::Horizontal,
tr("Ext."));
employeeModel->setHeaderData(Employee_Email, Qt::Horizontal,
tr("Email"));
employeeProxy->setSourceModel(employeeModel);
employeeProxy->setFilterCaseSensitivity(Qt::CaseInsensitive);
employeeProxy->setFilterKeyColumn(-1);
employeeProxy->setDynamicSortFilter(true);
ui->employeeView->setModel(employeeProxy);
// ui->employeeView->setSelectionMode(QAbstractItemView::SingleSelection);
// ui->employeeView->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->employeeView->horizontalHeader()->setStretchLastSection(true);
ui->employeeView->setColumnHidden(Employee_Id, true);
ui->employeeView->setColumnHidden(Employee_DepartmentId, true);
ui->employeeView->setColumnHidden(Employee_StartDate, true);
employeeModel = new QSqlRelationalTableModel(this);
employeeModel->setTable("employee");
employeeModel->setRelation(Employee_DepartmentId,
QSqlRelation("department", "id", "name"));
employeeModel->setSort(Employee_Name, Qt::AscendingOrder);
employeeModel->setHeaderData(Employee_Name, Qt::Horizontal,
tr("Name"));
employeeModel->setHeaderData(Employee_Extension, Qt::Horizontal,
tr("Ext."));
employeeModel->setHeaderData(Employee_Email, Qt::Horizontal,
tr("Email"));
employeeProxy= new QSortFilterProxyModel(this);
employeeProxy->setSourceModel(employeeModel);
employeeProxy->setFilterCaseSensitivity(Qt::CaseInsensitive);
employeeProxy->setFilterKeyColumn(-1);
employeeProxy->setDynamicSortFilter(true);
employeeView = new QTableView;
ui->employeeView->setModel(employeeProxy);
// ui->employeeView->setSelectionMode(QAbstractItemView::SingleSelection);
ui->employeeView->setSelectionBehavior(QAbstractItemView::SelectRows);
// ui->employeeView->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->employeeView->horizontalHeader()->setStretchLastSection(true);
ui->employeeView->setColumnHidden(Employee_Id, true);
ui->employeeView->setColumnHidden(Employee_DepartmentId, true);
ui->employeeView->setColumnHidden(Employee_StartDate, true);
To copy to clipboard, switch view to plain text mode
i build and run the the program without any error.. when i click button it closes and shows this--->
The program has unexpectedly finished.
/pach/../projects/QtProjects/staffmanager exited with code 0
any help??
Bookmarks