powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / как встроить в печатную форму штрихкод CODE 128
24 сообщений из 24, страница 1 из 1
как встроить в печатную форму штрихкод CODE 128
    #38712328
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как встроить в печатную форму штрихкод CODE 128
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38712417
Фотография Vladimir M Sklyar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там искал
http://vfpx.codeplex.com/wikipage?title=FoxBarcode&referringTitle=Home

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38712729
А. С.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть функция, которая переворачивает в code 128. Потом просто полученно число печатаешь шрифтом barcode.ttf
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38713059
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А. С., Поделитесь?
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38713069
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir M Sklyar, платная заморочка.
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38713175
А. С.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FUNCTION Code_128
PARAMETERS A

PUBLIC ARRAY BCode(1024)
STORE 0 TO BInd,Ch,Ch2,I,LenA,CCode
STORE '' TO CurMode,S

LenA = LEN(A)
FOR I=1 TO LenA STEP 0
Ch = ASC(SUBSTR(A, I, 1))
I = I + 1
IF Ch <= 127
IF I <= LenA
Ch2 = ASC(SUBSTR(A, I, 1))
ELSE
Ch2 = 0
ENDIF
IF (48 <= Ch) And (Ch <= 57) And (48 <= Ch2) And (Ch2 <= 57)
I = I + 1
IF BInd = 0
CurMode = "C"
BCode(BInd+1) = 105
BInd = BInd + 1
ENDIF
IF CurMode <> "C"
CurMode = "C"
BCode(BInd+1) = 99
BInd = BInd + 1
ENDIF
BCode(BInd+1) = VAL(Chr(Ch)+Chr(Ch2))
BInd = BInd + 1
ELSE
IF BInd = 0
IF Ch < 32
CurMode = "A"
BCode(BInd+1) = 103
BInd = BInd + 1
ELSE
CurMode = "B"
BCode(BInd+1) = 104
BInd = BInd + 1
ENDIF
ENDIF
IF (Ch < 32) AND (CurMode <> "A")
CurMode = "A"
BCode(BInd+1) = 101
BInd = BInd + 1
ENDIF
IF ((64 <= Ch) AND (CurMode <> "B")) OR (CurMode = "C")
CurMode = "B"
BCode(BInd+1) = 100
BInd = BInd + 1
ENDIF
IF (Ch < 32)
BCode(BInd+1) = Ch + 64
BInd = BInd + 1
ELSE
BCode(BInd+1) = Ch - 32
BInd = BInd + 1
ENDIF
ENDIF
ENDIF
ENDFOR
CCode = MOD(BCode(1),103)
FOR I = 1 To BInd -1
CCode = MOD((CCode + BCode(I+1) * I),103)
ENDFOR
BCode(BInd+1) = CCode
BInd = BInd + 1
BCode(BInd+1) = 106
BInd = BInd + 1
S = ""
FOR I = 0 TO BInd - 1
S = S+Code_Char(Code_128_ID(BCode(I+1)))
ENDFOR
Code_128 = S
RETURN Code_128
ENDFUNC

FUNCTION Code_128_ID
PARAMETERS ID
LocID=" "
LocID=ICASE(ID=0 ,"212222",;
ID=1 ,"222122",;
ID=2 ,"222221",;
ID=3 ,"121223",;
ID=4 ,"121322",;
ID=5 ,"131222",;
ID=6 ,"122213",;
ID=7 ,"122312",;
ID=8 ,"132212",;
ID=9 ,"221213",;
ID=10 ,"221312",;
ID=11 ,"231212",;
ID=12 ,"112232",;
ID=13 ,"122132",;
ID=14 ,"122231",;
ID=15 ,"113222",;
ID=16 ,"123122",;
ID=17 ,"123221",;
ID=18 ,"223211",;
ID=19 ,"221132",;
ID=20 ,"221231",;
ID=21 ,"213212",;
ID=22 ,"223112",;
ID=23 ,"312131",;
ID=24 ,"311222",LocID)
LocID=ICASE(ID=25 ,"321122",;
ID=26 ,"321221",;
ID=27 ,"312212",;
ID=28 ,"322112",;
ID=29 ,"322211",;
ID=30 ,"212123",;
ID=31 ,"212321",;
ID=32 ,"232121",;
ID=33 ,"111323",;
ID=34 ,"131123",;
ID=35 ,"131321",;
ID=36 ,"112313",;
ID=37 ,"132113",;
ID=38 ,"132311",;
ID=39 ,"211313",;
ID=40 ,"231113",;
ID=41 ,"231311",;
ID=42 ,"112133",;
ID=43 ,"112331",;
ID=44 ,"132131",;
ID=45 ,"113123",;
ID=46 ,"113321",;
ID=47 ,"133121",;
ID=48 ,"313121",;
ID=49 ,"211331",;
ID=50 ,"231131",LocID)
LocID=ICASE(ID=51 ,"213113",;
ID=52 ,"213311",;
ID=53 ,"213131",;
ID=54 ,"311123",;
ID=55 ,"311321",;
ID=56 ,"331121",;
ID=57 ,"312113",;
ID=58 ,"312311",;
ID=59 ,"332111",;
ID=60 ,"314111",;
ID=61 ,"221411",;
ID=62 ,"431111",;
ID=63 ,"111224",;
ID=64 ,"111422",;
ID=65 ,"121124",;
ID=66 ,"121421",;
ID=67 ,"141122",;
ID=68 ,"141221",;
ID=69 ,"112214",;
ID=70 ,"112412",;
ID=71 ,"122114",;
ID=72 ,"122411",;
ID=73 ,"142112",;
ID=74 ,"142211",;
ID=75 ,"241211",LocID)
LocID=ICASE(ID=76 ,"221114",;
ID=77 ,"413111",;
ID=78 ,"241112",;
ID=79 ,"134111",;
ID=80 ,"111242",;
ID=81 ,"121142",;
ID=82 ,"121241",;
ID=83 ,"114212",;
ID=84 ,"124112",;
ID=85 ,"124211",;
ID=86 ,"411212",;
ID=87 ,"421112",;
ID=88 ,"421211",;
ID=89 ,"212141",;
ID=90 ,"214121",;
ID=91 ,"412121",;
ID=92 ,"111143",;
ID=93 ,"111341",;
ID=94 ,"131141",;
ID=95 ,"114113",;
ID=96 ,"114311",;
ID=97 ,"411113",;
ID=98 ,"411311",;
ID=99 ,"113141",;
ID=100,"114131",;
ID=101,"311141",;
ID=102,"411131",;
ID=103,"211412",;
ID=104,"211214",;
ID=105,"211232",;
ID=106,"2331112",LocID)
RETURN LocID
ENDFUNC

FUNCTION Code_Char
PARAMETERS A
II=0
B=" "
LocID=" "
LocID=ICASE(A="211412","A",;
A="211214","B",;
A="211232","C",;
A="2331112","@",LocID)
IF LocID=" "
FOR II = 0 TO LEN(A)/2-1
FF=SUBSTR(A, 2 * II + 1, 2)
LocID=ALLTRIM(LocID)+ICASE(FF="11","0",;
FF="21","1",;
FF="31","2",;
FF="41","3",;
FF="12","4",;
FF="22","5",;
FF="32","6",;
FF="42","7",;
FF="13","8",;
FF="23","9",;
FF="33",":",;
FF="43",";",;
FF="14","<",;
FF="24","=",;
FF="34",">",;
FF="44","?",LocID)
ENDFOR
ENDIF
RETURN LocID
ENDFUNC
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38713223
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А. С.,
Т.е. такая конструкция должна работать?

Posled = Code_128(ALLTRIM('QWERTY1234'))
thisform.text14.Value=Posled

И установить шрифт barcode.ttf ?
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38713290
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А. С.,
Сканер не читает такую конструкцию. Что-то не так делаю?
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38713351
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А. С.,

Спасибо!!!!

Вот, есть ведь у нас фоксисты - разгрыз тему и выдал элементарное и удобное решение, без выверта мозгов!

Все работает, но надо применять именно barcode.ttf
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38714090
А. С.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Этот пример просто у меня работает, я эту функцию переписал с Visual Basic в свое время, немного переделал правда. Рад что получилось.
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38714099
А. С.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я этот форум весь перечитал - решения не было нормального. Вот сам и разобрался, теперь не нарадуюсь. )))
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38714257
ping_09
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А. С.,

А готовое решение здесь не опубликуете?
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38714501
А. С.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38714504
А. С.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38714520
Фотография Vladimir M Sklyar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу платного - вроде на том сайте все бесплатное.
Тот урл, что я привел выше - компонента используеся у меня на квитанциях по
жкг (правда штрихкод EAN13).
Работает без сторонних шрифтов и всяких доп. запорочек, тупо картинка в
репорте.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38714957
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ping_09,

