[ОТВЕТИТЬ]
15.01.2008 11:32
deks
 
Вообщем после миграции с УКМ 2 имеются следующии скидочные карты

1. B123456789012F на магнитной полосе ;123456789012?
2. B12345678901F на магнитной полосе ;12345678901?
3. B1234567890F на магнитной полосе ;1234567890?
4. B123456789F на магнитной полосе ;123456789?
5. B1234567D1234F НА МАГНИТНОЙ ПОЛОСЕ ;1234567=1234?

НА СЕРВЕРЕ НАСТРОЕНЫ ШАБЛОНЫ ВВОДА ...А 1-4 ВАРИАНТЫ НЕ РАБОТАЮТ ...
ШАБЛОН ДЛЯ 1 И 4 ВАРИАНТА ТАКОГО ТИПА
; 9 ИЛИ 12 ЛЮБЫХ ЧИСЕЛ 1 И БЕСКОНЕЧНОСТЬ
НОМЕР КАРТЫ B$1F
скидка дисконтная система .

Вопрос: как правильно настроить шаблоны ввода и как правильно раздать приорететы?
15.01.2008 11:35
Mtirt
 
$1 у тебя - это ";".
тебе надо сделать Номер карты = B$2F
15.01.2008 16:09
deks
 
ошибся B$2F
... так и стоит ...
15.01.2008 19:23
Mtirt
 
Раздели их.
Сделай 3 шаблона ввода.
Один - как есть сейчас.
Еще один - ровно на 12 цифр. = B$2F
И еще один -" ;","7 цифр";"=";"4 цифры";"Любая последовательность" == B$2D$4F.
И все их направь на скидку свою.
Причем приоритеты скорей всего именно в том порядке, как я сейчас написала. Ну или попробуй попереставлять...
16.01.2008 09:36
deks
 
вот тут самое и оно ...я так понял что приоритет должен быть выше у тех карт у которых на дорожке 12 потом 11 , 10 .9 соответсвенно символов..
префиксы и суфиксы я не считаю
16.01.2008 09:44
Mtirt
 
Цитата:
deks я так понял что приоритет должен быть выше у тех карт у которых на дорожке 12 потом 11 , 10 .9 соответсвенно символов..
Скорее всего - да. Ищем сначала самую длинную строку, потом постепенно её уменьшаем.
Ну и шаблон ввода лучше сделать на каждую длину строки.
17.01.2008 19:41
deks
 
ага вот еще вопрос в догонку ..как работает алгоритм шаблона ввода?
т.е
у нас три карты
B12345678901F на магнитной полосе ;12345678901?
B1234567890F на магнитной полосе ;1234567890?
B123456789F на магнитной полосе ;123456789?
система берет
карту ;123456789?
и сравнивает ее с шаблоном ... так первый 11 знак не подходит ... - нехватает символа
второй 10 знак ..подходит ..так как "?" считает за 10 символ и система смотрит в базе номер B123456789?F а там его ..нет ..
!!!она дельше идет????!!! если идет дальше то берется макет 9 знака и все пучком ... так вот как реализован алгоритм шаблона он пробегает по всем маскам или схватит ту которая ее устроит .. ибо касса частенько ругаются на номера вида B123456789?F ..где постфикс(имеется ввиду знак "?") попадает в номер карты
18.01.2008 06:23
akonev
 
дальше не идет.
выбирает первый (по порядку обработки) шаблон, под который подходят данные и останавливается.
18.01.2008 12:04
deks
 
понятно тогда надо ..просто переписывать карты под шаблон иначе он выхватит номер оканчивающий на знак вопроса и выдает на экране типа карта сномером B123456789?F не обслуживается ...
Всем спасибо !!!!
Просто макеты мучать немного стремно так как неправильное изменение и встает магазин из 10 касс .. а это не есть хорошо ...*54 начальство не поймет и будет орать и топать ножками
18.01.2008 12:19
Mtirt
 
По хорошему надо просить С+ сделать доработку. В шаблоне ввода явно указывать формат данных для поля с произвольным содержимым - только "цифры", "цифры и буквы", "цифры, буквы и спец.символы".
Тогда твоя проблема уйдет...
Попробуй написать в тех.поддержку...
19.01.2008 20:23
shebdim
 
Честно думал, но так и не уловил что вы хотите получить. Начнём с начала, у вас есть карты с номерами длиной от 9 до 12 символов не включая служебные. И есть карты, видимо тоже дисконтные, в формате международных - с разделителем. Ваша задача превратить их в вид, который считывался на IPC когда служебные символы заменялись буквами. Правильно? Я вот пока не понял что у вас не получилось. И что за доработка тут нам рождается :)
20.01.2008 10:11
Mtirt
 
Нет. не совсем то.
И него есть карты 10 символов + служебный (обычно "?").
И есть карты 9 символов + служебный (аналогично).
Ну и при считывании карт второго типа срабатывает шаблон ввода на первые, карту не находит, следующий шаблон ввода не ищет.
Хотим, чтобы можно было явно задать, что эти 10 символов обязательно должны быть цифрами.
20.01.2008 10:54
shebdim
 
первое что пришло на ум - написать один шаблон
Код:
[1..1][1..n][1..1]
и в качестве номера указать
Код:
B$2F
если нужны карты в которых разделитель должен меняться на D можно первым (он более кокретный поэтому должен стоять выше) шаблоном поставить ещё один
Код:
[1..1][1..n][=][1..n][1..1]
и в качестве номера указать
Код:
B$2D$4F
Опции темы


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

 

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