Fórum CheckBox DbGrid #553997
16/05/2016
0
Tenho um dbgrid aonde eu seleciono com um checkbox os projetos que eu tenho que faturar!!!Gostaria que os que estão selecionado quando eu clicar no botão gravar eles não serem exibidos na dbgrid para selecão novamente, mais ele só pega o ultimo selecionado ou seja somente o que está com a linha azul!
Como poderia resolver isso?
Imagem do DbGrid Com o CheckBox
Código de Gravação
procedure TFrmCondicaoPagamentoDinheiro.Button1Click(Sender: TObject);
begin
try
Transacao.TransactionID := 1;
Transacao.IsolationLevel := xilREPEATABLEREAD;
FrmPrincipal.ConexaoBd.StartTransaction(Transacao);
FrmFaturarProjeto.SdsFaturarProjeto.Close;
FrmFaturarProjeto.SdsFaturarProjeto.CommandType := ctQuery;
FrmFaturarProjeto.SdsFaturarProjeto.CommandText:='UPDATE CADPROJETOSAMPLIACOES SET ';
FrmFaturarProjeto.SdsFaturarProjeto.CommandText:=FrmFaturarProjeto.SdsFaturarProjeto.CommandText+'STATUS=:STATUS WHERE CODIGOPJA=:CODIGOPJA';
FrmFaturarProjeto.SdsFaturarProjeto.ParamByName('CODIGOPJA').AsInteger := StrToInt(EdtCondicaoPagamentoDinheiroCodigoProjeto.Text);
FrmFaturarProjeto.SdsFaturarProjeto.ParamByName('SELECIONADO').AsString := 'S';
FrmFaturarProjeto.SdsFaturarProjeto.ParamByName('STATUS').AsString := 'FATURADO';
FrmFaturarProjeto.SdsFaturarProjeto.ExecSQL;
FrmPrincipal.ConexaoBd.Commit(Transacao);
FrmFaturarProjeto.CdsFaturarProjeto.Close;
FrmFaturarProjeto.CdsFaturarProjeto.Open;
except
on E : Exception do
begin
ShowMessage('Ocorreu um erro na tentativa de inclusão do registro: ' + E.Message);
FrmPrincipal.ConexaoBd.Rollback(Transacao);
end;
end;
FrmCondicaoPagamentoDinheiro.Close;
end;
end;Bruno Henrique
Curtir tópico
+ 0Posts
16/05/2016
Bruno Henrique
Gostei + 0
16/05/2016
Bruno Henrique
Gostei + 0
18/05/2016
Bruno Henrique
Gostei + 0
18/05/2016
Raimundo Pereira
No final do for
você monta um select ou um filtro onde o campo ('SELECIONADO').AsString := 'S';
Gostei + 0
18/05/2016
Raimundo Pereira
E Filtrar.
Exemplo : checkbox :=true >> Já grava no campo do registro ='S';
(Apenas Selecionados )= SELECT * FROM SUABELA WHERE SELECIONADO='''+'S'+'''';
Gostei + 0
18/05/2016
Bruno Henrique
Eu pensei em fazer isso, mais se o usuário na hora de selecionar selecionou errado e clicar no botão faturar ele vai gravar igual a sim('s'), mais na hora de informar a condição de pagamento, ele viu que selecionou errado e fechar o form e abrir novamente, ele não vai aparecer no filtro, por que vai estár com o sim('s').
Teria alguma solução?
Gostei + 0
18/05/2016
Bruno Henrique
Gostei + 0
18/05/2016
Raimundo Pereira
1. Client Data SET = Temporário criado no onshow do form.
Com os mesmos campos.
Na abertura do Form, coletaria os dados da sua tabela original e ir preenchendo Client Data SET = Temporário.
Logo esse grid fica linkado ao TMP.
Deixaria o botão gravar.
No evento do botão gravar realizaria um for no TMP e Atualizaria sua tabela original.
Gostei + 0
19/05/2016
Bruno Henrique
Te mandei um email.
Grato
Gostei + 0
22/05/2016
Raimundo Pereira
Gostei + 0
22/05/2016
Raimundo Pereira
Gostei + 0
22/05/2016
Bruno Henrique
Gostei + 0
22/05/2016
Bruno Henrique
Gostei + 0
22/05/2016
Raimundo Pereira
Gostei + 0
23/05/2016
Bruno Henrique
Qual o seu skype?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)