![]() |
![]() |
![]() |
|
v8: СКД: Фиксация шапки | ☑ | ||
---|---|---|---|---|
0
Лирик
06.04.10
✎
07:45
|
Приветствую всех.
Подскажите можно стандартными средствами, без использования макетов оформления, закрепить шапку таблицы отчета? Заранее спасибо. |
|||
1
Mitriy
06.04.10
✎
08:10
|
после вывода в поле табдока...
|
|||
2
Лирик
06.04.10
✎
14:56
|
Еще раз спасибо, а по умолчанию как нитбудь не сделать? Лазить в Таблица->Вид постоянно приходится.
|
|||
3
IronDemon
06.04.10
✎
14:58
|
(2) Видимо код писАть нужно
|
|||
4
Лирик
06.04.10
✎
15:00
|
(3) Понятно. Халявы не будет, а жаль.
|
|||
5
Макаров
06.04.10
✎
15:00
|
Создаю форму отчета и в ней программно фиксирую нужное количество строк и колонок
|
|||
6
Лирик
06.04.10
✎
15:04
|
(5) А я лезу в настройки отчета и задаю 80 (утрирую) группировок. Не угадаешь какой высоты шапка будет.
|
|||
7
mikecool
06.04.10
✎
15:06
|
(6) все можно угадать программно...
|
|||
8
IronDemon
06.04.10
✎
15:38
|
||||
9
sergeante
06.04.10
✎
16:27
|
Самое простое что я смог придумать.
Фиксирует шапку при любых отборах. Процедура скдФиксироватьШапкуОтчета(ТабДок, Фиксировать, Строка = "Номенклатура", Поправка = 0) Экспорт Если Фиксировать Тогда Область = ТабДок.НайтиТекст(Строка,,,,Истина); ТабДок.ФиксацияСверху = ?(ЗначениеЗаполнено(Область), Область.Верх + Поправка, 0); Иначе ТабДок.ФиксацияСверху = 0; КонецЕсли; КонецПроцедуры |
|||
10
gr13
06.04.10
✎
16:29
|
(9) бест! зачет, а если большой отчет?
|
|||
11
sergeante
06.04.10
✎
16:43
|
(10) не вижу разницы. Работает впринципе везде корректно. Клавное колонку для поиска правильно указать.
|
|||
12
gr13
06.04.10
✎
16:46
|
(11) по скорости
|
|||
13
sergeante
06.04.10
✎
16:49
|
(12) У мну не было таких отчотов ещё, чтобы хоть как-то заметно задумывалось.
|
|||
14
IronDemon
06.04.10
✎
16:52
|
(9) А если Номенклатуру убрали из группировок?
|
|||
15
sergeante
06.04.10
✎
16:54
|
(14) тогда увы и ах! Будут, умники, жить без шапки.
|
|||
16
Stim
06.04.10
✎
17:23
|
я сделал так: http://i066.radikal.ru/1004/6c/1c137c2371ee.jpg
|
|||
17
Stim
06.04.10
✎
17:24
|
+ кнопка "закрепить". Закрепляет шапку по текущую выделенную область. Самое простое, имхо.
|
|||
18
AquaKosh
06.04.10
✎
18:15
|
А посмотреть, как сделано в типовых?.....
|
|||
19
gr13
06.04.10
✎
18:20
|
(18) никак там не сделано и не фиксируется
|
|||
20
i-rek
06.04.10
✎
18:21
|
(19) в ЗУПе ВСЕ отчёты на СКД и все фиксируются
|
|||
21
gr13
06.04.10
✎
18:22
|
(20) например?
|
|||
22
gr13
06.04.10
✎
18:26
|
я имел ввиду как там сделано, приведи здесь - у меня нет типовой зуп
|
|||
23
i-rek
06.04.10
✎
18:34
|
(21) Хм. Посмотрел сам - вроде и правда не фиксируется. Значит где-то ещё видел
а конструкция такая должна быть: ПроцессорВывода.НачатьВывод(); ТаблицаЗафиксирована = Ложь; Пока Истина Цикл ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий(); Если ЭлементРезультата= Неопределено Тогда Прервать; Иначе ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); Если Не ТаблицаЗафиксирована И ЭлементРезультата.ЗначенияПараметров.Количество() > 0 Тогда ТаблицаЗафиксирована = Истина; Таб.ФиксацияСверху = Таб.ВысотаТаблицы; КонецЕсли; КонецЕсли; КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); |
|||
24
gr13
07.04.10
✎
10:28
|
(23) спасибо) добавил в базу знаний)
|
|||
25
Kashemir
07.04.10
✎
10:41
|
Процедура глВывестиРезультатКомпоновкиСАвтофиксациейСтрок( Таб,
ПроцессорКомпоновкиДанных, ЭлементыРасшировки, Знач МассивИгнорируемыхПолей = Неопределено, РазрешитьПрерывание = Истина) Экспорт ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(Таб); ПроцессорВывода.НачатьВывод(); ФиксацияВыполнена = Ложь; Если МассивИгнорируемыхПолей = Неопределено Тогда МассивИгнорируемыхПолей = Новый Массив; КонецЕсли; Пока Истина Цикл ЭлементРезультатаКомпоновкиДанных = ПроцессорКомпоновкиДанных.Следующий(); Если ЭлементРезультатаКомпоновкиДанных = Неопределено Тогда Прервать; КонецЕсли; // Автофиксация Если Не ФиксацияВыполнена Тогда Для Каждого ЗначениеПараметра Из ЭлементРезультатаКомпоновкиДанных.ЗначенияПараметров Цикл Если ТипЗнч(ЗначениеПараметра.Значение) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда ЗначенияПолейРасшифровки = ЭлементыРасшировки[ЗначениеПараметра.Значение].ПолучитьПоля(); Для Каждого ЗначениеПоляРасшифровки Из ЗначенияПолейРасшифровки Цикл Если МассивИгнорируемыхПолей.Найти(ЗначениеПоляРасшифровки.Поле) = Неопределено Тогда Таб.ФиксацияСверху = Таб.ВысотаТаблицы; ФиксацияВыполнена = Истина; Прервать; КонецЕсли; КонецЦикла; Если ФиксацияВыполнена Тогда Прервать; КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; ПроцессорВывода.ВывестиЭлемент(ЭлементРезультатаКомпоновкиДанных); Если РазрешитьПрерывание Тогда #Если Клиент тогда ОбработкаПрерыванияПользователя(); #КонецЕсли КонецЕсли; КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); КонецПроцедуры |
|||
26
mikeA
07.04.10
✎
11:20
|
(2) вынеси кнопку "Зафиксировать шапку" на панель
(23) Таб.ФиксацияСверху = Таб.ВысотаТаблицы - 1; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |