3. "Корзина"
Таблица "корзина" реализуется аналогично таблице "все заказчики", с единственным отличием - в условии фильтрации proxyModel:
proxyModel->setFilterRegExp(QRegExp("0", Qt::CaseInsensitive, QRegExp::FixedString));
proxyModel->setFilterKeyColumn(10);
- после чего в таблице "корзина" будут отображаться записи, в которых значение колонки "active" равно "0". Таким образом, все что нужно сделать для того, чтобы переместить запись заказчика в корзину - изменить значение "active":
customerform *page = (customerform*) ui.tabWidget->currentWidget(); // получаем указатель на текущую закладку в tabWidget заказчиков
QSqlRecord record = model->record(page->mapper->currentIndex()); // получаем из модели запись текущего заказчика
record.setValue("active", "0"); // устанавливаем active в ноль
model->setRecord(page->mapper->currentIndex(), record); // обновляем запись текущего заказчика
model->submitAll();
ui.tabWidget->removeTab(ui.tabWidget->currentIndex()); // удаляем текущую вкладку
Востановим запись из корзины:
QModelIndex index = ui.tableView->currentIndex(); // индекс выделенной строки в таблице "корзина"
QModelIndex index2 = proxyModel->mapToSource(index); // переводим его из proxyModel в индекс исходной модели
model->setData(cust_model->index(index2.row(), 9), "1"); // изменяем active
model->submitAll();
Удаляем запись навсегда:
QModelIndex index = ui.tableView->currentIndex(); // индекс выделенной строки в таблице "корзина"
QModelIndex index2 = proxyModel->mapToSource(index); // переводим в индекс исходной модели
model->removeRow(index2.row()); // удаляем строку из модели
model->submitAll(); // обновляем базу данных
Комментариев нет:
Отправить комментарий