OBS/Kostenpflichtige Module/Preislisten/Formeln: Unterschied zwischen den Versionen

Aus OBS Wiki
Zur Navigation springen Zur Suche springen
(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…“)
Keine Bearbeitungszusammenfassung
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Formeln (auch Makros) sind mächtige Werkzeuge, um automatisierte Anpassungen vornehmen zu können. In der [[OBS/Kostenpflichtige_Module/Preislisten|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|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.
{{Kostenpflichtige Module}}
Formeln (auch Makros) sind mächtige Werkzeuge, um automatisierte Anpassungen vornehmen zu können. In der [[OBS/Kostenpflichtige_Module/Preislisten|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|Formelverwaltung]] vordefinieren und in den einzelnen Preislisten ([[OBS/Kostenpflichtige_Module/Preislisten#Eingabemaske|Eingabemaske]] Feld ''Formel'') hinterlegen. So lassen sich Änderungen gleich für alle betreffenden Preislisten vornehmen. Alternativ können Sie auch pro Preisliste eine Formel hinterlegen ([[OBS/Kostenpflichtige_Module/Preislisten#Tasten_und_Schaltfl.C3.A4chen|Preislistenverwaltung]] unter {{Key|F8 Formel}}).
=Formelverwaltung=
=Formelverwaltung=
[[File:FRMPREISLISTENFORMELN_1.jpg|thumb|Liste Formelverwaltung]]
[[File:FRMPREISLISTENFORMELN_1.jpg|thumb|Liste Formelverwaltung]]
Zeile 53: Zeile 54:
Parameter: keine<br />
Parameter: keine<br />
Aufruf:
Aufruf:
BerechneNetto();
<syntaxhighlight lang="Delphi">
    BerechneNetto();
</syntaxhighlight>
Erklärung: Die Variable ''VKNetto'' wird aus den aktuellen Wert von ''VKBrutto'' und dem Steuersatz von Artikel ''ArtikelNr'' berechnet.
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!}}
{{Hinweis|Unterstützt die Verwendung von Artikeln mit mehreren Steuersätzen!}}
Zeile 60: Zeile 63:
Parameter: keine<br />
Parameter: keine<br />
Aufruf:
Aufruf:
BerechneBrutto();
<syntaxhighlight lang="Delphi">
    BerechneBrutto();
</syntaxhighlight>
Erklärung: Die Variable ''VKBrutto'' wird aus den aktuellen Wert von ''VKNetto'' und dem Steuersatz von Artikel ''ArtikelNr'' berechnet.
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!}}
{{Hinweis|Unterstützt die Verwendung von Artikeln mit mehreren Steuersätzen!}}
Zeile 67: Zeile 72:
Parameter: Dezimalwert, Nachkommastellen<br />
Parameter: Dezimalwert, Nachkommastellen<br />
Aufruf:
Aufruf:
nGerundeterWert := Roundy(nDezimalwert,2);
<syntaxhighlight lang="Delphi">
    nGerundeterWert := Roundy(nDezimalwert,2);
</syntaxhighlight>
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.
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===
===Trunc===
Zeile 73: Zeile 80:
Parameter: Dezimalwert<br />
Parameter: Dezimalwert<br />
Aufruf:
Aufruf:
nWert := Trunc(nDezimalwert);
<syntaxhighlight lang="Delphi">
    nWert := Trunc(nDezimalwert);
</syntaxhighlight>
Erklärung: Der Dezimalwert ist als Parameter zu übergeben. Als Ergbnis werden die Vorkommastellen zurückgegeben.
Erklärung: Der Dezimalwert ist als Parameter zu übergeben. Als Ergbnis werden die Vorkommastellen zurückgegeben.
==Beispiele==
==Beispiele==
Nachfolgend finden Sie einige Beispiele für Formeln zur Kalkulation einer Preisliste.
Nachfolgend finden Sie einige Beispiele für Formeln zur Kalkulation einer Preisliste.
===VK-Netto aus Artikel VK1 plus 10 %===
===VK-Netto aus Artikel VK1 plus 10 %===
function Berechnung() : String;
<syntaxhighlight lang="Delphi">
begin
    function Berechnung() : String;
    VKNetto  := Roundy(ArtVK1 * 110/100,2);
    begin
    BerechneBrutto();
        VKNetto  := Roundy(ArtVK1 * 110/100,2);
end;
        BerechneBrutto();
    end;
</syntaxhighlight>
===VK-Brutto endet auf 9 Cent===
<syntaxhighlight lang="Delphi">
    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;
</syntaxhighlight>


===VK-Brutto endet auf 9 Cent===
===VK-Netto + 3% + 5 % * Preisfokus===
function Berechnung() : String;
<syntaxhighlight lang="Delphi">
begin
    function Berechnung() : String;
    if (VKNetto = 0) then begin
    begin
        VKNetto := ArtVK1;
        VKNetto  := Roundy(VKNetto + (VKNetto * 3/100),2);
    end;
        VKNetto  := Roundy(VKNetto + (5/100 * Preisfokus),2);
    BerechneBrutto();
 
    VKBrutto := (Trunc((VKBrutto+0.005)*10)/10)+0.09;
        if (VKNetto <> 0) then begin
    if (VKBrutto <> 0) then begin
            BerechneBrutto();
        BerechneNetto();
        end;
    end;
    end;
end;
</syntaxhighlight>
===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===
===VK-Netto aus EK1 mit 20 % wenn 0===
function Berechnung() : String;
<syntaxhighlight lang="Delphi">
begin
    function Berechnung() : String;
    if (VKNetto = 0) then begin
    begin
        VKNetto  := Roundy(nEKPreis + (nEKPreis * 20/100),2);
        if (VKNetto = 0) then begin
    end;
            VKNetto  := Roundy(nEKPreis + (nEKPreis * 20/100),2);
end;
        end;
    end;
</syntaxhighlight>

Aktuelle Version vom 5. Juli 2021, 10:16 Uhr

Kostenpflichtige Module

UPS
IMS Professional
SMS
Mehrlager-Verwaltung
Mehrsprachen Modul
Multilanguage Modul
EVA Marketing Tool
Termin-Projekte
Edifact-Schnittstelle
Backup Überwachung Email
OBS Geo Daten
DeliSprint / DPD
Filialen
Cashback
Moebelschnittstelle
Dokumenten Manager
DocuWare-Schnittstelle
OFML-Kalkulation
Versicherungsschaden
Gutschriftsanzeigen
Kameraverwaltung
DataInOut


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 (Eingabemaske Feld Formel) hinterlegen. So lassen sich Änderungen gleich für alle betreffenden Preislisten vornehmen. Alternativ können Sie auch pro Preisliste eine Formel hinterlegen (Preislistenverwaltung unter F8 Formel).

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 % * 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;