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