Есть 2 таблицы:
А1
int: id
text: name
int: id_a2
А2
int: id
text: name
Нужно:
Отрисовать 2 формы: просмотр и добавление/редактирование
с 1-ой все понятно, там мне нужно только поле A1.name(QSqlTableModel использую). из нее и вызываю форму 2.
со 2-ой, проблемы. Передаю в конструктор формы QModelIndex и QSqlTableModel от них и пляшу
Необходимы на данной форме 2-вкладки(QTabWidget):
на первой(QDialog) — A1.name(QLineEdit)
на второй(QDialog) — A2.name(QComboBox)
Скажу сразу:
3 дня убил на QSqlRelationalTableModel+QDataWidgetMapper — не растет кокос!
QDataWidgetMapper не сабмитит!! и в QComboBox криво значения мапит.
Так, вот — хотелось бы по старинке засабмитить QSqlRecord.
Но тут не понятно как корректно в A2.name(QComboBox) выставить значение текущего A1.id_a2???
и потом собирать QSqlRecord.
З.Ы. QSqlRelationalTableModel+QDataWidgetMapper работает только с существующими значениями? А как быть если необходимо строку добавить?
решил так:
int row_count = model_->rowCount();
QSqlRecord rec = model_->record();
rec.setGenerated(0, false);
if(!model_->insertRecord(row_count, rec))
{
return;
}
current_index_ = model_->index(row_count, 0);
view_->setCurrentIndex(current_index_);
editConnection dlg(model_, ¤t_index_);
if(dlg.exec() != QDialog::Accepted)
{
}
else
{
}
view_->setCurrentIndex(current_index_);
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)