Hallo André,
das läßt sich mit dem Vorlageneditor sogar recht einfach lösen, braucht aber sicherlich ein bißchen Übung, bis man die paar Befehle, die man braucht, intus hat. Ich bin für die folgende Beschreibung der Einfachheit halber von einer ganz neuen und jungfräulichen "Standard" Rechnungsvorlage ausgegangen und habe dort folgendes gemacht ...
1. Links im Reiter "Ebenen" alles außer der Ebene "Positionsliste" ausgeblendet.
2. Auf den Reiter "Objekte" gewechselt und direkt unterhalb von "Berichtscontainer" auf den Eintrag "Tabelle: Auftragspositionen" doppel-geklickt.
3. Dadurch öffnet sich eine Art Liste mit den Spalten der Positionen, als Art.Nr., Beschreibung, E-Preis, G-Preis, ...
4. Dort gibt es zwei Bereiche, einen für Rechnungen ohne Rabatte und einen für Rechnungen mit Rabatten, die Änderungen müssen also 2x gemacht werden.
5. Du suchst Dir erst im einen und dann im anderen Bereich die Zeilen, in denen der Einzel-Preis für die Position ausgegeben wird.
Dort findest Du als Eintrag die obere Zeile, doppel-klickst, um den Editor zu öffnen und änderst den Eintrag auf die untere Zeile ab ...
Code:
cond(Vorgabe.NettoPreiseBenutzen, Auftragspositionen.NettopreisEinzel, Auftragspositionen.BruttopreisEinzel)
Cond(Auftragspositionen.NettopreisEinzel=0, "Gratis", Cond(Vorgabe.NettoPreiseBenutzen, LocCurrL$(Auftragspositionen.NettopreisEinzel,Vorgang.Gebietsschema), LocCurrL$(Auftragspositionen.BruttopreisEinzel,Vorgang.Gebietsschema)))
Dann machst Du das Ganze auch für die Zeile, in der der Gesamt-Preis für die Position ausgegeben wird, wieder obere gegen untere Zeile austauschen ...
Code:
cond(Vorgabe.NettoPreiseBenutzen, Auftragspositionen.NettopreisGesamt, Auftragspositionen.BruttopreisGesamt)
Cond(Auftragspositionen.NettopreisGesamt=0, "Gratis", Cond(Vorgabe.NettoPreiseBenutzen, LocCurrL$(Auftragspositionen.NettopreisGesamt,Vorgang.Gebietsschema), LocCurrL$(Auftragspositionen.BruttopreisGesamt,Vorgang.Gebietsschema)))
Diese beiden Änderungen führst Du danach dann auch noch für den unteren Bereich "Rabatt nicht vorhanden" genauso durch, bestätigst alles mit OK, speicherst die Vorlage und probierst Sie aus. Du mußt dann noch bedenken, dass Du mit Sicherheit sowohl im Bereich "Drucken", wie auch im Bereich "Speichern" Vorlagen haben wirst. Die Änderungen müssen natürlich überall gemacht werden, klar.
Nun noch ganz kurz zu den Änderungen: Ich habe einen weitere
Cond(Bedingung,AusführenWennWahr,AusführenWennFalsch) Abfrage vorne an die alte Abfrage rangehängt, die erst mal abfragt, ob der Betrag 0€ ist. Ist das der Fall, wird "Gratis" ausgegeben, sonst springt die Abfrage eigentlich nur zur alten Abfrage aus der Standard-Rechnungsvorlagen. Allerdings habe ich dort die einfache Ausgabe der Beträge hier in
LocCurrL$(Wert,Vorgang.Gebietsschema) eingebettet, um Dir zu zeigen, dass man die Beträge auch gleich bei der Ausgabe formatieren kann.
LocCurrL$(Wert,Vorgang.Gebietsschema) würde den 1234 bei einer deutschen Rechnung also automatisch als "1.234,00 €", bei einer englischen Rechnung in Dollar aber eben als "$1,234.00" ausgeben. Echt praktisch, und falls Du z.B. das Währungszeichen nicht mit ausgegeben haben möchtest, dann heißt der Befehl
LocCurr$(Wert,Vorgang.Gebietsschema), das "L" im Befehl fehlt also nur.
P.S. Ich habe Dir die modifizierte Standard-Rechnungsvorlage hier angehängt. Vielleicht hilft das beim Nachvollziehen der Änderungen.
Gruß,
Ingmar