Еще раз благодарю А.С !!!! Все работает - просто гора с плеч!
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38715061
А. С.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на то форум и нужен)) потом мне поможете. Сам тут много ответов нашел.
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38719852
А. С.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот теперь вы мне помогайте.
На форме контрол textbox, в методе LostFocus которого стоит запуск процедуры с переменой, в которую пишется значение этого контрола. Ну то есть вбиваем к примеру число 12345 и Enter и стартуется некая процедура.
Теперь со штрих сканером. Я это число печатаю на бумаге, предварительно переворачиваю его в CODE 128, потом ставлю фокус на textbox, сканирую и получаю 12345.

Вопрос 1.
Как мне при этом автоматически запустить метод LostFocus с полученным значением?
-- как вариант поставить на контроле в свойстве MaxLenght к примеру 10, а в штрихе сохранять не 12345, а значение, которое равно MaxLenght, то есть 0000012345. При этом будет заполнено все и автоматически textbox покинет фокус. Но мне этот способ не нравится.
То есть хочется как то перехватывать значение, которое считали сканером.

Вопрос 2.
Тут сложнее. Надо зашифровать не 12345, а перед ним еще какое-то дополнительное значение. К примеру 2;12345. Но при этом сперва перехватить отсканированное значение, распарсить к примеру ALINES() в массив, первый элемент "2" не отображать, а использовать его для анализа, а "12345" уже отобразить в контроле. И потом автоматом запустить LostFocus.

Если у кого есть идеи, прошу не стесняться, подойдут любые гипотезы.
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38720056
SoftwareBoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А. С.,

Сканер включается в разрыв клавиатуры, т.е. 12345 - это как бы последовательно нажатые клавиши? Тогда можно ловить их в textbox.KeyPress и при необходимости подменять до попадания в textbox.Value. Если сканер позволяет настроить префикс / суффикс кода, т.е. последовательности символов, которые он пришлёт до и после отсканированного значения, то можно по ним в KeyPress определять начало / конец кода. Если нет, то можно использовать в качестве префикса / суффикса элементы самого кода. Например, если со сканера приходит 2;12345, а в контрол надо записать 12345, то в KeyPress забираем все символы для анализа, пока не придёт ";", затем переключаемся в режим формирования textbox.Value.
LostFocus() можно вызывать и явно (по обнаружению окончания кода), необязательно выходить из поля, но лучше сделать анализ готового значения контрола отдельным методом и вызывать его как в LostFocus, так и в KeyPress при получении суффикса кода.
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38720276
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А. С.,

1. Привяжите к объекту переменную и обрабатывайте ее значение.
2. KeyPres Не идет?
3. И еще: попробуйте боксы - в них тоже можно писать, но там есть событие Change
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38720297
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А. С.,

Создаем таблицу (курсор) из одного столбца c READWR и грид. Работаем собственно с объектами грида. В данном случае TEXT.

1. Проверяем OldVAl/ NewVal
2. Запрещаем запись в курсор, но нагло пишем в текстбокс. Получаем ошибку и в TRY CATCH ее обрабатываем - запускаем нужные процедуры. Т.е. идея через сброс исключения генерировать событие, может и при работе в других схемах.
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38720800
А. С.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы. Вот нашел подходящее для данного случая.
считывание штрих-кода
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38721407
А. С.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все получилось,супер. Единственный момент, если в коде ставить разделители, то стоит учитывать что в разных раскладках, они будут считываться согласно текущей раскладки клавиатуры. Я сперва поставил ^ и ; если раскладка текущая стоит EN - то все хорошо. Если текущая стоит RU - то читаются символы : и ж соответственно. Я сменил на ! и + - все наладилось.
...
Рейтинг: 0 / 0
как встроить в печатную форму штрихкод CODE 128
    #38744917
А. С.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В методе keypress контрола textbox - все отрабатывает великолепно.
Вопрос: На форме много разных элементов, но если я этот метод распространяю на всю форму - то не работает. То есть keypress запускается на том контроле, на котором в данный момент фокус находится. Мне же нужно чтобы это распространялось на всю форму.
В каждом элементе прописывать одинаковый keypress - не вариант.
Напомню что у меня первый символ в штрих коде стоит ! (код 33) то есть код выглядит так !1+0000004578
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / как встроить в печатную форму штрихкод CODE 128
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]