OBS/Preislisten/Preislisten per Macro füllen
- 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
Diese Seite bezieht sich auf das Kommando Füllen einer Preisliste über ein Formel-Macro und erklärt Ihnen ausführlich, wie Sie Preislisten mit diesem Kommando über ein Makro füllen können.
Voraussetzungen für Ausführung des Kommandos
Die Preisliste
Die im Kommando eingetragene Preisliste muss existieren und aktiv sein. Legen Sie bei Bedarf eine neue Preisliste in der Preislistenverwaltung an.
Formelmacro
Für die Bestimmung, ob eine Artikel übernommen werden soll, wird von OBS im Macro die Funktion IsArtikelInPreisliste aufgerufen. Das Macro muss also mindestens folgenden Code enthalten:
//Preisliste füllen aus Macro
function IsArtikelInPreisliste(): string;
begin
Result := 'ok'; //Wichtig, damit Artikel auch übernommen wird!
end;
Wichtig ist die Angabe Result. Damit ein Artikel auch übernommen wird, muss der Wert ok als String (Text) zurückgegeben werden. Sie können die Rückgabe entsprecehnd an Bedingungen knüpfen, damit unerwünschte Artikel nicht in die Preisliste übernommen werden.
Folgendes Makro würde dafür sorgen, dass nur Artikel meinen VK größer 0 in die Preisliste übernommen werden:
//Preisliste füllen aus Macro
function IsArtikelInPreisliste(): string;
begin
Result := '';
//Nur Artikel der Warengruppe 001 in Preisliste übernehmen
if (VKNetto > 0) then begin
Result := 'ok'; //Wichtig, damit Artikel auch übernommen wird!
end;
end;
Wenn Sie das Macro ebenfalls für die Kalkulation verwenden möchten, so können Sie zusätzlich auch noch die Funktion Berechnung in das Makro einfügen.
Tip: Fügen Sie die Funktion Berechnung vor IsArtikelInPreisliste im Makro ein, und Sie können die Kalkulation eines Artikelpreises bereits in der Übernahme ausführen.
Beispiel 1: Nur Artikel aus Warengruppe 001
Das folgende Makro übernimmt alle artikel der Warengruppe 001 und kalkuiert Brutto und Netto.
//Preisliste kalkulieren
function Berechnung() : String;
begin
if (VKNetto = 0) then begin
VKNetto := ArtVK1;
end;
//Falls Ek größer VK Netto, dann VK Netto = Ek + 10%
if (EKKalk > VKNetto) then begin
VKNetto := EKKalk * 1.1;
end;
BerechneBrutto();
//letzte Kommastelle bei Brutto immer 9
VKBrutto := (Trunc((VKBrutto+0.005)*10)/10)+0.09;
BerechneNetto();
Result := 'ok';
end;
//------------------------------------------------------------------------------
//Preisliste füllen aus Macro
function IsArtikelInPreisliste(): string;
begin
Result := '';
//Nur Artikel der Warengruppe 001 in Preisliste übernehmen
if (WGR = '001') then begin
Berechnung(); //Preise auch gleich kalkulieren
Result := 'ok'; //Wichtig, damit Artikel auch übernommen wird!
end;
end;
Kommando anlegen
Öffnen Sie zunächst die Liste der Preislistenautomatiken über die Preislistenverwaltung unter den weiteren Funktionen Punkt C Pflege der Automatische Übernahme/Kalkulation von Artikel VK1-VK9 aus Preislisten. Danach öffnen Sie in mit Einfg die OBS/Stammdaten/Artikel/Preislistenverwaltung/AutoPflege#Eingabemaske, um einen neuen Eintrag anzulegen. Tragen Sie die gewünschte Preisliste in das Feld Preisliste ein und wählen anschließend das Kommando Füllen einer Preisliste über ein Formel-Macro aus. Die letzte Pflichtangabe ist die Nummer des Formelmacros. Die Nummer des Formelmacros tragen Sie in das Feld Parameter ein.
Für dieses Kommando können Sie im Feld Parameter drei Werte (Trennzeichen Semikolon) angeben. Dies sind:
- Nummer Formelmacro *Pflicht*
- Personennummer Lieferant
- Preislistennummer
Wie schon beschrieben muss das Macro angegeben werden, damit das Kommando funnktioniert. Lieferant und PReisliste sind lediglich zwei optionale Parameter über die sich die Datenbasis eingrenzen lässt, bevor die Artikel mit dem Makro weiter gefiltert werden.