Zahl wird im Drucklayout doppelt angezeigt
Hallo an Alle,
ich habe mal wieder einige Fragen zum Thema Drucklayout.
1. In einem Textfeld habe ich folgendes eingetragen
"Abzgl." + "
" + Rechnungspositionen.'Rabatt in %' + "
" + "Rabatt"
angezeigt wird folgendes:
Wahrscheinlich liegt es daran, dass es zwei Positionen gibt. Wie kann ich die %-Zahl nur einmal erzeugen? Das gilt auch für andere Datenfelder, dass die Zahl doppelt angezeigt wird.
Als 'workaround' habe ich hierzu die Untertabelle verknüpft und eine Position ausgewählt, damit die Zahl nur einmal angezeigt wird.
2. Was habe ich hier nicht beachtet?
Wenn ich jedoch
Mietvertragspositionen2.Rabattiert * 2
eingebe, dann wird nicht 'gemeckert'.
3. Dann frage ich mich, warum muss ich manchmal
Mietvertragspositionen.format('Rabatt in €', "#,##0.00 €") eingeben, damit € angezeigt wird und manchmal reicht einfach nur
Mietvertragspositionen2.Rabattiert ?
Gruß
Kruna
2 Antworten
-
Hallo Kruna, zu Punkt 1: Wenn man auf eine verknüpfte Tabelle zugreift, dann bekommt man ein Array mit mehreren Werten zurück. Du kannst versuchen, mit "first(Rechnungspositionen.'Rabatt in %')" nur den ersten Rabattwert aus den Positionen auszulesen.
Allerdings stellt sich die Frage, ob Rabatte immer für den gesamten Rechnungsbetrag gelten, also für alle Positionen, oder ob jede Position einen eigenen Rabattwert hat. Bezieht sich der Rabatt auf die Rechnung, würde ich den Wert gleich im Rechnungsdatensatz speichern. Hat jede Position einen eigenen Wert, dann würde ich ihn auch für jede Position in der Tabelle 'Rechnungspositionen' darstellen.
Zu 2./3) Hier gibt es gleich zwei Probleme: Durch das format() wird der numerische Rabattwert in einen String, also in Text konvertiert. Mit Texten lassen sich aber keine mathematischen Operationen durchführen. Deshalb funktioniert die Multiplikation mit 2 nicht.
Mit dem format() müsste also das Ergebnis der Berechnung aufbereitet werden:
format(Mietvertragspositionen.rabattiert * 2, "#,##0.00 €")
Jedenfalls theoretisch. Dass es ohne das format() mit "Mietvertragspositionen.Rabattiert * 2" klappen soll, wundert mich offen gestanden. Denn auch hier wird ja wahrscheinlich ein Array zurückgegeben. Man müsste m. E. also ebenfalls mit first() arbeiten, um die Rückgabe auf einen, nämlich den ersten Wert zu beschränken:
format(first(Mietvertragspositionen.rabattiert) * 2, "#,##0.00 €")
Wobei mir auch hier das dahinter stehende Datenmodell nicht klar ist (siehe Punkt 1).
PS: Mir fällt gerade auf, dass es einmal 'Mietvertragspositionen' und 'Mietvertragspositionen2' heißt. ISt das nur ein Tippfehler oder gibt es da tatsächlich einen Unterschied? Ist 'Mietvertragspositionen2' vielleicht eine einfache Verknüpfung? Das würde vermutlich erklären, warum die Multiplikation damit funktioniert. In diesem Fall müsste man halt nur wieder das format() nach vorne stellen.
-
Hallo Copytexter,
wie immer vielen Dank für Deine großartige Hilfe.
1. "first" war genau der richtige Ansatz und ist somit gelöst. Es gab auch noch diverse andere Felder, die ich mit "first" gelöst habe.
Der Rabatt bezieht sich in diesem Fall auf alle Positionen bzw. ist in allen Positionen gleich, jedoch kann jede Position ihren eigenen Rabattwert haben, daher habe ich es auch in der Tabelle "Rechnungspositionen" dargestellt und auch eigentlich schon mein nächstes Problem gelöst. Denn was ist, wenn der Rabattwert anders sein sollte oder allein schon das Feld "Beschreibung" ist ja anders.
Also habe ich mir gedacht, wo es ein "first" gibt, könnte/müsste es auch ein "last" geben. Im Drucklayout habe ich es also ausprobiert und siehe da, es hat funktioniert!
2/3. Dadurch das ich "first" stehen habe, also zB
first(Mietvertragspositionen).Rabattiert
brauche ich komischerweise format() nicht mehr, denn es zeigt mir die Zahl völlig korrekt in € oder auch % an. Bei allen anderen Feldern ebenso.
zu PS: Nein, es war kein Tippfehler und ja es war eine einfache Verknüpfung, denn damit wollte ich erreichen, dass nur ein Wert angezeigt wird. Da ich das mit "first" nicht kannte, habe ich mir nur auf diese Weise zu helfen gewusst. Aber nun brauche ich diese Verknüpfung nicht mehr.
Wieder mal eine großen Schritt weiter und viel gelernt.
Danke Dir vielmals!!!
Gruß Kruna
Content aside
- vor 4 JahrenZuletzt aktiv
- 2Antworten
- 592Ansichten