09.09.2010, 15:56 | #1 |
Участник
|
Infolog при печати отчета
Доброго времени суток!
Столкнулся с задачей - необходимо скрыть infolog , который отображается при выводе на печать отчета (канал вывода - принтер), со следующим содержанием: "Правый край бумаги превышен на странице 1 в Имя отчета, 8мм сверху". Аналогичное сообщение отображалось и при выводе отчета на экран (канал вывода - экран), но его удалось "подавить" через добавление строки кода infolog.clear() в методе run() отчета после super'a. Каким образом можно скрыть вывод инфолога при печати, а именно отправке на принтер, только в этом отчете , без его отключения в пользовательских настройках? P.S. Внесение изменений в дизайн отчета или свойства его элементов не является решением задачи. Последний раз редактировалось samolalex; 09.09.2010 в 15:58. |
|
09.09.2010, 16:02 | #2 |
Роман Долгополов (RDOL)
|
|
|
09.09.2010, 16:08 | #3 |
Участник
|
Спасибо! Этот топик уже был мною тщательно рассмотрен, оттуда я и взял идею с применением infolog.clear(). Однако ответ на вопрос - откуда вызывается infolog при отправке на принтер, я пока не нашел.
__________________
С уважением, Александр. |
|
09.09.2010, 16:13 | #4 |
Роман Долгополов (RDOL)
|
|
|
09.09.2010, 16:44 | #5 |
MCP
|
Попробуйте в классе Info добавить проверку в метод add():
X++: // объявления переменных метода add ; if(_txt == "Правый край бумаги превышен на странице 1 в Имя отчета, 8мм сверху") // сравнение можно вынести в метод, чтобы не так уж видоизменять метод { return _exception; } // код метода add ...
__________________
AXIOMA Последний раз редактировалось kornix; 09.09.2010 в 16:49. |
|
09.09.2010, 17:05 | #6 |
Роман Долгополов (RDOL)
|
|
|
09.09.2010, 17:17 | #7 |
MCP
|
Согласен что решение не очень красивое, но все же можно определить имя отчета и сравнить сообщение с тем что выводиться. Сразу оговорюсь: гигантский минус такого решения - надо учитывать что метод вызывается из кучи мест, и при любом info будет выполняться такое сравнение. Если проверка будет сложной (если добавите какие-нибудь циклы в сравнении) - быстродействие системы снизиться прямо пропорционально. Если идти на такое - лучше ограничиться простым if().
__________________
AXIOMA |
|
09.09.2010, 17:25 | #8 |
Участник
|
Данный способ, конечно, можно рассматривать, как одно из нетривиальных решений задачи, но не хотелось бы лезть в методы базовых классов. Хотелось бы найти решение "в пределах" самого отчета.
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 09.09.2010 в 18:17. |
|
09.09.2010, 18:19 | #9 |
MCP
|
__________________
AXIOMA |
|
09.09.2010, 18:49 | #10 |
Участник
|
infolog.clear(0) равносильно infolog.clear(), 0 - это значение по умолчанию.
__________________
С уважением, Александр. |
|
Теги |
infolog, отчет, печать, принтер |
|
Похожие темы | ||||
Тема | Ответов | |||
Ориентация страницы при печати отчета | 9 | |||
Баги при печати отчета в RTF | 1 | |||
Ориентация листа при печати отчета | 2 | |||
Ориентация листа при печати отчета | 3 |
|