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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.12.2005, 10:31   #1  
CDan is offline
CDan
Участник
 
23 / 10 (1) +
Регистрация: 17.11.2005
Post Запрет распечатки отчета
Доброго времени суток, коллеги.

Каким образом можно создать отчет "только для просмотра", без возможности вывода на печать?

Заранее благодарен.
Старый 13.12.2005, 10:38   #2  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
В перегруженном методе prompt сказать
this.setTarget(PrintMedium::Screen);
И вызвать super c пятым параметром (enablePrintTo), равным false.
Хотя против PrintScreen никто еще противоядия на уровне Аксапты не придумал.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...

Последний раз редактировалось Maximin; 13.12.2005 в 10:49.
Старый 13.12.2005, 12:10   #3  
CDan is offline
CDan
Участник
 
23 / 10 (1) +
Регистрация: 17.11.2005
Спасибо за оперативный ответ, Maximin.

Но вызов отчета идет через menu item, и метод prompt не задействован.
Как поступить в этом случае?

Последний раз редактировалось CDan; 13.12.2005 в 12:12.
Старый 13.12.2005, 12:26   #4  
NAST is offline
NAST
Участник
 
24 / 10 (1) +
Регистрация: 21.09.2005
Задача: Отчет - только на экран
Аксапта 3.0 sp4

Можно ли добиться в Аксапте, чтобы определенный отчет пользователи могли вывести только на экран (Ни в файл, ни по почте), и чтобы кнопка "Печать" даже была задизайблена ?

Dron AKA andy: Объединил темы.

Последний раз редактировалось Dron AKA andy; 13.12.2005 в 12:37.
Старый 13.12.2005, 12:46   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от CDan
Спасибо за оперативный ответ, Maximin.

Но вызов отчета идет через menu item, и метод prompt не задействован.
Как поступить в этом случае?
Разберитесь с классом SysPrintOptions
__________________
полезное на axForum, github, vk, coub.
Старый 13.12.2005, 12:47   #6  
NAST is offline
NAST
Участник
 
24 / 10 (1) +
Регистрация: 21.09.2005
"this.setTarget(PrintMedium::Screen);
И вызвать super c пятым параметром (enablePrintTo), равным false.
Хотя против PrintScreen никто еще противоядия на уровне Аксапты не придумал." -
Помогает с певым вопросом.
А все же, очет выведен на экран - кнопка "принт" - активна - нажимаем ее, да не дает ничего выбирать - но, если нажимаешь "ОК" - все же отчет идет на печать.
Как быть с этим?
Старый 13.12.2005, 13:35   #7  
Jabberwocky is offline
Jabberwocky
Microsoft Dynamics
Аватар для Jabberwocky
Сотрудники Microsoft Dynamics
 
274 / 307 (11) ++++++
Регистрация: 02.09.2005
Адрес: Москва
Полагаю, надо "рыть" в направлении класса PrintJobSettings.

Пример передачи параметров печати в класс ReportRun:

Код:
    ReportRun           reportRun;
    Args                   Args = new Args(reportStr(CustVendFacture_RU));
    PrintJobSettings  printJobSettings = new PrintJobSettings();
    ;
    printJobSettings.printerSettings(formStr(SysPrintForm));

    Args.parmEnumType(enumnum(FacturePrintType_RU));
    Args.parmEnum(FacturePrintType_RU::Original);
    reportRun   = new ReportRun(Args);

    reportRun.printJobSettings(printJobSettings.packPrintJobSettings());
    reportRun.run();
Поиграйтесь с параметрами печати, используя класс PrintJobSettings. Возможно, поможет.
Старый 13.12.2005, 13:47   #8  
kvan is offline
kvan
Moderator
Аватар для kvan
Дети Юза
 
775 / 49 (3) +
Регистрация: 07.08.2002
Адрес: Donetsk
Гляньте как реализована российская платежка.
Там кнопки в печатной форме задезейблены.
__________________
С уважением, kvan.
Старый 13.12.2005, 14:48   #9  
Zan is offline
Zan
Участник
 
104 / 25 (1) +++
Регистрация: 22.07.2004
Адрес: I live in Moscow
А так же надо не забыть заблокировать пользователю кнопучку PrtSc (ПринтСкрин)
Старый 13.12.2005, 15:09   #10  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Ага. Выломать зубилом из клавиатуры.

И запретить устанавливать ПО, которое может заниматься видеозахватом.

И отбирать сотовые телефоны. Чтобы ничего не сфотографировали и не унесли домой.
__________________
С уважением,
glibs®
Старый 13.12.2005, 15:14   #11  
Zan is offline
Zan
Участник
 
104 / 25 (1) +++
Регистрация: 22.07.2004
Адрес: I live in Moscow
Thumbs up
2 glibs

поддерживаю
Старый 13.12.2005, 15:58   #12  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Цитата:
Сообщение от kvan
Гляньте как реализована российская платежка.
Там кнопки в печатной форме задезейблены.
Кстати, оба наши способа фиговато работают.
В отчете достаточно просто нажать Ctrl-P и вуаля.
Даже в российской платежке с заблокированной кнопкой.
Впрочем, для advanced пользователя даже заблокированная кнопка не преграда...

Цитата:
Сообщение от Jabberwocky
Полагаю, надо "рыть" в направлении класса PrintJobSettings.
Тот вызов с пятым параметром, как раз опосредовано через объект отчета и устанавливает соотв. атрибут объекта PrinterJobSettings. Другое дело, что Ctrl-P все-таки, работает...
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...

Последний раз редактировалось Maximin; 13.12.2005 в 16:18.
Старый 13.12.2005, 16:24   #13  
kvan is offline
kvan
Moderator
Аватар для kvan
Дети Юза
 
775 / 49 (3) +
Регистрация: 07.08.2002
Адрес: Donetsk
Т.е. твой способ тоже обходится через Ctrl-P ?

Если да, то можно попробывать поковырять форму SysPrintForm - там в Init получают вызывающий обьект, от него и попробывать оттолкнуться.
Так если форма вызвана из диалога, там:
new, RunBaseReportDialog
А вот если по Ctrl-P:
client: printerDC: xprPrinterDisplay \\Путь к принтеру

Хотя конечно любую защиту можно обойти
__________________
С уважением, kvan.
Старый 13.12.2005, 16:44   #14  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
На мой взгляд, лучше глянуть глубже и посмотреть на методы класса SysPrintOptions в части методов init и examinePromptParm. Там много наводящих на размышления мест, особенно в начале метода examinePromptParm.
Там и копать. Подробнее рассказывать, честно говоря, лениво.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...
Старый 13.12.2005, 18:03   #15  
kvan is offline
kvan
Moderator
Аватар для kvan
Дети Юза
 
775 / 49 (3) +
Регистрация: 07.08.2002
Адрес: Donetsk
Глянул я внутрь, мест для размышления там действительно много.
Но этот класс отвечает за инициализацию каналов вывода отчета.

Если дальше приглядеться к методам самой формы, то несложно заметить, что те каналы вывода которые увидет пользователь добавляются в методе buildSendToList формы SysPrintForm.
Так что нет никакого смысла идти "вглубь" и инициализировать параметры если уже при открытии формы понятно что ее нужно просто закрыть.
(К сожалению вызывается она из системного класса и у нас нет возможности запретить этот вызов там)

Ну и совсем не лишним будет глянуть на первые строки метода construct класса SysPrintOptions чтобы понять как можно отсечь те вызовы которые мы хотим перекрыть.
__________________
С уважением, kvan.
Старый 13.12.2005, 18:22   #16  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
А нафиг форму мучить? Лучше уж класс пнуть в нужное место, чтобы он там по умолчанию Принтер не писал при нажатии Ctrl-P...
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...
Старый 13.12.2005, 18:46   #17  
kvan is offline
kvan
Moderator
Аватар для kvan
Дети Юза
 
775 / 49 (3) +
Регистрация: 07.08.2002
Адрес: Donetsk
Изначально вопрос стоял о том как запретить вывод на печать.
Но существующие\предложенные решения обходятся с помощью тупой комбинации клавиш.
Так что если нужно разрешить пользователям только видеть отчет, то ко всему выше предложеному необходимо еще перекрыть вызов по Ctrl-P. Как это сделать я описал в предыдущем посте. Ну не нужно ничего инициализировать если форма должна закрыться сразу после того как открылась. (В идеале она и открыться то не должна, но что имеем то и имеем)
А вот если нужно запретить вывод в какой то определенный канал, например, на принтер - то действительно нужно ковырнуть немножко глубже.
__________________
С уважением, kvan.
Старый 14.12.2005, 07:43   #18  
CDan is offline
CDan
Участник
 
23 / 10 (1) +
Регистрация: 17.11.2005
Большое спасибо за советы. Задача нетривиальная, интересная.

Но при общении с постановщиком задач выяснилось, что ситуация "Это я, почтальон Печкин. Принес посылку. Только я вам ее не отдам... " в моем случае оказалась ненужной.
Задача ограничилась простым задисэйбливанием кнопок формирования отчетов.

Всем всего наилучшего!

Последний раз редактировалось CDan; 14.12.2005 в 07:52.
Старый 18.01.2006, 17:48   #19  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от kvan
Гляньте как реализована российская платежка.
Там кнопки в печатной форме задезейблены.
А не могли бы вы ткнуть в конкретное место, где это делается?
Старый 19.01.2006, 16:17   #20  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Fetch() возвращает False при повторной печати платежки.
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: oip (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как изменить заголовок окна предв.просмотра отчета Владимир Максимов DAX: Программирование 6 03.07.2006 15:34
Нужен запрет на изменения данных журнала переноса после его распечатки ATimTim DAX: Программирование 4 19.01.2005 12:16
Запрет выбора при вызове отчёта из MenuItem kalex DAX: Программирование 1 25.07.2003 12:21
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Формирование отчета с динамически изменяемым числом столбцов. rumpleteazer DAX: Программирование 1 06.09.2002 11:25

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

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

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