QSqlQueryModel+QSqlRelationalTableModel=...?, опыты по скрещиванию |
Здравствуйте, гость ( Вход | Регистрация )
QSqlQueryModel+QSqlRelationalTableModel=...?, опыты по скрещиванию |
tha_new_usah |
13.7.2010, 6:14
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 13.7.2010 Пользователь №: 1879 Спасибо сказали: 0 раз(а) Репутация: 0 |
Всем привет!
Пишу програмку для диплома, работающую с БД. Сама программа является аналогом уже существующей разработки BusList - то есть, она ведет журнал путевых листов автобусов, помогает составлять заполненные формы путевых листов на основе данных, имеющихся в БД. В главном окне у меня собственно сам журнал путевых листов, т.е. таблица, которая имеет такие поля, как например, номер автобуса и фамилия водителя, в качестве Foreign Key. Отображаются данные, соответственно, в tableView на форме. Данные о номере автобуса и водителе берутся из соответствующих таблиц. Собственно, рилэйшнл тэйбл модел я уже прикрутила, но хотелось бы сделать следующее: чтобы в главном окне программы, в таблице "журнал путевых листов" не отображалось ключевое поле, т.к. я считаю его избыточным. Вот тут и встает загвоздка, можно реализовать отдельно QSqlQueryModel, чтобы он отображал все столбцы, кроме ключевого, но тогда в столбцах "номер автобуса" и "водитель" будут лишь числовые значения, относящиеся к суррогатному ключу соответствующих таблиц; а можно реализовать отдельно QSqlRelationalTableModel, чтобы пользователь мог наблюдать сразу имена и номера автобусов, но тогда в главном окне появляется столбец "Код записи", который, в общем-то, мешает. Есть какие-нибудь идеи, как можно скрестить эти два класса? В идеале в итоговом tableView должны быть только нужные столбцы, а так же должны отображаться записи из связанных таблиц. |
|
|
maint |
13.7.2010, 7:03
Сообщение
#2
|
Участник Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2 |
Всем привет! Пишу програмку для диплома, работающую с БД. Сама программа является аналогом уже существующей разработки BusList - то есть, она ведет журнал путевых листов автобусов, помогает составлять заполненные формы путевых листов на основе данных, имеющихся в БД. В главном окне у меня собственно сам журнал путевых листов, т.е. таблица, которая имеет такие поля, как например, номер автобуса и фамилия водителя, в качестве Foreign Key. Отображаются данные, соответственно, в tableView на форме. Данные о номере автобуса и водителе берутся из соответствующих таблиц. Собственно, рилэйшнл тэйбл модел я уже прикрутила, но хотелось бы сделать следующее: чтобы в главном окне программы, в таблице "журнал путевых листов" не отображалось ключевое поле, т.к. я считаю его избыточным. Вот тут и встает загвоздка, можно реализовать отдельно QSqlQueryModel, чтобы он отображал все столбцы, кроме ключевого, но тогда в столбцах "номер автобуса" и "водитель" будут лишь числовые значения, относящиеся к суррогатному ключу соответствующих таблиц; а можно реализовать отдельно QSqlRelationalTableModel, чтобы пользователь мог наблюдать сразу имена и номера автобусов, но тогда в главном окне появляется столбец "Код записи", который, в общем-то, мешает. Есть какие-нибудь идеи, как можно скрестить эти два класса? В идеале в итоговом tableView должны быть только нужные столбцы, а так же должны отображаться записи из связанных таблиц. если я правильно понял, надо просто на вьюхе спрятать колонку, не показывать. Смотреть в сторону setColumnHidden(номер_колонки, true) |
|
|
tha_new_usah |
13.7.2010, 7:07
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 13.7.2010 Пользователь №: 1879 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
tha_new_usah |
20.7.2010, 10:43
Сообщение
#4
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 13.7.2010 Пользователь №: 1879 Спасибо сказали: 0 раз(а) Репутация: 0 |
В общем, добралась я до этого, всё вроде работает, но появилась одна проблема...
В моем проекте главное окно названо mainwindow, на нем расположен QTableView. Если я после описания setColumnHidden использую
тогда у меня открывается кроме mainwindow еще и дополнительное окошко с QTableView, там все отображается верно (скрыт тот столбец, который требуется) Если же я использую для вывода данных следующее выражение
Тогда мои указания насчет setColumnHidden остаются проигнорированы. То есть все столбцы отображаются "как есть". Можно это как-нибудь полечить? Не могу что-то сообразить... =( Кстати,
Тоже не дает никакого эффекта А вот этот код
не показывает в tableView ровным счетом ничего. UPD ААаааааааа... Я идиот.... Всё, разобралась, надо было их местами поменять просто =) |
|
|
Текстовая версия | Сейчас: 4.10.2024, 17:15 |