DEvExpress : MultiLevel View
От: delphinchik Россия  
Дата: 02.11.05 12:21
Оценка:
В моем гриде есть 2 уровня, у каждого свое представление.Уровни связаны master-detail связью. Во втором уровне разрешен MultiSelect. Мне непонятно:
1. Почему грид разрешает выбирать строки одновременно из двух представлений одного (второго) уровня.
2. Почему <Представление второго уровня>.Controller.SelectedRecordCount = 0 в то время как там выбраны строки.



Спасибо.
Re: DEvExpress : MultiLevel View
От: Dimonka Верблюд  
Дата: 02.11.05 13:29
Оценка:
Здравствуйте, delphinchik, Вы писали:

D>В моем гриде есть 2 уровня, у каждого свое представление.Уровни связаны master-detail связью.


Я бы не мучился бы с таблицами, а сделал бы классы (хотя конечно зависит от данных) и заполнял бы cxTreeView. Все варианты мультиселектов всё равно не предусмотришь, а когда не привязан к таблицам — всё в твоих руках.
Re: DEvExpress : MultiLevel View
От: iac Россия  
Дата: 03.11.05 06:52
Оценка:
Здравствуйте, delphinchik, Вы писали:

D>В моем гриде есть 2 уровня, у каждого свое представление.Уровни связаны master-detail связью. Во втором уровне разрешен MultiSelect. Мне непонятно:

D>1. Почему грид разрешает выбирать строки одновременно из двух представлений одного (второго) уровня.
D>2. Почему <Представление второго уровня>.Controller.SelectedRecordCount = 0 в то время как там выбраны строки.

D>


D>Спасибо.


1. Так он реализован, и разрешает выбирать, т.к. это один набор данных.
2. Они называют каждое такое представление клонами (Clones). Каждый клон это копия шаблона со своим контроллером данных.
Добраться до него можно
TcxGridTableView.DataController.GetDetailDataController(I, 0)
Re[2]: DEvExpress : MultiLevel View
От: delphinchik Россия  
Дата: 03.11.05 08:32
Оценка:
Здравствуйте, iac, Вы писали:

iac>1. Так он реализован, и разрешает выбирать, т.к. это один набор данных.

iac>2. Они называют каждое такое представление клонами (Clones). Каждый клон это копия шаблона со своим контроллером данных.
iac>Добраться до него можно
iac>
iac>TcxGridTableView.DataController.GetDetailDataController(I, 0)
iac>

Да, спасибо, разобрался.
1. Можно обрабатывать TcxGrid.OnFocusedViewChanged
2. TcxGridTableView.Clones[i] — а это вроде до самого клона-представления.

Кстати, еще вопросик. Набор данных дочернего представления может изменяться, в этом случае я просто делаю рефреш датасета чтобы отобразить изменения. В принципе все работает, меня только не устраивает что при рефреше "схлопываются" все дочерние представления. То есть приходится их сново разворачивать руками. В принципе можно запоминать до рефреша те записи родительского представления у кого Expanded = True а после рефреша разворачивать их. Но что то не нравится мне такой подход, может есть у грида похожее свойство? Спасибо.
Re[3]: DEvExpress : MultiLevel View
От: delphinchik Россия  
Дата: 03.11.05 09:00
Оценка:
Вроде нашел :
DataController.Options := DataController.Options + [dcoSaveExpanding];
Но все равно не работает .
Re[4]: DEvExpress : MultiLevel View
От: delphinchik Россия  
Дата: 07.11.05 06:05
Оценка:
Здравствуйте, delphinchik, Вы писали:

D>Вроде нашел :

D>DataController.Options := DataController.Options + [dcoSaveExpanding];
D>Но все равно не работает .
И кстати, еще воспросик : как получить из записи master-view ссылку на соответствующий ему detailview? Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.