Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2011, 21:18   #1
xorornot
 
Аватар для xorornot
 
Регистрация: 27.06.2011
Сообщений: 4
Радость Дерево-каталог в TDBGridEh

Доброго времени суток!

Есть форма на которой размещены два компонента TDBGridEh,при запуске программы один из гридов отображает номенклатуру материалов не в форме таблицы с полями,а в форме дерева.Грид подтягивает номенклатуру материалов из таблиц SQL Server.Подскажите,есть ли возможность,двигаясь по дереву(раскрывая нужную ветвь) и выбирая определенный материал,добавлять новый,удалять ненужный,корректировать необходимый( имеется ввиду в пользовательском приложении).
Подскажите,есть ли метод или свойство,применимое к дереву,чтобы при выборе можно было создать обработчик на даблклик мышки или при выделенной номенклатуре(в дереве) нажать на кнопкую

Возможно это необъятная тема,но все-таки подскажите в каком направлении примерно идти,с какими компонентами работать.

Спасибо большое за отклик.
xorornot вне форума Ответить с цитированием
Старый 28.06.2011, 07:32   #2
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Полноценное отображение данных в виде дерева в DBGridEh возможно только с помощью компонента TMemTableEh (попытка отображать дерево любыми другими DataSet - лишь эмуляция, жалкое подобие дерева).

С TMemTableEh можно работать как с обычным DataSet. Вставлять, удалять, модифицировать, читать данные.
Если умеете манипулировать TADOQuery, то ничего нового для решения указанных задач нет.

В DBGridEh есть события и OnDblClick и OnKeyDown, в процедурах которых можно обрабатывать события от мыши и клавиатуры.
Они не "применяются к дереву", а в них возможно записать код, который и будет управлять данными в TMemTableEh.
DBGridEh только отображает данные из этого Dataset.
Прик вне форума Ответить с цитированием
Старый 29.06.2011, 11:10   #3
xorornot
 
Аватар для xorornot
 
Регистрация: 27.06.2011
Сообщений: 4
По умолчанию

Доброго времени суток
Подскажите,что примерно прописывать в процедуре-
обработчике для выбора в дереве на событие-onClick?
Код:
procedure Tfrm_sprMaterial.dbg_MatCellMouseClick(Grid: TCustomGridEh;
  Cell: TGridCoord; Button: TMouseButton; Shift: TShiftState; X,
  Y: Integer);
begin
  ds_Mat.DataSet(adoq_Mat); //ds_Mat - это компонент TDataSourse
end;                                   //adoq_Mat - это компонент TADOQuery
Я не совсем понимаю что именно прописывать в процедуре обработчике события для TDBGridEh.
Нужно использовать такую связку:TDBGridEh.TDataSourse.TMemTa bleEh ?

Таблица,которая с которой работает дельфи имеет первичные id-ишные ключи и столбец с ключами-узлами родительских id-ишников
(id_material - это первичный ключ таблицы в базе;id_parenet_material - номер указывающий на своего родителя id_material
Примерно так получается:
id_material || id_parenet_material || NameMaterial
1 || 0 || Металлы
2 || 1 || Черные металлы
3 || 2 || Сталь
4 || 3 || Сталь нержавеющая
5 || 4 || Обыкновенного качества
6 || 5 || DX2786
7 || 5 || DX2787
8 || 5 || QX3789
. || ||
.
.
647 || 0 ||Неметаллы
.
.
669 ||647 ||Полистирол
)

В запущенной программе эта таблица выводится в виде дерева.
Подскажите способ работы с Гридом(TMemTableEh)
Не совсем понятен механизм удаления,вставки и редактирования через дерево.Читал документацию по EhLib,но непонял,там почти нет кода,только описание свойств и методов,как и где именно их применять непонятно
xorornot вне форума Ответить с цитированием
Старый 13.07.2011, 11:09   #4
xorornot
 
Аватар для xorornot
 
Регистрация: 27.06.2011
Сообщений: 4
По умолчанию

Если вам не трудно посмотрите снимки приложения.
Изображения
Тип файла: jpg snimok_razrabot.jpg (51.9 Кб, 191 просмотров)
Тип файла: jpg snimok_zapusk.jpg (63.0 Кб, 156 просмотров)
xorornot вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TDBGridEh и AlphaSkin Andrey85 Компоненты Delphi 0 27.09.2010 23:12
MyDac (для MySQL) и EhLib(TDBGridEh) Maxs БД в Delphi 0 13.12.2009 16:38
TDBCtrlsEh и TDBGridEh chekanoff Компоненты Delphi 2 19.05.2008 15:05
TDBgridEh -не работает Сортировка adminhl БД в Delphi 0 01.04.2008 20:40
Error --- Class TDBGridEh not found shurik_7866 Компоненты Delphi 2 30.06.2007 11:09