gifts2017

Пример дерева справочника с пометками (через AktiveX)

Опубликовал Андрей Загуляев (Mucmepukc) в раздел Программирование - Практика программирования

Пример построения дерева справочника с пометками и с последующей обработкой только помеченных элементов.

Решение не оптимальное и вряд ли применимо к большим справочникам, зато наглядное.
Делалось для конкретной ситуации, поэтому решение не универсальное
Требует вк 1С++ (2.5.0.6)

Без помощи http://www.1cpp.ru/forum/YaBB.pl ничего бы не получилось, спасибо всем, кто помог, за советы и примеры

АктивИкс вроде стандартный MS-овский, но похоже появляется только с установкой Офиса.
Возможное решение проблемы прилагается ( опять же найдено на http://www.1cpp.ru/forum/YaBB.pl )

ps. это только пример, но уже применяемый на практике

Скачать файлы

Наименование Файл Версия Размер
axTree 46
.1207743117 410,61Kb
25.09.09
46
.1207743117 410,61Kb Скачать
возможное решение проблем 27
.1207743213 474,45Kb
25.09.09
27
.1207743213 474,45Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Игорь Шеремет (ivsher) 27.01.12 12:48
Хороший пример для начала работы с активиксом, и достаточно полезный. Немного подправил процедуру для атоматической пометки всех потомков выбранного узла, так как оригинальня процедура на моем справочнике работала с ошибками, да и в моем варианте получилось поменьше строк...
Процедура ПометитьВходящие(Node)
//проверяем есть ли у обрабатваемого узла потомки
//если есть то выполняем пометку всех потомков
//если потомков нет, то никаких действий выполнять ненадо
Если Node.Children > 0 Тогда
Пометка = Node.Checked;
//позицианируемся на первый элемент узла
NodeCh = Node.Child;
NodeCh.Checked = Пометка;
//если у текущего узла есть потомки
Если NodeCh.Children > 0 Тогда
ПометитьВходящие(NodeCh);
КонецЕсли;
//пока не достигнем последнего узла цикл
Пока NodeCh.Key<>NodeCh.LastSibling.Key Цикл
NodeCh = NodeCh.Next;
NodeCh.Checked = Пометка;
//если у текущего узла есть потомки
Если NodeCh.Children > 0 Тогда
ПометитьВходящие(NodeCh);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры