OBS/Preislisten/Preislisten per Macro füllen

Aus OBS Wiki
Wechseln zu: Navigation, Suche
Kostenpflichtige Module

ZUGFeRD
UPS
SMS
Mehrlager-Verwaltung
Mehrsprachen 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

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

HINWEIS: Eine Beschreibung der Formelverwaltung finden Sie hier.
HINWEIS: Da das Macro zum befüllen von Preislisten ebenso wie die Macros zur Kalkulation über die Formelverwaltung der Preislisten verwaltet werden, haben Sie den Vorteil, dass die beim Füllen von Preislisten über ein Macro auch gleich Kalkulieren können. So können Sie sich eine zusätzliche Automatik für die Kalkulation sparen.

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 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:

  1. Nummer Formelmacro *Pflicht*
  2. Personennummer Lieferant
  3. 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.