[ОТВЕТИТЬ]
21.05.2015 12:17
manhant
 
Просьба помочь:
1) необходимо вывести в печатную форму чека id кассира из таблицы trm_in_users
2) в печатной форме вывести только 6 знаков обрезав 1 в конце и все остальные впереди.
Как это реализовать в lua?
просто имя пользователя вывести понятно:
text = text .. ukm.rightpad(__header.login.name, width, " ") .. "
";
а как именно id и отсечь ненужные знаки?
id кассиров разной длины.
пример:

вывести нужно 6 знаков: 300933
- отсекаем последнюю цифру.
- и все цифры (при любом кол-во) до.
Миниатюры
Нажмите на изображение для увеличения
Название: iduser.png
Просмотров: 426
Размер:	4.8 Кб
ID:	4701  
21.05.2015 13:16
Павел Сосновских
 
Код:
        text = text .. ukm.left(ukm.right(ukm.rightcut(tostring(__header.login.id),1),6), width) .. "\n";
21.05.2015 15:27
manhant
 
В чек не выводиться id, добавил информацию сразу после вывода имени:
text = text .. ukm.rightpad(__header.login.name, width, " ") .. "\n";
text = text .. ukm.left(ukm.right(ukm.rightcut(tostring(__header.login.id),1),6), width) .. "\n";
21.05.2015 15:48
manhant
 
В чеке появилась пустая строка:
Миниатюры
Нажмите на изображение для увеличения
Название: id.jpg
Просмотров: 352
Размер:	781.5 Кб
ID:	4702  
21.05.2015 16:54
Павел Сосновских
 
что-то "Не верю"(с)
откуда "#"?
Наверное:
Код:
text = text .. ukm.left(ukm.right(ukm.rightcut(tostring(__header.login.id),1),6), width) .. "\n"; 
text = text .. ukm.rightpad(__header.login.name, width, " ") .. "\n";
у этого пользователя точно trm_in_users.id длинный как в примере?
указанное поведение может быть, если мое предположение о коде верно и у этого кассира ид из одной цифры
попробуйте:
Код:
text = text .. ukm.left(tostring(__header.login.id), width) .. "\n"; 
text = text .. ukm.left(ukm.rightcut(tostring(__header.login.id),1), width) .. "\n"; 
text = text .. ukm.left(ukm.right(ukm.rightcut(tostring(__header.login.id),1),6), width) .. "\n"; 
text = text .. ukm.rightpad(__header.login.name, width, " ") .. "\n";
что будет?
предположу, что примерно так:
Код:
...
#Терминал №1
#1
#
#
#Иванов ...
...
21.05.2015 17:36
manhant
 
Да, Вы правы, я изменил в базе вручную id, но он не применился и id был 1.
Теперь все работает, спасибо.
22.05.2015 14:21
manhant
 
Подскажите, а возможно ли данную информацию выводить в подвал чека?
22.05.2015 14:41
Mtirt
 
А что вам мешает попробовать сделать это?
22.05.2015 14:43
vdm
 
__footer.receipt.header.login.name и т.п.
22.05.2015 14:59
manhant
 
Получилось вывести и в подвал с отсечением 1 последнего знака и выводом оставшихся 6 знаков с конца, отсекая все знаки впереди:
text = text .. ukm.left(ukm.right(ukm.rightcut(tostring(__footer.receipt.login.id),1),6), width) .. "\n";
18.09.2015 15:46
manhant
 
Работая с предложенным решением столкнулись с двумя проблемами:
1) при просмотре на вебе чеков возвращает ошибку ссылаясь на строку с вывод id кассира.


text = text .. ukm.center("№ працівника: " .. ukm.right(ukm.rightcut(tostring(__footer.receipt.login.id),0),6), width, " ") .. "\n";

Что необходимо исправить, чтобы ошибка не возникала?

2) персонал(кассиры) у нас попадают в УКМ из внешней системы, их id заливаются определенным шаблоном, как пример 10022003, где 10 - это префикс, 022003 - код кассира, так как в УКМ так же есть персонал заведенный в самом УКМ и id генерируются самой торговой системой, необходимо их непечатать, т.е. выводить в печать только те id у кого идет соответствие описанному шаблону 10ХХХХХХ.
Как это возможно реализовать в рамках уже готового решения?
Миниатюры
Нажмите на изображение для увеличения
Название: ошибка.jpg
Просмотров: 263
Размер:	33.1 Кб
ID:	4979  
18.09.2015 17:30
vdm
 
1. дубль 2: проверь __footer.receipt.header.login.id
2. ну заверни текст в условие: номер начинается с 10, длина 8
Код:
 local l_id=tostring(__footer.receipt.header.login.id);
 if (ukm.left(l_id, 2)=="10") and (ukm.str_len(l_id)==8) then
   text = text .. 
 end
18.09.2015 17:39
manhant
 
Вместо __footer.receipt.login.id поставить __footer.receipt.header.login.id ?
18.09.2015 17:57
manhant
 
Проверил, все работает.
Опции темы


Часовой пояс GMT +3, время: 10:27.

 

Форум сделан на основе vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.