Erro quando seleciona a informação no DBGrid

22/02/2013

2

Boa noite,

Estou desenvolvendo um pequeno Software para minha empresa, e notei um problema em alguns DBGrid's. quando tento selecionar uma determinada linha para alterar sempre retorna os valores da primeira linha do DBGrid.

Alguém sabe me dizer porque isso acontece???

desde já muito obrigado.
Responder

Posts

Bom dia...

quais os componentes você esta utilizando?
Grid: ???
componente de conexão: ???

Esta alteração que você citou seria em algum outro componente?
Ex:
você tem a grid para visualizar os registros e conforme vai mudando de linha quer fazer a alteração em alguma DbEdit?
se for, você esta usando o mesmo DataSource? caso contrario no evento OnDataChange do DataSource da Grid é que você deve abrir seu dataSet de manutenção passando como parametro o registro da grid!

ou a alteração será feita diretamente na DbGrid?
Responder

01/03/2013

Erivan Silva

Rapaz acontece é o seguinte:

no DBgrid do Cadastro de Usuários eu posso da um duplo click e selecionar um determinado usuário para fazer a alteração de senha, permissão, login, etc... no entanto quando eu escolho um determinado usuário para fazer a alteração em algum destes campos ele não me retorna o usuário selecionado, retorna o primeiro usuário da lista.

Estou utilizando os seguintes componentes:
IBQuery: conexão com a tabela.
DataSource: conexão com componentes.
DBGrid: Visualização dos dados.
Edit: para preenchimento de informações.

Não utilizo DBEdit.
Responder
Rapaz acontece é o seguinte:

no DBgrid do Cadastro de Usuários eu posso da um duplo click e selecionar um determinado usuário para fazer a alteração de senha, permissão, login, etc... no entanto quando eu escolho um determinado usuário para fazer a alteração em algum destes campos ele não me retorna o usuário selecionado, retorna o primeiro usuário da lista.

Estou utilizando os seguintes componentes:
IBQuery: conexão com a tabela.
DataSource: conexão com componentes.
DBGrid: Visualização dos dados.
Edit: para preenchimento de informações.

Não utilizo DBEdit.


Como está se código no Duplo Click?


Boa sorte e bons códigos!
Responder

01/03/2013

Erivan Silva

Código do Duplo Clique no DBGrid, o código que preenche os edites está a baixo.


if (frmPrincipal.permissao < 2) or
(dm.V_users.Fields[0].AsInteger = frmPrincipal.user) then
begin
LiparEdit;
try
senha := Crypt('D', dm.V_users.Fields[5].Text);
Edit3.Text := senha;
preencherEdits;
except
on EConvertError do
begin
MessageBox(0, 'Impossível descriptografar a senha!' + #13 +
'Talves a senha não exista ou não esteja criptografada, procure o Administrador do sistema'
+ #13 + 'Erivan Alves - Fone: 73-9155-0021 ou 73-3525-7843',
'Erro de Criptografia', 16);
Edit3.Clear;
preencherEdits;
end
else // if (frmPrincipal.permissao > frmPrincipal.user) then
begin
MessageBox(0,
'Erro não identificado, procure o administrador do sistema' + #13 +
'Erivan Alves - Fone: 73-9155-0021 ou 73-3525-7843', 'Erro', 16);
preencherEdits;
end;
end;
end
else
begin
MessageBox(0, 'Você não pode realizar essa opração: ' + #13 +
'Você só tem permissão para alterar sua propria senha!', 'Erro', 16);
edtNome.SetFocus;
end;


Função para preencher os edits.


with dm.V_users do
begin
if (dm.V_users.Fields[2].AsInteger <> 0) then
begin
edtLote.Enabled := false;
end
else if (dm.V_users.Fields[2].AsInteger = frmPrincipal.user) then

begin
edtLote.Enabled := true;
end;
id := Fields[0].AsInteger;
permissao := Fields[2].AsInteger;
edtNome.Text := Fields[1].Text;
Edit2.Text := Fields[3].Text;
edtLote.Text := Fields[6].Text;
end;
if dm.qUser.Fields[4].Text = 'S' then
begin
CheckBox1.Checked := true;
end
else
begin
CheckBox1.Checked := false;
end;
tipo(permissao);
Button1.Enabled := false;
Button2.Enabled := true;
Button3.Enabled := true;
dbgLote.Visible := false;
senha := '';
edtNome.SetFocus;
Responder