![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
mishabard |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 31 Регистрация: 13.6.2011 Из: Киев Пользователь №: 2741 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Здравствуйте!
Использую QSQLRelationTableModel QTableView Есть две таблицы поля у которых связанные между собой таким образом: kassaModel->setRelation(kassaModel->fieldIndex("idstat"),QSqlRelation("statlist","id","name")); kassaModel->setRelation(kassaModel->fieldIndex("idpartner"),QSqlRelation("partner","id","name")); Вопрос первый: При отображении в QTAbleView получается два поля после подмены NAME, STATLIST_NAME_2 Можно как-то переназвать эти поля( не заголовки в представлении!!!! а именно название полей), например чтобы потом было удобно ими пользоваться и не вспоминать все эти названия? Второй вопрос: при добавлении новой записи в kassaModel связанные поля idstat, idpartner имеют значения NULL потому как в них еще не установленны соответсвия из связанных таблиц. И поэтому новые записи не появляются в TableView. Как это решить? В официальной документации вычитал что никак!!!????((((( |
|
|
![]() |
mishabard |
![]()
Сообщение
#2
|
Студент ![]() Группа: Участник Сообщений: 31 Регистрация: 13.6.2011 Из: Киев Пользователь №: 2741 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Спасибо большое! Все заработало.
Подключил класс к проекту. Просто в программе заменил стандартный QSqlRelationTableModel * model; на SqlRelationTableModel * model; теперь показываются все строки вместе с нулевыми. Класс ведет себя точно так же как и раньше. Можно добавлять удалять изменять записи. Теперь появилась возможность обращаться к полям relation напрямую по их именам, которые формирует им selectStatment, правде это не совсем правильно, но можно. Еще обратил внимание, что замена запроса происходит всегда. а не один раз при инициализации модели. И selectStatment даже после замены постоянно возвращает исходный запрос без left join. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 27.2.2025, 14:02 |