|
Надпись "Отчет формируется" | ☑ | ||
---|---|---|---|---|
0
motkot
29.08.12
✎
15:27
|
Доброго всем дня.
Предыстория: есть отчет без формы на СКД (платформа 8.2.15 клиент-серверный вариант), в процедуре модуля объекта отчета "ПриКомпоновкеРезультата" подготавливается внешний набор данных, затем все по шаблону (которых в "интернетах" уже миллиарды) выводится в первый параметр вышеуказанной процедуры (с типом ТабличныйДокумент). Как бы все работает. Вопрос: как заставить форму отчета рисовать стандартный индикатор выполнения отчета и надпись "Отчет формируется"? Зачем? Пользователям чтобы яснее было, что отчет что-то делает. Заранее всем спасибо за участие. |
|||
1
Wobland
29.08.12
✎
15:33
|
ты об этом?
ПроцессорКомпоновки = Новый ПроцессорВыводаРезультатаКомпоновкиДанных ВТабличныйДокумент; ПроцессорКомпоновки.ОтображатьПроцентВывода = Истина ; ЭлементКомпоновки = Новый ЭлементРезультатаКомпоновкиДанных; ПроцессорКомпоновки.НачатьВывод(); //Считаем проценты по своему алгоритму, для примера: Для Сч = 1 По 100 Цикл ЭлементКомпоновки.ПроцентВывода = Сч; ПроцессорКомпоновки.ВывестиЭлемент(ЭлементКомпоновки); КонецЦикла; ПроцессорКомпоновки.ЗакончитьВывод(); |
|||
2
acsent
29.08.12
✎
15:34
|
(0) никак, только для стандартных отчетов
|
|||
3
Rounder
29.08.12
✎
15:42
|
(0) Это управляемое или обычное приложение?
Есть ли возможность создать форму? |
|||
4
motkot
29.08.12
✎
15:42
|
УФ, форму не хотелось бы.
|
|||
5
Rounder
29.08.12
✎
15:43
|
Но индикатора в любом случае не получится.
Я для УФ сделал (но нужна будет форма) просто отображение пользователю, что отчет формируется. Когда сформировался - что отчет сформирован. |
|||
6
Rounder
29.08.12
✎
15:46
|
Такая реализация устроит?
|
|||
7
motkot
29.08.12
✎
15:50
|
Без формы я так понимаю тоже не будет работать? И как определить сколько вообще элементов компоновки? |
|||
8
Wobland
29.08.12
✎
15:51
|
(7) а я так понимаю, что будет
|
|||
9
Rounder
29.08.12
✎
15:51
|
Ну может как-нить можно и без формы и с индикатором реализовать для УФ - но врядли. Индикатор не выйдет потому что формирование на сервере происходит, а индикатор на киленте нужен.
|
|||
10
Rounder
29.08.12
✎
15:53
|
(7)
ВывестиЭлемент доступен на сервере и толстом клиенте. А ты написал что желаешь для УФ, т.е. для веб-клиента и тонкого клиента. |
|||
11
Rounder
29.08.12
✎
15:54
|
На сервере процент посчитать не проблема - как ты передашь промежуточные итерации на клиента в форму?
Способы вроде видел - но они замедляли формирование отчета - порой очень значительно. |
|||
12
Rounder
29.08.12
✎
15:56
|
Вобщем я для себя создал стандартную форму отчета (управляемую). В составе команд убрал команду Сформировать. Сделал свою команду и поместил ее на форму.
Ну и простейший обработчик (его наворачивать можно по разному - в зависимости от того, какое тебе нужно вмешательство в формирование отчета) &НаКлиенте Процедура Формирование(Команда) Состояние("Идет формирование отчета..."); АвтоОтображениеСостояния = РежимАвтоОтображенияСостояния.Отображать; СкомпоноватьРезультат(); КолГрупп = Результат.КоличествоУровнейГруппировокСтрок(); Пока КолГрупп > 0 Цикл Результат.ПоказатьУровеньГруппировокСтрок(КолГрупп - 1); КолГрупп = КолГрупп - 1; КонецЦикла; Результат.ФиксацияСверху = 0; Результат.ФиксацияСлева = 0; Результат.ПолеСверху = 0; Результат.ПолеСлева = 15; Результат.ПолеСнизу = 0; Результат.ПолеСправа = 0; Результат.РазмерКолонтитулаСверху = 0; Результат.РазмерКолонтитулаСнизу = 0; Состояние("Отчет сформирован."); КонецПроцедуры |
|||
13
Rounder
29.08.12
✎
15:57
|
Пока отчет формируется - пользователь видит оконце внизу справа "Идет формирование отчета...". Когда отчет сформирован в оконце выводится "Отчет сформирован..." и оно плавно "уходит".
|
|||
14
motkot
29.08.12
✎
16:02
|
Rounder, спасибо, но надо как типовой отчет формируется.
Wobland, как узнать количество элементов компоновки, чтобы разделить на порции процентов? |
|||
15
zzhiraf
29.08.12
✎
16:05
|
Так в типовом вроде отчет в фоновом задании формируется?
|
|||
16
Wobland
29.08.12
✎
16:07
|
(14) не скажу
|
|||
17
motkot
29.08.12
✎
16:13
|
(15) и что?
|
|||
18
motkot
29.08.12
✎
16:13
|
(16) принципиально или принципиально знаешь?
|
|||
19
Rounder
29.08.12
✎
16:14
|
(17) Так а чем тебе поможет процент? Будешь пробовать порциями закидывать на сервер для вывода?
|
|||
20
motkot
29.08.12
✎
16:14
|
(19) почему порциями на сервер? и так уже на сервере дальше некуда
|
|||
21
Rounder
29.08.12
✎
16:16
|
Суть реализации индикатора на УФ в том, чтобы ты на клиенте смог разбить на порции твой вывод и этими порциями забрасывать на сервер для вывода. Перед забросом следующей порции с клиента в форму выводишь рассчитанный процент. В итоге если 10 забросов, то клиенту будешь показывать 10%, 20%, 30% и т.д. до 100%.
|
|||
22
Rounder
29.08.12
✎
16:17
|
Это единственная метода которую удалось найти когда столкнулся с подобной тебе проблемой.
Ну или я чего-то не понимаю. |
|||
23
motkot
29.08.12
✎
16:18
|
(21) есть типовой механизм, который описан в (1), единственный вопрос остается, как определить количество элементов компоновки?
|
|||
24
Rounder
29.08.12
✎
16:29
|
(23) В свое время у меня не получилось ничего сделать.
Если получится для УФ - поделись потом. |
|||
25
motkot
29.08.12
✎
16:43
|
(8) не отображает, если все компонуешь в модуле объекта отчета без формы. Может релиз платформы у меня корявенький (8.2.15.317)?
|
|||
26
motkot
29.08.12
✎
17:02
|
у кого нить под рукой есть Хрусталева второе издание?
|
|||
27
motkot
30.08.12
✎
09:09
|
Пока не решил, у кого-нить была практика?
|
|||
28
QLgKR
30.08.12
✎
11:50
|
(0) Отчет нужно выполнять в фоне, иначе индикатор может не показаться (анимации точно не будет), т.к. анимация запускается в основном потоке выполнения.
Придется делать свою форму переопределять кнопку сформировать (можно сделать общую форму отчетов). Управление индикатором через свойство расширения поля табличного документа ОтображениеСостояния. Пример можно взять из БП 3.0. Сейчас там все отчеты практически так формируются. |
|||
29
motkot
30.08.12
✎
13:38
|
(28) без формы он всегда в фоне (т.к. у меня всего одно событие в распоряжении "ПриКомпоновкеРезультата"), если не прав, скажите.
|
|||
30
QLgKR
31.08.12
✎
09:48
|
(29) Автоматическое формирование в фоне НЕ работает если отчеты разработаны без использования СКД или с использованием СКД, но с переопределенной процедурой формирования отчета (переопределен обработчик кнопки «Сформировать» или в обработчике модуля отчета ПриКомпоновкеРезультата устанавливается СтандартнаяОбработка = Ложь).
|
|||
31
motkot
31.08.12
✎
13:44
|
(30) судя по всему без формы не обойтись, чтобы и в фоне и с анимацией.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |