for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Лисоводы   всех   стран,  объединяйтесь !!!  

Список Форумов  :: Visual Foxpro, Foxpro for DOS
  

Имя текущего принтера
Alsim
Автор

Сообщений: 3462
Откуда: Екатеринбург
Дата: 11.04.19 14:39:19
Есть кучу лет работающий класс вывода на печать.
Кнопка выбора принтера, кнопка просмотра печати, кнопка отправки на печать, кнопка выход.
[attachment 30850 ]
Захотелось выпендриться и доработать этот класс. (сохранять в PDF и на почту отправлять, это получается предварительно)
НО! Хочу показать при вызова этого класса в статусе формы имя Текущего принтера ну и того, что потом выбрали с помощью SYS(1037).
Убился, урылся - только GETPRINTER( ), но он диалогом выскакивает.
APRINTERS() - дает список принтеров, но какой в данный момент текущий не видно опять же.
Мне же хочется по-тихому в переменную. Чтобы сразу было видно куда.
А то девушки натыкают "по-умолчанию" и забудут, а принтеров бывает и два и три, и у них из Екселя в один печатает, из браузера в другой,
от меня в третий ))))
Спасибо!
+
Fox7 если что



Исправлено: Alsim, 11.04.19 14:42
Ratings: 0 negative/0 positive

Re: Имя текущего принтера
Taran

Сообщений: 11131
Откуда: Красноярск
Дата: 11.04.19 14:49:17
MessageBox(Set('Printer', 2))
Ratings: 0 negative/0 positive

Re: Имя текущего принтера
Alsim
Автор

Сообщений: 3462
Откуда: Екатеринбург
Дата: 11.04.19 14:57:24
Taran
MessageBox(Set('Printer', 2))
!!!Блин, Олег, был бы ты девчонкой, я б тебя поцеловал!!!
Спасибо!!!
Ratings: 0 negative/0 positive

Re: Имя текущего принтера
Taran

Сообщений: 11131
Откуда: Красноярск
Дата: 11.04.19 16:03:20
Если часто приходится менять устройство вывода, то я бы как минимум при старте загрузил список доступных принтеров через aPrinters и потом выводил его в ListBox`e с выделением активного и возможностью смены.
Достаточно подтормаживает GetPrinter() по моему.
Ну и скорость выбора.
GetPrinter() запустить кнопкой.
там окно и в ComboBox`е список принтеров.
ComboBox активировать, принтер выбрать.
ОК нажать.
А так ты просто в свою форму встроишь список принтеров и активный в нем же подсветишь.
Одним кликом сменить можно.
Ratings: 0 negative/0 positive

Re: Имя текущего принтера
Alsim
Автор

Сообщений: 3462
Откуда: Екатеринбург
Дата: 11.04.19 17:55:13
ага, не часто. У меня на клике кнопки Выбор сидит SYS(1037). Оно и в 9ом Фоксе работает корректно (у меня есть несколько проектов и на 9ке)
То что обнаружил, разбираясь в себе на 15лет младше, что по выходу из класса не восстанавливаю обратно принтер по умолчанию.
Обсуждали с моей половинкой, (она примерно этим же решением пользуется в своей кухне, чуть под неё подпилено). Вроде как с её точки зрения логично - сменили принтер и на сеанс работы с нашей прогой он остаётся.
Я-то это давно знал за собой, а вот хорошо это или плохо - вопрос противоречивый. Мои (на складиках, у которых несколько принтеров), не один раз удивлялись, а я это с важным видом освещал, что так и положено от дяди Билла )))
Потому у себя скорее всего добавлю ещё одну "галочку" запоминать принтер.
Это вроде как дверь подъезда. Идём гулять, дверь НЕ захлопнута. Значит так и оставь! - каждый раз говорю я. А она закрывает(!!!)
Первое правило программера - зашёл, запомнил. Вышел - восстановил как было.
Ну и когда домой возвращаемся с прогулки, обе руки (мои) заняты, а дверь захлопнута))) "А!!! ВОТ!!!" - каждый раз талдычу я))))
Теперь вот сама и открывай!!! )))
Ratings: 0 negative/0 positive

Re: Имя текущего принтера
Taran

Сообщений: 11131
Откуда: Красноярск
Дата: 11.04.19 18:14:14
Ну путей мильен.
Отсканил свои сырцы, нигде нет Sys(1037). Как-то даже и не знал про него. Как-то обходился.
Восстанавливать не восстанавливать - всяко может быть по логике.
Может быть вообще каждый отчет привязан к некоторому специфичному принтеру и переназначение надо автоматом делать. Этикетки допустим на термопринтере.
Я так понял ты вопрос с именем текущего закрыл, ну и славно.
Ratings: 0 negative/1 positive

Re: Имя текущего принтера
Alsim
Автор

