|
1с82 Программное добавление ПолеТабличногоДокумента на указаной странице. | ☑ | ||
---|---|---|---|---|
0
Z_Z
18.05.14
✎
16:48
|
Добрый день. Есть необходимость программно добавлять страницы на форме и на них располагать ПолеТабличногоДокумента. Страницу добавляться, а вот как на них добавить ПолеТабличногоДокумента не знаю. В мануале написано, что можно только добавлять на указанную панель. А как добавить на указанную страницу на панеле???
Для ш = 1 по 7 Цикл НоваяСтраница = ЭлементыФормы.Панель1.Страницы.Добавить(); ЭлементыФормы.Добавить(Тип("ПолеТабличногоДокумента"),"Результат"+Ш, Истина,ЭлементыФормы.Панель1); КонецЦикла;; |
|||
1
Pashkaa
18.05.14
✎
20:42
|
Для каждого ТабличнаяЧасть из ОбъектРасшифровкиOLE.Метаданные().ТабличныеЧасти Цикл
Если ОбъектРасшифровкиOLE[ТабличнаяЧасть.Имя].Количество() > 0 Тогда Если НЕ ПанельСоздана Тогда // Создание панели на форме мПанель = ЭтаФорма.ЭлементыФормы.Добавить(Тип("Панель"), "Панель", Истина,); мПанель.Верх = 162; мПанель.Лево = 8; мПанель.Ширина = ЭтаФорма.Ширина - 15; мПанель.Высота = ЭтаФорма.Высота - 192; мПанель.УстановитьПривязку(ГраницаЭлементаУправления.Право, ЭтаФорма.Панель,ГраницаЭлементаУправления.Право,,); мПанель.УстановитьПривязку(ГраницаЭлементаУправления.Низ , ЭтаФорма.Панель,ГраницаЭлементаУправления.Низ,,); ЭлементыФормы.Панель.ТекущаяСтраница.Имя = ТабличнаяЧасть.Имя; ЭлементыФормы.Панель.ТекущаяСтраница.Заголовок = ТабличнаяЧасть.Синоним; ИсходнаяПанель = ЭлементыФормы.Панель.ТекущаяСтраница; ПанельСоздана = Истина; Иначе Страница = ЭлементыФормы.Панель.Страницы.Добавить(ТабличнаяЧасть.Имя, ТабличнаяЧасть.Синоним); ЭлементыФормы.Панель.ТекущаяСтраница = Страница; КонецЕсли; ТабличноеПоле = ЭтаФорма.ЭлементыФормы.Добавить(Тип("ТабличноеПоле"), ЭлементыФормы.Панель.ТекущаяСтраница.Имя, Истина, ЭлементыФормы.Панель); ТабличноеПоле.Верх = 6; ТабличноеПоле.Лево = 6; ТабличноеПоле.Ширина = ЭлементыФормы.Панель.Ширина - 13; ТабличноеПоле.Высота = ЭлементыФормы.Панель.Высота - 32; ТабличноеПоле.УстановитьПривязку(ГраницаЭлементаУправления.Право, ЭлементыФормы.Панель,ГраницаЭлементаУправления.Право,,); ТабличноеПоле.УстановитьПривязку(ГраницаЭлементаУправления.Низ , ЭлементыФормы.Панель,ГраницаЭлементаУправления.Низ,,); // Подготовим таблицу значений для ТЧ Массив = Новый Массив; Массив.Добавить(Тип("Строка")); ТаблицаЗначений = Новый ТаблицаЗначений; Для каждого РеквизитТЧ из ОбъектРасшифровкиOLE.Метаданные().ТабличныеЧасти[ТабличнаяЧасть.Имя].Реквизиты Цикл ТаблицаЗначений.Колонки.Добавить(РеквизитТЧ.Имя, Новый ОписаниеТипов(Массив), РеквизитТЧ.Синоним); КонецЦикла; ТабличноеПоле.Значение = ТаблицаЗначений; ТабличноеПоле.СоздатьКолонки(); Для каждого СтрокаТЧ из ОбъектРасшифровкиOLE[ТабличнаяЧасть.Имя] Цикл Строка = ТаблицаЗначений.Добавить(); Для каждого РеквизитТЧ из ОбъектРасшифровкиOLE.Метаданные().ТабличныеЧасти[ТабличнаяЧасть.Имя].Реквизиты Цикл Если ТипЗнч(СтрокаТЧ[РеквизитТЧ.Имя]) = Тип("Число") Тогда ТабличноеПоле.Колонки[РеквизитТЧ.Имя].Ширина = 20; ТабличноеПоле.Колонки[РеквизитТЧ.Имя].ГоризонтальноеПоложениеВКолонке = ГоризонтальноеПоложение.Право; Значение = Формат(СтрокаТЧ[РеквизитТЧ.Имя], "ЧДЦ=2"); Иначе Значение = V8.String(СтрокаТЧ[РеквизитТЧ.Имя]); ТабличноеПоле.Колонки[РеквизитТЧ.Имя].Ширина = ?(СтрДлина(Значение) > 70, 70, СтрДлина(Значение) + 5); КонецЕсли; Строка[РеквизитТЧ.Имя] = Значение; КонецЦикла; КонецЦикла; ЭлементыФормы.Панель.ТекущаяСтраница = ИсходнаяПанель; КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |