Переменная Java - PullRequest
       1

Переменная Java

0 голосов
/ 26 сентября 2018

Я немного озадачен, но уверен, что кто-то может пролить свет на это.Я создаю программу, которая может обрабатывать этикетки разной конструкции и отправлять их на принтер.Единственным ограничением является то, что администратор / пользователь программного обеспечения контролирует переменные в части 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

Любая помощь приветствуется

1 Ответ

0 голосов
/ 26 сентября 2018

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

variable5-firstname

В этой части после разделения строки на «,» вы можете использовать indexOf и подстроку, чтобы получить значение переменной, если я интерпретирую то, что вы пытаетесь объяснить правильно.

String[] variables = string.split(",");
for(int i = 0; i < 13; i++){
...
if(i == 5){ //However you are parsing
    firstname = variables[i].substring(0, variables[i].indexOf("-"));
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...