OBS/Kostenpflichtige Module/Preislisten/Formeln

Aus OBS Wiki
Version vom 22. Januar 2018, 14:14 Uhr von Nimz (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Formeln (auch Makros) sind mächtige Werkzeuge, um automatisierte Anpassungen vornehmen zu können. In der OBS/Kostenpflichtige_Module/Preislisten|Preisliste…“)
Zur Navigation springen Zur Suche springen

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

Liste 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.

HINWEIS: Unterstützt die Verwendung von Artikeln mit mehreren Steuersätzen!

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.

HINWEIS: Unterstützt die Verwendung von Artikeln mit mehreren Steuersätzen!

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;