![]() |
Stringgrid Zeilensumme in Label ausgeben
Liste der Anhänge anzeigen (Anzahl: 2)
Hi Leute.
Ich arbeite wieder an einem Kassenprogramm und möchte die Gesamtsumme der Bestellwerte, welche in ein Stringgrid gelistet werden (Button Bestellung Abgeben) mit einem Knopfdruck in einem Label angezeigt haben (Button Gesamtverkauf des Abends). ich habe schon verschiedene Methoden und Wege versucht aber nichts hat geklappt. Habs mit Stringgrid-Löschen funktion versucht und die irgendwie umzumodeln, dass sie statt löschen, addiert. Naja... erfolglos. Die Suche und Google spucken auch nichts verlässliches aus. Das hat mir die suche ausgespuckt: Dort wird die Gesamtsumme im Ende des Stringgrids ausgegeben.
Delphi-Quellcode:
[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]
procedure TForm2.Button1Click(Sender: TObject);
var y, x : integer; summe : double; begin summe := 0; with stringgrid1 do begin for y:= fixedcols to colcount -1 do begin for x:= fixedrows to rowcount -3 do begin summe:= summe + strtofloat(cells[y,x]); cells[y,rowcount-1] := floattostr(summe); end; end; end; end; |
Re: Stringgrid Zeilensumme in Label ausgeben
Die Lösung für das gesamte StringGrid hast Du ja jetzt. Wenn das nur für eine Zeile gelten soll, musst Du die Zeilenschleife eben weglassen.
|
Re: Stringgrid Zeilensumme in Label ausgeben
ja soweit war ich auch :) dennoch möchte ich das ergebnis ungern am ende der zeile haben, sondern als showmessage oder in einem label.
da liegt der hund begraben |
Re: Stringgrid Zeilensumme in Label ausgeben
label.caption:=floattostr(summe);
oder verstehe ich deine Frage nicht? |
Re: Stringgrid Zeilensumme in Label ausgeben
Dann musst Du doch nur die Zeile
Zitat:
|
Re: Stringgrid Zeilensumme in Label ausgeben
also so siehts aus:
"ergebnis" ist der wert der aus einer bestellung hervorgeht, quasi der einzelbestellwert. Im stringgrid werden viele dieser einzelbestellwerte aufgelistet und sollen über "button6" addiert und in einem Label ausgegeben werden.
Delphi-Quellcode:
[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]
procedure TForm1.Button6Click(Sender: TObject);
var y, x : integer; ergebnis : double; begin ergebnis := 0; with stringgrid1 do begin for x:= fixedrows to rowcount -3 do begin ergebnis:= ergebnis + strtofloat(cells[y,x]); end; end; label21.caption:=floattostr(ergebnis); end; end. |
Re: Stringgrid Zeilensumme in Label ausgeben
Hallo,
kleine Anmerkung. Hast du die einzelnen Positionen nicht eh schon in deinem Programm (TList ?) Dann würde ich dort summieren. Heiko |
Re: Stringgrid Zeilensumme in Label ausgeben
Da hat Heiko vollkommen recht, aber falls nicht versuch es mal hiermit (heruntergetippt und nicht getestet):
Delphi-Quellcode:
[edit] Abfrage auf RowIndex < 0 eingebaut, falls später mal jemand auf diesen Thread stößt :roll: [/edit]
function GridRowSum(const TheGrid: TStringGrid; RowIndex: integer; IgnoreFixedCols: Boolean = true): double;
var i, Start: integer; begin Result := 0; if (RowIndex < 0) or (RowIndex >= TheGrid.RowCount) then raise Exception.CreateFmt('Zeilenindex %d ist nicht erreichbar',[RowIndex]); if IgnoreFixedCols then Start := TheGrid.FixedCols else Start := 0; for i := Start to TheGrid.ColCount - 1 do Result := Result + StrToFloatDef(TheGrid.Cells[i,RowIndex],0); end; |
Re: Stringgrid Zeilensumme in Label ausgeben
Sry, das funktioniert leider nicht. :(
Es funktioniert ja auch mit der funktion "Zellen löschen", dass auf alle zellen zugegriffen wird und diese "clear" werden.
Delphi-Quellcode:
Klappt das nicht auch mit der Funktion "Addieren"? Dass ich quasi auf alle Zellen zugreife und sie statt "clear" einfach addiere?
procedure TForm1.Button2Click(Sender: TObject);
var I: Integer; begin for I := 0 to StringGrid1.RowCount - 1 do StringGrid1.Rows[I].Clear(); for I := 0 to StringGrid2.RowCount - 1 do StringGrid2.Rows[I].Clear(); for I := 0 to StringGrid1.ColCount - 1 do StringGrid1.Cols[I].Clear(); for I := 0 to StringGrid2.ColCount - 1 do StringGrid2.Cols[I].Clear(); end; [edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit] |
Re: Stringgrid Zeilensumme in Label ausgeben
Mit "das funktioniert nicht" kann ich leider nichts anfangen. Kompiliert es nicht oder kommt nicht das erwartete Ergebnis? Wie hast Du es aufgerufen?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz