[gelöst] DBGrid mit Summenzeile?

Rund um die LCL und andere Komponenten
Antworten
willi4willi
Lazarusforum e. V.
Beiträge: 135
Registriert: Sa 1. Nov 2008, 18:06
OS, Lazarus, FPC: Windows (10), Linux (debinan) / FPC 3.0.4 / Lazarus 2.0.8
CPU-Target: i386, win64, arm

[gelöst] DBGrid mit Summenzeile?

Beitrag von willi4willi »

Hallo!

kann man mit dem DBGrid auch eine Zeile mit z.B. den Summen oder Mittelwerten der angezeigten Daten darstellen? Oder kennt jemand eine Komponente, die das kann?

Wie löst ihr das Problem?

Zwei DBGrids untereinander, die immer synchron gehalten werden, scheint mir kompliziert, besonders, wenn man horizontal scrollen muss.

Danke schon mal im Voraus!
Zuletzt geändert von willi4willi am Do 11. Jan 2018, 13:43, insgesamt 1-mal geändert.
Viele Grüße

Willi4Willi

------------

wp_xyz
Beiträge: 3223
Registriert: Fr 8. Apr 2011, 09:01

Re: DBGrid mit Summenzeile?

Beitrag von wp_xyz »

rxdbgrid hat meines Wissens einen Footer, in dem man verschiedene Größen, darunter auch die Summe, einstellen kann. Ob die vom Online-Package-Manager angebotene Version dies unterstützt, weiß ich nicht; ansonsten findest du die Entwicklerversion auf https://sourceforge.net/p/lazarus-ccr/s ... /rx/trunk/.

willi4willi
Lazarusforum e. V.
Beiträge: 135
Registriert: Sa 1. Nov 2008, 18:06
OS, Lazarus, FPC: Windows (10), Linux (debinan) / FPC 3.0.4 / Lazarus 2.0.8
CPU-Target: i386, win64, arm

Re: [gelöst] DBGrid mit Summenzeile?

Beitrag von willi4willi »

Danke!

Mit dieser Komponente habe ich alles, was ich brauche. Man kann sogar gruppieren.

Ich bin begeistert!
Viele Grüße

Willi4Willi

------------

LazarusFuchs
Beiträge: 2
Registriert: Mo 19. Aug 2013, 22:28

Re: [gelöst] DBGrid mit Summenzeile?

Beitrag von LazarusFuchs »

Betrifft das Thema nur indirekt, aber die Datumseingabe im Grid ist nicht die Beste. Habe dazu die procedure TRxDBGridDateEditor.EditChange; mit meinem Code ersetzt:

{ ********************** NEW *************************************** }
procedure TRxDBGridDateEditor.EditChange;
var
D:TDateTime;
s: string;
i:integer;
b: boolean;

da,mo,ye: string;
ida, imo, iye: integer;

begin
inherited EditChange;
if Assigned(FGrid) and FGrid.DatalinkActive and not FGrid.EditorIsReadOnly then begin
if not (FGrid.DataSource.DataSet.State in dsEditModes) then FGrid.DataSource.Edit;

{ Text from Editor }
s:= Text;

{ Day, Month , Year extrahieren }
da:= Copy(s,1,2);
mo:= Copy(s,4,2);
ye:= Copy(s,7,4);

{ No Error in Date b:= true }
b:= true;

{ Day, Month and Year to Int }
try
ida:=0;
ida:= StrToInt(da);
except
b:= false;
end;

try
imo:= 0;
imo:= StrToInt(mo);
except
b:= false;
end;

try
iye:= 0;
iye:= StrToInt(ye);
except
b:= false;
end;

{ The Ins from Date are right?}
if not ((ida>0) and(ida<32)) then b:= false;
if not ((imo>0) and(imo<13)) then b:= false;
if not ((iye>1899) and(iye<2200)) then b:= false;

// TryStrToDate(s, D);

if b then begin
{ Checking, if Date can be used, Example April 31 }
b:= TryStrToDate(s, D);
if (b=false) then begin
beep;
end else begin
FGrid.SelectedField.AsDateTime := Self.Date;
if FGrid <> nil then FGrid.SetEditText(FCol, FRow, s);
end;
end;
end;
end;
{ ********************** NEW *************************************** }

Die Eingrenzung des Jahres könnte man noch als Properties programmieren-

LazarusFuchs
Beiträge: 2
Registriert: Mo 19. Aug 2013, 22:28

Re: [gelöst] DBGrid mit Summenzeile?

Beitrag von LazarusFuchs »

Vergessen: Ist in rxdbgrid etwa ab Zeile 2705

Antworten