Как вручную определить переменную в языке программирования 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
к принтеру.