Гость
Форумы / [игнор отключен] [закрыт для гостей] / Программно вывести ДеревоЗначений на обычной форме / 4 сообщений из 4, страница 1 из 1
13.02.2014, 23:14
    #38560478
Tanya_0306
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно вывести ДеревоЗначений на обычной форме
Доброго времени суток.
Ситуация такая :
Программно создаю ДеревоЗначений и заполняю его (проверено точкой останова- данные в дерево записаны).
Программно создаю страницу и табличное поле на ней.
В табличное поле надо вывести дерево. Не пойму - как? Подскажите.
Вот код
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
Процедура СформироватьСтраницы(ИмяСтраницы,ЗаголовокСтраницы,Дерево1)

ОсновнаяПанель = ЭлементыФормы.Панель;
ТекущаяСтраницаОсновнойПанели = ОсновнаяПанель.ТекущаяСтраница;
СтраницыПанели = ОсновнаяПанель.Страницы;

НоваяСтраница = СтраницыПанели.Добавить(ИмяСтраницы,ИмяСтраницы); 
ОсновнаяПанель.ТекущаяСтраница = НоваяСтраница;
 
ТабПоле = уфСоздатьЭлементФормы(ЭлементыФормы, Тип("ТабличноеПоле"), "Дерево"+ИмяСтраницы, , ОсновнаяПанель, ,
                                          6, 6, ЭлементыФормы.Панель.Высота-20, ЭлементыФормы.Панель.Ширина-20,
                                          ЭлементыФормы.Панель, ЭлементыФормы.Панель, ЭлементыФормы.Панель, ЭлементыФормы.Панель,
                                          ГраницаЭлементаУправления.Верх, ГраницаЭлементаУправления.Верх, ГраницаЭлементаУправления.Лево, ГраницаЭлементаУправления.Лево);
ТабПоле.Колонки.Добавить("Элемент"); 
ТабПоле.Колонки.Добавить("Импортировать",Новый ОписаниеТипов("Булево"));

ТабПоле.Значение = ОтобразитьДеревоНаСтранице(ДеревоФайл,"Дерево"+ИмяСтраницы);
ТабПоле.ОбновитьСтроки();
КонецПроцедуры

Функция уфСоздатьЭлементФормы(ЭлементыФормы, ТипЭлемента, ИмяЭлемента, Видимость = Истина, Панель = Неопределено, Данные = Неопределено,
                              Верх, Лево, Высота, Ширина,
                              ЭлементПривязкиВерх, ЭлементПривязкиНиз, ЭлементПривязкиЛево, ЭлементПривязкиПраво,
                              ПривязкаВерх, ПривязкаНиз, ПривязкаЛево, ПривязкаПраво)
    
    Элемент = ЭлементыФормы.Добавить(ТипЭлемента, ИмяЭлемента, Видимость, Панель);
    Если НЕ Данные = Неопределено Тогда
       Элемент.Данные = Данные;
    КонецЕсли; 
    Элемент.Верх = Верх;
    Элемент.Лево = Лево;
    Элемент.Высота = Высота;
    Элемент.Ширина = Ширина;
    Элемент.УстановитьПривязку(ГраницаЭлементаУправления.Верх,  ЭлементПривязкиВерх,  ПривязкаВерх);
    Элемент.УстановитьПривязку(ГраницаЭлементаУправления.Низ,   ЭлементПривязкиНиз,   ПривязкаНиз);
    Элемент.УстановитьПривязку(ГраницаЭлементаУправления.Лево,  ЭлементПривязкиЛево,  ПривязкаЛево);
    Элемент.УстановитьПривязку(ГраницаЭлементаУправления.Право, ЭлементПривязкиПраво, ПривязкаПраво);

    Возврат Элемент;    

КонецФункции 

функция  ОтобразитьДеревоНаСтранице(ДеревоФайл,ДеревоСтраницы)
	ДеревоСДанными = Новый ДеревоЗначений;
	ДеревоСДанными.Колонки.Добавить("Элемент"); 
	ДеревоСДанными.Колонки.Добавить("Импортировать",Новый ОписаниеТипов("Булево"));
	
	Для каждого Строка0 из ДеревоФайл.Строки Цикл    
			Для каждого Строка1 из Строка0.Строки Цикл 
			    Для каждого Строка2 из Строка1.Строки Цикл
					ДеревоСтрока = ДеревоСДанными.Строки.Добавить(); 
				    ДеревоСтрока.Элемент = Строка2.Сущность;
				
					Для каждого Строка3 из Строка2.Строки Цикл
						 ДеревоРеквизит =ДеревоСтрока.Строки.Добавить(); 
						 ДеревоРеквизит.Элемент = Строка3.Сущность;
					 конецЦикла;
				 конеццикла;
         КонецЦикла;
   КонецЦикла;
   
   возврат ДеревоСданными;
конецФункции



Предполагала, что строка
Код: sql
1.
ТабПоле.Значение = ОтобразитьДеревоНаСтранице(ДеревоФайл,"Дерево"+ИмяСтраницы);


заполнит ТабличноеПоле.
...
Рейтинг: 0 / 0
14.02.2014, 00:27
    #38560514
Последний выдох ГПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно вывести ДеревоЗначений на обычной форме
ТабПоле.СоздатьКолонки();
...
Рейтинг: 0 / 0
14.02.2014, 07:20
    #38560608
Tanya_0306
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно вывести ДеревоЗначений на обычной форме
Последний выдох ГПЖ,

Колонки создаются, в вот данных не видно. Но в дереве значений они точно есть. (смотрела через табло)
...
Рейтинг: 0 / 0
14.02.2014, 08:49
    #38560633
Tanya_0306
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно вывести ДеревоЗначений на обычной форме
Вывела данные.
Код: sql
1.
2.
3.
4.
ТабПоле.ТипЗначения = Новый ОписаниеТипов("ДеревоЗначений");
ТабПоле.Значение = ОтобразитьДеревоНаСтраницеСущности(ДеревоФайл,"Дерево"+ИмяСтраницы);  
ТабПоле.СоздатьКолонки();
ЭтаФорма.Обновить();
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Программно вывести ДеревоЗначений на обычной форме / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]