OBS/Kostenpflichtige Module/Preislisten/Formeln: Unterschied zwischen den Versionen
Nimz (Diskussion | Beiträge) |
Nimz (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(5 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: | ||
<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: | ||
<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: | ||
<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: | ||
<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=== | |||
<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 % * 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 + 3% + 5 | |||
===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> |
Aktuelle Version vom 5. Juli 2021, 10:16 Uhr
- A Preise aktualisieren
- C Personen übertragen
- E Kategorien verwalten
- G Kataloge verwalten
- I Merkliste übertragen
- K Varianten übertragen
- L Artikelvarianten übertragen
- M Referenzarten übertragen
- N Lagerbestände verwalten
- U Bestellungen einlesen
- V leere Passworte füllen
- W Update-Informationen zurücksetzen
- X Konfiguration
- Z Protokoll
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
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 % * 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;