Russian Qt Forum

Qt => Model-View (MV) => Тема начата: sk8ter от Август 10, 2009, 17:01



Название: возможно ли такое сделать?
Отправлено: sk8ter от Август 10, 2009, 17:01
Я впервые делаю на Qt подобное, в форуме поискал - не нашел ответ на свой вопрос...

В общем есть таблица с колонками: Услуга, Подуслуга, количество, стоимость за ед., сумма
Услуг около 30, в каждой услуге - свои названия подуслуг со своей ценой (их количество варьируется)

Можно ли сделать так, чтобы при щелчке на конкретной ячейке по услуге выпадал их список, выбрав нужную услугу -> загружались из таблицы базы данных полуслуги (в соседнем столбце, в других строках ничего не менялось), тоже выпадающий список.
+ Это все надо будет сохранять как заказ в базу данных

Если можно, то что почитать, есть ли пример...


Название: Re: возможно ли такое сделать?
Отправлено: sk8ter от Август 10, 2009, 19:14
Т.е. чтобы поведение содержимого выпадающего списка зависело от содержимого соседней ячейки.


Название: Re: возможно ли такое сделать?
Отправлено: lit-uriy от Август 10, 2009, 19:26
свою модель делать надо


Название: Re: возможно ли такое сделать?
Отправлено: sk8ter от Август 10, 2009, 19:34
... что почитать, есть ли пример...


Название: Re: возможно ли такое сделать?
Отправлено: crossly от Август 12, 2009, 17:50
а чем не устроит QSqlRelationalTableModel...??


Название: Re: возможно ли такое сделать?
Отправлено: sk8ter от Август 17, 2009, 18:24
Оказывается кто-то уже пробовал подобное сделать:
http://www.prog.org.ru/topic_7901_0.html
Пока работаю над этим

Только мне не надо показывать сохраненную таблицу - пользователь сам добавляет новые строки, редактирует их , а потом эту таблицу нужно сохранить ("заказ").
Как это делать, создавать Table Widget и самому в каждую ячейку записывать даные, и обрабатывать собятия, чтобы отредактировать? А потом также и сохранять..?  или все-таки представление с этой задачей справится?


Название: Re: возможно ли такое сделать?
Отправлено: LeX от Август 31, 2009, 09:42
Только мне не надо показывать сохраненную таблицу - пользователь сам добавляет новые строки, редактирует их , а потом эту таблицу нужно сохранить ("заказ").
Как это делать, создавать Table Widget и самому в каждую ячейку записывать даные, и обрабатывать собятия, чтобы отредактировать? А потом также и сохранять..?  или все-таки представление с этой задачей справится?

На сколько я тебя понял, ты хочешь в одной таблице выбирать услуги (т.е. формировать строку) и кидать эту строку в новую таблицу (заказ), так?
Если да так это просто:
Ну сформируй заказ, и сохраняй его в другой таблице по требуемому событию, в чём проблема? В БД создай, предварительно, нужную тебе таблицу (для сохранения заказа) и всё.


Название: Re: возможно ли такое сделать?
Отправлено: break от Октябрь 18, 2009, 01:49
Цитировать
Т.е. чтобы поведение содержимого выпадающего списка зависело от содержимого соседней ячейки.

я делал такое следующим способом:

делается делегат для подуслуги который должен знать номер колонки с услугой - далее соотв. запрос для выборки из БД нужных подуслуг - никаких проблем, единственное после создания основной модели - на этапе создания делегатов нашему делегату надо сделать так:

QSqlRecord rec = model.record();
PodUslugaDelegat.setUslugaColumnNum( rec.indexOf( "НАЗВАНИЕ_СТОЛБЦА_УСЛУГИ_В_ТАВБЛИЦЕ_БД" ) );

говорим делегату где колонка с услугой - а он в момент создания элемента редактирования делегата ( createEditor ) берет из своего индекса строку а колонку ту самую переданную и запомненную! и все!