Zum Inhalt springen
  • 0

Nachkommastellen, dynamisch Nullen am Ende kürzen


Grayworks

Frage

Hallo,

ist es möglich im Belegdesigner Nachkommastellen dynamisch rauszukürzen, wenn sie null sind?
Wir haben manchmal Belege, in denen der Einzelpreis bis Nachkommastelle 5 geht. Das ist je nach Artikel, zum Beispiel bei Meterware, auch gewollt so, dann haben wir andere Artikel wo das ganze dann wieder blöd aussieht, wenn etwa der Einzelpreis 20,00000 € ist. Hier wäre es schön, wenn wir diese überflüssigen Nullen rauskürzen könnten, wahlweise bis zum Komma selbst oder wenigstens bis zur 2. Nachkommastelle, sodass entweder 20 € oder höchstens 20,00 € stehen bleibt.
Bei Mengen ist es das gleiche: Es ist gewollt, wenn da steht 13,5 Liter (Beispiel), aber wenn da steht 3,0000 Stück dann ist es wieder albern.

Kann da was gerissen werden?

Bearbeitet von Grayworks
Link zu diesem Kommentar
Auf anderen Seiten teilen

6 Antworten auf diese Frage

Empfohlene Beiträge

  • 0

Hallo @Grayworks

.....zusätzlich von uns noch der Hinweis, dass bei den Memo-Einstellungen im Reiter "Format" noch Text ohne Format ausgewählt werden muss, damit die obige SQL wirksam wird.....

Genau, das ist noch zum einstellen, Danke. 👊

....wenn die Differenz  zwischen (Beispiel) 14,65 und (Truncate) 14 größer 0 ist, dann werden 5 NK-Stellen ausgegeben und wenn nicht, dann keine.....

Genau 👌

wie können wir Ihre SQL einpflegen, wenn noch die Differenzbesteuerungs-SQL vorhanden ist?

Ohne es getestet zu haben:

[(IIF(FIstDifferenzbesteuerung,  <POSITIONEN."EINZELPREISBRUTTOFREMD">, IIF((<POSITIONen."EINZELPREISFREMD"> - (Trunc(<POSITIONen."EINZELPREISFREMD">))) > 0,FormatFloat('#,#####0.00000',<POSITIONen."EINZELPREISFREMD">),FormatFloat('#,##0.',<POSITIONen."EINZELPREISFREMD">))))] [vCurrency]

und für <POSITIONEN."EINZELPREISBRUTTOFREMD"> diese IF Bedingung: 

[IIF((<POSITIONen."EINZELPREISFREMD"> - (Trunc(<POSITIONen."EINZELPREISFREMD">))) > 0,FormatFloat('#,#####0.00000',<POSITIONen."EINZELPREISFREMD">),FormatFloat('#,##0.',<POSITIONen."EINZELPREISFREMD">))]

anstelle von EINZELPREISFREMD mit EINZELPREISBRUTTOFREMD

bei <POSITIONEN."EINZELPREISBRUTTOFREMD"> ebenfalls einfügen.

Wie man sieht wird es schnell viel und groß. 

Gruß 

Andreas Zweimüller 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Hallo @Grayworks

Nicht ganz so einfach, aber möglich:

[IIF((<POSITION."EINZELPREISFREMD"> - (Trunc(<POSITION."EINZELPREISFREMD">))) > 0,FormatFloat('#,##0.00',<POSITION."EINZELPREISFREMD">),FormatFloat('#,##0.',<POSITION."EINZELPREISFREMD">))]

Gruß 

Andreas Z.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Hallo Herr Zweimüller, besten Dank für diese SQL. Wir haben Sie im Beleg ausprobiert und haben folgende Feststellung gemacht. Bei einem Einzelpreis von 0,11990 € (bei Standardausgabe) hat die SQL dazu geführt, dass 0,12000€ angezeigt wurde. Das heißt die Nullen wurden nicht auf dem Beleg gelöscht, nur die Berechnung rundet so, als ob.


Kurzer Nebenhinweis: wie oben schon erwähnt ist es ja gewünscht, dass für manche Artikel 5 NK-Stellen ausgegeben werden, deswegen haben wir bei Format %2.5n stehen und wollen die Nullen also dynamisch wieder entfernen lassen, wenn Sie null sind.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Hallo @Grayworks

Ausgabe auf 5 Nachkommastellen erweitern 

[IIF((<POSITIONen."EINZELPREISFREMD"> - (Trunc(<POSITIONen."EINZELPREISFREMD">))) > 0,FormatFloat('#,#####0.00000',<POSITIONen."EINZELPREISFREMD">),FormatFloat('#,##0.',<POSITIONen."EINZELPREISFREMD">))]

Bitte beachten, in den Parameter der Vario, die Nachkommastellen mit denen Vario Rechnen soll ebenfalls einstellen:

image.png

Gruß 

Andreas Zweimüller 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Hallo Herr Zweimüller,

besten Dank für die Überarbeitung, zusätzlich von uns noch der Hinweis, dass bei den Memo-Einstellungen im Reiter "Format" noch Text ohne Format ausgewählt werden muss, damit die obige SQL wirksam wird.

Ich verstehe die SQL so, dass die Nullen nicht ganz dynamisch rausgekürzt werden, sondern wenn die Differenz  zwischen (Beispiel) 14,65 und (Truncate) 14 größer 0 ist, dann werden 5 NK-Stellen ausgegeben und wenn nicht, dann keine.

Noch eine letzte Frage, wie können wir Ihre SQL einpflegen, wenn noch die Differenzbesteuerungs-SQL vorhanden ist?:

[(IIF(FIstDifferenzbesteuerung,  <POSITIONEN."EINZELPREISBRUTTOFREMD">,  <POSITIONEN."EINZELPREISFREMD">))] [vCurrency]

 

Bearbeitet von Grayworks
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Hier ein riesiges Lob und Dankeschön an Sie, Herr Zweimüller!

die SQL oben hat funktioniert und tut genau das, was wir wollten. Wenn wir in den Parametern nur bis 2 NK-Stellen zulassen dann gibt die SQL sogar auch nur 2 NK-Stellen aus, ohne dass man noch was ändern müsste. Als Versuch: 999,5 wurde ausgegeben als 999,50 (eigentlich perfekt) und 1000 wurde ausgegeben als 1000 ohne Kommastellen.

Beste Grüße,

Naumann

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...