|  22.07.2009, 15:59 | #1 | 
| Участник | Проблема печати Штрих-кода 
			
			Может кто сталкивался с такой проблемой. У некоторых!!!! пользователей Штрих код печатается очень короткий и соответственно даже несчитывается после сканером. Если кто сталкивался - подскажите в чем может быть проблема???  Вывожу так 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; 22.07.2009 в 17:13. | 
|  | 
|  22.07.2009, 17:15 | #3 | 
| Участник | 
			
			Отчет выводится через report на экран, Это отчет стандартными средствами Аксапты. Аксапта 3.0. и Визуально и при выводе на бумагу. Это именно отчет, а именно торг 12, HP - а точнее не скажу.
		 | 
|  | 
|  22.07.2009, 17:17 | #4 | 
| Участник | 
			
			Лазерный!    | 
|  | 
|  22.07.2009, 17:18 | #5 | 
| Участник | 
			
			Какой штрифт указан в настройках для этого поля в репорте ?
		 | 
|  | 
|  22.07.2009, 17:21 | #6 | 
| Участник | 
			
			Сделано. BC C128 Medium. | 
|  | 
|  22.07.2009, 17:21 | #7 | 
| Ищущий знания... | 
			
			В общем была такая проблема! Штрих код выводился не корректный, просто полоски и маленький... очень долго искал причину, и выяснилось, что при использовании класса 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 | 
| Участник | Цитата: 
		
			Сообщение от 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 | 
| Участник | |
|  | 
|  23.07.2009, 09:06 | #10 | 
| Участник | Цитата: 
		
			Сообщение от 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 | 
| Участник | 
			
			Как то была проблема с тем что шрифт в отчёте слетал, потому что железно прописал его на контроле. Перекрыл метод init report-a и там его назначил barcode.font(barcodeSetup.fontName); И проблема исчезла. 
				__________________ Энергия молодых и неравнодушных способна изменить мир к лучшему. | 
|  | 
|  23.07.2009, 09:48 | #12 | 
| Участник | Цитата: Будем ждать!!! Пока проблема всплывет. | 
|  | 
|  23.07.2009, 09:53 | #13 | 
| Участник | 
			
			Да и ещё длину это контрола указывал в mm, а не в символах.
		 
				__________________ Энергия молодых и неравнодушных способна изменить мир к лучшему. | 
|  | 
|  23.07.2009, 09:59 | #14 | 
| Участник | |
|  | 
|  23.07.2009, 14:36 | #15 | 
| Участник | 
			
			там кажись надо вызвать функцию типа encode...  посмотрите по системе где используется и сделайте также) 
				__________________ aLL woRk aNd nO JoY MAKes jAck a dULL Boy | 
|  | 
|  23.07.2009, 15:18 | #16 | 
| Участник | |
|  | 
|  23.07.2009, 17:18 | #17 | 
| Участник | 
			
			запустите джоб 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()); что это за штрихкод Code128? его штрихкодридер понимает? и результат работы функции global::RuAny2EnUpr этот тип штрихкода съест? 
				__________________ aLL woRk aNd nO JoY MAKes jAck a dULL Boy | 
|  | 
|  24.07.2009, 08:53 | #18 | 
| Участник | Цитата: 
		
			Сообщение от 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()); что это за штрихкод Code128? его штрихкодридер понимает? и результат работы функции global::RuAny2EnUpr этот тип штрихкода съест? 2.Нет не съест. Запустил джоб Виснет в классе на этом цикле - barcodeEAN128 , метод ItemId. while (strLen(__itemId) < #EAN_LEN) { __itemId = '0' + __itemId; } Последний раз редактировалось Hammer; 24.07.2009 в 09:04. | 
|  | 
|  29.07.2009, 10:20 | #19 | 
| Участник |   Цитата: 
		
			Сообщение от 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; } | 
|  | 
|  12.08.2009, 17:06 | #20 | 
| Участник | 
			
			Я столкнулся тоже с такой проблемой, решилось все бэкпортом классов BarcodeCode128, BarcodeEAN128 из AX4.0 - ИМХО, так проще и понятнее, даже видно как этот код формируется, потому что в 4.0 нет вообще обращения к библиотеке.
		 
				__________________ http://www.axdevposts.blogspot.com Пришел, уведел.... отойди, дай другому увидеть! | 
|  | |
| За это сообщение автора поблагодарили: leva (2). | |