Я немного озадачен, но уверен, что кто-то может пролить свет на это.Я создаю программу, которая может обрабатывать этикетки разной конструкции и отправлять их на принтер.Единственным ограничением является то, что администратор / пользователь программного обеспечения контролирует переменные в части label_type базы данных.
Вот текущая логика метки / значков идентификатора пользователя: -
Пользователь являетсявыбранный, который вызывает все их детали, а затем мы можем напечатать значок / метку
Детали, которые возвращаются в user_id, являются следующими и определены в классе.
private String user_id;
private String external_user_id;
private String username;
private String uid;
private String firstname;
private String lastname;
private String email;
private String telephone;
private String user_group_name;
private String user_group_type;
private String company_name;
private String category;
private String region_name;
метка, которая будет использоваться, выбирается из выпадающего списка, который возвращает: -
private String format;
private String label_data;
private String label_filename;
private String label_directory;
private String label_offset;
private String variables;
label_data и переменные являются единственной проблемой, поскольку другие переменные зависят от принтера.
Принтер выбранкоторый просто возвращает значения, чтобы можно было напечатать этикетку.
Данные label_data могут быть разработаны заказчиком и, чтобы сделать их специфичными для базы данных, они заменяют переменные следующими строками
переменная1 переменная2 переменная3 и т. Д.
Управление переменной находится в пределахзначение переменной: -
variable1 -user_id, variable2 -external_user_id, variable3 -username variable4 -uid variable5 -firstname variable6 -имя, переменная7 -почта, переменная8 -телефон, переменная9 -user_group_name, переменная 10 -user_group_type, переменная11 -company_name, переменная12 -категория, variable13 -region_name
Вот язык Zebra ZPL для простого значка идентификатора пользователя со штрих-кодом: -
CT ~~CD, ~ CC ^ ~ CT ~ \\\\ п ^ XA ~ TA000 ~ JSN ^ LT0 ^ MNW ^ MTT ^ PON ^ ПМН ^ LH0,0 ^ СОУ ^ PR3,3 ~ SD18 ^ ЮС ^ ЛРН ^ Ci0 ^ XZ \\\\ п ^ XA \\\\ п ^ MMT \\\\ п ^ PW609 \\\\ п ^ LL0406 \\\\ п ^ LS0 \\\\ п ^ FT29,63 ^ A0N, 28,28 ^FH \\\\\\\\ ^ FD variable5 ^ FS \\\\ п ^ FT29,106 ^ A0N, 28,28 ^ FH \\\\\\\\ ^ FD variable6 ^ FS \\\\ п ^ FO20,339 ^ GB559,0,8 ^ FS \\\\ п ^ BY3,3,160 ^ FT96,294 ^ BCN ,, Y, N \\\\ п ^ FD>: variable4 ^ FS \\\\ п ^ FO18, 121 ^ GB560,0,8 ^ FS \\\\ n ^ PQ1,0,1, Y ^ XZ
Как видите, в ZPL
вставлены следующие переменные переменная5 = имя
переменная6 = фамилия
переменная4 = uid
Я уже знал, что я 'У меня были проблемы с этим.Я разделил переменные вокруг ",", а затем "-", чтобы получить: -
номер_ переменной_имя_ переменной
переменная1 user_id
переменная2 external_user_id
variable3 username
etc
Внутри цикла for я выполняю поиск и замену: -
label_data= label_data.replace (номер_переменной, имя_переменной);
Как вам известно, происходит то, что имена переменных вставляются, а не значения предопределенных переменных, которые уже были возвращены.Я посмотрел, но я не могу понять, как это сделать ....
Метка_данных, которые я получаю: -
CT ~~ CD, ~ CC ^ ~ CT ~ \\\\ п ^ XA ~ TA000 ~ JSN ^ LT0 ^ MNW ^ MTT ^ PON ^ ПМН ^ LH0,0 ^ СОУ ^ PR3,3 ~ SD18 ^ ЮС ^ ЛРН ^ Ci0 ^ XZ \\\\ п ^ XA \\\\ п ^ MMT \\\\ п ^ PW609 \\\\ п ^ LL0406 \\\\ п ^ LS0 \\\\ п ^ FT29,63 ^ A0N, 28,28 ^ FH \\\\\\\\^ FD firtsname ^ FS \\\\ п ^ FT29,106 ^ A0N, 28,28 ^ FH \\\\\\\\ ^ FD 1142 * фамилия * ^ FS \\\\ п ^ FO20,339 ^ GB559,0,8 ^ FS \\\\ п ^ BY3,3,160 ^ FT96,294 ^ BCN ,, Y, N \\\\ п ^ FD>: UID ^ FS \\\\ n ^ FO18,121 ^ GB560,0,8 ^ FS \\\\ n ^ PQ1,0,1, Y ^ XZ
где это должно быть
CT ~~ CD, ~ CC ^ ~ CT ~ \\\\ п ^ XA ~ TA000 ~ JSN ^ LT0 ^ MNW ^ MTT ^ PON ^ ПМН ^ LH0,0 ^ СОУ ^ PR3,3 ~ SD18 ^ ЮС ^LRN ^ Ci0 ^ XZ \\\\ п ^ XA \\\\ п ^ MMT \\\\ п ^ PW609 \\\\ п ^ LL0406 \\\\ п ^ LS0 \\\\ п ^ FT29,63 ^A0N, 28,28 ^ FH \\\\\\\\ ^ FD Джо ^ FS \\\\ п ^ FT29,106 ^ A0N, 28,28 ^ FH \\\\\\\\ ^ FD Bloggs ^ FS \\\\ п ^ FO20,339 ^ GB559,0,8 ^ FS \\\\ п ^ BY3,3,160 ^ FT96,294 ^ BCN ,, Y, N \\\\ п ^ FD>: 236548 ^ FS \\\\ п ^ FO18,121 ^ GB560,0,8 ^ FS \\\\ п ^ PQ1,0,1, Y ^ XZ
Любая помощь приветствуется