Neu Wie kann ich mit @DecimalQuantity Nachkommastellen variabel formatieren?

chief

Aktives Mitglied
20. Dezember 2014
54
8
Ich habe ein kleines Problem mit der Mengenangabe in Rechnungen usw: Wir verkaufen viele Artikel in ganzen Stückzahlen und daneben auch Meterware mit Nachkommastellen.

Ausgangslage: der Kunde kauft 100 Eisenteile und 1,75 Meter Profile.

Bei dem Wert @DecimalQuantity = 0 erscheint auf der Rechnung folgendes:
100 Stück Eisenteile Einzelpreis 1,00 EUR Gesamtpreis 100,00 EUR
2 Meter Profil Einzelpreis 10,00 EUR Gesamtpreis 17,50 EUR

Bei dem Wert @DecimalQuantity = 2 erscheint auf der Rechnung folgendes:
100,00 Stück Eisenteile Einzelpreis 1,00 EUR Gesamtpreis 100,00 EUR
1,75 Meter Profil Einzelpreis 10,00 EUR Gesamtpreis 17,50 EUR

Bei dem Wert @DecimalQuantity = "0" wird beim Profil eine falsche Menge angegeben
Bei dem Wert @DecimalQuantity = "2" sieht die Anzahl der Eisenteile verwirrend aus (davon gibt es ja keine Bruchteile)

Wie kann ich den Wert der Variable so formatieren, dass bei Ganzzahlen keine Kommastellen angezeigt werden und bei Bruchzahlen die nötigen Dezimalstellen angezeigt werden?
So sollte es aussehen:
100 Stück Eisenteile Einzelpreis 1,00 EUR Gesamtpreis 100,00 EUR
1,75 Meter Profil Einzelpreis 10,00 EUR Gesamtpreis 17,50 EUR

Wer kennt eine Lösung für dieses Problem?
 

qubster

Aktives Mitglied
16. Dezember 2020
27
5
@DecimalQuantity gibt dir die Anzahl der Nachkommastellen aus. War bei mir immer 2, auch wenn die Menge eine ganze Zahl war.

Aber du kannst mit Int() ausrechnen ob die Menge eine Kommastelle hat und mit einer Bedingung die Kommastellen festlegen
InvoicePosition.Quantity-Int(InvoicePosition.Quantity)

Hier meine Lösung für die Menge:
LocNumber$(InvoicePosition.Quantity, JTL_GetCulture(Report.CountryISO, Report.LanguageISO, Report.CurrencyISO), cond(InvoicePosition.Quantity-Int(InvoicePosition.Quantity)=0, 0, @DecimalQuantity))

oder für die MwSt:
LocNumber$(InvoicePosition.VATRate, JTL_GetCulture(Report.CountryISO, Report.LanguageISO, Report.CurrencyISO), cond(@DecimalVat-int(@DecimalVat)=0,0,@DecimalVat)) + " %"
 
Zuletzt bearbeitet:

Ähnliche Themen