FDQuery: DataSet not in edit or insert mode
04/11/2018
0
Olha amigos
Estou com pequeno problema com meu componente FDQUERY que esta conetado a GRID. Tenho um procedure que varre a GRID e desmarcar ou marcar os Checkbox''''s, porém o seguinte erro acontece se eu interagrir com mouse na GRID antes de chamar a procedure. Se eu não tiver nenhuma interação com a GRID diretamente. nenhum erro é apresentado.
Minha Aplicação é FireMonkey.
Estou com pequeno problema com meu componente FDQUERY que esta conetado a GRID. Tenho um procedure que varre a GRID e desmarcar ou marcar os Checkbox''''s, porém o seguinte erro acontece se eu interagrir com mouse na GRID antes de chamar a procedure
FDLojas: DataSet not in edit or insert mode
Minha Aplicação é FireMonkey.
Danilo Oliveira
Curtir tópico
+ 0
Responder
Post mais votado
17/01/2019
Eai Danilo, bom?
você deve ter colocado no evento OnDrawnColumnCell p/ alterar as marcações conforme Status no banco, certo ?
como ficou meio vago os detalhes do seu código, então imagino que se tu fizer o seguinte :
no OnClick do CheckBox verificar o estado do DataSet e só alterar o registro se estiver em edição/inserção...
if FDLojas.State in [dsEdit, dsInsert] then
begin
(SEU CÓDIGO...);
end;
e também remova da propriedade OnDrawnColumnCell e coloque no DataSource em OnDataChange, se estiver algo escrito errado me perdoe, estou sem o delphi aqui no momento...
dentro do DataSource só p/ fins de garantia também coloque um if:
if FDLojas.State in [dsBrowse] then
begin
if FDLojas.FieldByName('TESTE').Value = 1 then
CheckBox1.Checked := True
else
CheckBox1.Checked := False;
end;
qualquer dúvida só retornar, mas que fique p/ esclarecimento de outros usuários.
você deve ter colocado no evento OnDrawnColumnCell p/ alterar as marcações conforme Status no banco, certo ?
como ficou meio vago os detalhes do seu código, então imagino que se tu fizer o seguinte :
no OnClick do CheckBox verificar o estado do DataSet e só alterar o registro se estiver em edição/inserção...
if FDLojas.State in [dsEdit, dsInsert] then
begin
(SEU CÓDIGO...);
end;
e também remova da propriedade OnDrawnColumnCell e coloque no DataSource em OnDataChange, se estiver algo escrito errado me perdoe, estou sem o delphi aqui no momento...
dentro do DataSource só p/ fins de garantia também coloque um if:
if FDLojas.State in [dsBrowse] then
begin
if FDLojas.FieldByName('TESTE').Value = 1 then
CheckBox1.Checked := True
else
CheckBox1.Checked := False;
end;
qualquer dúvida só retornar, mas que fique p/ esclarecimento de outros usuários.
Thalles Oliveira
Responder
Clique aqui para fazer login e interagir na Comunidade :)