CheckBox DbGrid
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
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
Curtidas 0
Respostas
Bruno Henrique
16/05/2016
Senhores poderiam me ajudar?
GOSTEI 0
Bruno Henrique
16/05/2016
Subindo
GOSTEI 0
Bruno Henrique
16/05/2016
Alguém saberia me dizer se eu fizer um clone do dataset daria certo?
GOSTEI 0
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';
No final do for
você monta um select ou um filtro onde o campo ('SELECIONADO').AsString := 'S';
GOSTEI 0
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'+'''';
E Filtrar.
Exemplo : checkbox :=true >> Já grava no campo do registro ='S';
(Apenas Selecionados )= SELECT * FROM SUABELA WHERE SELECIONADO='''+'S'+'''';
GOSTEI 0
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?
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
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
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.
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
16/05/2016
P2, boa noite!!!
Te mandei um email.
Grato
Te mandei um email.
Grato
GOSTEI 0
Raimundo Pereira
16/05/2016
Brother, estava viajando só pude verificar o email hoje.
GOSTEI 0
Raimundo Pereira
16/05/2016
Teve algum progresso ?
GOSTEI 0
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
16/05/2016
Já revirei o código mais não consigo resolver
GOSTEI 0
Raimundo Pereira
16/05/2016
Me add no Skype
GOSTEI 0
Bruno Henrique
16/05/2016
P2, boa noite!!!
Qual o seu skype?
Qual o seu skype?
GOSTEI 0