Marcar e desmarcar no Dbgrid
Pessoal preciso de uma ajuda
No meu Grid tem um campo ATIVO aonde marco com um X quais registros quero baixar, quando vou marcando ele vai somando numa boa mas quando começo a desmarcar ele se perde, conforme nas imagens abaixo, na imagem 1 marquei duas opção, na imagem 2 desmarquei a ultima opção, ai ele fica negativo o que ocorre o problema, porque quando marco novamente ele entende que negativo com positivo diminui, meu código esta abaixo para darem uma olhada por favor. Obrigado
procedure TFDevolucao.DBGrid1CellClick(Column: TColumn);
begin
if not CDS_Devol_Fin.IsEmpty then
begin
if Column.FieldName = 'ATIVO' Then
begin
CDS_Devol_Fin.Edit;
if CDS_Devol_FinATIVO.AsString = 'X' then
CDS_Devol_FinATIVO.AsString := ''
else CDS_Devol_FinATIVO.AsString := 'X';
if CDS_Devol_FinATIVO.AsString = 'X' then
Edit_total.AsInteger := (CDS_Devol_FinVALOR.AsInteger + Edit_total.AsInteger)
else
Edit_total.AsInteger := (CDS_Devol_FinVALOR.AsInteger - Edit_total.AsInteger);
CDS_Devol_Fin.Post;
end;
end;
end;
No meu Grid tem um campo ATIVO aonde marco com um X quais registros quero baixar, quando vou marcando ele vai somando numa boa mas quando começo a desmarcar ele se perde, conforme nas imagens abaixo, na imagem 1 marquei duas opção, na imagem 2 desmarquei a ultima opção, ai ele fica negativo o que ocorre o problema, porque quando marco novamente ele entende que negativo com positivo diminui, meu código esta abaixo para darem uma olhada por favor. Obrigado
procedure TFDevolucao.DBGrid1CellClick(Column: TColumn);
begin
if not CDS_Devol_Fin.IsEmpty then
begin
if Column.FieldName = 'ATIVO' Then
begin
CDS_Devol_Fin.Edit;
if CDS_Devol_FinATIVO.AsString = 'X' then
CDS_Devol_FinATIVO.AsString := ''
else CDS_Devol_FinATIVO.AsString := 'X';
if CDS_Devol_FinATIVO.AsString = 'X' then
Edit_total.AsInteger := (CDS_Devol_FinVALOR.AsInteger + Edit_total.AsInteger)
else
Edit_total.AsInteger := (CDS_Devol_FinVALOR.AsInteger - Edit_total.AsInteger);
CDS_Devol_Fin.Post;
end;
end;
end;
Fabianoluizdb
Curtidas 0
Respostas
Fabianoluizdb
02/11/2010
Pessoal, que descuido meu, não vi aonde estava o erro, estava na nessa linha
Edit_total.AsInteger := (CDS_Devol_FinVALOR.AsInteger - Edit_total.AsInteger) era só inverter os campos que estam dentro do parenteses e ficou assim.
Edit_total.AsInteger := (Edit_total.AsInteger - CDS_Devol_FinVALOR.AsInteger);
Fica o codigo para caso alguem precise.
Valeu
Edit_total.AsInteger := (CDS_Devol_FinVALOR.AsInteger - Edit_total.AsInteger) era só inverter os campos que estam dentro do parenteses e ficou assim.
Edit_total.AsInteger := (Edit_total.AsInteger - CDS_Devol_FinVALOR.AsInteger);
Fica o codigo para caso alguem precise.
Valeu
GOSTEI 0