Autor Beitrag
COMMANDER86
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 167

Win XP, Win Vista
D3 Prof., D7 Pers., Lazarus
BeitragVerfasst: Fr 14.10.05 17:04 
Hallo.

Ich habe eine Paradox-Tabelle in der Werte im Währungsformat eingetragen werden. Das Problem ist, dass die Werte problemlos ausgegeben werden, allerdings kann ich Sie nicht wirklich verrechnen. Wie kann ich zwei oder mehr Werte im Währungsformat verrechnen? StrToFloatF usw. tut's nicht!

Mit Dank im Voraus

COMMANDER86

_________________
Streichen Sie bitte sämtlichen Sarkasmus aus vorhergehender Nachricht. Dann wissen Sie, was ich sagen möchte. Meine Lösungen sind die vermutlich Umständlichsten, aber sie funktionieren (bei mir). ;)
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Sa 15.10.05 09:46 
Was siehst Du denn, wenn Du z.B. das hier machst:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
Var
  a : Double;

Begin
  a := MyParadoxCurrencyField.AsFloat;
  showmessage (FormatFloat ('#0.0000',a));
End;

_________________
Na denn, dann. Bis dann, denn.
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Sa 15.10.05 10:52 
Oder nimm nur Format. Das dürfte eigentlich funktionieren.
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Sa 15.10.05 10:58 
Er meint, er kann damit nicht rechnen. Wenn bei FormatFloat oder Format oder FloatToStr oder egal was irgendetwas sinnvolles rauskommt, dann kann er auf die ParadoxCurrency Felder zugreifen. Wenn nicht, würde ich ihm einen 'Parser' vorschlagen. Na, eine kleine Funktion, die aus dem Währungsstring eine Zahl macht.

_________________
Na denn, dann. Bis dann, denn.
COMMANDER86 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 167

Win XP, Win Vista
D3 Prof., D7 Pers., Lazarus
BeitragVerfasst: So 16.10.05 13:04 
Sry.... aber ich habe das jetzt voll nicht gerafft! Wenn ich bspw.:

ausblenden Delphi-Quelltext
1:
Edit1.text:=FloatToStrF(StrToFloat(DBEdit1.text)+StrToFloat(DBEdit2.text),fffixed,20,2);					


mache funktioniert das, wenn ich die Tabellenspalte als "alpha" oder "numerisch" deklariere. Wenn ich das Währungsformat nehme, tut das den Teufel.

Ich möcht nur wissen, ob ich in der Berechnung was ändern muss, oder ob der Befehl falsch ist.

Danke, mfG

COMMANDER86

_________________
Streichen Sie bitte sämtlichen Sarkasmus aus vorhergehender Nachricht. Dann wissen Sie, was ich sagen möchte. Meine Lösungen sind die vermutlich Umständlichsten, aber sie funktionieren (bei mir). ;)
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: So 16.10.05 13:32 
Wieso gehst du über die Text-Eigenschaft des DBEdit-Controls, und nicht einfach über den Feldinhalt?
Du hast eine Tabelle T. Jede Tabelle (TDataset) hat einen Datensatzzeiger, der zeigt auf den aktiven Datensatz. Die datensensitiven Controls (TdbEdit etc.) beziehen ihre Information aus dem TDataset und stellen das jeweils aktuelle Element dar.

Über DBEdit.Text greifst Du doch auf die textuelle Repräsentation des Feldes zu. Wenn Du z.B. ein TCurrencyField hast, und hast z.B. eingestellt, die Währung mit anzuzeigen, dann ist DBEdit.Text = '123,00 €', oder nicht? Daraus eine Floatzahl zu machen, geht eben mit StrToFloat nicht.

Versuche, die Felder direkt zu verwenden. Du kannst Dir die Felder persistent erzeugen, indem Du auf die Tabelle rechtsklickst und über den 'Field-Editor', den Menüpunkt 'Add all Fields' (in deutsch weiss ich nicht, wie das heisst).

_________________
Na denn, dann. Bis dann, denn.
COMMANDER86 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 167

Win XP, Win Vista
D3 Prof., D7 Pers., Lazarus
BeitragVerfasst: So 16.10.05 23:17 
Puh.... kann man denn das "€" ausblenden, die Zahl verrechnen und wieder einblenden? Und mal unter uns: Was sind "Datensatzzeiger" und "datensensitive Controls"? Ich denke ich sollte nichts verwenden, was ich nicht kenne, sonst verlier ich den Überblick... (Watt der Buur nit kennt, datt frisst er net!)

MfG

COMMANDER86

_________________
Streichen Sie bitte sämtlichen Sarkasmus aus vorhergehender Nachricht. Dann wissen Sie, was ich sagen möchte. Meine Lösungen sind die vermutlich Umständlichsten, aber sie funktionieren (bei mir). ;)
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: So 16.10.05 23:48 
Datensensitive Controls ist ein TDBEdit, TDBGrid etc. Alle Edits, die mit einer Datasource verbunden sind.
Stell Dir ein TDataset als Tabelle vor, und der Datensatzzeiger zeigt auf den aktuellen Datensatz, also das, was Du im TDBEdit siehst.

Rechne einfach mit den Feldern. Wenn Du das nicht kennst, such nach Tutorials hier. Davon gibt es reichlich. Es ist sehr wichtig für gutes Programmieren, die Philosphie der Datasets, Felder etc. zu verstehen.

_________________
Na denn, dann. Bis dann, denn.