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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.07.2009, 15:59   #1  
Hammer is offline
Hammer
Участник
Аватар для Hammer
 
43 / 12 (1) ++
Регистрация: 24.06.2009
Адрес: Подольск
Проблема печати Штрих-кода
Может кто сталкивался с такой проблемой. У некоторых!!!! пользователей Штрих код печатается очень короткий и соответственно даже несчитывается после сканером. Если кто сталкивался - подскажите в чем может быть проблема???
Вывожу так
display str InvoiceBarCode()
{
barcode bc = barcode::construct(BarcodeType::Code128);
;
bc.string(true, global::RuAny2EnUpr(headerData.invoiceId()), BarcodeContentType::Undefined);

return bc.barcodeStr();
}
Методом тыка удалось установить , что помогает переустановка драйвера принтера, но заказчика такой вариант решения проблемы не устраивает.
Сужение Штрих-кода может произойти в любой момент - пользователь может напечатать 10 отчетов и штрих код нормально читается, а на 11 раз он сужается.
Пробовал масштабировать в самом отчете - это тоже не помогло!!!
Какие у кого мысли??? Только чур по теме!
Старый 22.07.2009, 17:08   #2  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Куда выводится отчет? Это отчет стандартными средствами Аксапты ? Какая версия Аксапты ? Или он выводится в Ворд / в Эксель ? Если в Ворд / в Эксель - то по файлу шаблона или просто так? Штрих-код сужается только при выводе на бумагу или визуально на экране тоже ? Это именно отчет или печать этикеток на принтере ? На каком типе принтера печатаете ?

Попробуйте инсталлировать специальный штрифт для бар-кодов и указать его в настройках фонта для того поля, куда печатается бар-код в вашем отчете. Или у вас уже именно так и сделано?

Последний раз редактировалось Zabr; 22.07.2009 в 17:13.
Старый 22.07.2009, 17:15   #3  
Hammer is offline
Hammer
Участник
Аватар для Hammer
 
43 / 12 (1) ++
Регистрация: 24.06.2009
Адрес: Подольск
Отчет выводится через report на экран, Это отчет стандартными средствами Аксапты. Аксапта 3.0. и Визуально и при выводе на бумагу. Это именно отчет, а именно торг 12, HP - а точнее не скажу.
Старый 22.07.2009, 17:17   #4  
Hammer is offline
Hammer
Участник
Аватар для Hammer
 
43 / 12 (1) ++
Регистрация: 24.06.2009
Адрес: Подольск
Лазерный!
Старый 22.07.2009, 17:18   #5  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Какой штрифт указан в настройках для этого поля в репорте ?
Старый 22.07.2009, 17:21   #6  
Hammer is offline
Hammer
Участник
Аватар для Hammer
 
