Кириллица в штрих-коде Data Matrix

Обсуждение Stimulsoft Reports.NET
Аватара пользователя
Андрей Сорокин
Сообщения: 107
Зарегистрирован: 02 июл 2009, 11:31
Откуда: Bryansk, Russia
Контактная информация:

Кириллица в штрих-коде Data Matrix

Сообщение Андрей Сорокин »

Добрый день,
не могу получить русские буквы после считывания штрих-кода.
Пример отчёта высылаю, версия 2015.3.6
Вложения
Report.mrt
(3.51 КБ) 368 скачиваний
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Кириллица в штрих-коде Data Matrix

Сообщение HighAley »

Здравствуйте, Андрей.

Ответ на свой вопрос вы можете найти в теме Проблема с русскими буквами в штрих-коде типа DataMatrix.

Спасибо.
Аватара пользователя
Андрей Сорокин
Сообщения: 107
Зарегистрирован: 02 июл 2009, 11:31
Откуда: Bryansk, Russia
Контактная информация:

Re: Кириллица в штрих-коде Data Matrix

Сообщение Андрей Сорокин »

HighAley писал(а):Здравствуйте, Андрей.

Ответ на свой вопрос вы можете найти в теме Проблема с русскими буквами в штрих-коде типа DataMatrix.

Спасибо.
Спасибо за ссылку, не могли бы вы выслать пример кода? Не разберусь как и где вызвать функцию...
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Кириллица в штрих-коде Data Matrix

Сообщение HighAley »

Здравствуйте, Андрей.

Функцию надо описать во вкладке Код дизайнера.
А использовать её можно прямо в свойстве Code штрих-кода.

Спасибо.
Аватара пользователя
Андрей Сорокин
Сообщения: 107
Зарегистрирован: 02 июл 2009, 11:31
Откуда: Bryansk, Russia
Контактная информация:

Re: Кириллица в штрих-коде Data Matrix

Сообщение Андрей Сорокин »

HighAley писал(а):Здравствуйте, Андрей.

Функцию надо описать во вкладке Код дизайнера.
А использовать её можно прямо в свойстве Code штрих-кода.

Спасибо.
Добрый день,
это я понял, но у меня поле Code для штрихкода состоит из очень большого кол-ва параметров:
!!8!!!01!{ReportSickList.SickListID}!{ReportSickList.SickListID_Ref}!{(ReportSickList.SickListID_Ref == "" ? "1" : "0")}!{(Duplicate ? "1" : "0")}!{ReportSickList.OpenDateYear}-{ReportSickList.OpenDateMonth}-{ReportSickList.OpenDateDay}!{OrgName}!{ReportSickList.Address}!{OGRN}!{ReportSickList.LastName}!{ReportSickList.FirstName}!{ReportSickList.Patronymic}!{ReportSickList.BirthDateYear}-{ReportSickList.BirthDateMonth}-{ReportSickList.BirthDateDay}!{(ReportSickList.Sex == "М" ? "0" : "1")}!{(AddWorkPlaceName == "" ? ToUpperCase(ReportSickList.WorkPlaceName) : ToUpperCase(AddWorkPlaceName))}!{(AddWorkPlaceName == "" ? "1" : "0")}!{ReportSickList.SickListReasonID_Ref}!{ReportSickList.SickListAddReasonID_Ref}!!{MainSickListID}!{((ReportSickList.WorkPlaceName == "" && AddWorkPlaceName == "") ? "1" : "0")}!{ReportSickList.Date1Year}{ReportSickList.Date1Month}{ReportSickList.Date1Day}!{ReportSickList.Date2Year}{ReportSickList.Date2Month}{ReportSickList.Date2Day}!{ReportSickList.VoucherNumber}!{ReportSickList.SanatoriumOGRN}!{ReportSickList.AgeYear}!{ReportSickList.AgeMonth}!{ReportSickList.RelationID_Ref}!{ReportSickList.Name}!!!!!{ReportSickList.EarlyPregnancyTimeRegistration}!{ReportSickList.InDateYear}{ReportSickList.InDateMonth}{ReportSickList.InDateDay}!{ReportSickList.OutDateYear}{ReportSickList.OutDateMonth}{ReportSickList.OutDateDay}!{ReportSickList.RegimenBreachID_Ref}!{ReportSickList.RegimenBreachDateYear}{ReportSickList.RegimenBreachDateMonth}{ReportSickList.RegimenBreachDateDay}!{ReportSickList.MSEDate1Year}{ReportSickList.MSEDate1Month}{ReportSickList.MSEDate1Day}!{ReportSickList.MSEDate2Year}{ReportSickList.MSEDate2Month}{ReportSickList.MSEDate2Day}!{ReportSickList.MSEDate3Year}{ReportSickList.MSEDate3Month}{ReportSickList.MSEDate3Day}!{ReportSickList.DisabilityDegree}!{ReportSickList.StartDate1Year}{ReportSickList.StartDate1Month}{ReportSickList.StartDate1Day}!{ReportSickList.EndDate1Year}{ReportSickList.EndDate1Month}{ReportSickList.EndDate1Day}!{ReportSickList.SpecialistName1}!{ReportSickList.WorkerName1}!{ReportSickList.StartDate2Year}{ReportSickList.StartDate2Month}{ReportSickList.StartDate2Day}!{ReportSickList.EndDate2Year}{ReportSickList.EndDate2Month}{ReportSickList.EndDate2Day}!{ReportSickList.SpecialistName2}!{ReportSickList.WorkerName2}!{ReportSickList.StartDate3Year}{ReportSickList.StartDate3Month}{ReportSickList.StartDate3Day}!{ReportSickList.EndDate3Year}{ReportSickList.EndDate3Month}{ReportSickList.EndDate3Day}!{ReportSickList.SpecialistName3}!{ReportSickList.WorkerName3}!{ReportSickList.SickListResultID_Ref}!{(ReportSickList.SickListResultID_Ref != null ? ReportSickList.WorkDateYear + ReportSickList.WorkDateMonth + ReportSickList.WorkDateDay : "")}!{(ReportSickList.SickListResultID_Ref == null ? ReportSickList.WorkDateYear + ReportSickList.WorkDateMonth + ReportSickList.WorkDateDay : "")}!{ReportSickList.NextSickListID}!
Получается для каждого текстового поля, содержащего кириллицу, надо вызывать ф-цию конвертации?
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Кириллица в штрих-коде Data Matrix

Сообщение HighAley »

Здравствуйте, Андрей.

Вы можете всё ваше выражение объединить в одну строку в одном выражении, а потом к нему применить эту функцию.
Всё выражение должно быть в фигурных скобках.

Спасибо.
Аватара пользователя
Андрей Сорокин
Сообщения: 107
Зарегистрирован: 02 июл 2009, 11:31
Откуда: Bryansk, Russia
Контактная информация:

Re: Кириллица в штрих-коде Data Matrix

Сообщение Андрей Сорокин »

Не могу разобраться с кодировкой, кириллица не распознаётся корректно... Может был у кого-то опыт печати Data Matrix штрихкода на бланке листка нетрудоспособности?
Аватара пользователя
Андрей Сорокин
Сообщения: 107
Зарегистрирован: 02 июл 2009, 11:31
Откуда: Bryansk, Russia
Контактная информация:

Re: Кириллица в штрих-коде Data Matrix

Сообщение Андрей Сорокин »

Повторю свою просьбу: можете прикрепить пример отчёта со штрих-кодом Data Matrix с корректно закодированной кириллицей? Возможно данное решение понадобится ещё кому-нибудь в будущем.
Спасибо.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Кириллица в штрих-коде Data Matrix

Сообщение HighAley »

Здравствуйте.

Вот пример вашего отчёта с функцией кодирования.
Report(12).mrt
(3.91 КБ) 358 скачиваний
Но есть один нюанс. По умолчанию сканеты сканируют текст в кодировке 1252. Если вы получаете в сканере следующий текст !Ïðèìåð òåêñòà!10-20-30, то вы должны в сканере явно указать кодировку 1251 или программно конвертировать текст:

Код: Выделить всё

var st = Encoding.GetEncoding("Windows-1251").GetString(Encoding.GetEncoding("Windows-1252").GetBytes("!Ïðèìåð òåêñòà!10-20-30"));
Спасибо.
Аватара пользователя
Андрей Сорокин
Сообщения: 107
Зарегистрирован: 02 июл 2009, 11:31
Откуда: Bryansk, Russia
Контактная информация:

Re: Кириллица в штрих-коде Data Matrix

Сообщение Андрей Сорокин »

Спасибо за ответ и за пример!
Перепробовал все возможные варианты кодирования штихкода и конвертации кодовых страниц, не могу получить то, что требуется, не знаю в какую сторону копать...
Есть строка символов:

Код: Выделить всё

!!8!!!01!001234567891!!1!0!2011-01-01!Городская больница №1!г.Москва, ул.Бутырская, д.88!123456789012345!Иванов!Иван!Иванович!1980-01-01!0!ОАО Предприятие!1!01!!!!0!!!!!!!!!!!!!!!!!!!!!!2011-05-01!2011-05-10!Терапевт!Петрова В.В.!!!!!!!!!!!2011-05-11!!
Требуется получить такой штрихкод:
barcode.jpg
barcode.jpg (11.64 КБ) 6717 просмотров
P.S. Пробовал сканировать пример и то, что генерит стимул - результат декодирования одинаковый, а визуально коды отличаются.
Ответить