Переключение на Главную Страницу Страницы: 1 ... 3 4 [5]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Предлагаю к тестированию дерево (ActiveX) для 7.7, (число прочтений - 46058 )
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Предлагаю к тестированию дерево (ActiveX) для
Ответ #60 - 13. Марта 2008 :: 14:37
Печать  
Цитата:
Класс Форма / Form

Класс позволяет привязываться к форме и создавать элементы управления. В основном, используектся для создания ActiveX / АктивИкс объектов.

Версия: Метод работает на релизе 2.5 и позже.
  
Наверх
 
IP записан
 
KonstSV
Junior Member
**
Отсутствует



Сообщений: 39
Местоположение: Москва
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Предлагаю к тестированию дерево (ActiveX) для 7.7,
Ответ #61 - 02. Февраля 2009 :: 08:16
Печать  
Вопрос автору:

Какую смысловую нагрузку несут свойства : svColor, svAnotherColor, svFont объекта Стиль.
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Предлагаю к тестированию дерево (ActiveX) для 7.7,
Ответ #62 - 03. Февраля 2009 :: 06:18
Печать  
Не разбирался особо со стилями исходного компонента, просто вытянул наружу и успокоился Печаль
Родной хэлп вот что говорит:
Indicates which properties have been assigned to a MasterView style.

type
TdxMasterViewStyleValue = (svAnotherColor, svColor, svFont);
TdxMasterViewStyleValues = set of TdxMasterViewStyleValue;

property AssignedValues : TdxMasterViewStyleValues;

Description
The TdxMasterViewStyleValues type defines a set of possible state flags for the AssignedValues property.  Except for the default, the component uses assigned values, when implementing a style.  The following table lists the possible values for a TdxMasterViewStyleValues object and explains the meaning of each flag:

Value      Description

svAnotherColor      The AnotherColor property has been assigned.
svColor      The Color property has been assigned.
svFont      The Font property has been assigned.
  
Наверх
 
IP записан
 
Euroset
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 09. Февраля 2009
Re: Предлагаю к тестированию дерево (ActiveX) для 7.7,
Ответ #63 - 09. Февраля 2009 :: 14:51
Печать  
Уважаемый автор!!! Вопрос по контролу - немного не разобрался в структуре хранения данных. Возможности велики, но нужно использовать вот что из них:
хочу создать структуру следующего вида
в корне дерева - названия справочников и документов. За ними при открытии соотвественно содержимое учитывая всю иерархию. Есть пример, где можно что-то подобное увидеть? Дело в том, что справочники имеют разное количество реквизитов, а также разный уровень вложенности. Как это можно реализовать на данной компоненте и можно ли вообще? (у меня не получилось - все сваливается в кучу сразу же на втором уровне...)

заранее очень благодарен!!!
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Предлагаю к тестированию дерево (ActiveX) для 7.7,
Ответ #64 - 10. Февраля 2009 :: 04:39
Печать  
При помощи предлагаемого активикса есть смысл делать деревья с жестко заданным и заранее известных количеством уровней. Для вывода дерева метаданных (ну или чего-то на него похожего), на мой взгляд, проще применить механизм, использующияся здесь:
http://www.rikcenter.ru/downloads.php?file=6
для вывода дерева групп справочника.
  
Наверх
 
IP записан
 
Euroset
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 09. Февраля 2009
Re: Предлагаю к тестированию дерево (ActiveX) для 7.7,
Ответ #65 - 10. Февраля 2009 :: 11:24
Печать  
Да дело-то как раз не в том, что мне нужно хранить там справочник или файловую систему. Просто это единственное АктивХ, который реально подходит по внешним характеристикам для реализации проекта. Я понимаю, что его назначение примерно такое, что туда отправляется например большая масса неких ОДНОРОДНЫХ элементов (например заявка как в HP ServiceDesk), а дерево их дает группировать и сортировать как угодно по любому реквизиту (например автор, заявитель, дата, статус и т.д.). Да, это удобно очень.

