15.03.2004, 12:30 | #1 |
Участник
|
Про пользовательский канал вывода отчетов
Здравствуйте!
Настраиваю пользовательский канал вывода отчетов - в excel (по примеру developer guide, через наследника класса ReportOutputUser). И вот какая штука: Печатать то оно в excel печатает, но после каждой строки отчета с чего-то решает создавать новую страницу и печатает заголовки. Может кто в курсе с чего-бы ее так клинит и как ей объяснить где начинать новую страницу, а где это делать ненадо. |
|
16.03.2004, 10:27 | #2 |
Участник
|
Продолжение
Удалось выяснить что криво работает автоматическое вычисление высоты секций отчетов (свойство Height в значении Auto). При печате отчета высота каждой секции вычисляется где-то в ядре (а может и не вычисляется вовсе и содержит случайный мусор) и принимает астрономические величины.
Может кто знает почему она себя так ведет или как вмешаться в процесс вычисления высоты или где какую кнопку нажать что бы все заработало правильно или..??? |
|
02.04.2004, 16:57 | #3 |
Участник
|
Have a nice day.
Наткнулся на похожую проблему. Тоже реализация вывода в Excel через ReportOutputUser. Для OutputField возвращаются огромные height(). Но не всегда. Данная ошибка наблюдается почему-то только для отчётов, в к-рых нет вызывающего класса, а есть только Report (с вызовом queryRun.prompt() && element.prompt()). И то не каждый раз. Какая-то системная инициализация не срабатывает. Причём после "печати", например, на screen, и при печати далее в Excel возвращаются нормальные height(). Если же после печати в Excel повторно отослать отчёт на тот же канал, height выдаются неправильные. Видимо, нужно разобраться с кодом OutputField.height(). Как бы его вытащить и поглядеть, что мешает нормальному вычислению высот... |
|
02.04.2004, 17:48 | #4 |
Участник
|
Решил проблему так:
В методе формы SysPrintForm.closeOk() для своего канала вывода (экселя)устанавливаю свойство viritualPageHeight в 0. После этого аксапта понимает что нет пределов по высоте и больше не пытается разбивать отчет на страницы. Главное теперь не забыть задокументировать эту особенность как фичу в руководстве по эксплуатации! |
|
21.06.2005, 18:39 | #5 |
Участник
|
пытаюсь сделать свой канал для автоотчёта. В SysTableForm\pack происходит сохранение:
Код: printJobSettingsPack = sysReportRun.printJobSettings().packPrintJobSettings(); info('pck:'+sysReportRun.printJobSettings().deviceName()); info('pck: '+int2str(sysReportRun.printJobSettings().hDC())); Код: sysReportRun.unpackPrintJobSettings(printJobSettingsPack); info('unpck:'+sysReportRun.printJobSettings().deviceName()); info('unpck: '+int2str(sysReportRun.printJobSettings().hDC())); в результате происходит разбиение на бесконечное число страниц (высота страницы принтера==0) |
|