Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Strings in Stringgrid Spalten mit Währung Formatieren (https://www.delphipraxis.net/173629-strings-stringgrid-spalten-mit-waehrung-formatieren.html)

Natcree 7. Mär 2013 14:23

Strings in Stringgrid Spalten mit Währung Formatieren
 
Hallo suche nach einer Lösung ein Fixes Format für Spalten in einem Stringgrid.
Ist für ein Kassenbuch Programm. Die Spalten sollten das Format #,## € Ausgeben bzw. -#,## €.

Habe schon mit einer Schleife Versucht.

Delphi-Quellcode:
form1.ElTreeStringGrid1.Cells[4,j] := Format('%.2f', [Gleitkommawert]);
Gleitkommawert erkennt er nicht.

Kann mir jemand helfen??

mkinzler 7. Mär 2013 14:25

AW: Strings in Stringgrid Spalten mit Währung Formatieren
 
Heist die Variable auch so?

Natcree 7. Mär 2013 14:30

AW: Strings in Stringgrid Spalten mit Währung Formatieren
 
nee er soll die spalte 4 vom stringgrid formatieren .
welche Variable muss denn rein???

Natcree 7. Mär 2013 14:33

AW: Strings in Stringgrid Spalten mit Währung Formatieren
 
Delphi-Quellcode:
for j:= form1.ElTreeStringGrid1.row to form1.ElTreeStringGrid1.RowCount-1 do
begin
Summe1   := strtofloatdef(form1.eltreestringgrid1.cells[2,j],0) + strtofloatdef(form1.eltreestringgrid1.cells[3,j],0);
Summe2   := strtofloatdef(form1.eltreestringgrid1.cells[4,j-1],0);
Ergebnis := Summe1 + Summe2;

form1.eltreestringgrid1.cells[4,j] := Format('%.2f', [Floattostr(ergebnis)]);

p80286 7. Mär 2013 14:57

AW: Strings in Stringgrid Spalten mit Währung Formatieren
 
Entscheid' Dich
Delphi-Quellcode:
format
oder
Delphi-Quellcode:
FloattoStr
Du kannst natürlich auch
Delphi-Quellcode:
Format(%S ,floattostr(wert))
nutzen.

Gruß
K-H

Natcree 7. Mär 2013 15:11

AW: Strings in Stringgrid Spalten mit Währung Formatieren
 
Mit format aber die Ausgabe im stringrid ist ne einfache Zahl ohne Währung und nun??

Delphi-Quellcode:
for j:= form1.ElTreeStringGrid1.row to form1.ElTreeStringGrid1.RowCount-1 do
begin
Summe1   := strtofloatdef(form1.eltreestringgrid1.cells[2,j],0) + strtofloatdef(form1.eltreestringgrid1.cells[3,j],0);
Summe2   := strtofloatdef(form1.eltreestringgrid1.cells[4,j-1],0);
Ergebnis := Summe1 + Summe2;

form1.eltreestringgrid1.cells[4,j] := Format('%s', [Floattostr(ergebnis)]);

end;

wenn ich 5 eingebe soll er 5,00 € anzeigen die eingegebenen Werte sollen aber auch Später wieder mit in eine Addition genommen werden. ein € hinter zusetzen ist kein Problem aber wenn dies ein mal drinne ist zeigt er mir fehler an das 5,00 € z.b. kein float wert ist.

DeddyH 7. Mär 2013 15:20

AW: Strings in Stringgrid Spalten mit Währung Formatieren
 
Delphi-Quellcode:
eltreestringgrid1.cells[4,j] := Format('%.2n €', [Ergebnis]);

Natcree 7. Mär 2013 15:33

AW: Strings in Stringgrid Spalten mit Währung Formatieren
 
deddyh funktioniert aber wenn ich mit einer eingabe mache kommt ein fehler . '%.2n €' ungültiges argument

Delphi-Quellcode:
stringgrid1.cells[2,i]:=Format('%.2n €', [Edit3.text])

Hier mal der komplette code

Delphi-Quellcode:
procedure TForm7.Button2Click(Sender: TObject);
var
i,j:integer;
Summe1,Summe2,Ergebnis: double;
begin
edit5.text:='';
edit6.text:='';
edit7.Text:='';
if label11.caption='b' then i:=form1.ElTreeStringGrid1.Row
else i:=form1.ElTreeStringGrid1.RowCount-1;
form1.eltreestringgrid1.Cells[0,i]:=edit1.Text;
form1.eltreestringgrid1.Cells[1,i]:=edit4.Text;
form1.eltreestringgrid1.Cells[2,i]:=Format('%.2n €', [Edit3.text]);
form1.eltreestringgrid1.Cells[3,i]:='';
form1.eltreestringgrid1.Cells[5,i]:=edit2.Text;
form1.eltreestringgrid1.Cells[6,i]:=memo1.Text;
form7.edit1.Text:='';
form7.edit4.Text:='';
form7.edit3.Text:='';
form7.edit2.Text:='';
form7.memo1.Text:='';
form7.edit5.Text:='';
form7.edit6.Text:='';
form7.edit7.Text:='';
form7.edit8.Text:='';
form7.memo2.Text:='';
if label11.Caption='b' then j:= form1.ElTreeStringGrid1.Row;
for j:= form1.ElTreeStringGrid1.row to form1.ElTreeStringGrid1.RowCount-1 do
begin
Summe1   := strtofloatdef(form1.eltreestringgrid1.cells[2,j],0) + strtofloatdef(form1.eltreestringgrid1.cells[3,j],0);
Summe2   := strtofloatdef(form1.eltreestringgrid1.cells[4,j-1],0);
Ergebnis := Summe1 + Summe2;
form1.eltreestringgrid1.cells[4,j] := Format('%.2n €', [Ergebnis]);
end;
if label11.Caption='' then
for j:= 1 to form1.ElTreeStringGrid1.RowCount-1 do
begin
Summe1   := strtofloatdef(form1.eltreestringgrid1.cells[2,j],0) + strtofloatdef(form1.eltreestringgrid1.cells[3,j],0);
Summe2   := strtofloatdef(form1.eltreestringgrid1.cells[4,j-1],0);
Ergebnis := Summe1 + Summe2;
form1.eltreestringgrid1.cells[4,j] := Format('%.2n €', [Ergebnis]);
end;
if SysUtils.FileExists('c:\Programme\Vereintool\Daten\Kassenbuch\'+FormatDateTime('yyyy', now)+'\Handkasse '+FormatDateTime('yyyy', now)+'.xls') then
DeleteFile('c:\Programme\Vereintool\Daten\Kassenbuch\'+FormatDateTime('yyyy', now)+'\Handkasse '+FormatDateTime('yyyy', now)+'.xls');
SaveAsExcelFile(form1.eltreestringGrid1, 'Tabelle1', 'c:\Programme\Vereintool\Daten\Kassenbuch\'+FormatDateTime('yyyy', now)+'\Handkasse '+FormatDateTime('yyyy', now)+'.xls');
close;
end;

DeddyH 7. Mär 2013 15:38

AW: Strings in Stringgrid Spalten mit Währung Formatieren
 
Es wäre vielleicht nicht die schlechteste Idee, den Code ordentlich zu formatieren und die Logik von der Darstellung zu trennen, da steigt ja niemand durch :shock:

Natcree 7. Mär 2013 15:52

AW: Strings in Stringgrid Spalten mit Währung Formatieren
 
Okay versuch ichs mal so



Delphi-Quellcode:
if label11.caption='b' then i:=form1.ElTreeStringGrid1.Row //Hiermit werden die schon vorhandenen Werte geändert
else i:=form1.ElTreeStringGrid1.RowCount-1;//damit die neuen
form1.eltreestringgrid1.Cells[0,i]:=edit1.Text;
form1.eltreestringgrid1.Cells[1,i]:=edit4.Text;
form1.eltreestringgrid1.Cells[2,i]:=edit3.text;//--> wenn ich hier jetzt die Formatierung einbring kann er nicht rechnen
form1.eltreestringgrid1.Cells[3,i]:='';
form1.eltreestringgrid1.Cells[5,i]:=edit2.Text;
form1.eltreestringgrid1.Cells[6,i]:=memo1.Text;


Delphi-Quellcode:
if label11.Caption='b' then j:= form1.ElTreeStringGrid1.Row;// b steht wenn ich werte im stringrid ändern möchte
{hier beginnt die berechnung für die eingegebenen werte}
for j:= form1.ElTreeStringGrid1.row to form1.ElTreeStringGrid1.RowCount-1 do
begin
Summe1   := strtofloatdef(form1.eltreestringgrid1.cells[2,j],0) + strtofloatdef(form1.eltreestringgrid1.cells[3,j],0);
Summe2   := strtofloatdef(form1.eltreestringgrid1.cells[4,j-1],0);
Ergebnis := Summe1 + Summe2;
form1.eltreestringgrid1.cells[4,j] := Format('%.2n €', [Ergebnis]);
end;// hier endet sie

if label11.Caption='' then // wenns leer ist dann sind es neue Daten die eingefügt werden
{Hier fängt wieder die berechnung an}

for j:= 1 to form1.ElTreeStringGrid1.RowCount-1 do
begin
Summe1   := strtofloatdef(form1.eltreestringgrid1.cells[2,j],0) + strtofloatdef(form1.eltreestringgrid1.cells[3,j],0);
Summe2   := strtofloatdef(form1.eltreestringgrid1.cells[4,j-1],0);
Ergebnis := Summe1 + Summe2;
form1.eltreestringgrid1.cells[4,j] := Format('%.2n €', [Ergebnis]);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 Uhr.
Seite 1 von 4  1 23     Letzte »    

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