OBS/Kostenpflichtige Module/Preislisten/Formeln: Unterschied zwischen den Versionen
Nimz (Diskussion | Beiträge) |
Nimz (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 53: | Zeile 53: | ||
Parameter: keine<br /> | Parameter: keine<br /> | ||
Aufruf: | Aufruf: | ||
<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 62: | ||
Parameter: keine<br /> | Parameter: keine<br /> | ||
Aufruf: | Aufruf: | ||
<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 71: | ||
Parameter: Dezimalwert, Nachkommastellen<br /> | Parameter: Dezimalwert, Nachkommastellen<br /> | ||
Aufruf: | Aufruf: | ||
<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 79: | ||
Parameter: Dezimalwert<br /> | Parameter: Dezimalwert<br /> | ||
Aufruf: | Aufruf: | ||
<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 %=== | ||
<syntaxhighlight lang="Delphi"> | |||
function Berechnung() : String; | |||
begin | |||
VKNetto := Roundy(ArtVK1 * 110/100,2); | |||
BerechneBrutto(); | |||
end; | |||
</syntaxhighlight> | |||
===VK-Brutto endet auf 9 Cent=== | ===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-Netto + 3% + 5 Cent * Preisfokus=== | ===VK-Netto + 3% + 5 Cent * Preisfokus=== | ||
<syntaxhighlight lang="Delphi"> | |||
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; | |||
</syntaxhighlight> | |||
===VK-Netto aus EK1 mit 20 % wenn 0=== | ===VK-Netto aus EK1 mit 20 % wenn 0=== | ||
<syntaxhighlight lang="Delphi"> | |||
function Berechnung() : String; | |||
begin | |||
if (VKNetto = 0) then begin | |||
VKNetto := Roundy(nEKPreis + (nEKPreis * 20/100),2); | |||
end; | |||
end; | |||
</syntaxhighlight> |
Version vom 8. April 2019, 11:39 Uhr
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;