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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.03.2012, 22:09   #1  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Загадка printJobSettings.deviceName
После перехода на 2009 некоторые отчеты стали дико тормозить. Оказалось причина в установке принтера. Джобик показывает, что при установке параметра deviceName этот загадочный метод выполняется от нескольких минут и больше. В то же время все происходит мгновенно при передачи такой же самой строки в параметре метода.

X++:
static void TestJob(args a)
{
    PrintJobSettings                        printJobSettings = new PrintJobSettings();
    PrinterName                             printerName;
;
    info(strfmt('Start at: %1', time2str(timenow(), 1, 1)));

    printerName = KAB_ProdUserPrinter::find().PrinterName;
    printerName = '\\kab-subpan\Wasp WPL-305 - PAN';
    printJobSettings.deviceName(printerName);
//
    info(strfmt('Start at: %1', time2str(timenow(), 1, 1)));

    printerName = KAB_ProdUserPrinter::find().PrinterName;
    printJobSettings.deviceName(printerName);

    info(strfmt('Finished at: %1', time2str(timenow(), 1, 1)));
}
PHP код:
Info    Message (17:59:11)    Start at17:58:39
Info    Message 
(17:59:11)    Start at17:58:39
Info    Message 
(17:59:11)    Finished at17:59:11 
AX 2009 SP1 RU7
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
За это сообщение автора поблагодарили: kaw (1), sukhanchik (4).
Старый 23.03.2012, 10:47   #2  
kaw is offline
kaw
Участник
 
122 / 35 (2) +++
Регистрация: 23.03.2004
Адрес: Новосибирск
Нельзя такие темы поднимать перед выходными...

может в info добавить вывод результата:
X++:
 info(strfmt('Finished at: %1', time2str(timenow(), 1, 1),    printJobSettings.deviceName() ));
+ проверить скорость при использовании:
X++:
 printer = pjs.GetPrinter(i);
        pjs.DeviceName(printer);
http://msdn.microsoft.com/en-US/libr...(v=ax.50).aspx

Пытался как-нибудь увязать это с типом запуска в одном случае и в другом
X++:
  printJobSettings.deviceName(tmpPrinterName, ClassRunMode::);
Старый 23.03.2012, 11:46   #3  
PavelX is offline
PavelX
MCTS
MCBMSS
 
46 / 97 (4) ++++
Регистрация: 08.09.2006
Адрес: Красноярск
Цитата:
В то же время все происходит мгновенно при передачи такой же самой строки в параметре метода.
А Вы уверены что строка та же самая? Нет ли там каких либо скрытых или спец символов во втором случае?
Старый 23.03.2012, 12:29   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Спасибо, бум знать.
Цитата:
Сообщение от Link Посмотреть сообщение
В то же время все происходит мгновенно при передачи такой же самой строки в параметре метода.
Так вы же обратный слеш не экранируете!
Попробуйте вот так.
X++:
str printerName = @'\\kab-subpan\Wasp WPL-305 - PAN';
За это сообщение автора поблагодарили: Pustik (2), Link (2).
Старый 23.03.2012, 19:04   #5  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Спасибо, бум знать.

Так вы же обратный слеш не экранируете!
Попробуйте вот так.
X++:
str printerName = @'\\kab-subpan\Wasp WPL-305 - PAN';
Был не прав. Однако разница между 4кой и 2009 версией есть. В 4ке функция выполняется сразу. А в 2009 она пытается найти удаленный сервер. В моем случае как оказалось сервер переименовали, этим и объясняется задержка. Поспешил вчера вечером не проверил
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
printJobSettings().copies(2) Ashir DAX: Программирование 4 31.05.2013 17:08
Ошибка PrintJobSettings Silphidae DAX: Программирование 9 02.11.2012 16:59
SysPrintOptions ilji PrintJobSettings Kent DAX: Программирование 0 18.09.2009 13:34
PrintJobSettings error dreamer DAX: Программирование 3 25.10.2007 16:38
Хитрая-прехитрая загадка для вумных Аксаптоведов AKIS DAX: Функционал 13 20.12.2002 09:42

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

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

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