Здравствуйте, гость ( Вход | Регистрация )
|
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
|
Цитата(tha_new_usah @ 13.7.2010, 12:14) Link Всем привет! Пишу програмку для диплома, работающую с БД. Сама программа является аналогом уже существующей разработки 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
|
Цитата(maint @ 13.7.2010, 13:03) Link если я правильно понял, надо просто на вьюхе спрятать колонку, не показывать. Смотреть в сторону setColumnHidden(номер_колонки, true) Да, точно |
|
|
|
|
tha_new_usah |
20.7.2010, 10:43
Сообщение
#4
|
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 13.7.2010 Пользователь №: 1879 Спасибо сказали: 0 раз(а) Репутация: 0
|
В общем, добралась я до этого, всё вроде работает, но появилась одна проблема...
В моем проекте главное окно названо mainwindow, на нем расположен QTableView. Если я после описания setColumnHidden использую тогда у меня открывается кроме mainwindow еще и дополнительное окошко с QTableView, там все отображается верно (скрыт тот столбец, который требуется) Если же я использую для вывода данных следующее выражение Тогда мои указания насчет setColumnHidden остаются проигнорированы. То есть все столбцы отображаются "как есть". Можно это как-нибудь полечить? Не могу что-то сообразить... =( Кстати, Тоже не дает никакого эффекта А вот этот код не показывает в tableView ровным счетом ничего. UPD ААаааааааа... Я идиот.... Всё, разобралась, надо было их местами поменять просто =) |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 18.11.2025, 15:48 |