Autor Beitrag
hube
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38

WIN XP
D7 Prof
BeitragVerfasst: Mi 08.09.10 15:29 
Hallo zusammen

Ich habe folgendes Problem: Ich lese auf zwei verschiedene Arten Daten aus der selben Tabelle heraus und möchte bei beiden Ergebnissen das Resultat (Preis oder Umsatz) mit 2 Kommastellen formatiert haben. Es handelt sich um eine Paradox Tabelle und Delphi7.

Hier sind die Abfragen mit welchen ich die Daten auslese:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add ('Select *');
Query1.SQL.Add ('FROM Lager');
Query1.SQL.Add ('WHERE status = ''verkauft''');
Query1.SQL.Add (' and ABGERECHNET_BETRAG = 0');
Query1.SQL.Add (' and verkauft_datum <=' +QuotedStr(Label2.Caption));
Query1.Open;

DBGrid1.Visible := True;
Label1.Caption := IntToStr(Query1.RecordCount) + ' rows';
Label1.Visible := True;
Button3.Visible := True;
Button4.Visible := True;
Button4Click(Sender);
end;


Bei dieser Abfrage möchte ich, dass es im DBGrid die Spalte "Preis" mit 2 Kommastellen anzeigt. Das sollte doch mit Format(Preis,'0.00') funktionieren, aber ich bringe das nicht hin.

und

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure TForm1.ComboBox1Click(Sender: TObject);
var
start : string;
ende : string;
begin
start := '"01.01.' + Combobox1.Text +'"'// in Combobox1.Text wird das gewünschte Jahr (z.B. 2009) ausgewählt
ende := '"31.12.' + ComboBox1.Text +'"';
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add ('SELECT Kundennummer, SUM(preis) AS Umsatz FROM "lager.db"');
Query1.SQL.Add ('WHERE (status = "verkauft")');
Query1.SQL.Add ('AND (verkauft_datum <= '+ende+')');
Query1.SQL.Add ('AND (Kundennummer BETWEEN 1001 AND 1999)');
Query1.SQL.Add ('AND (verkauft_datum >= '+start+')');
Query1.SQL.Add ('GROUP BY Kundennummer');
Query1.SQL.Add ('order by Umsatz desc');
Query1.Open;
Label1.Caption := IntToStr(Query1.RecordCount) + ' rows';
Button4Click(Sender);
end;


Auch hier sollte es doch mit Format(Preis,'0.00') funktionieren.

Ich stehe da irgendwie auf dem Schlauch ...

Besten Dank für jede Hilfe.

hube

Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt
Moderiert von user profile iconNarses: Topic aus Dateizugriff verschoben am Mi 08.09.2010 um 17:13
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: Mi 08.09.10 16:38 
Hallo,
die Formatierung deines Ergebnisses sollte bei der Darstellung, nicht bei der Abfrage vorgenommen werden.
Dazu solltest du dir mal die Eigenschaft Displayformat anschauen ;)

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
hube Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38

WIN XP
D7 Prof
BeitragVerfasst: Mi 08.09.10 16:45 
Das habe ich mir auch schon überlegt, nur ist die angezeigte Spalte bei dem selben DBGrid nicht immer die Selbe die dann 2 Kommastellen haben sollte.

Es muss doch eine Möglichkeit geben, die Ausgabe einer SQL Abfrage direkt zu formatieren, sonst gäbe es ja den Befehl "Format" nicht.

Aber Danke trotzdem.

hube
Tankard
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Administrator
Beiträge: 217
Erhaltene Danke: 96



BeitragVerfasst: Mi 08.09.10 18:07 
SELECT Kundennummer, Format(SUM(preis),2) AS Umsatz FROM "lager.db"


sollte gehen.


gruss
Tankard
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Mi 08.09.10 19:25 
Wie wäre es, das Feld der Query zu formatieren?
ausblenden Delphi-Quelltext
1:
Query.FieldByName('Preis').DisplayFormat := '#0,0.00';					

Ungetestet.

_________________
Na denn, dann. Bis dann, denn.