AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.09.2010, 15:56   #1  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
Infolog при печати отчета
Доброго времени суток!

Столкнулся с задачей - необходимо скрыть infolog , который отображается при выводе на печать отчета (канал вывода - принтер), со следующим содержанием: "Правый край бумаги превышен на странице 1 в Имя отчета, 8мм сверху".

Аналогичное сообщение отображалось и при выводе отчета на экран (канал вывода - экран), но его удалось "подавить" через добавление строки кода infolog.clear() в методе run() отчета после super'a.

Каким образом можно скрыть вывод инфолога при печати, а именно отправке на принтер, только в этом отчете , без его отключения в пользовательских настройках?

P.S. Внесение изменений в дизайн отчета или свойства его элементов не является решением задачи.

Последний раз редактировалось samolalex; 09.09.2010 в 15:58.
Старый 09.09.2010, 16:02   #2  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Это попробуйте

масштабирование отчета и инфолог
Старый 09.09.2010, 16:08   #3  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
Спасибо! Этот топик уже был мною тщательно рассмотрен, оттуда я и взял идею с применением infolog.clear(). Однако ответ на вопрос - откуда вызывается infolog при отправке на принтер, я пока не нашел.
__________________
С уважением, Александр.
Старый 09.09.2010, 16:13   #4  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Цитата:
Сообщение от samolalex Посмотреть сообщение
Однако ответ на вопрос - откуда вызывается infolog при отправке на принтер, я пока не нашел.
из недр ядра аксапты
Старый 09.09.2010, 16:44   #5  
kornix is offline
kornix
MCP
MCBMSS
Злыдни
Ex AND Project
 
414 / 146 (5) +++++
Регистрация: 24.02.2009
Адрес: Санкт-Петербург
Цитата:
Сообщение от db Посмотреть сообщение
из недр ядра аксапты
Попробуйте в классе Info добавить проверку в метод add():

X++:
// объявления переменных метода add
;
if(_txt == "Правый край бумаги превышен на странице 1 в Имя отчета, 8мм сверху") // сравнение можно вынести в метод, чтобы не так уж видоизменять метод 
{
        return _exception;
}
// код метода add ...
__________________
AXIOMA

Последний раз редактировалось kornix; 09.09.2010 в 16:49.
Старый 09.09.2010, 17:05   #6  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Цитата:
Сообщение от kornix Посмотреть сообщение
Попробуйте в классе Info добавить проверку в метод add():
.....
Старый 09.09.2010, 17:17   #7  
kornix is offline
kornix
MCP
MCBMSS
Злыдни
Ex AND Project
 
414 / 146 (5) +++++
Регистрация: 24.02.2009
Адрес: Санкт-Петербург
Цитата:
Сообщение от db Посмотреть сообщение
Согласен что решение не очень красивое, но все же можно определить имя отчета и сравнить сообщение с тем что выводиться. Сразу оговорюсь: гигантский минус такого решения - надо учитывать что метод вызывается из кучи мест, и при любом info будет выполняться такое сравнение. Если проверка будет сложной (если добавите какие-нибудь циклы в сравнении) - быстродействие системы снизиться прямо пропорционально. Если идти на такое - лучше ограничиться простым if().
__________________
AXIOMA
Старый 09.09.2010, 17:25   #8  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
Цитата:
Сообщение от kornix Посмотреть сообщение
Попробуйте в классе Info добавить проверку в метод add():
Данный способ, конечно, можно рассматривать, как одно из нетривиальных решений задачи, но не хотелось бы лезть в методы базовых классов. Хотелось бы найти решение "в пределах" самого отчета.
__________________
С уважением, Александр.

Последний раз редактировалось samolalex; 09.09.2010 в 18:17.
Старый 09.09.2010, 18:19   #9  
kornix is offline
kornix
MCP
MCBMSS
Злыдни
Ex AND Project
 
414 / 146 (5) +++++
Регистрация: 24.02.2009
Адрес: Санкт-Петербург
Цитата:
Сообщение от samolalex Посмотреть сообщение
Данный способ, конечно, можно рассматривать, как одно из нетривиальных решений задачи, но не хотелось бы лезть в методы базовых классов. Хотелось бы найти решение "в пределах" самого отчета.
Тогда используйте
X++:
infolog.clear(0);
нашел тут
__________________
AXIOMA
Старый 09.09.2010, 18:49   #10  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
Цитата:
Сообщение от kornix Посмотреть сообщение
Тогда используйте
X++:
infolog.clear(0);
infolog.clear(0) равносильно infolog.clear(), 0 - это значение по умолчанию.
__________________
С уважением, Александр.
Теги
infolog, отчет, печать, принтер

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ориентация страницы при печати отчета A-Lis-A DAX: Программирование 9 15.03.2013 17:06
Баги при печати отчета в RTF Максимка DAX: Функционал 1 22.09.2009 22:18
Ориентация листа при печати отчета doo DAX: Функционал 2 17.01.2007 15:57
Ориентация листа при печати отчета Roman A. DAX: Программирование 3 27.11.2003 16:11

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:27.