![]() |
|
![]() ![]() ![]() |
|
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Имеется связка MasterDetail (два DataSet). Для отображения данных используется cxGrid (DevExpress).
При раскрытии нода уровня Master приходится выделять строку, что бы появились данные уровня Detail. Хочу сделать, что бы при раскрытии нода остальные ноды сворачивались и автоматические подгружались данные Detail. Сворачивание всех нодов (кроме выбранного) делаю так:
Для полного счастья не хватает перехода к записи на уровне Master, нод которой раскрыли, что бы появились данные уровня Detail. Как это можно сделать? Почему я так хочу сделать. При выделении одной записи в Master, у других записей в уровне Detail пропадают данные и появляется надпись (нет данных). Может я что-то вообще не так делаю? Документацию читал. Примеры в ней смотрел. -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Что-то я наверное туплю, не понял, что нужно. Можно с рисунками?
|
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Скорее всего это я запутанно объяснил.
Данные получаю из DataSet-ов, связанных Master-Detail. ![]() На картинке фокус установлен на первую запись Master-уровня, для которого выведен Detail. На других записях Master-уровня Detail пуст. Появляется при переходе на соответствующие записи. Что бы скрыть "отсутствие данных", как я писал в первом посте, сворачиваю все ноды кроме текущего. Если открывать нод без выделения соответствующей строки (записи) в Master-уровне, то данные Detail не появляются. ![]() Говоря еще проще, необходимо, что бы при открытии нода Master-уровня осуществлялся переход к соответствующей записи, что бы появились данные Detail-уровня. Akella, ты вроде бы уже давно работаешь с DevExpress, должен знать. Это я только начал с ними разбираться. -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Я с master-detail очень мало работал. Посмотрю попозже.
|
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Да тут Master-detail не причем. Даже, если присутствует группировка средствами грида, то при раскрытии нода происходит тоже самое.
-------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Там свойств дофига, ты, видать, включил какое-то, которое показывает записи только у выделенной записи. Поищи его.
Добавлено через 47 секунд Или сделай на новом, чистом, гриде. И не балуйся со свойствами, они как нож - можешь невзначай оттяпать себе кое-чего ![]() |
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Делал уже два раза с чистого листа, так сказать.
Думаю, что нужно каким-то хитрым образом получить оп ноду номер записи и перейти на нее. -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
У тебя правильно заполнены ключевые поля?
Добавлено через 30 секунд Ты сами датасеты не связывал с помощью Datasource? |
|||
|
||||
former |
|
||||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Связывал. Запрос Master DataSet:
Запрос Detail DataSet:
У Detail Datasource = Master Datasource. А в гриде view Detail-уровня имеет следующие настройки: ![]() Это сообщение отредактировал(а) former - 4.9.2009, 00:33 -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
||||
|
|||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Вооот! А зачем связывать два раза. Вот этим ты себе и оттяпал остальные записи! Сам подумай, что в детальном НД ты всегда будешь видеть только те записи, которые связаны с ВЫДЕЛЕННОЙ МАСТЕР-ЗАПИСЬЮ, потому что остальных записей в детальном НД просто не будет. Догадываешься? Добавлено через 47 секунд Надо всегда давать более полную информацию, уже давно бы решили твою проблему ![]() |
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Так я пробовал еще до создания темы. Как я заметил, косяк заключается в том, что при наличии соединения (JOIN) отображается только одна строка во всех Detail. Если из запроса убрать соединение, то все нормально. Но мне без соединения никак.
При всех достоинствах DevExpress они имеют кучу недостатков, к моему сожалению/ Это сообщение отредактировал(а) former - 4.9.2009, 14:10 -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
||||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Ну 25 не наберу, пока. ![]() Откуда, откуда... Из DataSet-а, из которого он данные берет. Там ведь JOIN присутствует. Думаю, что мы говорим немного о разном. Я сделаю пример и выложу. -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Как ты не понимаешь. Детальный грид должен видеть в своём датасете (к которому подключен) ВСЕ записи. ВСЕ!. Грид сам будет тебе показывать то, что ты хочешь. Сделай 2 датасета. Никаких привязок и соединений между собой. К первому датасету прикрути мастер-грид, ко второму детальный грид. В гриде укажи ключевые поля. |
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Akella, не горячись. Я делал именно то, о чем ты говоришь. Думаю, что бы избежать разногласий я набросаю пример того, что делал. -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |