1 (edited by pt.82 2019-02-01 06:02:37)

Topic: автоматическое открытие окна после поиска

Приветсвую!
Товарищи подскажите! Как сделать: производится поиск сканером штрихкода, в гриде находится запись. Необходимо сделать так, чтобы при найденом значении в гриде эта запись открывалась автоматически, т.е. пришел клиент предьявил пропуск, на котором штрихкод.
сотрудник отсканировал этот пропуск, открылась автоматоматически форма (по кнопке Button5) для добавления даты посещения. сотрудник по сути должен один  раз отсканировать сканером затем подтвердить (сохранить) дату посещения, т.е. надо избежать двойным кликом на гриде.

Post's attachments

Attachment icon посещения.rar 293.93 kb, 316 downloads since 2019-02-01 

Re: автоматическое открытие окна после поиска

аааа вам нужно просто нажать на кнопку после поиска !!!

тогда так

procedure Form1_TableGrid1_OnChange (Sender: TObject);
begin
  Form1.Button5.Click;
end;

Re: автоматическое открытие окна после поиска

Попробуйте так

procedure Form1_Button4_OnAfterClick (Sender: TObject);
begin
    if Form1.TableGrid1.RowCount=1 then // если в поиске вышла только одна запись, значит нашли
    begin
        Form1.TableGrid1.SelectedRow := 0; // выделяем первую запись
        Form1.Button5.Click;// кликаем
    end;
end;

Я так понял, кнопку поиска нажимаете вручную? В принципе и это можно автоматизировать, если например номера всегда имеют одну и туже длинну.

Dmitry.

Re: автоматическое открытие окна после поиска

спасибо!!

Re: автоматическое открытие окна после поиска

помогите!!!!
данный поиск работает, но если например есть в таблице номер 321 и 3214 при сканировании сканером штрихков номер 3214, первым находится 321 и соответственно открывается не 3214, а 321

6 (edited by sibprogsistem 2019-03-05 11:00:42)

Re: автоматическое открытие окна после поиска

pt.82 wrote:

помогите!!!!
данный поиск работает, но если например есть в таблице номер 321 и 3214 при сканировании сканером штрихков номер 3214, первым находится 321 и соответственно открывается не 3214, а 321

скорее всего, это потому что у вас первая найденная  запись выделяется

Re: автоматическое открытие окна после поиска

отбой! спасибо))) я не заметил, что Дмитрий написал нумерация должна быть постоянной длиной

Re: автоматическое открытие окна после поиска

Где я написал, что нумерация должна  быть постоянной длинной? )
Вообще не должен находить запись 321 при поиске 3214,

Dmitry.

9 (edited by pt.82 2019-03-06 03:04:24)

Re: автоматическое открытие окна после поиска

DriveSoft wrote:

Попробуйте так

procedure Form1_Button4_OnAfterClick (Sender: TObject);
begin
    if Form1.TableGrid1.RowCount=1 then // если в поиске вышла только одна запись, значит нашли
    begin
        Form1.TableGrid1.SelectedRow := 0; // выделяем первую запись
        Form1.Button5.Click;// кликаем
    end;
end;

Я так понял, кнопку поиска нажимаете вручную? В принципе и это можно автоматизировать, если например номера всегда имеют одну и туже длинну.

нет кнопка поиска тоже автоматически, ведь смысл поиска сканером чтобы не тыкать мышкой лишнии кнопки.
если номера 003214 и 000321, то все хорошо, но если номера количество цифр в номере разное то при поиске 3214 и при сущетвующем номере 321, открывается редактирование 321

Меня в принципе устраивает постоянная длина номера (количество цифр в номере)