Но тут задача в другом: представь себе дерево проводника винды, но где для каждой строки существует различный набор колонок. Юзер 1С открывает сиё творение и в зависимости от набора прав, ему дается доступ к различным ресурсам. В корне например перечислены обычные направления (типа приход товара, статистика, закупки, заказы и их реализация и т.д.). Заходишь в одну из этих групп и там сначала список действий (че можно сделать с этой открытой группой - например удалить, отказаться, добавить элемент, отключить что-то и т.д.). Далее под действиями идет на этом же уровне перечень справочников (в их родной структуре иерархии), которые уже имеют другую разметку колонок. Под каждой группой тех справочников при открытии опять же сначала должны вылазить действия, а потом сразу за ними содержимое этой группы.
Выглядит примерно как проводник, но такой, где все действия не на правой кнопке, а вываливаются списком перед содержимым - вот она затея! Опять же как вириант - я настругал галочками некое число элементов из разных групп, а потом кликнул на действие одной из групп "переместить выделенные сюда" - и у меня должно все туда перенестись.

Затея супер, не правда ли? Убираю всееее меню и кнопки из интерфейса 1С, оставляю одну лишь кнопочку для запуска данной обработки (где на весь экран сиё дерево) и юзер работает в базе только одним лишь деревом! Помогает круто автоматизировать процессы (систему учета), а также избавить от косяков на 99.9%.

Так вот именно поэтому мне нужно знать, как же я могу пользуясь сим интерфейсом методов и свойств твоего дерева работать с ним как с обычным реальным деревом типа того, которому обучают в институтах (AddNode(Parent, Options), DeleteNode(Node),GetSubNodesArray(Node),GetParentNode(Node), AddColumn(Node, Column), ну и т.д.). Грубо говоря, я хочу очень понять, как можно реализовать обычный интерфейс работы с деревом основываясь на том, который реализован у тебя. Например для добавления отдельной ветви что сделать.

Ну можно-же как-то извернуться, правда? =) За другие активХ браться не хочется - они не удовлетворяют потребностям совсем!
  
Наверх
 
IP записан
 
-comm-
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 1
Зарегистрирован: 24. Мая 2010
Re: Предлагаю к тестированию дерево (ActiveX) для 7.7,
Ответ #66 - 24. Мая 2010 :: 05:42
Печать  
Здравствуйте.
Пишу следующий код:
Код
Выбрать все
Процедура СоздатьУровеньКатегорийВДереве()
	Categories = ДеревоСписокДокументов.Object.Levels.Add("Categories");
	Categories.ID = "RecId";
	Category = Categories.AddColumn("Category", 1);

	DataSource = ДеревоСписокДокументов.Object.DataSources.Add();
	DataSource.AddField("Category", 1);
КонецПроцедуры



Процедура СоздатьУровеньДокументовВДереве()
	Documents = ДеревоСписокДокументов.Object.Levels.Add("Documents");
	Documents.ID = "RecId";
	Category = Documents.AddColumn("Category", 1);
	Desc = Documents.AddColumn("Desc", 1);
	RefDesc = Documents.AddColumn("RefDesc", 1);

	DataSource = ДеревоСписокДокументов.Object.DataSources.Add();
	UIDField = DataSource.AddField("UID", 1);
	CategoryField = DataSource.AddField("Category", 1);
	DescField = DataSource.AddField("Desc", 1);
	RefField = DataSource.AddField("Ref", 1);
	RefDescField = DataSource.AddField("RefDesc", 1);
	RefTypeField = DataSource.AddField("RefType", 1);
	DateForSortField = DataSource.AddField("DateForSort", 1);

	Documents.MasterKey = "Category";
 	Documents.DetailKey = "Category";
КонецПроцедуры



Процедура СоздатьСтруктуруДерева()
	СоздатьУровеньКатегорийВДереве();
	СоздатьУровеньДокументовВДереве();
	ДеревоСписокДокументов.Object.OptionsView.movAutoColumnWidth = 1;
КонецПроцедуры



Процедура СоздатьЭлементУправленияДляСпискаДокументов()
	НоваяФорма = СоздатьОбъект("Форма");
	НоваяФорма.УстановитьФорму(Форма);
	ДеревоСписокДокументов =
		НоваяФорма.СоздатьЭлементУправления("АктивИкс", "ТекстСписокДокументов");
	ДеревоСписокДокументов.СоздатьЭУ("RiK_Tree.RiK_TreeX");
	СоздатьСтруктуруДерева();
КонецПроцедуры