43 / 12 (1) ++
Регистрация: 24.06.2009
Адрес: Подольск
Сделано.
BC C128 Medium.
Старый 22.07.2009, 17:21   #7  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
В общем была такая проблема! Штрих код выводился не корректный, просто полоски и маленький...
очень долго искал причину, и выяснилось, что при использовании класса Barcode почему то периодически возвращалась кривая шифровка штрих кода.
Решил эту проблему использование DLL на прямую, сейчас печатает стабильно!
Вот пример:
X++:
static str getBarcodeStr(InvoiceBarcode  _invoiceBarcode)
{  
    str         barcodeStr;
    DLL         barcodeDLL;
    DLLFunction bC_EANUPC;
    #DEFINE.DLL_NAME('Bcfont32')
    ;

    barcodeDLL = new DLL(#DLL_NAME);
    bC_EANUPC = new DLLFunction(barcodeDLL, 'BC_EAN13');
    bC_EANUPC.returns(ExtTypes::STRING);
    bC_EANUPC.arg(ExtTypes::String);

    barcodeStr = strFmt("%1", bC_EANUPC.call(substr(strFmt("%1",_invoiceBarcode),1,strlen(_invoiceBarcode) - 1)));

    return barcodeStr;
}
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
За это сообщение автора поблагодарили: Logger (3), Hammer (1).
Старый 22.07.2009, 19:00   #8  
ivas is offline
ivas
Участник
Аватар для ivas
 
252 / 68 (3) ++++
Регистрация: 22.12.2005
Цитата:
Сообщение от Hammer Посмотреть сообщение
Может кто сталкивался с такой проблемой. У некоторых!!!! пользователей Штрих код печатается очень короткий и соответственно даже несчитывается после сканером. Если кто сталкивался - подскажите в чем может быть проблема???
Вывожу так
display str InvoiceBarCode()
{
barcode bc = barcode::construct(BarcodeType::Code128);
;
bc.string(true, global::RuAny2EnUpr(headerData.invoiceId()), BarcodeContentType::Undefined);

return bc.barcodeStr();
}
Методом тыка удалось установить , что помогает переустановка драйвера принтера, но заказчика такой вариант решения проблемы не устраивает.
Сужение Штрих-кода может произойти в любой момент - пользователь может напечатать 10 отчетов и штрих код нормально читается, а на 11 раз он сужается.
Пробовал масштабировать в самом отчете - это тоже не помогло!!!
Какие у кого мысли??? Только чур по теме!
такое бывает когда штрихкод в контрол не влезает, уменьшите шрифт или удлините контрол
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy
Старый 23.07.2009, 09:06   #9  
Hammer is offline
Hammer
Участник
Аватар для Hammer
 
43 / 12 (1) ++
Регистрация: 24.06.2009
Адрес: Подольск
Цитата:
Сообщение от ivas Посмотреть сообщение
такое бывает когда штрихкод в контрол не влезает, уменьшите шрифт или удлините контрол
Пробовал не помогает.
Старый 23.07.2009, 09:06   #10  
Hammer is offline
Hammer
Участник
Аватар для Hammer
 
43 / 12 (1) ++
Регистрация: 24.06.2009
Адрес: Подольск
Цитата:
Сообщение от lev Посмотреть сообщение
В общем была такая проблема! Штрих код выводился не корректный, просто полоски и маленький...
очень долго искал причину, и выяснилось, что при использовании класса Barcode почему то периодически возвращалась кривая шифровка штрих кода.
Решил эту проблему использование DLL на прямую, сейчас печатает стабильно!
Вот пример:
X++:
static str getBarcodeStr(InvoiceBarcode  _invoiceBarcode)
{  
    str         barcodeStr;
    DLL         barcodeDLL;
    DLLFunction bC_EANUPC;
    #DEFINE.DLL_NAME('Bcfont32')
    ;

    barcodeDLL = new DLL(#DLL_NAME);
    bC_EANUPC = new DLLFunction(barcodeDLL, 'BC_EAN13');
    bC_EANUPC.returns(ExtTypes::STRING);
    bC_EANUPC.arg(ExtTypes::String);

    barcodeStr = strFmt("%1", bC_EANUPC.call(substr(strFmt("%1",_invoiceBarcode),1,strlen(_invoiceBarcode) - 1)));

    return barcodeStr;
}
Попробую
Старый 23.07.2009, 09:22   #11  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Как то была проблема с тем что шрифт в отчёте слетал, потому что железно прописал его на контроле.
Перекрыл метод init report-a и там его назначил
barcode.font(barcodeSetup.fontName);
И проблема исчезла.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 23.07.2009, 09:48   #12  
Hammer is offline
Hammer
Участник
Аватар для Hammer
 
43 / 12 (1) ++
Регистрация: 24.06.2009
Адрес: Подольск
Цитата:
Сообщение от miklenew Посмотреть сообщение
Как то была проблема с тем что шрифт в отчёте слетал, потому что железно прописал его на контроле.
Перекрыл метод init report-a и там его назначил
barcode.font(barcodeSetup.fontName);
И проблема исчезла.
Это я тоже пробовал! не помогает!!!

Будем ждать!!! Пока проблема всплывет.
Старый 23.07.2009, 09:53   #13  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Да и ещё длину это контрола указывал в mm, а не в символах.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 23.07.2009, 09:59   #14  
Hammer is offline
Hammer
Участник
Аватар для Hammer
 
43 / 12 (1) ++
Регистрация: 24.06.2009
Адрес: Подольск
Цитата:
Сообщение от miklenew Посмотреть сообщение
Да и ещё длину это контрола указывал в mm, а не в символах.
Тоже в mm
Старый 23.07.2009, 14:36   #15  
ivas is offline
ivas
Участник
Аватар для ivas
 
252 / 68 (3) ++++
Регистрация: 22.12.2005
там кажись надо вызвать функцию типа encode...
посмотрите по системе где используется и сделайте также)
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy
Старый 23.07.2009, 15:18   #16  
Hammer is offline
Hammer
Участник
Аватар для Hammer
 
43 / 12 (1) ++
Регистрация: 24.06.2009
Адрес: Подольск
Цитата:
Сообщение от ivas Посмотреть сообщение
там кажись надо вызвать функцию типа encode...
посмотрите по системе где используется и сделайте также)
А зачем ее отдельно вызывать, она же есть в методе
bc.barcodeStr()
public BarcodeString barcodeStr()
{
if (!encoded)
this.encode();
return barcodeStr;
}
Старый 23.07.2009, 17:18   #17  
ivas is offline
ivas
Участник
Аватар для ivas
 
