Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как получить бар-код товара без использования Edit-а? / 11 сообщений из 11, страница 1 из 1
26.05.2017, 01:51:38
    #39460056
Delphi159
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить бар-код товара без использования Edit-а?
В программе если кликну на Edit и потом usb-сканер направляю на товар,в Edit-е записывается штрих-код товара и потом в OnKeyPress выполняется Query1 запрос:

Код: pascal
1.
2.
Query1.text:='select * from Goods where barcode=:Edit1';
Query1.parambyname('Edit1'). asstring:=Edit1.text;



Нажимая на enter, в гриде курсор переходит на этот товар:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
procedure TForm1.EditBarcodeKeyPress(Sender: TObject; var Key: Char)
begin
    if key=#13 then begin
    keyfield:='barcode';
    keyvalues:=editbarcode.Text;
    options:=[lopartialkey];
    Form1.Query1.Locate(keyfield,keyvalues,options);                                   
    DBGrid1.setfocus;
    EditBarcode.Clear;
end;



но как найти товар бар-кодом без Edit-а? то есть просканировал и сразу переход на этот товар? Или без компонента работы с бар-кодом это невозможно?
...
Рейтинг: 0 / 0
26.05.2017, 02:11:50
    #39460059
asviridenkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить бар-код товара без использования Edit-а?
Delphi159,

Просто обрабатывай события OnKeyPress формы (KeyPreview = true)
...
Рейтинг: 0 / 0
26.05.2017, 07:29:07
    #39460089
goldmi45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить бар-код товара без использования Edit-а?
Delphi159... потом usb-сканер направляю на товар,в Edit-е записывается штрих-код товара
Можно сразу подставлять в параметр запроса и сразу выполнять этот запрос. Edit-же вы заполняете? т.е. устанавливаете у него свойство Text. Вот в этом месте вместо того, чтобы писать Edit1.Text := Bar.Code; пишите
Код: pascal
1.
    Form1.Query1.Locate('barcode',Bar.Code,[lopartialkey]);
...
Рейтинг: 0 / 0
26.05.2017, 08:13:07
    #39460099
Как получить бар-код товара без использования Edit-а?
asviridenkovDelphi159,

Просто обрабатывай события OnKeyPress формы (KeyPreview = true)
+

Либо, перенастроить сканер на режим эмуляции com-порта и будет счастье, конечно если сканер поддерживает такой режим работы. Ну а потом, читать из порта данные и обрабатывать.
...
Рейтинг: 0 / 0
26.05.2017, 12:00:14
    #39460305
Delphi159
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить бар-код товара без использования Edit-а?
goldmi45Delphi159... потом usb-сканер направляю на товар,в Edit-е записывается штрих-код товара
Можно сразу подставлять в параметр запроса и сразу выполнять этот запрос. Edit-же вы заполняете? т.е. устанавливаете у него свойство Text. Вот в этом месте вместо того, чтобы писать Edit1.Text := Bar.Code; пишите
Код: pascal
1.
    Form1.Query1.Locate('barcode',Bar.Code,[lopartialkey]);



goldmi45 , если предварительно кликнуть на Editbarcode, чтобы он получал фокус ввода, как я сейчас и делаю, тогда всё понятно, но допустим фокус на Dbgrid-е или на другом edit-е. Как тогда "заставить" сканер 13-цифровый код присвайвать Editbarcode без предварительного клика на него?.
...
Рейтинг: 0 / 0
26.05.2017, 12:24:21
    #39460323
goldmi45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить бар-код товара без использования Edit-а?
Delphi159,

Сканер - это по сути доп. клавиатура. Сразу подставлять получится только если сканер будет работать в режиме эмуляции, как говорил ПаWWWлОдАрЕц. Поэтому в вашем случае лучше воспользоваться советом Свириденкова - читать в OnKeyPress формы. А режим KeyPreview = true можно включать/выключать по кнопке.

как-то так
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
type 
  TForm1 = class(TForm)
    Timer1: TTimer;
    Button1: TButton;
    procedure Button1OnClick(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure Timer1OnTimer(Sender: TObject);
  private
    barcode: string;
    procedure StartSearch(Key);
  end;

implementation

procedure TForm1.Button1OnClick(Sender: TObject);
begin
  Form1.KeyPreview := true;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  StartSearch(Key);
end;

procedure TForm1.StartSearch(Key);
begin
  Timer1.Enabled := false;
  Timer1.Enabled := true;
  
  barcode := barcode + Key;
end;

procedure TForm1.Timer1OnTimer(Sender: TObject);
begin
  Timer1.Enabled := false;
  Form1.KeyPreview := false;
  Form1.Query1.Locate('barcode', barcode,[lopartialkey]);
end;

...
Рейтинг: 0 / 0
26.05.2017, 12:26:54
    #39460328
goldmi45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить бар-код товара без использования Edit-а?
забыл очистить буфер
Код: pascal
1.
2.
3.
4.
5.
procedure TForm1.Button1OnClick(Sender: TObject);
begin
  barcode := '';
  Form1.KeyPreview := true;
end;
...
Рейтинг: 0 / 0
26.05.2017, 12:35:48
    #39460336
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить бар-код товара без использования Edit-а?
Вот тут есть рабочее решение: 17597573
...
Рейтинг: 0 / 0
26.05.2017, 19:35:37
    #39460659
Delphi159
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить бар-код товара без использования Edit-а?
Goldmi45 , тогда уже придётся каждый раз кликнуть на button, чтобы присваивать KeyPreview true или false. Какая тогда разница для юзера?

JaDi , что такое ProcessAutoBarcodeScan?
...
Рейтинг: 0 / 0
26.05.2017, 19:52:38
    #39460662
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить бар-код товара без использования Edit-а?
Delphi159,

Это процедура, где мы этот самый баркод обрабатываем... Например, открываем карточку товара или вносим куда-то в список. Самое главное на ней -- очистить буфер с кодом, чтобы он мог повторно новое значение принять.
...
Рейтинг: 0 / 0
26.05.2017, 20:06:47
    #39460669
Delphi159
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить бар-код товара без использования Edit-а?
JaDi, спасибо, попробую.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как получить бар-код товара без использования Edit-а? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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