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 запросов с использованием только одной модели?
Заранее, спасибо за помощь.
|