OBS/Kostenpflichtige Module/Preislisten/Formeln
Formeln (auch Makros) sind mächtige Werkzeuge, um automatisierte Anpassungen vornehmen zu können. In der Preislistenverwaltung können Sie Formeln dazu verwenden, die Preise von Artikeln zu kalkulieren oder auch Preislisten neu zu befüllen. Formeln können Sie in der Formelverwaltung vordefinieren und in den einzelnen Preislisten hinterlegen. So lassen sich Änderungen gleich für alle betreffenden Preislisten vornehmen. Alternativ können Sie auch pro Preisliste eine Formel hinterlegen.
Formelverwaltung
Die Formelverwaltung finden Sie unter den weiteren Funktionen (F10) der Preislistenverwaltung. In dieser Liste finden Sie Ihre sämtlichen vordefinierten Formeln. Pro Formel können Sie eine Nummer (nur bei Anlage), einen Namen und eine Beschreibung setzen. Die Formel selbst wird unter F8 bearbeitet.
Formel bearbeiten
Die Formeln orientieren sich an der Syntax der Sprache Pascal. Für die Kalkulation stehen in den Makros diverse Variablen zur Verfügung, welche die Daten zu einem Artikel enthalten.
Variablen
- VKNetto
- Enthält den aktuellen Netto-Preis der Preisliste. Wenn keine Formel zum Füllen der Preisliste verwendet wurde, entspricht dieser Wert immer VKx aus dem Artikel entsprechend der Einstellung
- VKBrutto
- Enthält den aktuellen Brutto-Preis der Preisliste. Wenn keine Formel zum Füllen der Preisliste verwendet wurde, entspricht dieser Wert immer VKx aus dem Artikel entsprechend der Einstellung
- Rabatt
- Rabatt aus der Preisliste (Kann nur durch EXCEL gefüllt werden) durch Formel veränderbar
- Spanne
- Spanne von Originalpreis (durch Formel veränderbar Platzhalter in Preislistenartikel)
- KalkPreis
- Originalpreis enspricht dem VK1 des Artikels oder bei Staffeln dem entsprechenden Staffel-VK
- EKKalk
- Kalkulations-EK entspricht dem EK1 aus dem Artikel oder bei Staffeln dem entsprechenden Staffel-EK für Lieferant 1
- EKSonder
- Enthält den Sonder-EK aus der Preisliste (z. B. bei Ausscheibungspreisen von Büroring)
- ArtVK1
- VK1 aus dem Artikelstamm
- Roherloes
- Kalkpreis (Artikel VK1) / EKKalk (Wird durch Formel ermittelt und zurückgeschrieben)
- KalkJaNein
- Einstellung Preislistenkalkulation Artikel (Artikel in Preisliste neu Kalkulieren)
- EKKalkNeu
- Kalkulations-EK für neue Katalogpreise aus Lieferant 1
- VKKalkNeu
- Kalkulations-VK für neue Katalogpreise aus Lieferant 1
- ArtikelNr
- enthält die OBS-Artikelnummer
- Steuersatz
- Steuersatz des aktuellen Artikels ACHTUNG: Bei Artikeln mit mehreren Steuersätzen ist dieser Wert immer 0
- EKPreis
- EK1 aus dem Artikelstamm
- Preisfokus
- Preisfokus aus dem Artikelstamm (1-9)
- VKLieferant
- Listen-VK des Lieferant 1
- Menge
- Staffelmenge
- StaffelNr
- Staffelnummer
- PlNr
- enthält die Preislistennummer
Funktionen
Hier finden Sie einige nützliche Funktionen, die Sie verwenden können, um die Formel so zu verändern, dass Sie das gewünschte Ergebnis erzielen können.
BerechneNetto
Verwendung: Dient zur Berechnung des Nettopreis VKNetto.
Parameter: keine
Aufruf:
BerechneNetto();
Erklärung: Die Variable VKNetto wird aus den aktuellen Wert von VKBrutto und dem Steuersatz von Artikel ArtikelNr berechnet.
BerechneBrutto
Verwendung: Dient zur Berechnung des Bruttopreis VKBrutto.
Parameter: keine
Aufruf:
BerechneBrutto();
Erklärung: Die Variable VKBrutto wird aus den aktuellen Wert von VKNetto und dem Steuersatz von Artikel ArtikelNr berechnet.
Roundy
Verwendung: Runden eines Dezimalwerts (Typ: Double)
Parameter: Dezimalwert, Nachkommastellen
Aufruf:
nGerundeterWert := Roundy(nDezimalwert,2);
Erklärung: Der zu rundende Wert wird mit Parameter 1 übergeben. Die gewünschte Anzahl an Nachkommastellen wird in Parameter 2 angegeben. Die Funktion rundet dann den Wert auf die angegebene Anzahl an Dezimalstellen und gibt das Ergebnis wieder zurück.
Trunc
Verwendung: Abschneiden der Nachkommastellen eines Dezimalwerts
Parameter: Dezimalwert
Aufruf:
nWert := Trunc(nDezimalwert);
Erklärung: Der Dezimalwert ist als Parameter zu übergeben. Als Ergbnis werden die Vorkommastellen zurückgegeben.
Beispiele
Nachfolgend finden Sie einige Beispiele für Formeln zur Kalkulation einer Preisliste.
VK-Netto aus Artikel VK1 plus 10 %
function Berechnung() : String; begin VKNetto := Roundy(ArtVK1 * 110/100,2); BerechneBrutto(); end;
VK-Brutto endet auf 9 Cent
function Berechnung() : String; begin if (VKNetto = 0) then begin VKNetto := ArtVK1; end; BerechneBrutto(); VKBrutto := (Trunc((VKBrutto+0.005)*10)/10)+0.09; if (VKBrutto <> 0) then begin BerechneNetto(); end; end;
VK-Netto + 3% + 5 Cent * Preisfokus
function Berechnung() : String; begin VKNetto := Roundy(VKNetto + (VKNetto * 3/100),2); VKNetto := Roundy(VKNetto + (5/100 * Preisfokus),2);
if (VKNetto <> 0) then begin BerechneBrutto(); end; end;
VK-Netto aus EK1 mit 20 % wenn 0
function Berechnung() : String; begin if (VKNetto = 0) then begin VKNetto := Roundy(nEKPreis + (nEKPreis * 20/100),2); end; end;