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


person Marcelo Camargo    schedule 29.08.2014    source источник
comment
Что ж, я решил эту проблему, разработав компилятор, который поддерживает зависимые типы и компилирует в ZPL: github.com/capybara-language< /а>   -  person Marcelo Camargo    schedule 13.10.2015


Ответы (2)


Вот способ сделать то, что вы ищете. Сохраните формат с переменной. ^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
person Elton Saunders    schedule 30.08.2014

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

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

Этим занимается дизайн-студия. Он заменит переменную фактической строкой и отправит ее на принтер.

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

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

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

printercommand = template.replace("$HW$", "Hello World")
person mcdikki    schedule 29.08.2014
comment
ZPL определяется его официальной документацией как язык программирования и любым официальным документом. Языку программирования не обязательно быть полным по Тьюру, чтобы быть PL. ;) - person Marcelo Camargo; 29.08.2014
comment
Я использую чисто ZPL. Я создал IDE для разработки в ней и собираюсь сделать ее доступной на Github, но я просто искал способ сделать это в чистом коде ZPL, без Java, C#, Scheme, Clojure и производных. Жаль, что я не могу. - person Marcelo Camargo; 29.08.2014