Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Berechnung zum StringGrid (https://www.delphipraxis.net/142252-berechnung-zum-stringgrid.html)

Kunoishi 24. Okt 2009 16:58

Re: Berechnung zum StringGrid
 
ok, dit werde ich doch auch gleich mal versuchen

Kunoishi 24. Okt 2009 17:57

Re: Berechnung zum StringGrid
 
mein Versuch

Delphi-Quellcode:
Var
    SummeGesammtwert : double;

...

procedure  CArtikelerfassung.Show(ArtikelGrid:TStringGrid);
var i:integer;
    pRec:pArtikelerfassungRec;
begin
  SummeGesammtwert :=0;
  if Artikel.Count = 0 then
  begin
    ArtikelGrid.RowCount := 2;
    ArtikelGrid.cells[0,1] := '-';
    ArtikelGrid.cells[1,1] := '-';
    ArtikelGrid.cells[2,1] := '-';
    ArtikelGrid.cells[3,1] := '-';
    ArtikelGrid.cells[4,1] := '-';
  end
  else
  begin
    ArtikelGrid.RowCount := Artikel.Count+1;
    for i:=0 to Artikel.Count-1 do
    begin
      pRec := Artikel.Items[i];
      ArtikelGrid.cells[0,i+1] := IntToStr(i+1);
      ArtikelGrid.cells[1,i+1] := pRec^.AbteilungName;
      ArtikelGrid.cells[2,i+1] := pRec^.AbteilungNr;
      ArtikelGrid.cells[3,i+1] := pRec^.Artikel;
      ArtikelGrid.cells[4,i+1] := pRec^.ArtikelWert;
      ArtikelGrid.cells[5,i+1] := pRec^.Anzahl;
      ArtikelGrid.cells[5,i+1] := pRec^.Gesammtpreis;

      SummeGesammtwert := SummeGesammtwert + pRec^.Gesammtpreis;
    end;
  end;
end;
jetzt zeigt er mir aber einen "Inkompatible Typen" als Fehler

fkerber 24. Okt 2009 18:09

Re: Berechnung zum StringGrid
 
Hi!

Ist pRec^.Gesammtpreis zufällig ein String?


Grüße, Frederic


P.S.
Auch hier nochmal die Bitte nicht zu pushen, sondern Sachen nachzueditieren.

Kunoishi 24. Okt 2009 18:11

Re: Berechnung zum StringGrid
 
ja, geht in ein editfeld ja über.
habe ich in keiner weise umgewandelt :gruebel: (glaube ich zumindest)

worin liegt da das problem ?

fkerber 24. Okt 2009 18:23

Re: Berechnung zum StringGrid
 
Hi!

Summegesamtwert ist ein Double und du kannst nicht einfach einen String zu einer Zahl dazuaddieren.
Du musst also zuerst den String umwandeln :arrow: Delphi-Referenz durchsuchentrystrtofloat


Grüße, Frederic

Kunoishi 24. Okt 2009 18:32

Re: Berechnung zum StringGrid
 
na klasse, ich war zufrieden das ich bis hierhin es geschaft hatte.
jetzt das ganze umwandeln und dann bestimmt wieder irgendwie zuordnen und so
ich glaube ich brauch erst mal ne dusche :party:
und dann die bücher und ne hilfe datei :warn:
und wieder viel zeit :cry:

DeddyH 24. Okt 2009 19:21

Re: Berechnung zum StringGrid
 
Ich will ja nicht meckern, aber Du solltest Dich einmal mit elementaren Datentypen und deren Konvertierung auseinandersetzen.

Kunoishi 30. Okt 2009 12:42

Re: Berechnung zum StringGrid
 
so ich habe mich durchgekämpft und es wohl geschaft. Jedenfalls zeigt er mir keinen fehler mehr an und ich mußte hier und da einiges ändern.
aber halb so schlimmmmmmmmm. ich will das ja hier lernen.

jetzt habe ich aber ein scheinbar kleines problem. wie spreche ich jetzt meinen wert an damit ich ihm in meinem Editfeld sehe.
scheinbar sehe ich den wald vor lauter bäumen (bit´s)nicht.

ich brauche hier einen denkanstoß.
Delphi-Quellcode:
rocedure  CArtikelerfassung.Show(ArtikelGrid:TStringGrid);
var i:integer;
    pRec:pArtikelerfassungRec;
begin

  // Initialisierung
  SummeGesamtwert := 0;

  // Verarbeitung und Ausgabe
  if Artikel.Count = 0 then
  begin
    ArtikelGrid.RowCount := 2;
    ArtikelGrid.cells[0,1] := '-';
    ArtikelGrid.cells[1,1] := '-';
    ArtikelGrid.cells[2,1] := '-';
    ArtikelGrid.cells[3,1] := '-';
    ArtikelGrid.cells[4,1] := '-';
    ArtikelGrid.cells[5,1] := '-';
    ArtikelGrid.cells[6,1] := '-';
    ArtikelGrid.cells[7,1] := '-';
    ArtikelGrid.cells[8,1] := '-';
  end
  else
  begin
    ArtikelGrid.RowCount := Artikel.Count+1;
    for i:=0 to Artikel.Count-1 do
    begin
      // Tabellenzeilen ausgeben, dabei fehlende Werte berechnen
      pRec := Artikel.Items[i];
      ArtikelGrid.cells[0,i+1] := IntToStr(i+1);
      ArtikelGrid.cells[1,i+1] := pRec^.AbteilungName;
      ArtikelGrid.cells[2,i+1] := pRec^.AbteilungNr;
      ArtikelGrid.cells[3,i+1] := pRec^.Artikel;
      ArtikelGrid.cells[4,i+1] := FormatFloat('#,##0.00 €', pRec^.ArtikelWert);
      ArtikelGrid.cells[5,i+1] := IntToStr(pRec^.ArtikelAnzahl);

      GesamtPreis:= pRec^.ArtikelAnzahl + pRec^.ArtikelWert;

      ArtikelGrid.cells[6,i+1] := FormatFloat('#,##0.00 €', pRec^.ArtikelGesamtpreis);
      ArtikelGrid.cells[7,i+1] := pRec^.ArtikelVerbleib;
      ArtikelGrid.cells[8,i+1] := pRec^.Fremdobjekt;

      SummeGesamtwert:= SummeGesamtwert + GesamtPreis;
    end;
  end;
end;
das ist in meiner Artikelverwaltung.pas
und nun wollte ich das unter meiner Artikelerfassung im Edit15.text mir anzeigen lassen.
wie bekomme ich den wert den aber rüber?
mit dem Stringgrid habe ich das ja geschaft
Delphi-Quellcode:
procedure TArtikelerfassungForm.Button5Click(Sender: TObject);
var s:string;
begin
  s := EditAbteilung.Text;
  if length(s)=0 then
  begin
    showmessage('Fehlerhafte Eingabe in der Abteilung');
    EditAbteilung.setfocus;
    exit;
  end;

  s := EditAbteilungNr.Text;
  if length(s)=0 then
  begin
    showmessage('Fehlerhafte Eingabe zur Abteilung-Nr');
    EditAbteilungNr.setfocus;
    exit;
  end;

  s := EditArtikelBezeichnung.Text;
  if length(s)=0 then
  begin
    showmessage('Fehlerhafte Eingabe zum Artikel');
    EditArtikelBezeichnung.setfocus;
    exit;
  end;

  s := EditArtikelAnzahl.Text;
  if length(s)=0 then
  begin
    showmessage('Fehlerhafte Eingabe Mänge der Einzelnen Artikel');
    EditArtikelAnzahl.setfocus;
    exit;
  end;

  s := EditEinzelpreis.Text;
  if length(s)=0 then
  begin
    showmessage('Fehlerhafte Eingabe Mänge der Einzelnen Artikel');
    EditEinzelpreis.setfocus;
    exit;
  end;

  if EditVerbleibWare.ItemIndex = 0 then
  begin
    showmessage('Fehlerhafte Eingabe zum Verbleib der Ware');
    EditVerbleibWare.setfocus;
    exit;
  end;

  Rec.AbteilungName := EditAbteilung.Text;
  Rec.AbteilungNr := EditAbteilungNr.Text;
  Rec.Artikel := EditArtikelBezeichnung.Text;
  Rec.ArtikelAnzahl := StrToInt(EditArtikelAnzahl.Text);
  Rec.ArtikelWert := StrToFloat(EditEinzelpreis.Text);
  Rec.ArtikelGesamtpreis := StrToFloat(EditGesamtpreis.Text);;
  Rec.Fremdobjekt := EditFremdobjekt.Text;
  result := true;
  Rec := rec;
  Artikel.add(Rec);
  Artikel.Show(ArtikelStringGrid);
    InitArtikelerfassungRec(Rec);
    init(Rec);
 end;
jetzt habe ich aber in dem formular noch ein einzelnes editfeld, wo dann der gesamtwert aus dem stringgrit auftauchen soll von allen feldern.
:gruebel:

DeddyH 30. Okt 2009 12:56

Re: Berechnung zum StringGrid
 
Welche Gesamtzahl welcher Felder? Du könntest doch Deine Artikelliste erneut durchlaufen und aufaddieren, oder verstehe ich Dich falsch? Übrigens:
Zitat:

Delphi-Quellcode:
Rec := rec;

:roll:

Kunoishi 30. Okt 2009 13:01

Re: Berechnung zum StringGrid
 
den gesamtwert von

SummeGesamtwert:= SummeGesamtwert + GesamtPreis;

und nun sollte er mir das unter Edit15.text := summeGesamtwert ausgeben.

ich hab ne denkbloccccckkkkkade


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:09 Uhr.
Seite 2 von 3     12 3      

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