Show / Hide Table of Contents

    Verkaufspreise erzeugen mit Scripts

    Artikel - Artikel - Verkaufspreise erzeugen

    Bei den Tabellen Verkaufspreise und Artikelgruppen können Preise mittel der Funktion Verkaufspreise erzeugen... neu gebildet werden. Der Beschrieb gilt auch für die Preiserzeugung unter der Tabelle Artikel, ergänzt um die Zuhilfenahme von Scripts.

    Artikel Funktion Verkaufspreise erzeugen
    Checkbox "Keine Null-Preise erzeugen Weil Formeln als Resultat auch Null ergeben können (z.B. auch wenn die Formel falsch ist), kann mit der Checkbox „Keine Null-Preise erzeugen“ festgelegt werden, dass keine Null-Preise erzeugt werden sollen.
    Klickt man auf den Button „i“, erscheint folgendes Info-Fenster:
     

    Folgendes Script anwenden Auswählen, welches man möchte
    Neu Siehe Beschrieb unten
    Bearbeiten
    Löschen

    Scripts erstellen

    Beim Skripten muss folgendes beachtet werden:

    • Das Resultat, sprich: der neue Preis, muss am Schluss in der globalen Variablen zwingend „<>r_Script_Result“ stehen (siehe Abbildungen).
    • Normalerweise geht die Neuberechnung und damit auch das Skript von einer bestehenden Zahl aus (das ist die gewählte Kalkulationsbasis, welche man oben im Dialog wählt). Damit das Skript mit dieser Grundlage weiterrechnen kann, muss die Zahl auf irgend eine Art ins Skript gelangen. Sie ist in der globalen Variablen „<>r_Script_Parameter_1“ gespeichert und kann in einem Skript z.B. folgendermassen übernommen werden:- Man kann auch Skripts definieren, welche die neuen Preise ohne Kalkulationsbasis berechnen. Dann wird der Wert in „<>r_Script_Parameter_1“ (also die Kalkulationsbasis) einfach nicht übernommen bzw. nicht verwendet. Das folgende Beispiel errechnet den neuen Verkaufspreis nur aus Angaben der Freien Felder des Artikels selber: Verkaufspreis := 10 mal FreiZahl6 plus FreiZahl7.
    • Sind noch keine Verkaufspreise vorhanden, kann mit der Zuweisung „<>t_Script_Result_1:=“EUR“ “ im Skript festgelegt werden, für welche Währung die neuen Preise angelegt werden sollen.
    • Was allenfalls ins Bemerkungsfeld der Verkaufspreise geschrieben wird, kann mit der Zuweisung „<>Result_Text:=“Meine Bemerkung“ “ festgelegt werden.

    Basiscript Preiserzeugung aufgrund von Einträgen im Script

    • Es liegt ein gültiger Einkaufspreis (allenfalls in Fw) vor.
    • Das Script sieht wie folgt aus:Initialisierung der variablenc_Real($r_Basis)SRDatum01:=!01.01.2020! Datum für PreishistorisierungSRText01:="CHF" Währung in welcher der Preis erzeugt wirdSRDezimalzahl01:=1.0 Faktor 1SRDezimalzahl02:=1.0 Faktor 2SRDezimalzahl03:=1.0 Faktor 3SRDezimalzahl04:=1.0 `Faktor 4$r_Basis:=<>r_Script_Parameter_1<>t_Script_Result_1:=SRText01<>r_Script_Result:=$r_Basis*SRDezimalzahl01*SRDezimalzahl02*SRDezimalzahl03*SRDezimalzahl04<>Result_Text:="Verkaufspreis erzeugt am "+string(SRDatum01)+"; Faktor 1: "+string(SRDezimalzahl01)+"; Faktor 2: "+string(SRDezimalzahl02)+"; Faktor 3: "+string(SRDezimalzahl03)+"; Faktor 4: "+string(SRDezimalzahl04)

    Basiscript Preiserzeugung aufgrund von Freien Feldern im Artikelstamm

    • Es liegt ein gültiger Einkaufspreis (allenfalls in Fw) vor.
    • Das Script sieht wie folgt aus:Initialisierung der variablenc_Real($r_Basis)SRDatum01:=!01.01.2020! Datum für PreishistorisierungSRText01:="CHF" Währung in welcher der Preis erzeugt wirdSRDezimalzahl01:=[s0_Artikel]f_Zahl__6 Faktor 1SRDezimalzahl02:=[s0_Artikel]f_Zahl__7 Faktor 2SRDezimalzahl03:=[s0_Artikel]f_Zahl__8 Faktor 3SRDezimalzahl04:=[s0_Artikel]f_Zahl__9 `Faktor 4$r_Basis:=<>r_Script_Parameter_1<>t_Script_Result_1:=SRText01<>r_Script_Result:=$r_Basis*SRDezimalzahl01*SRDezimalzahl02*SRDezimalzahl03*SRDezimalzahl04<>Result_Text:="Verkaufspreis erzeugt am "+string(SRDatum01)+"; Faktor 1: "+string(SRDezimalzahl01)+"; Faktor 2: "+string(SRDezimalzahl02)+"; Faktor 3: "+string(SRDezimalzahl03)+"; Faktor 4: "+string(SRDezimalzahl04)

    CHF-Verkaufspreiserzeugung mittels Scripts am Beispiel eines EUR-Einkaufspreises eines Kunden

    • Es liegt ein gültiger Einkaufspreis in Euro vor.
    • Das Script sieht wie folgt aus: Initialisierung der variablenc_Real($r_Basis)SRDezimalzahl01:=[s0_Artikel]f_Zahl__6 Faktor 1: WährungSRDezimalzahl02:=[s0_Artikel]f_Zahl__7 Faktor 2: WährungskompensationSRDezimalzahl03:=[s0_Artikel]f_Zahl__8 Faktor 3: TransportSRDezimalzahl04:=[s0_Artikel]f_Zahl__9 `Faktor 4: Verkaufsmarge$r_Basis:=<>r_Script_Parameter_1<>t_Script_Result_1:="EUV"<>r_Script_Result:=$r_Basis*SRDezimalzahl01*SRDezimalzahl02*SRDezimalzahl03*SRDezimalzahl04<>Result_Text:="Verkaufspreis erzeugt am 01.01.2000; Währung: "+string(SRDezimalzahl01)+"; Währungskompensation: "+string(SRDezimalzahl02)+"; Transport: "+string(SRDezimalzahl03)+"; Verkaufsmarge: "+string(SRDezimalzahl04)

    Beispiel von Rundungen von Verkaufspreisen

    Möglichkeit 1

    <>r_Script_Result:=$r_Basis*(SRDezimalzahl01/100)*SRDezimalzahl02 <>r_Script_Result:=Round(<>r_Script_Result;0) //runden auf 0 Nachkommastellen (=1 Fr.) oder <>r_Script_Result:=Round(<>r_Script_Result;1) //runden auf 1 Nachkommastellen (=10 Rp.)

    Möglichkeit 2 (nur aufrunden)

    C_REAL($r_Gerundet) $r_Gerundet:= Round(<>r_Script_Result;0) //auf 1 Fr. runden If ($r_Gerundet<<>r_Script_Result) //gerundet ist kleiner als ungerundet – also abgerundet <>r_Script_Result:=$r_Gerundet + 1 Else <>r_Script_Result:=$r_Gerundet End if

    • Bearbeiten
    Back to top Generated by DocFX