Как работают RFID-метки в FastReport VCL

21.04.2025

RFID-метка — это современная технология идентификации товаров, которая приходит на смену штрих-кодам. Главное отличие RFID-меток в том, что они используют радиосигналы. Это позволяет быстро сканировать большие партии товаров, что значительно экономит время. Кроме того, RFID-метки активно применяются для идентификации сотрудников в компаниях. В этой статье мы рассмотрим принцип работы RFID-меток с новым объектом TfrxDeviceCommand в FastReport VCL.

 


 

Особенности структуры RFID

В структуре RFID-метки выделяются четыре блока данных:

  1. Зарезервированный блок, содержащий два пароля: пароль доступа и пароль уничтожения. Первый пароль позволяет управлять доступом к определённым блокам или частям памяти метки. Второй пароль используется для постоянного отключения метки или её повторного использования (если такая функция поддерживается). Каждый из паролей имеет длину не более 32 бит.
  2. Блок с электронным кодом продукта.
  3. Блок с идентификатором метки.
  4. Блок с пользовательскими данными.

Все банки кроме первого могут иметь различный объем или они могут быть заблокированы поставщиками, все это описывается в характеристиках метки. Стандарты форматирования данных этих банков описаны в этом документе. Для локального использования можно использовать любое форматирование данных удобное пользователю для работы с ними. 

Для реализации меток в FastReport VCL был создан объект TfrxDeviceCommand. В котором RFID-метка является одним из возможных пресетов. На данный момент это единственный пресет, но в будущем мы планируем расширять эту категорию.

В версии 2025.1.8 данный объект при экспорте обрабатывается только ZPL-экспортом (остальные экспорты его пока пропускают). Мы планируем расширять его обработку и на другие экспорты при запросах.

DeviceCommand на странице отчёта

 


 

Особенности объекта TfrxDeviceCommand

  • Не является визуальным, то есть не отображается в превью (только в дизайнере).
  • Не имеет высоты и ширины.
  • Позиция внутри контейнера (Page или Band) используется исключительно в дизайнере для большей наглядности. Иначе говоря, позиция не влияет на очередь обработки при экспорте. Это можно представить так, что при экспорте TfrxDeviceCommand имеет свою отдельную очередь.

Отдельная очередь при единственном пресете является избыточным решением. Однако всё же стоит рассмотреть параметры объекта TfrxDeviceCommand, оказывающие влияние на указанную очередь.

 

Для настройки времени обработки в объекте есть поле ProcessingTime, которое может принимать 2 значения:

  • ptBeforeView отвечает обрабатывать перед всем содержимым контейнера);
  • ptAfterView (после содержимого контейнера).

И если у контейнера есть несколько TfrxDeviceCommand с одинаковым ProcessingTime, то потребуется использовать поле Order (от 0 до MaxInt).

Допустим в контейнере лежит 3 объекта TfrxDeviceCommand с такими параметрами:

  1. ProcessingTime = ptAfterView , Order = 1;
  2. ProcessingTime = ptBeforeView, Order = 0;
  3. ProcessingTime = ptAfterView , Order = 0;

При экспорте контейнера порядок обработки будет следующий:

  • второй объект (ProcessingTime = ptBeforeView, Order = 0);
  • содержимое контейнера;
  • третий объект (ProcessingTime = ptAfterView , Order = 0);
  • первый объект (ProcessingTime = ptAfterView , Order = 1);

Также в этом объекте есть следующие поля: 

  • DeviceType - используется для выбора пресета, сейчас там только одно значение dtRFIDLabel и изменить его пока невозможно.
  • DeviceProperties - содержит поля, список которых меняются в зависимости от выбранного DeviceType. Именно там хранится содержимое текущего пресета (RFID-метки).

 


 

Как настроить содержимое объекта

Настроить содержимое можно не только в инспекторе объектов, но и в редакторе.

Редактор DeviceCommand

 

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

Редактор разделен на вкладки, в каждой из которых находятся свойства для определенного банка памяти и одна вкладка с прочими опциями метки.

Некоторые поля дублируются чтобы поддерживать заполнение выражениями (например из базы данных).

В зарезервированный блок данных пароли вносятся исключительно в формате шестнадцатеричного числа, состоящего из восьми символов. Кроме того, без заданного пароля доступа с ненулевым значением управление режимами доступа будет невозможно. В остальных блоках данных можно выбрать формат записи: либо шестнадцатеричное число, либо строку в кодировке ASCII.

Подробнее о поддержке RFID в ZPL можно почитать в официальной документации.

Этот объект для FastReport VCL — первый в своём роде. Но в будущем будут реализованы новые пресеты для этого объекта.

VCL FastReport ZPL Дизайнер
24 апреля 2025

Как открыть и конвертировать файл FP3 с помощью МоиОтчеты Конвертер

Рассказываем о формате FP3, который используется для готовых отчётов в бизнес-приложениях, и о возможности конвертировать такие файлы в различные форматы с помощью МоиОтчеты Конвертер.
21 апреля 2025

Работа с форматами XML и JSON в FastScript

В этой статье мы подробнее рассмотрим, как работать с JSON и XML в FastReport, увидим какие в них есть свойства и методы, а также построим отчеты из кода со скриптами.
21 апреля 2025

Работа с компонентом TfrShellTreeView в FastReport VCL

В данной статье мы рассмотрим компонент TfrShellTreeView. Он предназначен для отображения элементов файловой системы и частично является аналогом компонентов TDirectoryListBox, TDirectoryOutline и TShellTreeView.