Fórum Como Editar dados do banco de dados direto de um LookupComboBox #469310
08/02/2014
0
Olá Pessoal,
Eu tenho uma tabela chamada CARGO onde contém os seguinte campos: ID_CARGO, NOME.
O meu LookupComboBox lista os nomes (ou seja o listfield esta o campo nome).
Os outros campos do LookupComboBox estão:
-listSource - dtsCargoLkp
-keyfield - ID_CARGO
-datasource - dtsCadastrar
-datafield - ID_CARGO
E o que eu quero fazer é que quando o usuário selecionar um nome vai ter um botão ao lado chamado Editar Cargo, onde quando ele clicar ali vai abrir uma Janela Modal com todos os campos dessa janela ja preenchidos com os seus respectivos valores (ou seja o ID e o NOME), e quando ele clicar no botao Salvar a Edição seja feita e no LookupComboBox passe a aparecer o campo editado (eu entendo que isso é só questao de fechar e abrir o datasource).
Vale consta que eu já tenho a Janela Modal criada e que minha unica dificuldade é no código para fazer a Edição.
Eu já tentei desta maneira porém ele da o seguinte erro
Maneira, o Params[0] tem como parametro o '0 - id':
Erro:
Eu já fiz desta forma com um DBGrid e funcionou perfeitamente o problema é que agora eu quero fazer com um LookupComboBox.
Estou precisando muito resolver esse problema qualquer ajuda será muito bem vinda! Desde já Agradecido!
Eu tenho uma tabela chamada CARGO onde contém os seguinte campos: ID_CARGO, NOME.
O meu LookupComboBox lista os nomes (ou seja o listfield esta o campo nome).
Os outros campos do LookupComboBox estão:
-listSource - dtsCargoLkp
-keyfield - ID_CARGO
-datasource - dtsCadastrar
-datafield - ID_CARGO
E o que eu quero fazer é que quando o usuário selecionar um nome vai ter um botão ao lado chamado Editar Cargo, onde quando ele clicar ali vai abrir uma Janela Modal com todos os campos dessa janela ja preenchidos com os seus respectivos valores (ou seja o ID e o NOME), e quando ele clicar no botao Salvar a Edição seja feita e no LookupComboBox passe a aparecer o campo editado (eu entendo que isso é só questao de fechar e abrir o datasource).
Vale consta que eu já tenho a Janela Modal criada e que minha unica dificuldade é no código para fazer a Edição.
Eu já tentei desta maneira porém ele da o seguinte erro
Maneira, o Params[0] tem como parametro o '0 - id':
procedure TF_FormFuncionario.btnAlterarCargoClick(Sender: TObject);
var
t:Integer;
begin
with TClientDataSet(dtsCadastrar.DataSet) do
begin
Close;
Params[0].AsInteger := lkpCargo.DataSource.DataSet.FieldByName(lkpCargo.KeyField).Value;
Open;
Edit;
end;
F_FormCargoAlterar.showmodal;
end;Erro:
Project CMS.exe raised exception class EVariantTypeCastError with message 'Could not convert variant of type (Null) into type (Integer)'.
Eu já fiz desta forma com um DBGrid e funcionou perfeitamente o problema é que agora eu quero fazer com um LookupComboBox.
procedure TF_FormFuncionario.btnAlterarCargoClick(Sender: TObject);
begin
with TClientDataSet(dtsCadastrarCargo.DataSet) do
begin
Close;
Params[0].AsInteger := TClientDataSet(dtsConsultar.DataSet).Fields[0].AsInteger;
Open;
Edit;
end;
end;Estou precisando muito resolver esse problema qualquer ajuda será muito bem vinda! Desde já Agradecido!
Edson Vilhalba
Curtir tópico
+ 0
Responder
Posts
08/02/2014
Edson Vilhalba
Resolvi galera eu estava fazendo um erro bobo eu dentro do TClientDataSet estava com o dts errado. E o codigo que eu utilizei para fazer isso caso alguem precise foi este.
procedure TF_FormFuncionario.btnAlterarCargoClick(Sender: TObject);
var
t:Integer;
begin
with TClientDataSet(dtsCadastrarCargo.DataSet) do
begin
Close;
Params[0].AsInteger := lkpCargo.ListSource.DataSet.FieldByName(lkpCargo.KeyField).Value;
Open;
Edit;
end;
F_FormCargoAlterar.showmodal;
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)