Erros Em contadores

15/03/2013

1

Estou mudando algumas telas do meu sistema e o seguinte metodo ....

Antigo eu usava o TCxGrid e Nao sei como Migrar para o DBGrid

seguinte o importante pra min eh como realocar esse codigo para DBGrid Alguem me ajuda?

procedure TFREC604AA.ProcessaSelecionados;
var ARowIndex: Integer;
Contador: Integer;

procedure Adiciona(ARecordIndex: Integer);
var fCheque: TCheque;
begin
CDSCheques.RecNo := ARecordIndex + 1;
if not Assigned(fCheques.LocalizaCheque(CDSChequesIdCheque.AsInteger)) then begin
fCheque := TCheque.Create(Datam1.sConnection);
fCheque.Lock(CDSChequesIdCheque.AsInteger);
fCheque.IdCheque := CDSChequesIdCheque.AsInteger;
fCheques.Add(fCheque);
end;
end;

procedure UpdateRecords(AList: TList);
var I, ARecordIndex: Integer;
begin
with DBCheque.DataController do begin
try
BeginFullUpdate;
for I := AList.Count - 1 downto 0 do begin
ARecordIndex := Integer(AList[I]);
Adiciona(ARecordIndex);
end;
finally
EndFullUpdate;
end;
end;
end;

procedure MarcaDesmarcaLinha(ARowIndex: Integer);
var AList: TList;
ARecordIndex: Integer;
begin
with DBCheque.DataController do begin
if (ARowIndex <> -1) then begin
if GetRowInfo(ARowIndex).Level < Groups.GroupingItemCount then begin
AList := TList.Create;
try
Groups.LoadRecordIndexesByRowIndex(AList, ARowIndex);
UpdateRecords(AList);
finally
AList.Free;
end;
end else begin
try
BeginUpdate;
ARecordIndex := GetRowInfo(ARowIndex).RecordIndex;
Adiciona(ARecordIndex);
finally
EndUpdate;
end;
end;
end;
end;
end;
begin
if CDSCheques.IsEmpty then exit;

fCheques.Clear;
CDSCheques.DisableControls;
try
for Contador := 0 to DBCheque.Controller.SelectedRecordCount -1 do begin
ARowIndex := DBCheque.Controller.SelectedRecords[Contador].Index;
MarcaDesmarcaLinha(ARowIndex);
end;
except on E:Exception do
Mensagem(e.message, tmInforma);
end;
CDSCheques.EnableControls;
end;
Responder