25.01.2007, 16:15 | #1 |
Гость
|
Найти принтер по умолчанию в Аксе.
Необходимо определить из перечня принтеров: какой из них по умолчанию.
Мыслил решить следующим кодом, но ((( : X++: printJobSettings printJobSettings = new printJobSettings(connull(), true); str printerName; int z, numOfPrinters; for (z = 1; z <= numOfPrinters; z++) { printerName = printJobSettings.getPrinter(z); //info(strfmt("Принтер %1", printerName)); printJobSettings.deviceName(printerName); if (printJobSettings.printerDefaultPriority()) { ctrlSelectedPrinter_FLX.text(printerName); info(strfmt("Принтер по умлочанию %1", printerName)); } ctrlSelectPrinter_FLX.add(printerName); } |
|
25.01.2007, 17:10 | #2 |
Участник
|
После создания printJobSettings метод deviceName() указывает на принтер по умолчанию
PS посмотрите справку в Axapta по классу PrintJobSettings. Сразу на первой странице об этом пишут в примере
__________________
Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 25.01.2007 в 17:12. |
|
25.01.2007, 17:48 | #3 |
Гость
|
Спасибо.
Прочитал и справку прочитал .... Но по факту ((((( Бодро пишет: "НЕДОСТУПЕН" Хотя в Винде принтер есть. |
|
25.01.2007, 17:48 | #4 |
Гость
|
И перечень принтеров формирует.
|
|
25.01.2007, 18:03 | #5 |
Участник
|
А вы при создании класса не указывайте параметры
X++: printJobSettings printJobSettings = new printJobSettings();
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: (1). |
25.01.2007, 18:18 | #6 |
Гость
|
Спасибо ))))) .... мдя .... заработался: "счастье есть - его не может не быть"
С меня пиво причитается ;-) |
|
20.05.2011, 10:44 | #7 |
Участник
|
Старые принтеры
Заказы на продажу\Запросы\Счет на оплату\Показать\Оригинал Выдает ошибку "Невозможно обратиться к ххх принтеру", но сама печатная форма выводится нормально. Действительно, принтер (сетевой, прописан на терминале) ххх был когда то в системе, но его уже нет.
При этом если нажать на Печать в форме настроек принтера принтер по умолчанию определяется верно. Попробовал чистить данные пользователя. Пересоздавал данные в Расчеты с клиентами\Настройки\Формы\Настройка форм\Управление печатью\Документы\Расчеты с клиентами\Счет на оплату. Подскажите пожалуйста, где DAX 2009 SP1 RU6 сохраняет данные о принтерах которые когда то были в системе по умолчанию? Попробовал job приведенный выше, принтер по умолчанию определяет не тот. |
|
20.05.2011, 19:41 | #8 |
Участник
|
См. также Printer defaults to letter instead of A4 - how AX finds the default printer - там, в том числе, объясняется, как за счет использования "псевдопринтера" Аксапта нормально показывается отчеты, даже если к реальному принтеру обратиться не может.
|
|
|
За это сообщение автора поблагодарили: Daiver (1). |
27.05.2011, 11:58 | #9 |
Участник
|
Проблему решили.
Не верный принтер по умолчанию стоял на сервере где крутится AOS. Есть подозрение на класс SalesPurchReport_RU, у него свойство RunOn: Server. В ряде методов дергаются настройки принтера через printJobSettings. |
|
16.10.2014, 13:22 | #10 |
Участник
|
Добрый день, странная ситуация. Захожу под своим пользователем на терминальный сервер, принтер по умолчанию подтягивается тот который стоит у меня локально. Соответственно в аксапте по умолчанию тот же принтер. Затем захожу под другим пользователем на терминальный сервер. У этого пользователь свой принтер по умолчанию, но аксапта при попытке создания отчета определяет совершено другой! Но после нажатия кнопки "по умолчанию" принтер становиться правильным. Данные пользователя почистил выборочно, не помогло. Может просто все данные у него сбросить?
|
|
|
|