Fórum Clicar 2 vezes em uma celula do Grib e exibir outro form #373617
14/08/2009
0
tenho um formulario de busca de produtos e um outro aonde cadastro os produtos! quando fizesse a pesquisa do produto, por exemplo ´anel´ e clicasse 2 vezes mostrasse o regitro no outro formulario que é de cadastro!
espero que tenham me entendido, desde já agradeço! vlw :wink:
Thiagoangra2
Curtir tópico
+ 0Posts
15/08/2009
Rweberich
com certeza voce deve estar listando esses cadastros em um DBGrid,
caso seja essa sua dificuldade, issu é bem facil de resolver:
vai nos eventos do DBGrid, na opcao ´DblClick´ e coloque o seguinte codigo:
if DBGrid1.Fields[0].Text <> ´´ then
begin
DataModule1.tblprodutos.Locate(´CODIGO´,DBGrid1.FieldS[0].Text,[loPartialKey]);
DataModule1.tblprodutos.Edit;
frmCadProdutos.ShowModal; // abre o formulario de cadastro de produtos
end;
Abraco.
Gostei + 0
17/08/2009
Thiagoangra2
[Error] Ubuscaproduto.pas(94): Undeclared identifier: ´loPartialKey´
[Error] Ubuscaproduto.pas(94): Incompatible types: ´TLocateOption´ and ´Integer´
[Error] Ubuscaproduto.pas(96): Record, object or class type required
desde ja agradeço, abraços
Gostei + 0
17/08/2009
Thiagoangra2
begin
if DBGrid1.Fields[0].Text <> ´´ then
begin
dm.cdspro.Locate(´CODIGO´,DBGrid1.FieldS[0].Text,[loPartialKey]);
dm.cdspro.Edit;
frmcadpro.ShowModal.ShowModal;
end;
end;
o codigo é esse!
Gostei + 0
17/08/2009
Alanporto
quanto ao loPartialKey, nesse caso ele pode ser dispensado, pois sempre vai existir o código passado. Tenta assim:
procedure Tfrmbuscapro.DBGrid1DblClick(Sender: TObject); begin if DBGrid1.Fields[0].AsString <> EmptyStr then begin dm.cdspro.Locate(´CODIGO´,DBGrid1.FieldS[0].AsString,[]); dm.cdspro.Edit; frmcadpro.ShowModal; end; end;
Gostei + 0
17/08/2009
Alanporto
quanto ao loPartialKey, nesse caso ele pode ser dispensado, pois sempre vai existir o código passado. Tenta assim:
procedure Tfrmbuscapro.DBGrid1DblClick(Sender: TObject); begin if DBGrid1.Fields[0].AsString <> EmptyStr then begin dm.cdspro.Locate(´CODIGO´,DBGrid1.FieldS[0].AsString,[]); dm.cdspro.Edit; frmcadpro.ShowModal; end; end;
Gostei + 0
18/08/2009
Rweberich
É importante que vc informe ´loPartialKey´ ou pode acrescentar ainda ´loCaseInsensitive´, que ficaria assim (,[loPartialKey, loCaseInsensitive]), por que desta forma, vc estara filtrando indiferente se o usuario digite em letras minusculos ou maiusculas.
Desta forma, o codigo correto ficaria assim:
[b:ec78ad3aff]procedure Tfrmbuscapro.DBGrid1DblClick(Sender: TObject);
begin
if DBGrid1.Fields[0].Text <> ´´ then
begin
dm.cdspro.Locate(´CODIGO´,DBGrid1.FieldS[0].Text,[loPartialKey, loCaseInsensitive]);
dm.cdspro.Edit;
frmcadpro.ShowModal;
end;
end;[/b:ec78ad3aff]
Obs: Verifique em ´Uses´, no cabeçalho, se esta declarado ´DB´, ali junto de: ´...Windows, Messages, SysUtils..´. Se nao tiver acrescente ´DB´. Issu deve ajuda-lo.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)