Fórum CHAMAR UMA FUNCAO DE PESQUISA PRODUTO NA GRID #371815

01/07/2009

0

UTILIZO DELPHI 7

BANCO DE DADOS FIREBIRD

COMPONENTE DBEXPESS


TENHO UM PROGRMA DE DIGITACAO DE PEDIDO

O CLIENTE QUER QUE TODA VEZ QUE ENTRAR NA LINHA DE DIGITACAO DE ITENS ANTES DE DIGITAR O CODIGO DO PRODUTO
JA CHAMAR A TELA DE PESQUISA PRODUTO

NO PROGRAMA QUANDO O CLIENTE ACIONA A TECLA [F2] O PROGRAMA CHAMA A TELA DE PESQUISA DE PRODUTO

ALGUEm PODE ME AJUDAR A RESOLVER ESTE PROBLEMA???


Grato


Plácido


Placido

Placido

Responder

Posts

01/07/2009

Woinch

No evento OnEnter do Edit, faça o seguinte:

procedure TForm1.Edit1Enter(Sender: TObject);
var
  NomeDaTelaDeBusca := TNomeDaTelaDeBusca; //aqui voce deve substituir pelas informações corretas do formulário que você quer abrir

begin
  NomeDaTelaDeBusca := TNomeDaTelaDeBusca.Create(Application);
  if (NomeDaTelaDeBusca.ShowModal = mrOk) then //Lembro que para esse teste funcionar você deve ter um botão que feche a janela e tenha a propriedade ModalResult como mrOk.
    Edit1.Text := NomeDaTelaDeBusca.VariavelRetorno; //Variável retorno é uma variável global que deve ser definida no form de busca que ao efetuar o evento FormClose deve ser preenchida com o conteúdo que voce deseja
end;


Tente usar esse exemplo que lhe passei, qualquer dúvida favor responder.


Responder

Gostei + 0

01/07/2009

Placido

Boa tarde

Meu amigo obrigado pela ajuda..

Mas o meu caso é uma grid

Não é um campo edit


Grato

Plácido


Responder

Gostei + 0

01/07/2009

Woinch

Para adaptar basta utilizar o evento OnColEnter ao invés do OnEnter.


Responder

Gostei + 0

02/07/2009

Placido

Bom dia

Meu amigo obrigado pela ajuda..

Mas não consegui resolver o problema

Veja o meu comandop abaixo

-----------------------------------------------------------------------------
procedure TfrmMovPedido.gdPedidoColEnter(Sender: TObject);
var
VcolunaAnterior : Smallint;
result : variant;
mteste : Integer;

begin
inherited;


VcolunaAnterior := 0;
// inicio pesquisa


FrmPesquisaProdutos := TFrmPesquisaProdutos.Create(Self);

FrmPesquisaProdutos.ResultField := 1;
FrmPesquisaProdutos.Pesquisa := true;
result := FrmPesquisaProdutos.Open;
if result <> null then
begin
if not(dsDetalhe.DataSet.State in [dsInsert, dsEdit]) then
dsDetalhe.DataSet.Edit;
SalvarBTN.Enabled := True;
cdsDetalhePROD_CODIGO.AsInteger := StrToInt(result);
end;
FrmPesquisaProdutos.Release;


// fim pesquisa


end;


----------------------------------------------------------------------------

Esta chamando a funcao de pesquisa, mas so que cada campo que o digito chama a tela de pesquisa de produto, eu quero chamar a tela de pesquisa sempre ao entrar na linha de digitação de itens.


Grato

Plácido


Responder

Gostei + 0

02/07/2009

Osocram

Amigo,
Por experiencia própria não aconselho permitir operações direto no dbgrid. Pois é bem complicado fazer validações e tudo mais.

Coloque uns dbedit logo acima do dbgrid dos campos que o usuario pode editar e use o que o amigo Woinch disse.


Responder

Gostei + 0

02/07/2009

Woinch

Se você quiser validar qual a linha esta selecionada basta utilizar a propriedade SelectedIndex do DBGrid.

Espero ter ajudado.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar