Как вручную определить переменную в языке программирования Zebra? (БФЛ)

Я программирую на ZPL и мне нужно определить переменную вручную. Простой пример Hello World:

^XA
^FO,20,10^ADN,40,25^FDHello World^FS
^XZ

Я хочу иметь возможность:

SET $HW$ = Hello World
^XA
^FO,20,10^ADN,40,25^FD$HW$^FS
^XZ

Я прочитал документацию по Zebra, и в ней говорится только об ее использовании в ZebraDesigner Pro, но я должен определить ее с помощью кода, а не с графическим режимом. И переменные, такие как $CODEDATA$, SVERSION$ здесь не работают автоматически Тогда как я могу определить переменную в ZPL?

3 ответа

Решение

Вот способ сделать то, что вы ищете. Сохраните формат с переменной. ^FN11 - переменная в сохраненном формате. Я сохраняю формат на внутренней флэш-памяти (E:) Я назвал сохраненный формат STORE.ZPL

^XA
^DFE:STORE.ZPL^FS
^FO,20,10^ADN,40,25^FH\^FN11^^FS
^XZ

Затем я вспоминаю формат и устанавливаю переменную

^XA
^XFE:STORE.ZPL^FS
^FN11Hello World^FS
^XZ

ZPL не язык программирования, это язык принтера.
Как я знаю, ZPL не поддерживает переменные. Ваша программа должна сделать это путем создания правильного кода ZPL.

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

Вот что делает дизайн студия. Он заменит переменный с фактической строкой и отправить его на принтер.

Так что просто сделайте что-то вроде:
Шаблон:

template="^XA  
   ^FO,20,10^ADN,40,25^FD$HW$^FS
   ^XZ"

и затем установите содержание:

printercommand = template.replace("$HW$", "Hello World")

Я создал тип меток-переменных, например:

      ^FO 465,125
^AR
^FD.DATE.
^FS
^FO 465,280
^AR
^FD.TIME.
^FS
^FO 523,530
^AQ

Знаки переменных*.DATE.*и*.TIME.*.

Затем я используюReplaceстроковый метод; например, на С#:

      myLabelcodeString.Replace(".DATE.,DateTime.Now.toString("dd/MM/yy")).REplace(".TIME.",DateTime.Now("hh:mm:ss tt");

и отправитьmyLabelcodeStringк принтеру.

Другие вопросы по тегам