AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen Alle Foren als gelesen markieren

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 15.05.2006, 12:53   #1  
miaa ist offline
miaa
Участник
Benutzerbild von miaa
 
23 / 10 (1) +
Registriert seit: 26.09.2004
Ort: Москва
Как отправить файл с кодами, понятными принтеру, в порт принтера?
Нужно распечатать этикетку. Дизайн готовится в отдельной проге. Она выдает текстовый файл ***.prn в котором команды понятные принтеру. Печатать надо на "Зебре" (как вариант). Моя задача в файл подставить нужные числа и распечатать. По идее такой файл просто отправляется в LPT (порт принтера).
Как такое делается в Аксапте?
Alt 15.05.2006, 13:00   #2  
Sada ist offline
Sada
Программатор
Benutzerbild von Sada
 
1.450 / 153 (8) ++++++
Registriert seit: 29.03.2005
Ort: Толи Барнаул, толи Москва
А можно без Аксапты обойтись? Просто раз этикетка формируется не в Аксапте, то можно и на печать ее посылать сторонней программой. Можно в Аксапте создать Report в АОТе (чтоб только по размерам подходил) и из неё как на обычный принтер посылать с какими хотите пераметрами (у меня второй вариант).

Geändert von Sada (15.05.2006 um 13:05 Uhr)
Alt 15.05.2006, 13:05   #3  
miaa ist offline
miaa
Участник
Benutzerbild von miaa
 
23 / 10 (1) +
Registriert seit: 26.09.2004
Ort: Москва
Шаблон этикетки по идее постоянный, из аксапты в него только данные вставляются.
"Можно в Аксапте создать Report в АОТе (чтоб только по размерам подходил) " - имеете ввиду создаватькопию дизайна? (там штрих код есть..)
Alt 15.05.2006, 13:09   #4  
Sada ist offline
Sada
Программатор
Benutzerbild von Sada
 
1.450 / 153 (8) ++++++
Registriert seit: 29.03.2005
Ort: Толи Барнаул, толи Москва
Зачем копию? Рисуете такой же дизайн в Аксапте, вставляете в него нужные вам значения и посылаете на печать как на обычный принтер. У нас - Зебра, кушает все без проблем. Штрих код - посмотрите класы Barcode***
Alt 15.05.2006, 13:46   #5  
AndyD ist offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2.560 / 2494 (89) +++++++++
Registriert seit: 20.08.2005
Сделайте cmd файл в котором пропишите
copy c:\filepath\filename.prn lpt1

Из Axapta вызывайте его так
X++:
    WinApi::ShellExecute("c:\\filepath\\filename.cmd");
PS Пардон, двойные слеши нужны
__________________
Axapta v.3.0 sp5 kr2

Geändert von AndyD (15.05.2006 um 14:16 Uhr)
Alt 15.05.2006, 13:53   #6  
miaa ist offline
miaa
Участник
Benutzerbild von miaa
 
23 / 10 (1) +
Registriert seit: 26.09.2004
Ort: Москва
спасибо, попробую...
Alt 15.05.2006, 13:53   #7  
George Nordic ist offline
George Nordic
Модератор
Benutzerbild von George Nordic
Злыдни
 
4.480 / 1255 (50) ++++++++
Registriert seit: 17.12.2003
Ort: Moscow
Blog-Einträge: 9
Откройте порт "LPT1".

X++:
    CommaIo         txtFile;
    int             i,handlePort;
    ;
    txtFile = new CommaIo("LPT1","w");
    //handlePort = WinApi::createFile("LPT1");
    
    if (txtFile)
    {
        txtFile.write("Чудесные команды Зебре");
    }
Я лично допиливал класс, который использует стандартную длл ('KERNEL32').

Просто там были заморочки с СОМ-портом, если надо печатать через него.

С Уважением,
Георгий
Alt 15.05.2006, 17:02   #8  
mazzy ist offline
mazzy
Участник
Benutzerbild von mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29.472 / 4494 (208) ++++++++++
Registriert seit: 29.11.2001
Ort: Москва
Blog-Einträge: 10
Zitat:
Zitat von George Nordic
Откройте порт "LPT1".
Этот способ не очень работает, если usb-шный порт.
Кроме того, Аксапта не позволяет записать в текстовый файл символ с кодом 0
Считать тоже не дает, кстати.

Еще одно решение, которое подсказал Максим Горубнов (Максим, еще раз тебе респект):
Расшариваете принтер, далее копируете текст на сетевое устройство используя URI.

Если нужно выводить символ с кодом 0, то для подготовки можно воспользоваться классом Binary.
Затолкать символы в Binary можно при помощи SafeArray.

