AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Listview spalten addieren

Ein Thema von NaPsTeRforever · begonnen am 20. Aug 2009 · letzter Beitrag vom 20. Aug 2009
Antwort Antwort
Seite 1 von 2  1 2      
NaPsTeRforever

Registriert seit: 1. Sep 2007
28 Beiträge
 
#1

Listview spalten addieren

  Alt 20. Aug 2009, 13:44
Hallo,
ich stehe gerade etwas auf dem Schlauch und verstehe meine eigene produktion hier nicht mehr

Folgende Konstellation:
Ich habe eine Listview mit 4 Spalten!
Spalte 2 ist der Einkaufspreis (EP), Spalte 3 der Verkaufspreis (VP) und Spalte 4 der Umsatz (U), EP und VP stehen in der Liste, die Spalte 4 für den Umsatz ist zunächst leer.

Es soll der VP minus EP (Umsatz) in Spalte 4 angezeigt werden und der Gesamtumsatz (alle addiert) am Ende angezeigt werden!

Delphi-Quellcode:
procedure TForm1.but_umsatzClick(Sender: TObject);
var L, Li : TListItem;
    EP, VP, U : string;
    i,q, U, U_gesamt : integer;
begin
  U_gesamt := 0;
  for i := 0 to liv_transfers.Items.Count - 1 do
  begin
    for Q := 2 to liv_transfers.Items[I].SubItems.Count - 1 do
    begin
      EP := liv_transfers.Items[I].SubItems[0];
      VP := liv_transfers.Items[I].SubItems[1];
      EP:= ZahlohnePunkte(EP);
      VP := ZahlohnePunkte(VP);
      U := strtoint(VP) - strtoint(EP);
      U_gesamt := U + U_gesamt;
    end;
  end;
  L := liv_transfers.items.add;
  L.Caption := ('_______________');
  L.SubItems.Add('___________');
  L.SubItems.Add('___________');
  L.SubItems.Add('___________');
  Li := liv_transfers.items.add;
  Li.Caption := ('Gesamt');
  Li.SubItems.Add('');
  Li.SubItems.Add('');
  Li.SubItems.Add(ZahlmitPunkten(inttostr(U_gesamt)));
end;
So wie ich es jetzt zunächste gemacht habe, wird nur der Gesamtumsatz am Ende angezeigt und das ganze funktioniert nur
wenn manche Umsätze schon in Spalte 4 stehen, wenn Spalte 4 komplett leer ist geht es nicht (for Q := 2 to liv_transfers.Items[I].SubItems.Count - 1 do)???.
Ich blick da grad nicht mehr durch?!?!
Hoffe es kann jmd helfen!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.544 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Listview spalten addieren

  Alt 20. Aug 2009, 13:56
Trenne die Logik von der Darstellung. Eine Listview ist zur Anzeige von Daten gedacht und nicht zur Datenhaltung.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
NaPsTeRforever

Registriert seit: 1. Sep 2007
28 Beiträge
 
#3

Re: Listview spalten addieren

  Alt 20. Aug 2009, 13:59
Das ist mir egal, dann werde ich sie eben missbrauchen!

Fakt ist, dass es geht, Frage ist nur wie!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.544 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Listview spalten addieren

  Alt 20. Aug 2009, 14:40
Wozu die innere Schleife? Du weißt doch, wo was steht.
Delphi-Quellcode:
var i,gesamt,Umsatz: integer;
begin
  gesamt := 0;
  for i := 0 to ListView.Items.Count - 1 do
    begin
      Umsatz := StrToInt(ListView.Items[i].SubItems[1]) - StrToInt(ListView.Items[i].SubItems[2]);
      ListView.Items[i].SubItems[3] := IntToStr(Umsatz);
      inc(gesamt,Umsatz);
    end;
Nun noch unten gesamt ausgeben und gut is. Auf Dauer wirst Du mit Deiner Einstellung aber nicht glücklich werden, das kann ich Dir prophezeien.

[edit] Addition in Subtraktion geändert, Denkfehler [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
NaPsTeRforever

Registriert seit: 1. Sep 2007
28 Beiträge
 
#5

Re: Listview spalten addieren

  Alt 20. Aug 2009, 15:12
Zitat von DeddyH:
Wozu die innere Schleife? Du weißt doch, wo was steht.
Delphi-Quellcode:
var i,gesamt,Umsatz: integer;
begin
  gesamt := 0;
  for i := 0 to ListView.Items.Count - 1 do
    begin
      Umsatz := StrToInt(ListView.Items[i].SubItems[1]) - StrToInt(ListView.Items[i].SubItems[2]);
      ListView.Items[i].SubItems[3] := IntToStr(Umsatz);
      inc(gesamt,Umsatz);
    end;
Nun noch unten gesamt ausgeben und gut is. Auf Dauer wirst Du mit Deiner Einstellung aber nicht glücklich werden, das kann ich Dir prophezeien.

[edit] Addition in Subtraktion geändert, Denkfehler [/edit]
Dann kommt die Fehlermeldung:
Listenindex überschreitet das Maximum(2);
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.544 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Listview spalten addieren

  Alt 20. Aug 2009, 15:22
Dann setz den Index hinter SubItems jeweils um 1 runter.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
NaPsTeRforever

Registriert seit: 1. Sep 2007
28 Beiträge
 
#7

Re: Listview spalten addieren

  Alt 20. Aug 2009, 15:26
hab ich, kommt der gleiche Fehler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.544 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Listview spalten addieren

  Alt 20. Aug 2009, 15:28
Zeig nochmal den aktuellen Code. Und Du hast auch ganz sicher 4 Spalten?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Listview spalten addieren

  Alt 20. Aug 2009, 15:29
Achtung 4 Spalten = 3 SubItems
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.544 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Listview spalten addieren

  Alt 20. Aug 2009, 15:30
Das war mir später auch eingefallen, siehe #6. Aber dann sollte es jetzt eigentlich passen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz