|
Расшифровка в табличном документе по уровням | ☑ | ||
---|---|---|---|---|
0
deringpavel
30.06.20
✎
07:55
|
Всем привет.
Есть вопрос - можно ли корректно реализовать расшифровку в табличном документе с уровнями? Сначала вывести элемент на верхнем уровне. При нажатии мышью на этот элемент - отображается элемент второго уровня. При нажатии на элемент второго уровня - элемент третьего уровня. И так далее. |
|||
1
PuhUfa
30.06.20
✎
07:57
|
А что значит корректно? Чем стандартная не устраивает? Так принципиально нажимать на элемент а не на плюсик?
|
|||
2
deringpavel
30.06.20
✎
07:58
|
да, это требование заказчика
|
|||
3
PuhUfa
30.06.20
✎
08:52
|
Тогда только перерисовывать каждый раз ТД
|
|||
4
Fedor-1971
30.06.20
✎
10:15
|
(2) Развернуть - понятно, клацнули по элементу, а свернуть назад как?
Варианта 3: - либо перегенерировать табличный документ (в 3 уже советовали), только задолбаешься запоминать, что расшифровано, а что нет - либо открывать отдельную форму с расшифровкой, то же не айс, куча форм, пользователи будут путаться - либо делаем форму отчёта, на которой, можно кнопкой вернуться к предыдущему виду. Т.е. генерим исходную таблицу, при клаце по элементу формируем новый табличный документ без дальнейшей расшифровки, старый прячем, по нажатии кнопки возврата показываем исходный табличный документ |
|||
5
Classic
30.06.20
✎
10:19
|
(2)
А в требованиях заказчика есть требование об отсутствии плюса вообще? |
|||
6
Classic
30.06.20
✎
10:30
|
(4)
- Именовать области и играться их видимостью |
|||
7
deringpavel
30.06.20
✎
10:33
|
Процедура, формирующая ТД
<code> &НаСервере Процедура Расшифровка() ТабличныйДокумент.Очистить(); ВыборкаДанных = ПолучитьРасшифровку(); ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); Макет = ОтчетОбъект.ПолучитьМакет("Макет"); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьСтрока = Макет.ПолучитьОбласть("Строка"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбщаяСумма = 0; РезультатЗапросаУровень1 = ВыборкаДанных.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Уровень1"); Пока РезультатЗапросаУровень1.Следующий() Цикл ОбластьШапка.Параметры.ОписаниеУровня = "АО «Газпромнефть-Аэро» высоко ценит профессиональный уровень и достижения каждого сотрудника. Уделяет особое внимание востребованности элементов Модели совокупного поощрения, предлагаемые Компанией в обмен на время, талант, усилия и результаты"; ОбластьШапка.Параметры.Наименованиеуровня = "Совокупное поощрение"; ОбластьЗаголовок.Параметры.НаименованияУровня = "Совокупное поощрение"; ОбластьЗаголовок.Параметры.Год = "за " + Строка(Год(Период)) + " Год"; ОбластьЗаголовок.Параметры.СуммаОбщая = ВычислениеИтогов("Уровень1"); ОбластьСтрока.Параметры.N_ВидСовокупногоПоощренияВидПоощрения = РезультатЗапросаУровень1.Уровень1; ОбластьСтрока.Параметры.N_Сумма = РезультатЗапросаУровень1.Сумма; ОбластьСтрока.Параметры.N_Суммарублей = ЧислоПрописью(РезультатЗапросаУровень1.Сумма); // РезультатЗапросаУровень2 = РезультатЗапросаУровень1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Уровень2"); // Пока РезультатЗапросаУровень2.Следующий() Цикл // СтруктураРасшифровки = Новый Структура; СтруктураРасшифровки.Вставить("N_ВидСовокупногоПоощренияВидПоощрения", РезультатЗапросаУровень2.Уровень2); СтруктураРасшифровки.Вставить("N_Сумма", РезультатЗапросаУровень2.Сумма); СтруктураРасшифровки.Вставить("N_Суммарублей",ЧислоПрописью(РезультатЗапросаУровень2.Сумма)); ОбластьСтрока.Параметры.Расшифровка = СтруктураРасшифровки; ТабличныйДокумент.Вывести(ОбластьСтрока); РезультатЗапросаУровень3 = РезультатЗапросаУровень2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Уровень3"); Пока РезультатЗапросаУровень3.Следующий() Цикл Расшифровка = Новый Структура; Расшифровка.Вставить("N_ВидСовокупногоПоощренияВидПоощрения", РезультатЗапросаУровень3.Уровень3); Расшифровка.Вставить("N_Сумма", РезультатЗапросаУровень3.Сумма); Расшифровка.Вставить("N_Суммарублей",ЧислоПрописью(РезультатЗапросаУровень3.Сумма)); ОбластьСтрока.Параметры.Расшифровка = Расшифровка; РезультатЗапросаДетальныеЗаписи = РезультатЗапросаУровень3.Выбрать(); Пока РезультатЗапросаДетальныеЗаписи.Следующий() Цикл Расш = Новый Структура; Расш.Вставить("N_ВидСовокупногоПоощренияВидПоощрения", РезультатЗапросаДетальныеЗаписи.ВидПоощрения); Расш.Вставить("N_Сумма", РезультатЗапросаДетальныеЗаписи.Сумма); Расш.Вставить("N_Суммарублей",ЧислоПрописью(РезультатЗапросаДетальныеЗаписи.Сумма)); ОбластьСтрока.Параметры.Расшифровка = Расш; //ТабличныйДокумент.Вывести(ОбластьСтрока); КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; ТабличныйДокумент.Вывести(ОбластьПодвал); КонецПроцедуры </code> |
|||
8
deringpavel
30.06.20
✎
10:34
|
Обработка расшифровки
<code> &НаКлиенте Процедура ТабличныйДокументОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры) СтандартнаяОбработка = Ложь; ПолучитьПараметрыРасшифровки(Расшифровка); КонецПроцедуры &НаСервере Процедура ПолучитьПараметрыРасшифровки(СтруктураРасшифровки) ТабличныйДокумент.Очистить(); ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); Макет = ОтчетОбъект.ПолучитьМакет("Макет"); ОбластьСтрока = Макет.ПолучитьОбласть("Строка"); ОбластьСтрока.Параметры.Заполнить(СтруктураРасшифровки); ОбластьСтрока.Параметры.Расшифровка = СтруктураРасшифровки; ТабличныйДокумент.Вывести(ОбластьСтрока); КонецПроцедуры </code> |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |