Страница 5 из 9

Расширение генератор штрихкода и QR-кода

Добавлено: 19 апр 2020, 18:46
Иван
Расширение для кнопки. Создан на основе библиотеки что поддерживает все типы штрихкода zint_win32_2.8.0. Расширение работает автономно. Код написан по примеру функции "Генератор QR-кода offline". Добавлено ряд настроек внешнего вида.

При первом запуске будет создана утилита [Каталог-DataExpress]\ext\Barcode\BarcodeZint.exe. В процессе генерации изображения будет создан временный файл картинки в папке temp пользователя Windows. После его загрузки в базу он будет удален.

В зависимости от настроек генерирует необходимый формат штрихкода. Несколько основных уже прописаны в выборе списка при настройке (если ничего не выбирать будет генерировать CODE 128). Другой тип (помимо тех что уже прописаны в настройки расширения) можно прописать в кастумном поле2 числом, посмотрев номер отвечающий нужному типу (добавлено в описание расширения).

Версия 1.2 - исправлено дублирование штрихкода в случае размещения на одной форме несколько картинок и кнопок с подключенным расширением.

Версия 1.3 - исправлена ошибка возможности настройки расширения после обновления версии ДХ.

Версия 1.4 - исправлена ошибка создания кастумных типов штрихкодов.

Demo
https://www.dropbox.com/s/4ja6ihx22uu7b5i/DEMO_Barcode.FDB?dl=0

Расширение генератор штрихкода и QR-кода

Добавлено: 08 окт 2020, 16:40
rausNT
Подскажите, пожалуйста.
Можно ли сгенерированный QR код отобразить в письме, которое создано плагином OUTLOOKMAILSENDEX?

Расширение генератор штрихкода и QR-кода

Добавлено: 09 окт 2020, 08:47
easpnz
Иван писал(а):
easpnz писал(а):Добрый вечер. Прошу подсказать - а есть возможность массовой генерации штрихкодов в табличной части? (например имеем перечень товара для маркировки, добавили туда эту кнопку с генерацией штрихкода и каким то расширением данную кнопку "кликнули" в каждой строке таблицы)


Добавил кнопку. Проходит по всем записям таблицы и если картинки еще не присвоено то нажимает кнопку.


Спасибо большое, все работает! А сильно там скрипт поменять нужно если помимо вложенной таблицы нужно обработать все формы справочника?

Расширение генератор штрихкода и QR-кода

Добавлено: 09 окт 2020, 10:00
Иван
easpnz писал(а):
Иван писал(а):
easpnz писал(а):Добрый вечер. Прошу подсказать - а есть возможность массовой генерации штрихкодов в табличной части? (например имеем перечень товара для маркировки, добавили туда эту кнопку с генерацией штрихкода и каким то расширением данную кнопку "кликнули" в каждой строке таблицы)


Добавил кнопку. Проходит по всем записям таблицы и если картинки еще не присвоено то нажимает кнопку.


Спасибо большое, все работает! А сильно там скрипт поменять нужно если помимо вложенной таблицы нужно обработать все формы справочника?


Не сильно. Замените процедуру. Учитесь писать скрипты)

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

procedure jjj (s: TObject);
var i, j: integer; v: TdxDBImage; vv: TdxButton;T, TG: TdxForm;
begin
  if self.state=dsEdit then
  begin
  self.Cancel;
  T:= TdxForm.Create(self.FormCaption);
  T.Open;
  TG:= TdxGrid(T.findComponent('dxGrid1')).form;
  v := TdxDBImage(TG.findcomponent('dxDBImage1'));
  vv:= TdxButton(TG.findcomponent('dxButton1'));
  T.MoveLast;
  T.MoveFirst;

  for j:=0 to T.recordcount-1 do
  if T.state<>dsEdit then
  begin
   T.Edit;
   TG.MoveLast;
   TG.MoveFirst;
   for i:=0 to TG.recordcount-1 do
   begin
      if vartostr(v.SourceFileName)='' then
      begin
          TG.Edit;
          vv.Click;
          TG.Post;
      end;
      TG.MoveNext;
   end;

   T.Post;
   T.MoveNext;
  end;
  if T<>nil then T.Free;
  self.Edit;
  end
  else
  msgbox('','Для использования кнопки массового создания штрихкодов запись должа быть в режиме редактирования, а не вставки.');
end;

 

Расширение генератор штрихкода и QR-кода

Добавлено: 12 окт 2020, 16:32
rausNT
ТС - спасибо за расширение!
Вопрос - подскажите, хотел использовать Ваше расширение для генерации штрихкода для платежных стистем по ГОСТ Р 56042-2014 Стандарты финансовых операций. Двумерные символы штрихового кода для осуществления платежей физических лиц из Таблица В.1 http://docs.cntd.ru/document/1200110981
Но возникла проблема - русские буквы в платежных приложениях Сбербанк и Тинькофф отражаются как крякозяблы. В обычных сканерах-приложениях все ок.
Можно ли стандарт кодировки изменять? (допустим в настройках), Вы можете это сделать?
(кажется использует ASCII, WIN1251, KOI8-R)

