CheckBox DbGrid

Delphi

16/05/2016

Boa noite!!!

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

Bruno Henrique

Curtidas 0

Respostas

Bruno Henrique

Bruno Henrique

16/05/2016

Senhores poderiam me ajudar?
GOSTEI 0
Bruno Henrique

Bruno Henrique

16/05/2016

Subindo
GOSTEI 0
Bruno Henrique

Bruno Henrique

16/05/2016

Alguém saberia me dizer se eu fizer um clone do dataset daria certo?
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

16/05/2016

Tente ao clicar no botão gravar varrer o grid e aplicar o post do campo('SELECIONADO').AsString := 'S';

No final do for

você monta um select ou um filtro onde o campo ('SELECIONADO').AsString := 'S';
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

16/05/2016

Acho que se você colocar para gravar a seleção no ato da mesma, você pode colocar um botão (Apenas Selecionados)
E Filtrar.

Exemplo : checkbox :=true >> Já grava no campo do registro ='S';

(Apenas Selecionados )= SELECT * FROM SUABELA WHERE SELECIONADO='''+'S'+'''';
GOSTEI 0
Bruno Henrique

Bruno Henrique

16/05/2016

P2 seria, mais acontece o seguinte!!!

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
Bruno Henrique

Bruno Henrique

16/05/2016

P2. esqueci de mencionar que eu desenhei o check box no dbgrid, e está para seleconar no onclick do evento
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

16/05/2016

O que você pode fazer também.

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
Bruno Henrique

Bruno Henrique

16/05/2016

P2, boa noite!!!

Te mandei um email.

Grato
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

16/05/2016

Brother, estava viajando só pude verificar o email hoje.
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

16/05/2016

Teve algum progresso ?
GOSTEI 0
Bruno Henrique

Bruno Henrique

16/05/2016

P2, tive um progresso...rss muito pouco... Ele baixa mais só baixa o primeiro registro ou se não somente o último, mais nunca os que eu selecionei no checkbox!!!
GOSTEI 0
Bruno Henrique

Bruno Henrique

16/05/2016

Já revirei o código mais não consigo resolver
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

16/05/2016

Me add no Skype
GOSTEI 0
Bruno Henrique

Bruno Henrique

16/05/2016

P2, boa noite!!!

Qual o seu skype?
GOSTEI 0
POSTAR