252 / 68 (3) ++++
Регистрация: 22.12.2005
запустите джоб
X++:
static void Job24_bc(Args _args)
{
    barcode bc = barcode::construct(BarcodeType::EAN128);
//    barcode bc = barcode::construct(BarcodeType::Code128);
    ;
    bc.string(true, '12345', BarcodeContentType::Item);
    info(bc.barcodeStr());
он должен вернуть строку отличную от '12345'

что это за штрихкод Code128? его штрихкодридер понимает?
и результат работы функции global::RuAny2EnUpr этот тип штрихкода съест?
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy
Старый 24.07.2009, 08:53   #18  
Hammer is offline
Hammer
Участник
Аватар для Hammer
 
43 / 12 (1) ++
Регистрация: 24.06.2009
Адрес: Подольск
Цитата:
Сообщение от ivas Посмотреть сообщение
запустите джоб
X++:
static void Job24_bc(Args _args)
{
    barcode bc = barcode::construct(BarcodeType::EAN128);
//    barcode bc = barcode::construct(BarcodeType::Code128);
    ;
    bc.string(true, '12345', BarcodeContentType::Item);
    info(bc.barcodeStr());
он должен вернуть строку отличную от '12345'

что это за штрихкод Code128? его штрихкодридер понимает?
и результат работы функции global::RuAny2EnUpr этот тип штрихкода съест?
1.Да понимает.
2.Нет не съест.

Запустил джоб
Виснет в классе на этом цикле - barcodeEAN128 , метод ItemId.
while (strLen(__itemId) < #EAN_LEN)
{
__itemId = '0' + __itemId;
}

Последний раз редактировалось Hammer; 24.07.2009 в 09:04.
Старый 29.07.2009, 10:20   #19  
Hammer is offline
Hammer
Участник
Аватар для Hammer
 
43 / 12 (1) ++
Регистрация: 24.06.2009
Адрес: Подольск
Thumbs up
Цитата:
Сообщение от lev Посмотреть сообщение
В общем была такая проблема! Штрих код выводился не корректный, просто полоски и маленький...
очень долго искал причину, и выяснилось, что при использовании класса Barcode почему то периодически возвращалась кривая шифровка штрих кода.
Решил эту проблему использование DLL на прямую, сейчас печатает стабильно!
Вот пример:
X++:
static str getBarcodeStr(InvoiceBarcode  _invoiceBarcode)
{  
    str         barcodeStr;
    DLL         barcodeDLL;
    DLLFunction bC_EANUPC;
    #DEFINE.DLL_NAME('Bcfont32')
    ;

    barcodeDLL = new DLL(#DLL_NAME);
    bC_EANUPC = new DLLFunction(barcodeDLL, 'BC_EAN13');
    bC_EANUPC.returns(ExtTypes::STRING);
    bC_EANUPC.arg(ExtTypes::String);

    barcodeStr = strFmt("%1", bC_EANUPC.call(substr(strFmt("%1",_invoiceBarcode),1,strlen(_invoiceBarcode) - 1)));

    return barcodeStr;
}
УРАААА!!! Собственно говоря проблема решилась именно таким макаром! Спасибо большое lev.
Старый 12.08.2009, 17:06   #20  
plumbum is offline
plumbum
Участник
Соотечественники
 
182 / 86 (3) ++++
Регистрация: 07.12.2007
Адрес: Vienna, AT
Я столкнулся тоже с такой проблемой, решилось все бэкпортом классов BarcodeCode128, BarcodeEAN128 из AX4.0 - ИМХО, так проще и понятнее, даже видно как этот код формируется, потому что в 4.0 нет вообще обращения к библиотеке.
__________________
http://www.axdevposts.blogspot.com
Пришел, уведел.... отойди, дай другому увидеть!
За это сообщение автора поблагодарили: leva (2).
Теги
barcode, печать, штрихкод

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема с раскладкой при считывании штрих кода Must_Die DAX: Программирование 2 26.05.2009 12:37
Шрифт штрих-кода "как в 1С" Владимир Максимов DAX: Программирование 7 27.04.2009 10:50
Проблема с конвертацией строки в штрих-код (barcode) в классе BarCodeCode128 petr DAX: Программирование 2 17.09.2007 11:06
Печать ШТРИХ-КОДА Nic DAX: Функционал 11 19.01.2005 08:16
проблема с настройкой штрихового кода Nic DAX: Функционал 4 27.12.2004 09:04

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

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

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