Так можно обойтись без промежуточных файлов и без дополнительных задержек.
__________________
полезное на axForum, github, vk, coub.
This post has been rated by: George Nordic (5).
Alt 15.05.2006, 17:20   #9  
AndyD ist offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2.560 / 2494 (89) +++++++++
Registriert seit: 20.08.2005
Можно так же воспользоваться net use lpt1 URI
__________________
Axapta v.3.0 sp5 kr2
Alt 15.05.2006, 17:31   #10  
George Nordic ist offline
George Nordic
Модератор
Benutzerbild von George Nordic
Злыдни
 
4.480 / 1255 (50) ++++++++
Registriert seit: 17.12.2003
Ort: Moscow
Blog-Einträge: 9
Zitat:
Zitat von mazzy
Этот способ не очень работает, если usb-шный порт.
Хм. Боюсь, не скоро у принтеров шк появиться usb порты... вернее, я видел, но они работали в режиме эмуляции - через драйвер.

Я просто подобную задачу реализовывал, написав свой класс. Для GODEX'a. У них протокол отличается, но не сильно - принцип один и тот же.

Но замечаниие, тем не менее, очень ценное, спасибо.

С Уважением,
Георгий
Alt 16.05.2006, 05:19   #11  
Sada ist offline
Sada
Программатор
Benutzerbild von Sada
 
1.450 / 153 (8) ++++++
Registriert seit: 29.03.2005
Ort: Толи Барнаул, толи Москва
Это все конечно здорово... но если стоит задача распечатать этикетку штрих кодов, содержащую дату, номенклатуру, число и вес/количество (к примеру), то почему не сделать так как я предложил??? Зебра (как вариант) ставится как обычный принтер на комп и всё... Делов то на 10 минут

С уважением - Sada...
Alt 16.05.2006, 06:35   #12  
mazzy ist offline
mazzy
Участник
Benutzerbild von mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29.472 / 4494 (208) ++++++++++
Registriert seit: 29.11.2001
Ort: Москва
Blog-Einträge: 10
Zitat:
Zitat von Sada
Можно в Аксапте создать Report в АОТе (чтоб только по размерам подходил) и из неё как на обычный принтер посылать с какими хотите пераметрами (у меня второй вариант).
Можно и так...
Только Аксапта будет печатать в графику. Я, например, не очень понимаю, как в Report создать форму с управляющими символами принтера для позицинирования и форматирования текста, а сам текст выводить текстом, а не графикой. Даже если такой отчет выводить на Generic / Text only

Вернемся к исходному вопросу
Zitat:
Zitat von miaa
Нужно распечатать этикетку. Дизайн готовится в отдельной проге. Она выдает текстовый файл ***.prn в котором команды понятные принтеру.
В таких условиях становится вообще непонятным как прикрутить Report из AOT'а.
Разве что значительно поменять условия задачи.
__________________
полезное на axForum, github, vk, coub.
Alt 16.05.2006, 07:51   #13  
Sada ist offline
Sada
Программатор
Benutzerbild von Sada
 
1.450 / 153 (8) ++++++
Registriert seit: 29.03.2005
Ort: Толи Барнаул, толи Москва
Не значительно поменять условия задачи (хотя из всего выше сказанного задача чётко не прорисовывается). Нужна этикетка со штрих кодом, на которой будут отображаться какие то данные, зачем её рисовать в сторонней программе, если можно также нарисовать в Аксапте и вывести все что угодно? Про форму с управляющими символами уважаемый Mazzy прав, тут я дал маху. Хотя кому как удобней, лишь бы работало как надо ... и быстро ....

С уважением - Sada...
This post has been rated by: DarkBear (1).
Alt 16.05.2006, 10:37   #14  
George Nordic ist offline
George Nordic
Модератор
Benutzerbild von George Nordic
Злыдни
 
4.480 / 1255 (50) ++++++++
Registriert seit: 17.12.2003
Ort: Moscow
Blog-Einträge: 9
Sada! Дело в том, что:
1) Принтер сам знает, как ему формировать этикетку. В среднем команда занимает байт эдак 100. Причем в ней можно указать формат этикетки, и правила автоматического формирования штрих кода, а так же кол-ва этикеток.
2) Иначе - сначала формируется образ этикетки, который передается через драйвер на принтер как графика. Это килобайты данных на одну этикетку.
3) Драйвера обычно довольно кривые, и можно поиметь проблем с позиционированием, когда данные будут уползать с этикетки. Это не большая проблема, когда печатаешь просто этикетки. А теперь представь себе печать на акцизных марках, которые являются документом строгой отчетности. И каждая и которых стоит 28 рублей.

