Editar cadastro
Seguinte, quero dar uma melhorada no meu campo de localizar cadastrado, fazendo com que ao ser localizado, dê para visualizar E ter a possibilidade de editar um determinado formulário de cadastro.
Exemplo:
José está cadastrado, ativo no sistema, porém o mesmo quer se desligar do sistema de associação, e seu formulário precisa ser editado.
Localizo no grid, e ao dar duplo clique, o formulário do mesmo aparece na tela, com a opção de editar e gravar...
Porém, meu localizar só funciona para visualização de localizados, por nome , setor e função.
Alguém me ajuda nessa parte?
Obrigada desde já.
Laura
Laura Queiroz
Respostas
Junior Miranda
01/03/2010
Ou seja, estando vc no cadastro de clientes, como vc faz para carregar a cliente Laura Serafim?
Suas consultas possuem parâmetro ou vc carrega todos os registro e apenas "navega" entre eles?
Quais componentes de acesso a dados vc utiliza?
[]'s
Laura Queiroz
01/03/2010
Wilson Junior
01/03/2010
Espero ter colaborado.
Laura Queiroz
01/03/2010
Wilson Junior
01/03/2010
Laura Queiroz
01/03/2010
Thiago Santana
01/03/2010
NomedaTabelaresponsávelpelocadastro.Edit; E vc irá ligar o mesmo dataset ou clientDataset de Pesquisa a tabela de Edição! Assim quando vc clicar 2 vezes sobre a DbGrid depois da consulta a sua tela de edição já irá vim com os dados da sua consulta. Lembrando utilize a mesma tabela ou query de consulta para efetuar a edição. Qualquer dúvida poste aí! AbraçoO
Wilson Junior
01/03/2010
Agora você deve abrir o seu ClientDataSet que será editado o registro (vamos chamar de cdsEditavel), filtrando com o índice do regsitro selecionado no cdsPesquisa.
Sendo assim você terá dois ClientDataSet abertos, mas um para a sua pesquisa e outro para a sua edição dos registros.
Espero que tenha entendido...rsrs
Qualquer coisa pergunte.
Laura Queiroz
01/03/2010
Thiago Santana
01/03/2010
Laura Queiroz
01/03/2010
Thiago Santana
01/03/2010
TabelaPesquisa.SQL.Add('Select * from Tb_Teste where Nome = ' + QuotedStr (Edit1.Text ));
TabelaPesquisa.Open;
No evento ondblClick da DbGrid inclua o seguinte código: Form2.show; // Form2 é o forme referente a editar a sua tabela nele eu inserir os DBedits referentes aos campos da tabela.
TabelaPesquisa.Edit; No form2 incluir os campos de edição da tabela os "Fields" da TabelaPesquisa e um botão. No evento onclick do botão incluir o seguinte código: Form1.TabelaPesquisa.Post;
Form1.TabelaPesquisa.IB_Transaction.CommitRetaining; Assim vc conseguirá fazer a edição do registro pesquisado! Espero que possa ter te ajudado! Caso não consiga, mim add no msn que a noite estarei online e poderei te ajudar melhor... Thiagodarley@hotmail.com
Perivaldo Martins
01/03/2010
Laura Queiroz
01/03/2010
Thiago Santana
01/03/2010
Laura Queiroz
01/03/2010
Perivaldo Martins
01/03/2010
Thiago Santana
01/03/2010
No formulario de pesquisa eu incluir um memo um edit um botão, uma query o componente de conexão e o datasource.
Fiz a conexão normalmente e liguei o datasource a minha tabela Tb_teste que estou utilizando como exemplo. No evento onclick do botão inclua o seguinte código:
TabelaPesquisa.SQL.Clear;
TabelaPesquisa.SQL.Add('Select * from Tb_Teste where Nome = ' + QuotedStr (Edit1.Text ));
TabelaPesquisa.Open; No evento ondblClick da DbGrid inclua o seguinte código:
Form2.show; // Form2 é o forme referente a editar a sua tabela nele eu inserir os DBedits referentes aos campos da tabela.
TabelaPesquisa.Edit;
No form2 incluir os campos de edição da tabela os "Fields" da TabelaPesquisa e um botão.
No evento onclick do botão incluir o seguinte código:
Form1.TabelaPesquisa.Post;
Form1.TabelaPesquisa.IB_Transaction.CommitRetaining;
Assim vc conseguirá fazer a edição do registro pesquisado!
Espero que possa ter te ajudado!
Caso não consiga a noite verei o que posso fazer!
Perivaldo Martins
01/03/2010
Laura Queiroz
01/03/2010
Perivaldo Martins
01/03/2010
Perivaldo Martins
01/03/2010
Thiago Santana
01/03/2010
Aí fica mais complicado fazer... Tente utilizar a mesma query tanto para pesquisar quanto para alterar ou então tente editar o Dataset que está ligado a query de consulta para editar os campos no formulário para edição...
Espero que isso possa te esclarecer...
Laura Queiroz
01/03/2010
Perivaldo Martins
01/03/2010
Laura Queiroz
01/03/2010
Perivaldo Martins
01/03/2010
Laura Queiroz
01/03/2010
Thiago Santana
01/03/2010
A noite te envio...
AbraçoO
Laura Queiroz
01/03/2010
Laura Queiroz
01/03/2010
Thiago Santana
01/03/2010
Thiago Santana
01/03/2010
Acho que olhando as dicas que passei para ele vc irá conseguir!
https://www.devmedia.com.br/forum/viewtopic.asp?id=19116
Caso não consiga irei te ajudar pela noite!
AbraçoO
Perivaldo Martins
01/03/2010
Laura Queiroz
01/03/2010
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, ExtCtrls, DBCtrls, StdCtrls, Mask; type
Tfrm_CA = class(TForm)
gb_DP: TGroupBox;
Label1: TLabel;
gb_End: TGroupBox;
Label10: TLabel;
DB_End: TDBEdit;
Label23: TLabel;
DB_Num: TDBEdit;
Label25: TLabel;
DB_Complemento: TDBEdit;
Label26: TLabel;
DB_Bairro: TDBEdit;
Label13: TLabel;
DB_Cep: TDBEdit;
Label12: TLabel;
DB_Cidade: TDBEdit;
Label24: TLabel;
DB_Uf: TDBComboBox;
Label3: TLabel;
DB_Nome: TDBEdit;
Label5: TLabel;
DB_DtNasc: TDBEdit;
Label7: TLabel;
DB_EstCiv: TDBComboBox;
Label4: TLabel;
DB_Sexo: TDBComboBox;
gb_DA: TGroupBox;
Btn_Novo: TSpeedButton;
Btn_Salvar: TSpeedButton;
Btn_Limpar: TSpeedButton;
Btn_Editar: TSpeedButton;
Btn_Localizar: TSpeedButton;
Btn_Sair: TSpeedButton;
Label2: TLabel;
DB_Cod: TDBText;
Label14: TLabel;
DB_Telefone: TDBEdit;
Label15: TLabel;
DB_Celular: TDBEdit;
Label22: TLabel;
DB_Dependentes: TDBComboBox;
Label16: TLabel;
DB_Rg: TDBEdit;
Label17: TLabel;
DB_Cpf: TDBEdit;
Label18: TLabel;
DB_Email: TDBEdit;
Label9: TLabel;
DB_DtFiliacao: TDBEdit;
Label19: TLabel;
DB_Categoria: TDBComboBox;
Label8: TLabel;
DB_DtAdmissao: TDBEdit;
Label20: TLabel;
DB_Setor: TDBLookupComboBox;
Label21: TLabel;
DB_Funcao: TDBLookupComboBox;
DBRadioGroup1: TDBRadioGroup;
procedure Btn_SairClick(Sender: TObject);
procedure Btn_NovoClick(Sender: TObject);
procedure Btn_SalvarClick(Sender: TObject);
procedure Btn_LimparClick(Sender: TObject);
procedure Btn_EditarClick(Sender: TObject);
procedure Btn_LocalizarClick(Sender: TObject);
procedure Btn_CancelarClick(Sender: TObject);
function ValidarDados:Boolean;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
frm_CA: Tfrm_CA; implementation uses U_Dependentes, U_dm, U_Funcao, U_Localizar, U_Setor, Unit1; {$R *.dfm} function Tfrm_CA.ValidarDados : Boolean;
begin
if Trim(DB_DtFiliacao.Text) = EmptyStr then
begin
MessageDlg('Informe a data de filiação.', mtWarning, [mbOk], 0);
DB_DtFiliacao.Setfocus;
ValidarDados := False;
end else
if Trim(DB_Categoria.Text) = EmptyStr then
begin
MessageDlg('Selecione a categoria.', mtWarning, [mbOk], 0);
DB_Categoria.Setfocus;
ValidarDados := False;
end
else if Trim(DB_Nome.Text) = EmptyStr then
begin
MessageDlg('Informe o nome.', mtWarning, [mbOk], 0);
DB_Nome.Setfocus;
ValidarDados := False;
end
else if Trim(DB_DtNasc.Text) = EmptyStr then
begin
MessageDlg('Informe a data de nascimento.', mtWarning, [mbOk], 0);
DB_DtNasc.Setfocus;
ValidarDados := False;
end
else if Trim(DB_EstCiv.Text) = EmptyStr then
begin
MessageDlg('Selecione o estado civil.', mtWarning, [mbOk], 0);
DB_EstCiv.Setfocus;
ValidarDados := False;
end
else if Trim(DB_Sexo.Text) = EmptyStr then
begin
MessageDlg('Selecione o sexo.', mtWarning, [mbOk], 0);
DB_Sexo.Setfocus;
ValidarDados := False;
end
else if Trim(DB_Rg.Text) = EmptyStr then
begin
MessageDlg('Informe o RG.', mtWarning, [mbOk], 0);
DB_Rg.Setfocus;
ValidarDados := False;
end
else if Trim(DB_Cpf.Text) = EmptyStr then
begin
MessageDlg('Informe o CPF.', mtWarning, [mbOk], 0);
DB_Cpf.Setfocus;
ValidarDados := False;
end
else if Trim(DB_End.Text) = EmptyStr then
begin
MessageDlg('Informe o endereço.', mtWarning, [mbOk], 0);
DB_End.Setfocus;
ValidarDados := False;
end
else if Trim(DB_Num.Text) = EmptyStr then
begin
MessageDlg('Informe o número da residência.', mtWarning, [mbOk], 0);
DB_Num.Setfocus;
ValidarDados := False;
end
else if Trim(DB_Bairro.Text) = EmptyStr then
begin
MessageDlg('Informe o bairro.', mtWarning, [mbOk], 0);
DB_Bairro.Setfocus;
ValidarDados := False;
end
else if Trim(DB_Cidade.Text) = EmptyStr then
begin
MessageDlg('Informe a cidade.', mtWarning, [mbOk], 0);
DB_Cidade.Setfocus;
ValidarDados := False;
end
else if Trim(DB_Uf.Text) = EmptyStr then
begin
MessageDlg('Selecione o estado.', mtWarning, [mbOk], 0);
DB_Uf.Setfocus;
ValidarDados := False;
end
else if Trim(DB_Complemento.Text) = EmptyStr then
begin
MessageDlg('Informe o complemento.', mtWarning, [mbOk], 0);
DB_Complemento.Setfocus;
ValidarDados := False;
end
else if Trim(DB_Cep.Text) = EmptyStr then
begin
MessageDlg('Informe o CEP.', mtWarning, [mbOk], 0);
DB_Cep.Setfocus;
ValidarDados := False;
end
else if Trim(DB_Telefone.Text) = EmptyStr then
begin
MessageDlg('Informe o número do telefone para contato.', mtWarning, [mbOk], 0);
DB_Telefone.Setfocus;
ValidarDados := False;
end
else if Trim(DB_Celular.Text) = EmptyStr then
begin
MessageDlg('Informe o número do celular para contato.', mtWarning, [mbOk], 0);
DB_Celular.Setfocus;
ValidarDados := False;
end
else if Trim(DB_Email.Text) = EmptyStr then
begin
MessageDlg('Informe um email para contato.', mtWarning, [mbOk], 0);
DB_Email.Setfocus;
ValidarDados := False;
end
else if Trim(DB_Dependentes.Text) = EmptyStr then
begin
MessageDlg('Selecione a quantidade de dependentes.', mtWarning, [mbOk], 0);
DB_Dependentes.Setfocus;
ValidarDados := False;
end
else if Trim(DB_DtAdmissao.Text) = EmptyStr then
begin
MessageDlg('Informe a data de admissao.', mtWarning, [mbOk], 0);
DB_DtAdmissao.Setfocus;
ValidarDados := False;
end
else if Trim(DB_Setor.Text) = EmptyStr then
begin
MessageDlg('Selecione o setor.', mtWarning, [mbOk], 0);
DB_Setor.Setfocus;
ValidarDados := False;
end
else if Trim(DB_Funcao.Text) = EmptyStr then
begin
MessageDlg('Selecione a função.', mtWarning, [mbOk], 0);
DB_Funcao.Setfocus;
ValidarDados := False;
end
else
ValidarDados := True;
end;
procedure Tfrm_CA.Btn_LimparClick(Sender: TObject);
begin
DB_DtFiliacao.Setfocus;
DB_DtFiliacao.Clear;
DB_Categoria.Clear;
DB_Nome.Clear;
DB_DtNasc.Clear;
DB_EstCiv.Clear;
DB_Sexo.Clear;
DB_Rg.Clear;
DB_Cpf.Clear;
DB_End.Clear;
DB_Num.Clear;
DB_Bairro.Clear;
DB_Cidade.Clear;
DB_Uf.Clear;
DB_Complemento.Clear;
DB_Cep.Clear;
DB_Telefone.Clear;
DB_Celular.Clear;
DB_Email.Clear;
DB_Dependentes.Clear;
DB_DtAdmissao.Clear; end; procedure Tfrm_CA.Btn_SairClick(Sender: TObject);
begin
Close;
end; procedure Tfrm_CA.Btn_NovoClick(Sender: TObject);
begin
DataModule1.Tab_Associado.Open;
DataModule1.Tab_Associado.Insert; // Cria um novo registro
DB_Nome.SetFocus;
//DataModule1.Tab_Associado.Close;
DataModule1.Tab_Setor.Open;
DataModule1.Tab_Funcao.Open;
end; procedure Tfrm_CA.Btn_EditarClick(Sender: TObject);
begin
frm_CA.Close;
Form1.ShowModal;
end; procedure Tfrm_CA.Btn_SalvarClick(Sender: TObject);
begin
DataModule1.Tab_Associado.Post;
// DataModule1.Tab_Associado.Refresh;
end; procedure Tfrm_CA.Btn_CancelarClick(Sender: TObject);
begin
If MessageDlg('Deseja realmente cancelar as modificações ?', mtConfirmation,
[mbYes,mbNo], 0) = mrYes Then
DataModule1.Tab_Associado.Cancel;
end;
procedure Tfrm_CA.Btn_LocalizarClick(Sender: TObject);
begin
frm_localizar.ShowModal;
end;
procedure Tfrm_CA.FormShow(Sender: TObject);
begin
DataModule1.Tab_Associado.close;
DataModule1.Tab_Setor.close;
DataModule1.Tab_Funcao.close;
DataModule1.Tab_Dependentes.Close;
end; end. Form de Localização: unit U_Localizar; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, Grids, DBGrids, StdCtrls, ExtCtrls, Mask, DBCtrls, DB,
ADODB, DBTables, ppBands, ppCtrls, ppPrnabl, ppClass, ppCache, ppProd,
ppReport, ppDB, ppComm, ppRelatv, ppDBPipe, ppVar,StrUtils; type
Tfrm_localizar = class(TForm)
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
LE_localizar: TLabeledEdit;
btn_ok: TSpeedButton;
btn_sair: TSpeedButton;
DBGrid1: TDBGrid;
ppDBPipeline1: TppDBPipeline;
ppReport1: TppReport;
ppHeaderBand1: TppHeaderBand;
ppLabel1: TppLabel;
ppDetailBand1: TppDetailBand;
ppDBText2: TppDBText;
ppDBText3: TppDBText;
ppFooterBand1: TppFooterBand;
ppSystemVariable1: TppSystemVariable;
ADOQuery1Cod_Associado: TAutoIncField;
ADOQuery1Nome: TWideStringField;
ADOQuery1Setor: TWideStringField;
ADOQuery1Funcao: TWideStringField;
ADOQuery1Situacao: TBooleanField;
procedure btn_sairClick(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure btn_okClick(Sender: TObject);
procedure LE_localizarKeyPress(Sender: TObject; var Key: Char);
procedure ADOQuery1SituacaoGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure BitBtn1Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end; var
frm_localizar: Tfrm_localizar; implementation uses U_dm, U_CA, Unit1, U_CadastroAssociado, U_Dependentes, U_Funcao,
U_Principal, U_reldepen, U_RelNiver, U_Setor, U_sobresys; {$R *.dfm} procedure Tfrm_localizar.btn_sairClick(Sender: TObject);
begin
Close;
end; procedure Tfrm_localizar.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if State = [] then
begin
if (ADOQuery1.FieldByName('Situacao').AsBoolean = False) then //onde 'Ativo' é o nome do campo do banco de dados
DBGrid1.Canvas.Brush.Color := clInactiveBorder // define a cor das linhas do grid que serao inativos
else
DBGrid1.Canvas.Brush.Color := clWhite; // define a cor das linhas do grid que serao ativos
end;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end; procedure Tfrm_localizar.btn_okClick(Sender: TObject);
begin
with ADOQuery1 do
begin
Close; // fecha a query para alterar a SQL
SQL.Clear; // limpa o conteudo SQL da query
SQL.Add('SELECT COD_ASSOCIADO, Nome, Setor, Funcao, Situacao FROM CadastroAssociado'); // seleciona todos os campos da tabela CLIENTE
SQL.Add('WHERE NOME LIKE :pNome'); // ONDE o nome seja igual ao param pNome
SQL.Add('ORDER BY COD_ASSOCIADO'); // ordenado por código
Parameters.ParamByName('pNome').Value:= '%'+LE_Localizar.Text+'%'; // define o valor do parametro pNome = ao texto do edit1
Open; // executa a query
end;
end; procedure Tfrm_localizar.LE_localizarKeyPress(Sender: TObject;
var Key: Char);
begin
if key = #13 then //for enter
btn_ok.Click;
end; procedure Tfrm_localizar.ADOQuery1SituacaoGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
Text := IfThen(Sender.AsBoolean,'Ativo','Inativo');
end; procedure Tfrm_localizar.BitBtn1Click(Sender: TObject);
begin
// ppReport1.Print;
end; procedure Tfrm_localizar.DBGrid1DblClick(Sender: TObject);
begin
//frm_CA.ShowModal;
Close;
Form1.ShowModal;
//DataModule1.Tab_Associado.Edit;
end; procedure Tfrm_localizar.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key = vk_return) then
begin
DataModule1.Tab_Associado.Edit;
end;
end; end. Form de Edição: unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, StdCtrls, Mask, Buttons, DB; type
TForm1 = class(TForm)
Label1: TLabel;
Btn_Salvar: TSpeedButton;
Btn_Sair: TSpeedButton;
Label2: TLabel;
DB_Cod: TDBText;
gb_DP: TGroupBox;
Label3: TLabel;
Label5: TLabel;
Label7: TLabel;
Label4: TLabel;
Label22: TLabel;
Label16: TLabel;
Label17: TLabel;
DB_Nome: TDBEdit;
DB_DtNasc: TDBEdit;
DB_EstCiv: TDBComboBox;
DB_Sexo: TDBComboBox;
DB_Dependentes: TDBComboBox;
DB_Rg: TDBEdit;
DB_Cpf: TDBEdit;
gb_End: TGroupBox;
Label10: TLabel;
Label23: TLabel;
Label25: TLabel;
Label26: TLabel;
Label13: TLabel;
Label12: TLabel;
Label24: TLabel;
Label14: TLabel;
Label15: TLabel;
Label18: TLabel;
DB_End: TDBEdit;
DB_Num: TDBEdit;
DB_Complemento: TDBEdit;
DB_Bairro: TDBEdit;
DB_Cep: TDBEdit;
DB_Cidade: TDBEdit;
DB_Uf: TDBComboBox;
DB_Telefone: TDBEdit;
DB_Celular: TDBEdit;
DB_Email: TDBEdit;
gb_DA: TGroupBox;
Label9: TLabel;
Label19: TLabel;
Label8: TLabel;
Label20: TLabel;
Label21: TLabel;
DB_DtFiliacao: TDBEdit;
DB_Categoria: TDBComboBox;
DB_DtAdmissao: TDBEdit;
DB_Setor: TDBLookupComboBox;
DB_Funcao: TDBLookupComboBox;
DBRadioGroup1: TDBRadioGroup;
DBNavigator1: TDBNavigator;
Btn_Editar: TSpeedButton;
procedure Btn_SairClick(Sender: TObject);
procedure Btn_SalvarClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Btn_EditarClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation uses U_CA, U_Dependentes, U_dm, U_Funcao, U_Localizar, U_Setor,
U_Principal, U_reldepen, U_RelNiver, U_sobresys; {$R *.dfm}
procedure TForm1.Btn_SairClick(Sender: TObject);
begin
Close; end; procedure TForm1.Btn_SalvarClick(Sender: TObject);
begin
DataModule1.Tab_Associado.Post;
// DataModule1.Tab_Associado.Refresh;
end; procedure TForm1.FormShow(Sender: TObject);
begin
DataModule1.Tab_Associado.Open;
DataModule1.Tab_Associado.Edit;
{If ValidarDados = True Then // Função que verifica se foi preenchido o formulario
begin
try
DataModule1.Tab_Associado.Post;// Confirma as modificações no DatSet
except // Caso Aconteça algum erro exibe mensagem ao usuário
MessageDlg('Atenção não foi possivel salvar o registro.', mtError, [mbOk], 0);
end;}
DataModule1.Tab_Associado.Post;
end; procedure TForm1.Btn_EditarClick(Sender: TObject);
begin
DataModule1.Tab_Associado.Open;
DataModule1.Tab_Associado.Edit;
DataModule1.Tab_Associado.Post;
end; end. botei os códigos inteiros, se ficou mto longo, me perdoem hahaahhaha
Thiago Santana
01/03/2010
O seu form de Edição será o mesmo que vc utiliza para cadastrar, não a necessidade de criar um formulário apenas para a editar o registro.
Vc olhou o link que postei anteriormente? Lá vc vai entender direitinho!
AbraçoO
Laura Queiroz
01/03/2010
Thiago Santana
01/03/2010
Laura Queiroz
01/03/2010
Perivaldo Martins
01/03/2010
begin
Close; // fecha a query para alterar a SQL
SQL.Clear; // limpa o conteudo SQL da query
SQL.Add('SELECT COD_ASSOCIADO, Nome, Setor, Funcao, Situacao FROM CadastroAssociado'); // seleciona todos os campos da tabela CLIENTE
SQL.Add('WHERE NOME LIKE :pNome'); // ONDE o nome seja igual ao param pNome
SQL.Add('ORDER BY COD_ASSOCIADO'); // ordenado por código
Parameters.ParamByName('pNome').Value:= '%'+LE_Localizar.Text+'%'; // define o valor do parametro pNome = ao texto do edit1
Open; // executa a query
end; O código acima está legal, mas entenda uma coisa, para o que vc está querendo, ou vc usa tudo com Query ou tudo com Table, usando Locate, como no exemplo que te passei. Da forma como está, vc teria que usar algo mais ou menos assim: * Criar uma variável global. * Passar como valor para essa variável o valor vindo da instrução SQL contida na Query. * Filtrar a Tab_Associado (DataModule1.Tab_Associado.Filter := 'Nome = '+Sua_Variavel_Global DataModule1.Tab_Associado.Filtered := True; Só que eu particularmente, acho isso desnecessário, e parece gambiarra. No Form_Localizar vc poderia usar no OnChage do componente Edit (ex: dbNome.Text). with DataModule1 do begin Tab_Associado.Locate('Nome', dbNome.Text, [loPartialKey, LoCaseInsensitive]); end;
Assim, o ponteiro ficará sobre o registro desejado, e quando vc clicar duas vezes no DBGrid, ele vai simplesmente fechar o form de localização e chamar o Form de cadastro que já vai abrir com o registro na tela. Espero que o Thiago possa lhe ajudar a resolver esse problema hj quando vcs estiverem on line. Boa sorte e bons códigos.
Laura Queiroz
01/03/2010
Perivaldo Martins
01/03/2010
Laura Queiroz
01/03/2010
Laura Queiroz
01/03/2010
Thiago Santana
01/03/2010
Mas afinal teu sistema já tá funcionando do jeito que vc quer? Abraçoo
Laura Queiroz
01/03/2010
Thiago Santana
01/03/2010
Vc tentou seguir as dicas que passei neste link aki para um colega nosso? https://www.devmedia.com.br/forum/viewtopic.asp?id=19116 Se vc não conseguir dê um jeito de ficar online hj depois das 6!
Mas acho que vc deve conseguir resolver com este link acima! Online posso te ajudar com mais facilidade!
AbraçoO
Laura Queiroz
01/03/2010
Laura Queiroz
01/03/2010
Dm.ClientDataSet1.CommandText := '';
Dm.ClientDataSet1.CommandText:= ('Select * from Tb_Teste where Nome = ' + QuotedStr (Edit1.Text ));
Dm.ClientDataSet1.Open;
No evento ondblClick da DbGrid inclua o seguinte código:
FormCadastro.show; // Seu formulário de edição
Dm.CDSCadastro.Edit; // Mesma tabela utilizada por efetuar a consulta" só que o CommandText aqui não funciona, qual Uses que é?
Thiago Santana
01/03/2010
Vc está utilizando ClientDataSet? Se não estiver inclua um clienteDataSetna sua aplicação para testar... No botão consultar já na tela de consulta (FormConsulta) vc irá informar o seguinte código:
Dm.ClientDataSet1.close;
Dm.ClientDataSet1.CommandText := '';
Dm.ClientDataSet1.CommandText:= ('Select * from Tb_Teste where Nome = ' + QuotedStr (EditPesquisa.Text));
Dm.ClientDataSet1.Open;
No evento ondblClick da DbGrid do seu FormConsulta inclua o seguinte código:
FormCadastro.show; // Seu formulário de edição
Dm.ClientDataSet1.Edit; // Mesma tabela utilizada por efetuar a consulta
É isso aí, caso vc não consiga eu ficarei até mais tarde online para te ajudar...
Laura Queiroz
01/03/2010
Thiago Santana
01/03/2010
DM.Query1.SQL.Add('Select * from Tb_Teste where Nome = ' + QuotedStr (EditPesquisa.Text));
DM.Query1.Open;
No evento ondblClick da DBGRIG do seu FormConsulta inclua o seguinte código:
FormCadastro.show; // Seu formulário de edição DM.ClientDataSet1.Edit; // Mesma tabela utilizada por efetuar a consulta Lembrando que vc deverá utilizar a mesma Query1 para a tela de cadastro!
Thiago Santana
01/03/2010
E ao invés de DM.ClientDataset1 como informei no post passadoo vc vai utilizar a Dm.Query1!
Espero que tenha entendido! Qquer coisa envia teu sistema para meu email que ajeito e mando explicando pra vc como resolvi tua situação! Ou estarei online mais tarde! AbraçoO
Perivaldo Martins
01/03/2010
Laura Queiroz
01/03/2010
Rubens Antunes
01/03/2010
comecei a mexer nele sem nem ter tido UMA aula sequer.
Eu fui fazendo o sistema com ajudas..
tanto que essa parte do localizar, onde foi usado Query, foi um amigo meu da facul que me ajudou.
Peguei umas apostilas pra dar uma estudada.. mas não sou mto boa nele ainda ahahahahha
sou perdidinha ainda.
mas conforme os dias eu vou aprendendo ;)
Meninos, vou ter que fazer outros serviços aqui no meu trampo, e não poderei responder mais, então amanhã eu leio os ultimos posts do thiago e te envio a estrutura do sistema, ok perivaldo?
Obrigada pela super ajuda mais uma vez, meninos!
Laura
Laura Queiroz
01/03/2010
Thiago Santana
01/03/2010
Laura será mais simples vc utilizar apenas 1 ADOQuery tanto para cadastrar, alterar e Consultar!
Apenas uma ADOQUERY...
Fique online a noite que teu ajudo!
AbraçoO
Laura Queiroz
01/03/2010
Laura Queiroz
01/03/2010
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, StdCtrls, Mask, Buttons, DB; type
TForm1 = class(TForm)
Label1: TLabel;
Btn_Salvar: TSpeedButton;
Btn_Sair: TSpeedButton;
Label2: TLabel;
DB_Cod: TDBText;
gb_DP: TGroupBox;
Label3: TLabel;
Label5: TLabel;
Label7: TLabel;
Label4: TLabel;
Label22: TLabel;
Label16: TLabel;
Label17: TLabel;
DB_Nome: TDBEdit;
DB_DtNasc: TDBEdit;
DB_EstCiv: TDBComboBox;
DB_Sexo: TDBComboBox;
DB_Dependentes: TDBComboBox;
DB_Rg: TDBEdit;
DB_Cpf: TDBEdit;
gb_End: TGroupBox;
Label10: TLabel;
Label23: TLabel;
Label25: TLabel;
Label26: TLabel;
Label13: TLabel;
Label12: TLabel;
Label24: TLabel;
Label14: TLabel;
Label15: TLabel;
Label18: TLabel;
DB_End: TDBEdit;
DB_Num: TDBEdit;
DB_Complemento: TDBEdit;
DB_Bairro: TDBEdit;
DB_Cep: TDBEdit;
DB_Cidade: TDBEdit;
DB_Uf: TDBComboBox;
DB_Telefone: TDBEdit;
DB_Celular: TDBEdit;
DB_Email: TDBEdit;
gb_DA: TGroupBox;
Label9: TLabel;
Label19: TLabel;
Label8: TLabel;
Label20: TLabel;
Label21: TLabel;
DB_DtFiliacao: TDBEdit;
DB_Categoria: TDBComboBox;
DB_DtAdmissao: TDBEdit;
DB_Setor: TDBLookupComboBox;
DB_Funcao: TDBLookupComboBox;
DBRadioGroup1: TDBRadioGroup;
DBNavigator1: TDBNavigator;
Btn_Editar: TSpeedButton;
procedure Btn_SairClick(Sender: TObject);
procedure Btn_SalvarClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Btn_EditarClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation uses U_CA, U_Dependentes, U_dm, U_Funcao, U_Localizar, U_Setor,
U_Principal, U_reldepen, U_RelNiver, U_sobresys, Unit2; {$R *.dfm}
procedure TForm1.Btn_SairClick(Sender: TObject);
begin
Close; end; procedure TForm1.Btn_SalvarClick(Sender: TObject);
begin
DataModule1.Tab_Associado.Post;
// DataModule1.Tab_Associado.Refresh;
end; procedure TForm1.FormShow(Sender: TObject);
begin
DataModule1.Tab_Associado.Open;
DataModule1.Tab_Associado.Edit;
{If ValidarDados = True Then // Função que verifica se foi preenchido o formulario
begin
try
DataModule1.Tab_Associado.Post;// Confirma as modificações no DatSet
except // Caso Aconteça algum erro exibe mensagem ao usuário
MessageDlg('Atenção não foi possivel salvar o registro.', mtError, [mbOk], 0);
end;}
DataModule1.Tab_Associado.Post;
end; procedure TForm1.Btn_EditarClick(Sender: TObject);
begin
Form2.Show;
DataModule1.Tab_Associado.Open;
DataModule1.Tab_Associado.Edit; {If ValidarDados = True Then // Função que verifica se foi preenchido o formulario
begin
try
DataModule1.Tab_Associado.Post;// Confirma as modificações no DatSet
except // Caso Aconteça algum erro exibe mensagem ao usuário
MessageDlg('Atenção não foi possivel salvar o registro.', mtError, [mbOk], 0);
end;}
DataModule1.Tab_Associado.Post;
end; end. form2 (formulário de localização) unit Unit2; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DB, ADODB, Grids, DBGrids, ExtCtrls,StrUtils; type
TForm2 = class(TForm)
LabeledEdit1: TLabeledEdit;
DBGrid1: TDBGrid;
BitBtn1: TBitBtn;
procedure LabeledEdit1Change(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form2: TForm2; implementation uses U_dm, Unit1; {$R *.dfm} procedure TForm2.LabeledEdit1Change(Sender: TObject);
begin
DataModule1.Tab_Associado.Open;
DataModule1.Tab_Associado.Locate('Nome', LabeledEdit1.Text, [loCaseInsensitive, loPartialKey]); end; procedure TForm2.DBGrid1DblClick(Sender: TObject);
begin
Close;
Form1.Show;
end; end.
Roberto Novakosky
01/03/2010