Форум: "Начинающим";
Текущий архив: 2007.10.28;
Скачать: [xml.tar.bz2];
ВнизПредставление данных Найти похожие ветки
← →
olevacho_ © (2007-10-05 16:49) [0]Нужно из базы считать список фирм с реквизитами и названия фирм отображать в TreeView. Потом дать пользователю выбирать и редактировать или добавлять новые записи. Проблема в том что в каждый нод можно записать одно значение напр. название. Но названия впринципе могут совпадать. Тогда нужно уметь вычислить по выбраной фирме запись из таблицы. Для этого нужно еще какую то структуру данных каждый елемент которой имеет пару значений. В одно значение бы записалось Absoluteindex каждого нода а в другое индекс записи из таблицы напр. id_firm. Есть какие то типы данных в дельфе которыми можно представить такие структуры данных. Масивы неподходят поскольку в объявлении масива нужно указать количество елементов. А наперед неизвестно сколько эллементов будет в таком списке.
← →
Dennis I. Komarov © (2007-10-05 16:52) [1]DBTreeView ?
← →
Sergey13 © (2007-10-05 16:55) [2]> [0] olevacho_ © (05.10.07 16:49)
> Нужно из базы считать список фирм с реквизитами и названия фирм отображать в TreeView.
А смысл? Какие то подчиненные фирмы?
Мне кажется, ты пытаешься структуру данных подогнать под некий придуманный тобой юзерский интерфейс. ИМХО, это не совсем правильный подход.
← →
Ega23 © (2007-10-05 16:56) [3]
> DBTreeView ?
Если ты мне покажешь его на стандартной палитре компонентов, я тебе пива ящик поставлю.
← →
Jeer © (2007-10-05 17:27) [4]type
PTreeNodeInfo = ^TTreeNodeInfo;
TTreeNodeInfo = record
Id: integer;
ParentId: integer;
OrdId: integer;
CodeId: integer;
end;
// при прохождении по таблице добавлять как Object или ChildObject
New(NodeInfo);
NodeInfo^.Id := fDts.FieldByName(fId).AsInteger;
NodeInfo^.ParentId := fDts.FieldByName(fParentId).AsInteger;
...
sName := fDts.FieldByName(fName).AsString;
Result := Items.AddChildObject(SelNode, sName, NodeInfo)
← →
Virgo_Style © (2007-10-05 17:33) [5]olevacho_ © (05.10.07 16:49)
встречал я одну БД, организованную как дерево, но с недревесным по сути содержанием. Как оно могло работать - не представляю себе совершенно. Хотя я подозреваю, что оно и не работало, потому что в, кхм, таблице (а реально - в ветке дерева) работников был, к примеру, специальный агент Джеймс Бонд. О том, что для одного работника был нод "оклад", у другого "зарплата", а у третьего это мог быть "окл" или "зрп", я вообще молчу. Как вспомню - так вздрогну, как вздрогну - мороз по коже (с).
olevacho_ © (05.10.07 16:49)
Масивы неподходят поскольку в объявлении масива нужно указать количество елементов. А наперед неизвестно сколько эллементов будет в таком списке.
Динамические массивы, вообще-то, существуют.
← →
olevacho_ © (2007-10-05 20:08) [6]
> А смысл? Какие то подчиненные фирмы?
А почему нет? Например ЧП "Агро-сервис" имеет 4 магазина. Соответственно ЧП в паренте а 4 точки в чайлдах.
← →
olevacho_ © (2007-10-05 20:22) [7]
> Динамические массивы, вообще-то, существуют.
Ну да вообще то я уже успел найти. Но вот вопрос. что лучше: использовать динамический масив или добавить еще одно поле в ту же таблицу которому присваивалось бы значение AbsoluteIndex на этапе построения дерева? По этому полю можно было бы сделать табличный индекс. Тогда я думаю быстрее работал бы поиск записи выбранной юзером фирмы из дерева. С точки зрения производительности какой подход был бы более оптимальным?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.10.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c