Russian Qt Forum
Ноябрь 24, 2024, 11:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSqlRelationalTableModel или QSqlQueryModel  (Прочитано 2127 раз)
Drugukur
Гость
« : Июнь 02, 2010, 19:19 »

Приветствую.
Есть следующая структура таблиц:

TConstructionElements (id, Name)
TConstructionMaterials (id, Name)
TConstructionType (id,Name)

связанная таблица, отображающая отношение предыдущих трех
TConstructions (id, TConstructionElements.id, TConstructionMaterials.id, TConstructionType.id)

и еще одна связанная таблица:
TConstructionIznos (id, TConstructions.id, IznosValue)

Необходимо отобразить все эти таблицы в одном вьюшнике в следующем порядке:
TConstructionElements.Name, TConstructionMaterials.Name, TConstructionType.Name, TConstructionIznos.IznosValue
Все ячейки представляют из себя комбобоксы.
Изначально заполнен только первый столбец (это делается автоматически), остальные заполняются вручную, путем выбора значений в комбобоксах.
Кол-во строк в данной таблице строго зависит от кол-ва строк в самой первой таблице -
TConstructionElements.

Начинка комбобоксов в других столбцах, соответственно напрямую зависит от выбора
в первом столбце.

Каким образом, можно наиболее оптимально реализовать такую структуру?

Насколько я понял, предварительно посмотрев на форумах, модель QSqlRelationalTableModel
не подходит, так она позволяет из связанной таблицы вытащить только один столбец из другой связанной с ней таблицы.
Правильно ли строить решение данной проблемы только на основании QSqlQueryModel?
Можно ли обойтись одним вьюшником или все-таки придется использовать комбинацию из нескольких?

Для каждого столбца видимо также должен быть свой делегат.
Непонятка только в выборе начальной стратегии, т.е. самой основной проблемой является то, что самый левый столбец во вьюшнике
это чистое отображение только одной таблицы TConstructionElements, а все остальные это связанная таблица TConstructionIznos. То есть нужно строить две модели или можно вывернуться только за счет
Sql запросов с использованием только одной модели?

Заранее, спасибо за помощь.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.04 секунд. Запросов: 20.