Сообщений: 3462
Откуда: Екатеринбург
Дата: 11.04.19 18:29:05
Да, мне именно этой Set('Printer', 2) не хватало для счастья.
***
Taran
Может быть вообще каждый отчет привязан к некоторому специфичному принтеру и переназначение надо автоматом делать. Этикетки допустим на термопринтере.
Кстати это идея запоминать имя репорта- имя принтера. Показывать как, ты меня уже научил)
*
У меня изначально было задумано: имя репорта, емейл кому запоминать. Это я уже про вывод-отсылку PDF.
Но опять же по месту. Если акт сверки, то брать емейл из справочника контрагента. Это если БУчет. У меня там уже сделано, но очень через "местный" интерфейс (файл в ворд, его уже отсылаем)
Если с кадрами работа, то вариант отсылки или главной в подразделении, или конкретно челу. У него в профиле емейл есть.
Короче есть над чем помыслить и это радует
Ratings: 0 negative/0 positive

Re: Имя текущего принтера
Taran

Сообщений: 11131
Откуда: Красноярск
Дата: 11.04.19 18:39:07
Alsim
Да, мне именно этой Set('Printer', 2) не хватало для счастья.

Но она UPPERCASE, что не всегда нравится.
Процедурку ежели наваять.
Массив принтеров получить через aPrinters - там имена MixedCase и многое другое полезное.
Пробежался по массиву, нашел соответствие с Set('Printer', 2) и получил имя принтера MixedCase.
Может есть вариант и проще. У меня коряво, но так.
Ratings: 0 negative/0 positive

Re: Имя текущего принтера
Alsim
Автор

Сообщений: 3462
Откуда: Екатеринбург
Дата: 11.04.19 18:56:26
Да всё-всё-всё! У меня уже практически всё работает.
***
Девчонкам написал про вывод в PDF, а они как-то не восхитились. Мы, говорят на бумагу печатаем и в офис отправляем. Так исторически.
А вот нарисуй-ка ты нам, раз у тебя творческое безделье... - написали они мне в ответ, - такую штуку...
Короче озадачили)))) и это хорошо)
Ratings: 0 negative/0 positive

Re: Имя текущего принтера
Taran

Сообщений: 11131
Откуда: Красноярск
Дата: 11.04.19 19:03:29
Alsim
Мы, говорят на бумагу печатаем и в офис отправляем. Так исторически.

Потому что только в офисе есть сканер. Там сканируют и шлют на eMail.

...удаляюсь, удаляюсь, удаляюсь...
Ratings: 0 negative/0 positive

Re: Имя текущего принтера
vk65

Сообщений: 400
Дата: 11.04.19 23:52:36
Taran
Alsim
Да, мне именно этой Set('Printer', 2) не хватало для счастья.
Но она UPPERCASE, что не всегда нравится.

forum.foxclub.ru
Ratings: 0 negative/1 positive

Re: Имя текущего принтера
andrewk

Сообщений: 137
Откуда: Красноярск
Дата: 21.07.20 12:08:38
Alsim
У меня уже практически всё работает. ***
Девчонкам написал про вывод в PDF, а они как-то не восхитились.
А через что в PDF пишешь?
Doro PDF Writer использую, но вдруг интереснее идеи есть)
Ratings: 0 negative/0 positive

Re: Имя текущего принтера
Alsim
Автор

Сообщений: 3462
Откуда: Екатеринбург
Дата: 21.07.20 13:05:49
andrewk
А через что в PDF пишешь?
Через BillZip
www.bullzip.com
Выдрал у себя из класса
Вот такой внешний вид.
Сделал год назад и отвлёкся напрочь. Буквально месяц назад вспомнил и отдал в работу. Девочкам нравится.
Отправку на Email пока задвинул, думаю как красиво хранить получателей.
[attachment 33540 set_print3.jpg]
Ratings: 0 negative/0 positive

Re: Имя текущего принтера
andrewk

Сообщений: 137
Откуда: Красноярск
Дата: 21.07.20 18:11:21
Alsim
www.bullzip.com
У меня в том особенность, что нужно экспортировать большое количество мелких отчётов, каждый в отдельный файл, то есть критичен вопрос скорости. Когда-то было сделано через LibreOffice, работало хорошо и довольно быстро. Ну как, то есть быстрее остальных виденных мною вариантов. За счёт того, что там не через виртуальный принтер, а прямая конвертация rtf и прочего. Но с какой-то версией там что-то сломалось то ли в Питоне, то ли во взаимодействии с ним. Ну и понятно, что это слишком большая привязка к слишком большому стороннему продукту. Других конвертеров, работающих не через виртуальный принтер, я так и не нашёл.

С год или два ли назад очередной раз колупался с этим. Сперва тоже заточил под Bullzip. Да, COM-объект, все дела. Но, насколько помню, там какие-то ограничения бесплатной лицензии (типа 10 штук в конторе, мне этого достаточно). Кроме того, что-то там под RDP было не так (если не путаю). Но, главное для меня, скорость сильно не радовала.

Потом наткнулся на Doro. Там управление через ini-файл. В целом, всё неплохо. Скорость в моих экспериментах раза в полтора была выше чем у Bullzip (но ниже чем у Libre). На этом и остановился.
Сейчас взялся экспорт переделывать, наткнулся на этот пост, ну и решил спросить, вдруг кто-то что-то чудное подскажет))
Ratings: 0 negative/0 positive



Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 8 leonid of63  (Гостей: 6)

25.01.2021 19:51:20 exec: 0.13
Mem: 1.35 Mb

© 2000-2021 Fox Club 
Яндекс.Метрика