Процедура ОтобразитьКатегорииВДереве()
	DataSource = ДеревоСписокДокументов.Object.DataSources.Items(0);

	DataSource.DisableControls();
	DataSource.Clear();
	DataSource.Open();
	Категории = ПИнформацияПоЗаявлению.ПолучитьКатегорииДокументовСправочников();
	Категории.ВыбратьСтроки();
	Пока Категории.ПолучитьСтроку() = 1 Цикл
		DataSource.Append();
		DataSource.FieldByName("Category").Value = СокрЛП(Категории.Категория);
	КонецЦикла;
	DataSource.Post();
	DataSource.EnableControls();
КонецПроцедуры



Процедура ОтобразитьДокументыВДереве(Документы)
	DataSource = ДеревоСписокДокументов.Object.DataSources.Items(1);

	DataSource.DisableControls();
	DataSource.Clear();
	DataSource.Open();
	Документы.ВыбратьСтроки();
	Пока Документы.ПолучитьСтроку() = 1 Цикл
		DataSource.Append();
		DataSource.FieldByName("UID").Value = Документы.УИД;
		DataSource.FieldByName("Category").Value = СокрЛП(Документы.Категория);
		DataSource.FieldByName("Desc").Value = Документы.Описание;
		//DataSource.FieldByName("Ref").Value = Документы.Ссылка;
		DataSource.FieldByName("RefDesc").Value = Документы.ОписаниеСсылки;
		DataSource.FieldByName("RefType").Value = Документы.ТипСсылки;
		DataSource.FieldByName("DateForSort").Value = Документы.ДатаДляСортировки;
	КонецЦикла;
	DataSource.Post();
	DataSource.EnableControls();

	ДеревоСписокДокументов.Object.Levels.Items(0).DataSource
		= ДеревоСписокДокументов.Object.DataSources.Items(0);
	ДеревоСписокДокументов.Object.Levels.Items(1).DataSource
		= ДеревоСписокДокументов.Object.DataSources.Items(1);
КонецПроцедуры



Процедура ЗаполнитьЭлементУправленияДляСпискаДокументов()
	ОтобразитьКатегорииВДереве();
	СвязанныеДокументыСправочники =
		ПИнформацияПоЗаявлению.ПолучитьКешированныеСвязанныеДокументыСправочники();
	Если СвязанныеДокументыСправочники.КоличествоСтрок() > 0 Тогда
		СвязанныеДокументыСправочники.Выгрузить(ПолеТаблицаДокументов, 1,
			СвязанныеДокументыСправочники.КоличествоСтрок());
		ОтобразитьДокументыВДереве(СвязанныеДокументыСправочники);
	КонецЕсли;
КонецПроцедуры

 


В итоге отображается все так, как во вложении.
Что я не так сделал? Что нужно сделать, чтобы появился "плюсик" для разворачивания категории?
  

Application.JPG ( 53 KB | Загрузки )
Application.JPG
Наверх
 
IP записан
 
mctoha
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 39
Зарегистрирован: 26. Марта 2010
Re: Предлагаю к тестированию дерево (ActiveX) для 7.7,
Ответ #67 - 13. Июня 2010 :: 19:43
Печать  
Доброго времени суток!
автору большое спасибо за контрол!
и вопросы:
1. Можно ли сделать хранение разных типов (интересуют объекты справочник, документ). А то как я понял, поля только числовые или текстовые. Или я недоглядел?

2. Как сделать раскраску ОТДЕЛЬНЫХ СТРОК? по какому-то признаку
очень хочется...
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Предлагаю к тестированию дерево (ActiveX) для 7.7,
Ответ #68 - 02. Сентября 2010 :: 10:03
Печать  
mctoha писал(а) 13. Июня 2010 :: 19:43:
Доброго времени суток!
автору большое спасибо за контрол!
и вопросы:

присоединяюсь  Улыбка
как можно при OnSelection(<Node>) узнать текущую редактируемую колонку и возможно ли такое?
  
Наверх
IP записан
 
nicolas
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Зарегистрирован: 24. Мая 2006
Re: Предлагаю к тестированию дерево (ActiveX) для 7.7,
Ответ #69 - 23. Августа 2011 :: 10:53
Печать  
Олег, не подскажите где у меня кривые руки,
Вроде все перепробывал, скопировал из вашей тестовой обработки, что то глючит при первом раскрытии суммы, где рыть не знаю...
  

______1.ert ( 32 KB | Загрузки )
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 3 4 [5] 
ОтправитьПечать