Hi Darkchild,
oh oh - dein Code...
Also erst mal folgendes.
In deinem ersten Codeschnipsel läßt du dir in einer Schleife immer wieder den selben Wert geben.
Warum den Wert 10000 mal holen, nur weil 10000 Records da sind. Das tut es auch:
Delphi-Quellcode:
procedure Tfrmzeiterfassunguebersicht.cxbtndatensperrenClick(Sender: TObject);
begin
ShowMessage(inttostr(cDataModuleMain.ibtablezeiterfassung.RecordCount));
end;
Jetzt zur TcxGrid.
Diese kennt 2 Modi, und die sind sehr wichtig!
GridMode := True und GridMode := False.
Ohne GridMode (Standard) lädt die Grid alle Records aus der
DB in einen eigenen Speicher und filtert, sortiert, gruppiert etc. mit den eigenen Daten.
In diesem Mode ist Alles einfach und Alles möglich. (Gruppierung, Summierung etc.)
Der Nachteil ist, dass der Server mächtig zu tun bekommt, denn er muss alle Records liefern. Und das DataSet (
Query) ist nicht synchron mit den Daten der Grid.
Bei grösseren Datenmengen sollte man also im GrideMode arbeiten. Hier muss man zum Sortieren und Filtern etwas Hand anlegen. Dazu kann man erst mal die GrideMode - DEMO studieren.
Hier ist die Datenmenge der Grid mit der
Query immer synchron. Nachteil: Gruppieren und Gruppensummen sind nicht mehr möglich.
Du musst also erst mal die entscheidende Frage klären, GridMode oder nicht.
IMHO sollte der DataController der Grid den Recordcount für die Daten der Grid liefern.
Na ja, ist ein schwieriges Thema, aber die Hürde sollte man erst mal nehmen.
Cu, Frank