Расширение генератор штрихкода и QR-кода

Добавлено: 13 окт 2020, 09:29
easpnz
Иван писал(а):
easpnz писал(а):
Иван писал(а):
Добавил кнопку. Проходит по всем записям таблицы и если картинки еще не присвоено то нажимает кнопку.


Спасибо большое, все работает! А сильно там скрипт поменять нужно если помимо вложенной таблицы нужно обработать все формы справочника?


Не сильно. Замените процедуру. Учитесь писать скрипты)

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

procedure jjj (s: TObject);
var i, j: integer; v: TdxDBImage; vv: TdxButton;T, TG: TdxForm;
begin
  if self.state=dsEdit then
  begin
  self.Cancel;
  T:= TdxForm.Create(self.FormCaption);
  T.Open;
  TG:= TdxGrid(T.findComponent('dxGrid1')).form;
  v := TdxDBImage(TG.findcomponent('dxDBImage1'));
  vv:= TdxButton(TG.findcomponent('dxButton1'));
  T.MoveLast;
  T.MoveFirst;

  for j:=0 to T.recordcount-1 do
  if T.state<>dsEdit then
  begin
   T.Edit;
   TG.MoveLast;
   TG.MoveFirst;
   for i:=0 to TG.recordcount-1 do
   begin
      if vartostr(v.SourceFileName)='' then
      begin
          TG.Edit;
          vv.Click;
          TG.Post;
      end;
      TG.MoveNext;
   end;

   T.Post;
   T.MoveNext;
  end;
  if T<>nil then T.Free;
  self.Edit;
  end
  else
  msgbox('','Для использования кнопки массового создания штрихкодов запись должа быть в режиме редактирования, а не вставки.');
end;

 

Спасибо большое! Буду пытаться изучать скрипты )

Расширение генератор штрихкода и QR-кода

Добавлено: 13 окт 2020, 09:36
Иван
rausNT писал(а):ТС - спасибо за расширение!
Вопрос - подскажите, хотел использовать Ваше расширение для генерации штрихкода для платежных стистем по ГОСТ Р 56042-2014 Стандарты финансовых операций. Двумерные символы штрихового кода для осуществления платежей физических лиц из Таблица В.1 http://docs.cntd.ru/document/1200110981
Но возникла проблема - русские буквы в платежных приложениях Сбербанк и Тинькофф отражаются как крякозяблы. В обычных сканерах-приложениях все ок.
Можно ли стандарт кодировки изменять? (допустим в настройках), Вы можете это сделать?
(кажется использует ASCII, WIN1251, KOI8-R)


По таким тонкостям смотрите описание библиотеки что производит кодировку zint_win32_2.8.0

Расширение генератор штрихкода и QR-кода

Добавлено: 13 окт 2020, 12:09
rausNT
Иван писал(а):По таким тонкостям смотрите описание библиотеки что производит кодировку zint_win32_2.8.0


Нашел в Ваших исходниках

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

sss:= WinCPToUtf8(VarToStr(TextForEncode));

Т.е. как я понимаю в конверитирует в Utf-8. А как то там же можно в WIN1251 или KOI8-R конвертировать?

Расширение генератор штрихкода и QR-кода

Добавлено: 13 окт 2020, 14:39
Иван
rausNT писал(а):
Иван писал(а):По таким тонкостям смотрите описание библиотеки что производит кодировку zint_win32_2.8.0


Нашел в Ваших исходниках

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

sss:= WinCPToUtf8(VarToStr(TextForEncode));

Т.е. как я понимаю в конверитирует в Utf-8. А как то там же можно в WIN1251 или KOI8-R конвертировать?


Я не в курсе тонкостей банковских сканеров, нужно пробовать.

Расширение генератор штрихкода и QR-кода

Добавлено: 13 окт 2020, 14:56
rausNT
Я к сожалению не нашел в Лазарусе ничего похожего на WinCPToKoi8 ни на WinCPTo1251.
Может подскажите, я бы просто у себя поменял.

Расширение генератор штрихкода и QR-кода

Добавлено: 13 окт 2020, 17:18
rausNT
понял как заставить это все работать:
В начале строки QR кода писать ST00011 (это как я понял WIN1251)
а код заменить так:

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

   // sss:= WinCPToUtf8(VarToStr(TextForEncode));
    sss:= (VarToStr(TextForEncode));


Возможно автор вынесет это в настройки, если пожелает.