Так что смысл использования команд есть, и большой.

С Уважением,
Георгий
Alt 16.05.2006, 11:05   #15  
Garic ist offline
Garic
NavAx
Benutzerbild von Garic
NavAx Club
 
393 / 63 (3) ++++
Registriert seit: 23.07.2002
Ort: Москва
Ну не знаю, с драйверами проблем вроде нет. Печатаем на зёбрах из отчёта аксапты, всё шустро.

Zitat:
Хм. Боюсь, не скоро у принтеров шк появиться usb порты... вернее, я видел, но они работали в режиме эмуляции - через драйвер.
Зёбры вроде как есть USB\Paralel\Serial.
__________________
С уважением, Игорь Ласийчук.
Alt 16.05.2006, 11:18   #16  
George Nordic ist offline
George Nordic
Модератор
Benutzerbild von George Nordic
Злыдни
 
4.480 / 1255 (50) ++++++++
Registriert seit: 17.12.2003
Ort: Moscow
Blog-Einträge: 9
у Godex ов тоже есть usb, но он работал так: ставился драйвер, который эмулировал LPT порт, т.е. в системе появлвлся, допустим, LPT3 и печать осуществлялась через него. Нет, печатать можно, но все-таки пока правильнее командами (отчетом неспортивно ). Эти выкладки справедливы для любых принтеров godex - datamax - zebra...
4) К тому же, они гораздо корректнее формируют штрихкод, чем этого можно добиться, просто используя шрифт
5) Возможна печать 2х мерных штрихкодов, что невозможно сделать шрифтом. Этот как раз актуально для акцизок.
Alt 16.05.2006, 11:26   #17  
Garic ist offline
Garic
NavAx
Benutzerbild von Garic
NavAx Club
 
393 / 63 (3) ++++
Registriert seit: 23.07.2002
Ort: Москва
А каким ПО можно этикетку нарисовать. А так чтобы двумерная была?
__________________
С уважением, Игорь Ласийчук.
Alt 16.05.2006, 11:36   #18  
George Nordic ist offline
George Nordic
Модератор
Benutzerbild von George Nordic
Злыдни
 
4.480 / 1255 (50) ++++++++
Registriert seit: 17.12.2003
Ort: Moscow
Blog-Einträge: 9
А к каждой марке принтера своё ПО идет, для дизайна и печати этикеток. Которое как раз командами печатает. + DLL.
Еще есть ряд ActiveX независимых разработчиков, я рекомендую ActiveBarcode. (http://www.activebarcode.com/)
По-моему, CorelDraw еще может... но он очень дорогой, компонента дешевле.
Alt 16.05.2006, 11:43   #19  
Sada ist offline
Sada
Программатор
Benutzerbild von Sada
 
1.450 / 153 (8) ++++++
Registriert seit: 29.03.2005
Ort: Толи Барнаул, толи Москва
Спор раздулся не на шутку!!! И это радует.
2Garic - Спасибо...
2George Nordic - скажу так... решал бы как лучше еслиб знал что печатаем, а тут про это не слово. Если этикетка печатается на складе готовой продукции (как у нас), то там сверх точность не требуется. А если дело дойдет до "святого" - акцизок, тогда даа.....

С уважением - Sada...
Alt 18.05.2006, 19:18   #20  
alef_nor ist offline
alef_nor
Участник
Benutzerbild von alef_nor
 
13 / 10 (1) +
Registriert seit: 23.03.2005
Ort: Moscow
1. Если все данные для печати (цифры и текст) имеются в аксапте - то можно -
при формировании Report во внутр. формате сделать след.:
- печать чего надо в виде штрих - кода - ставьте в свойсвах поля - вызов фонта который печатает Штрх-код (таких фонтов счас море - true type - точно)
2. Если есть картинка (штрих-код , логотип) в формате ".bmp" - то можно вставить ее
в динамике в отчет
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Файл в RTF из 4.0 sns DAX: Функционал 22 08.02.2011 14:19
Web-портал: открыть файл cherv DAX: Программирование 4 19.05.2008 16:42
Неприятные нюансы AxCliCfg.exe в работе с кодами для разработки в слоях Косых Артём DAX: Администрирование 2 12.04.2007 11:10
Большой Log файл у базы. Что делать? Arahnid DAX: Администрирование 4 04.04.2007 16:10
Вывод отчета в файл в пакетном режиме Egor_bl DAX: Программирование 16 09.10.2006 19:10
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 09:07 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.