AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

kaufmännisches Runden in einer SQL-abfrage

Ein Thema von khh · begonnen am 14. Apr 2009 · letzter Beitrag vom 14. Apr 2009
 
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#1

kaufmännisches Runden in einer SQL-abfrage

  Alt 14. Apr 2009, 08:58
Hallo zusammen,

zum kaufmänischen Runden habe ich hier im Forum folgende Function gefunden:
Delphi-Quellcode:
function RoundCurrency(const Value:Currency; const nk:Integer):Currency;
const
  faktors : array[-3..3] of Integer = (
     10000000, 1000000, 100000, 10000, 1000, 100, 10);
var
  x : Int64;
  y : Int64;
begin
  // Currency hat ja nur 4 Nachkommastellen
  if (nk>=4) or (Value=0) then
  begin
    Result := Value;
    Exit;
  end;
  if nk < Low(faktors) then
    raise EInvalidArgument.CreateFmt('RoundCurrency(,%d): invalid arg', [nk]);


  // Currency nach Int64 casten
  x := PInt64(@Value)^;
  y := faktors[nk];

  if x > 0 then
    x := ((x+(y div 2)) div y)*y
  else
    x := ((x-(y div 2)) div y)*y;

  // Int64 nach Currency casten
  Result := PCurrency(@x)^;
end;
das funktioniert auch soweit richtig, zumindest habe ich in der Kürze der Zeit keinen Fehler finden können.

jetzt stellt sich mir folgendes Problem:
in einer sql-Abfrage habe ich ein berechnetes feld:


..., (nettopreis + (nettopreis/100 * CAST(:mwstsatz AS NUMERIC(15,2)))) as bruttopreis,....

diese wird für die darstellung im Grid folgendermassen formatiert:

TFloatField(FpreiseQuery.Fields[4]).DisplayFormat := '######0.00';

wie kann ich den bruttopreis jetzt kaufmännisch runden ?




Danke für eure Ideen.


Gruss KH
Karl-Heinz
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz