OBS/Makros und Scripting/Allgemeines/Klassen/Vorgänge: Unterschied zwischen den Versionen

Aus OBS Wiki
Zur Navigation springen Zur Suche springen
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 141: Zeile 141:
         cGruppe          : String;                        //
         cGruppe          : String;                        //
         cPosFormat        : String;                        // Format der Positionsnummerierung
         cPosFormat        : String;                        // Format der Positionsnummerierung
        nPosInc          : Integer;                        // Positionsnummerierung Nummerierungsintervall. Default 1
         cFiliale          : String;                        //
         cFiliale          : String;                        //
         cRabText          : String;
         cRabText          : String;
Zeile 333: Zeile 334:
</syntaxhighlight>
</syntaxhighlight>
Erklärung:<br />
Erklärung:<br />
<br />
Blockiert die Generierung einer neuen Vorgangsnummer für den jeweiligen Vorgangstyp, bis [[#NeuNumLockRelease|''NeuNumLockRelease'']] ausgeführt wird.{{Achtung|Blockiert auch die Generierung einer neuen Vorgangsnummer für die manuelle Anlage und andere Makros/Generierungen!}}<br />
<br />
<br />
Beispiel:
Beispiel:
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang="Delphi">
 
    oVG.NeuNumLock();
</syntaxhighlight>
</syntaxhighlight>


Zeile 346: Zeile 347:
</syntaxhighlight>
</syntaxhighlight>
Erklärung:<br />
Erklärung:<br />
<br />
Gibt die Generierung von Vorgangsnummern für den jeweiligen Vorgangstyp wieder frei. Sollte erst ausgeführt werden, wenn der Vorgang mit der generierten Nummer gespeichert wurde. {{Hinweis|In der Regel werden Sie diese Funktionen nicht im Makro nutzen müssten, da die Funktionen beim Speichern des Vorgangs ebenfalls ausgeführt wird.}}<br />
<br />
<br />
Beispiel:
Beispiel:
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang="Delphi">
 
    oVG.NeuNumLockRelease();
</syntaxhighlight>
</syntaxhighlight>


Zeile 359: Zeile 360:
</syntaxhighlight>
</syntaxhighlight>
Erklärung:<br />
Erklärung:<br />
<br />
Startet die Generierung einer neuen Vorgangsnummer. Die generierte Nummer wird automatisch in cVorgNr geschrieben. Gibt die erstellte Nummer zurück. Wird beim Speichern ausgeführt, wenn noch keine Vorgangsnummer gesetzt ist.{{Achtung|Führt [[#NeuNumLock|''NeuNumLock'']] aus.}}<br />
Parameter:
{| class="wikitable" style="max-width: 720px;"
|-
! Name!! Beschreibung
|- valign="top"
| cFilter|| Filter/Vorgabe für Nummernkreis
|- valign="top"
| lAbweichend|| Abweichende Jahresnummer. Funktioniert nur bei Rechnung und Einkauf.
|}
<br />
<br />
Beispiel:
Beispiel:
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang="Delphi">
 
    cNeueNr := oVG.VorgNeuNum();
</syntaxhighlight>
</syntaxhighlight>


Zeile 372: Zeile 382:
</syntaxhighlight>
</syntaxhighlight>
Erklärung:<br />
Erklärung:<br />
<br />
Führt [[#VorgNeuNum|''VorgNeuNum'']] aus und prüft anschließend, ob cVorgNr leer ist (False) oder nicht (True).<br />
Parameter:
{| class="wikitable" style="max-width: 720px;"
|-
! Name!! Beschreibung
|- valign="top"
| cFilter|| Filter/Vorgabe für Nummernkreis
|- valign="top"
| lAbweichend|| Abweichende Jahresnummer. Funktioniert nur bei Rechnung und Einkauf.
|}
<br />
<br />
Beispiel:
Beispiel:
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang="Delphi">
    if (oVG.VorgNeuNumBool()) then begin
        Meldung('Neue Vorgangsnummer ist '+oVG.cVorgNr);
    end;
</syntaxhighlight>
</syntaxhighlight>


Zeile 384: Zeile 406:
</syntaxhighlight>
</syntaxhighlight>
Erklärung:<br />
Erklärung:<br />
<br />
Prüft, ob die aktuell in cVorgNr eingetragene Nummer verwendet werden kann (True) oder bereits vergeben ist (False).<br />
<br />
<br />
Beispiel:
Beispiel:
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang="Delphi">
    if (oVG.IstVorgNrGueltig(oVG.cSysUid)) then begin
        Meldung('Nummer '+oVG.cVorgNr+' ist noch frei und kann verwendet werden');
    end;
</syntaxhighlight>
</syntaxhighlight>


Zeile 444: Zeile 469:
</syntaxhighlight>
</syntaxhighlight>
Erklärung:<br />
Erklärung:<br />
Prüft alle Positionen, ob mindestens eine Position mit einer Menge ungleich 0 vorhanden ist (True, sonst False). <br />
<br />
<br />
Beispiel:
<syntaxhighlight lang="Delphi">
    if (oVG.CheckIfNotNull() and oVG.CheckIfFirstPosOption()) then begin
        oVG.SaveRecord(oVG.cSysUid);
    end;
</syntaxhighlight>
===CheckIfFirstPosOption===
Definition:
<syntaxhighlight lang="Delphi">
function  CheckIfFirstPosOption(): Boolean;
</syntaxhighlight>
Erklärung:<br />
Prüft die erste Position, ob es sich dabei um eine Optionspoition handelt. Rückgabe ist ''True'', wenn die Position keine Optionsposition ist.<br />
<br />
<br />
Beispiel:
Beispiel:
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang="Delphi">
    if (oVG.CheckIfNotNull() and oVG.CheckIfFirstPosOption()) then begin
        oVG.SaveRecord(oVG.cSysUid);
    end;
</syntaxhighlight>
</syntaxhighlight>


Zeile 456: Zeile 499:
</syntaxhighlight>
</syntaxhighlight>
Erklärung:<br />
Erklärung:<br />
<br />
Prüft die angegebene Positionsart, ob es sich dabei um eine Art handelt, die in Rechnungen einfließen und somit "berechnet" werden. Nicht berechnet werden ''Alternativ'', ''Optional'', ''Eventual'', ''Verbrauchsmaterial'' und ''ohne Berechnung''.<br />
<br />
<br />
Beispiel:
Beispiel:

Aktuelle Version vom 25. Juni 2024, 13:34 Uhr


Es gibt für die Generierung von Vorgängen eigene Klassen. Da es zwischen den Vorgängen immer irgendwelche Unterschiede gibt, existiert auch für jeden Vorgangs-Typ eine eigene Klasse.

Übersicht Klassen:

Basis TVorgang

Variablen

        oMyDB             : TxDB;
        cMainTable        : string;
        cPosTable         : string;
        oProtokoll        : TStringList;
        lMeldung          : Boolean;                        //Meldungen Anzeigen
        lSetPSBemAuto     : Boolean;

        cVorgNr           : String;                         // Vorgangsnummer
        cProjNr           : String;                         // Projektnummer
        lBrutto           : Boolean;                        // Brutto positionen
        cLanguage         : String;                         // Sprache
        cTyp              : String;                         // Auftragstyp
        cStatus           : String;                         // Auftrags-Status (0-22)
        cStatM            : String;                         // 1-stellig
        cStatS            : String;                         // 1-stellig
        cStatL            : String;                         // 2-stellig
        cStatR            : String;                         // 2-stellig
        dVorgDat          : TDateTime;                      // Vorgangsdatum
        dFaelligDat       : TDateTime;                      // Fälligkeitsdatum
        dBuchDat          : TDateTime;                      // Buchungsdatum
        dAufDat           : TDateTime;                      // Auftragsdatum
        cKdNr             : String;                         // Kundennummer
        cAnrede           : String;                         // Kunde Anrede
        cName             : String;                         // Kunde Nachname
        cVorname          : String;                         // Kunde Vorname
        cZusatz1          : String;                         // Kunde Zusatz1
        cZusatz2          : String;                         // Kunde Zusatz2
        cStrasse          : String;                         // Kunde Straße
        cPostfach         : String;                         // Kunde Postfach
        cLK               : String;                         // Kunde Land
        cPLZ              : String;                         // Kunde PLZ
        cOrt              : String;                         // Kunde Ort
        cAngebNr          : String;                         // Auftragsnummer
        cLSNr             : String;                         // Lieferscheinnummer
        cRechNr           : String;                         //
        cAuftNr           : String;                         // Auftragsnummer
        cRepaNr           : String;                         // Reparaturauftragsnummer
        cEinkaufsNr       : String;                         // Einkaufsnummer
        cBestellNr        : String;                         // Bestellnummer
        cPosText          : String;                         // Positionstext
        cLProjNr          : String;                         // Lieferantenprojektnr
        cKopfNr           : String;                         // Kopftext-Nummer (00-999)
        cKopftext         : String;                         // Freier Kopftext
        cFusstext         : String;                         // Freier Fusstext
        cFussNr           : String;                         // Fusstext-Nummer (00-999)
        nNBetrag          : Double;                         // Nettobetrag der Auftrag
        nBBetrag          : Double;                         // Bruttobetrag der Auftrag
        nEKBetrag         : Double;                         // Einkaufsbetrag der Auftrag
        nRabattBetrag     : Double;                         // Rabatt Betrag
        nRabattProz       : Double;                         // Rabatt Prozentual
        nPorto            : Double;                         // Portobetrag
        nVerpackung       : Double;                         // Verpackungskosten
        cVersand          : String;                         // Versand über (0-99)
        cZahlBed          : String;                         // Zahlungsbedingung (0-99)
        cWaehr            : String;                         // Währung (0-99)
        cFormul           : String;                         //
        cVAnr             : String;                         // Kostenstelle
        cVKdNr            : String;                         // Versand Kundennummer
        cVName1           : String;                         // Versand Name
        cVName2           : String;                         // Versand Name
        cVZusatz          : String;                         // Versand Zusatz
        cVStrasse         : String;                         // Versand Straße
        cVLK              : String;                         // Versand Land
        cVPLZ             : String;                         // Versand PLZ
        cVOrt             : String;                         // Versand Ort
        cVUID             : String;                         // Versand UID
        cAuftNrKd         : String;                         // Auftragsnummer des Kunden
        cBesteller        : String;                         //
        cSachb            : String;                         // Sachbearbeiter (0-99)
        cRabPosJN         : String;                         // J oder N
        cMWSTJN           : String;                         // J oder N
        cSText1           : String;                         //
        cSText2           : String;                         //
        cSText3           : String;                         //
        cSText4           : String;                         //
        cSText5           : String;                         //
        cSText6           : String;                         //
        cSText7           : String;                         //
        cPreisJN          : String;                         // J oder N
        nNet1             : Double;                         //
        nNet2             : Double;                         //
        nNet3             : Double;                         //
        nBrutto1          : Double;                         //
        nBrutto2          : Double;                         //
        nBrutto3          : Double;                         //
        nMwSt1            : Double;                         //
        nMwSt2            : Double;                         //
        nMwSt3            : Double;                         //
        cMwStSchl1        : String;                         //
        cMwStSchl2        : String;                         //
        cMwStSchl3        : String;                         //
        cMwStAbs          : String;                         //
        dLiefDat          : TDateTime;                      // Lieferdatum
        cDeleted          : String;                         //
        dLDat2            : TDateTime;                      // Lieferdatum
        cSprache          : String;                         //
        cReEmpf           : String;                         // Kundennummer des Rg-Empfängers
        cVertreter        : String;                         // Vertreter (000-9999)
        cVerbucht         : String;                         //
        cLager            : String;                         //
        //cRgArt            : String;                         //
        cBonusJN          : String;                         // J oder N
        cWLiefNr          : String;                         //
        cRechFrei         : String;                         //
        cBonNr            : String;                         //
        cMandant          : String;                         // Mandant (001-999)
        nMwStDM           : Double;                         //
        nKursDM           : Double;                         //
        nAbschlag         : Double;                         //
        nZBetrag          : Double;                         //
        nZSkonto          : Double;                         //
        dZDatum           : TDateTime;                      //
        cMemo             : String;                         // Memofeld
        nValuta           : Integer;                        // Valuta in Tagen (max. 4 Stellen)
        cKostenst         : String;                         // Kostenstelle
        cKostentraeger    : String;                         // Kostenträger
        cKalkGr           : String;                         //
        cKalkRet          : String;                         //
        nOFBetrag         : Double;                         //
        cWKNr             : String;                         //
        cFrachtV          : String;                         //
        nFrachtK          : Double;                         //
        nFrachtG          : Integer;                        //
        cGruppe           : String;                         //
        cPosFormat        : String;                         // Format der Positionsnummerierung
        nPosInc           : Integer;                        // Positionsnummerierung Nummerierungsintervall. Default 1
        cFiliale          : String;                         //
        cRabText          : String;
        cErfasser         : String;
        nSKFBetrag        : Double;
        nMBWert           : Double;
        cLiefStrecke      : String;
        cMindbest         : String;
        cBetreff          : String;                         //Betreff
        cGeraet           : String;
        cVersandkostenMBW : String;
        cKeineVersPausch  : String;
        cMemoDruck        : String;                         //Positionslangtext drucken? Ja, Nein oder Voreinstellung
        cLieferLiefNr     : String;                         //Lieferscheinnummer des Lieferanten
        cRabattText       : String;                         // Rabatttext (Rabatt, Lagerrabatt, Auftragsrabatt, Objektrabatt)
        cArt              : String;
        cSysUid           : String;
        cDMS_TYP          : String;

Methoden

IstAngebot

Definition:

function  IstAngebot(): boolean;

Erklärung:
Überprüft ob cMainTable auf den Wert angebot gesetzt ist

Beispiel:

begin
    Result := (Lower(Self.cMainTable) = 'angebot');
end;

IstAuftrag

Definition:

function  IstAuftrag(): boolean;

Erklärung:
Überprüft ob cMainTable auf den Wert auftrag gesetzt ist

Beispiel:

begin
    Result := (Lower(Self.cMainTable) = 'auftrag');
end;

IstReparaturAuftrag

Definition:

function  IstReparaturAuftrag(): boolean;

Erklärung:
Überprüft ob cMainTable auf den Wert raufsta gesetzt ist

Beispiel:

begin
    Result := (Lower(Self.cMainTable) = 'raufsta');
end;

IstLieferschein

Definition:

function  IstLieferschein(): boolean;

Erklärung:
Überprüft ob cMainTable auf den Wert liefsta gesetzt ist

Beispiel:

begin
    Result := (Lower(Self.cMainTable) = 'liefsta');
end;

IstRechnung

Definition:

function  IstRechnung(): boolean;

Erklärung:
Überprüft ob cMainTable auf den Wert rechsta gesetzt ist

Beispiel:

begin
    Result := (Lower(Self.cMainTable) = 'rechsta');
end;

IstBestellung

Definition:

function  IstBestellung(): boolean;

Erklärung:
Überprüft ob cMainTable auf den Wert bestell gesetzt ist

Beispiel:

begin
    Result := (Lower(Self.cMainTable) = 'bestell');
end;

IstEKLieferschein

Definition:

function  IstEKLieferschein(): boolean;

Erklärung:
Überprüft ob cMainTable auf den Wert einklief gesetzt ist

Beispiel:

begin
    Result := (Lower(Self.cMainTable) = 'einklief');
end;

IstEinkauf

Definition:

function  IstEinkauf(): boolean;

Erklärung:
Überprüft ob cMainTable auf den Wert einkauf gesetzt ist

Beispiel:

begin
    Result := (Lower(Self.cMainTable) = 'einkauf');
end;

IstVG_VK

Definition:

function  IstVG_VK(): boolean;

Erklärung:
Prüfung, ob es sich bei dem Vorgang um einen Verkaufsvorgang handelt. Nutzt die "Ist"-Methoden.

Beispiel:

begin
    Result := self.IstAngebot() or
              self.IstAuftrag() or
              self.IstReparaturAuftrag() or
              self.IstLieferschein() or
              self.IstRechnung();
end;

IstVG_EK

Definition:

function  IstVG_EK(): boolean;

Erklärung:
Prüfung, ob es sich bei dem Vorgang um einen Einkaufsvorgang handelt. Nutzt die "Ist"-Methoden.

Beispiel:

begin
    Result := self.IstBestellung() or
              self.IstEKLieferschein() or
              self.IstEinkauf();
end;

NeuNumLock

Definition:

function  NeuNumLock(): boolean;

Erklärung:

Blockiert die Generierung einer neuen Vorgangsnummer für den jeweiligen Vorgangstyp, bis NeuNumLockRelease ausgeführt wird.

ACHTUNG: Blockiert auch die Generierung einer neuen Vorgangsnummer für die manuelle Anlage und andere Makros/Generierungen!



Beispiel:

    oVG.NeuNumLock();

NeuNumLockRelease

Definition:

procedure NeuNumLockRelease();

Erklärung:

Gibt die Generierung von Vorgangsnummern für den jeweiligen Vorgangstyp wieder frei. Sollte erst ausgeführt werden, wenn der Vorgang mit der generierten Nummer gespeichert wurde.

HINWEIS: In der Regel werden Sie diese Funktionen nicht im Makro nutzen müssten, da die Funktionen beim Speichern des Vorgangs ebenfalls ausgeführt wird.



Beispiel:

    oVG.NeuNumLockRelease();

VorgNeuNum

Definition:

function  VorgNeuNum(cFilter: string=''; lAbweichend: boolean = false): string;

Erklärung:

Startet die Generierung einer neuen Vorgangsnummer. Die generierte Nummer wird automatisch in cVorgNr geschrieben. Gibt die erstellte Nummer zurück. Wird beim Speichern ausgeführt, wenn noch keine Vorgangsnummer gesetzt ist.

ACHTUNG: Führt NeuNumLock aus.


Parameter:

Name Beschreibung
cFilter Filter/Vorgabe für Nummernkreis
lAbweichend Abweichende Jahresnummer. Funktioniert nur bei Rechnung und Einkauf.


Beispiel:

    cNeueNr := oVG.VorgNeuNum();

VorgNeuNumBool

Definition:

function  VorgNeuNumBool(cFilter: string=''; lAbweichend: boolean = false): boolean;

Erklärung:
Führt VorgNeuNum aus und prüft anschließend, ob cVorgNr leer ist (False) oder nicht (True).
Parameter:

Name Beschreibung
cFilter Filter/Vorgabe für Nummernkreis
lAbweichend Abweichende Jahresnummer. Funktioniert nur bei Rechnung und Einkauf.


Beispiel:

    if (oVG.VorgNeuNumBool()) then begin
        Meldung('Neue Vorgangsnummer ist '+oVG.cVorgNr);
    end;

IstVorgNrGueltig

Definition:

function  IstVorgNrGueltig(cUID: string=''): boolean;

Erklärung:
Prüft, ob die aktuell in cVorgNr eingetragene Nummer verwendet werden kann (True) oder bereits vergeben ist (False).

Beispiel:

    if (oVG.IstVorgNrGueltig(oVG.cSysUid)) then begin
        Meldung('Nummer '+oVG.cVorgNr+' ist noch frei und kann verwendet werden');
    end;

NeuePositionBase

Definition:

function  NeuePositionBase(): TVorgangPos;

Erklärung:


Beispiel:

NeuePositionBaseMS

Definition:

procedure NeuePositionBaseMS(oOrgPos: TVorgangPos);

Erklärung:


Beispiel:

LoeschePositionBase

Definition:

procedure LoeschePositionBase(nDel: integer);

Erklärung:


Beispiel:

VerschiebePositionBase

Definition:

procedure VerschiebePositionBase(nPos: integer; nZiel: integer);

Erklärung:


Beispiel:

CheckIfNotNull

Definition:

function  CheckIfNotNull(): Boolean;

Erklärung:
Prüft alle Positionen, ob mindestens eine Position mit einer Menge ungleich 0 vorhanden ist (True, sonst False).

Beispiel:

    if (oVG.CheckIfNotNull() and oVG.CheckIfFirstPosOption()) then begin
        oVG.SaveRecord(oVG.cSysUid);
    end;

CheckIfFirstPosOption

Definition:

function  CheckIfFirstPosOption(): Boolean;

Erklärung:
Prüft die erste Position, ob es sich dabei um eine Optionspoition handelt. Rückgabe ist True, wenn die Position keine Optionsposition ist.

Beispiel:

    if (oVG.CheckIfNotNull() and oVG.CheckIfFirstPosOption()) then begin
        oVG.SaveRecord(oVG.cSysUid);
    end;

IsPosBerechnung

Definition:

function  IsPosBerechnung(cPosArt: string): boolean;

Erklärung:
Prüft die angegebene Positionsart, ob es sich dabei um eine Art handelt, die in Rechnungen einfließen und somit "berechnet" werden. Nicht berechnet werden Alternativ, Optional, Eventual, Verbrauchsmaterial und ohne Berechnung.

Beispiel:

CopyFrom

Definition:

procedure CopyFrom(oSrc: TVorgang);

Erklärung:


Beispiel:

KalkAll

Definition:

procedure KalkAll();

Erklärung:


Beispiel:

Check_Multisteuer

Definition:

procedure Check_Multisteuer(oOrgPos: TVorgangPos; const cTable: string; const cMUID: string; const cRefNr: string);

Erklärung:


Beispiel:

CopyPosmenge

Definition:

function  CopyPosmenge(cFromUID : string): string;

Erklärung:


Beispiel:

CopyPosverp

Definition:

function  CopyPosverp(cFromUID : string): string;

Erklärung:


Beispiel:

FillPersonBase

Definition:

procedure FillPersonBase(qPers: TxFQuery);

Erklärung:


Beispiel:

SaveRecord

Definition:

function  SaveRecord(cUID : String = ''; lAlleSpeichern : Boolean = true): Boolean; virtual; abstract;

Erklärung:


Beispiel:

ReadVorgangBase

Definition:

function  ReadVorgangBase(qQuery: TxFQuery; lPos: boolean=false): boolean; overload;

function  ReadVorgangBase(const cNr: string; lPos: boolean=false): boolean; overload;

Erklärung:


Beispiel:

JahrNr

Definition:

function  JahrNr(): string;

Erklärung:


Beispiel:

Properties

        property  PnPosCnt                     : integer       read nPosCnt     write nPosCnt;
        property  PaPositionen[Index: integer] : TVorgangPos   read GetPosition write SetPosition; // Vorgangspositionen
        property  PcRabGrPers                  : string        read cRabGrPers;

Basis TVorgangPos

Variablen

        oMyDB             : TxDB;
        nPosIndex         : Integer;   //Index des Positionsarrays aus TVorgang
        cNr               : String;    //Vorgangsnummer
        cKundNr           : String;    //Kundennummer
        cAuftragsNr       : String;    //Auftragsnummer
        cBestellNr        : String;    //Bestellnummer
        cPosText          : String;    //Positionstext
        cLProjNr          : String;    //Liefernatenprojektnr
        cLieferNr         : String;    //Versandnummer
        cVersandNr        : String;    //Versandnummer
        cPosNr            : String;    //Positionsnummer
        cPosNr2           : String;    //Positionsnummer Erweiterung
        cPosKas           : String;    //Positionsnummer
        cTyp              : String;    //Typ
        cArtikelNr        : String;    //Artikel-Nummer
        cLeistungsNr      : String;    //Leistungs-Nummer
        cBezeichnung1     : String;    //Bezeichnung 1
        cBezeichnung2     : String;    //Bezeichnung 2
        nMenge            : Double;    //Menge
        nUrMenge          : Double;    //nicht fakturierte Menge (MDS -> Leistungs-Einheitsfaktor)
        nLeistFaktor      : Double;    //Leistungs Mengen Faktor (MDS -> Leistungs-Einheitsfaktor)
        cEinheit          : String;    //Einheit
        nMengeG           : Integer;   //MengeG
        nKolli            : Integer;   //Kolli
        cVerpackung       : String;    //Verpackung
        nInhalt           : Double;    //Inhalt
        nEPreis           : Double;    //Einzelpreis VK in Netto
        nBEPreis          : Double;    //Einzelpreis VK in Brutto
        nOBPreis          : Double;    //Open Book Preis
        nUrPreis          : Double;    //UrPreis
        nUrPreisEK        : Double;    //UrPreisEK
        nGPreis           : Double;    //Gesamt Preis VK Netto
        nBGPreis          : Double;    //Gesamt Preis VK Brutto
        nEKPreis          : Double;    //EKPreis
        nEKSPreis         : Double;    //EKPreis
        cManPreis         : String;    //Manueller Preis Varianten
        nRabatt           : Double;    //Rabatt
        nRabatt1          : Double;    //Rabatt
        cRabArt1          : String;    //RabattArt
        nRabatt2          : Double;    //Rabatt
        cRabArt2          : String;    //RabattArt
        nRabatt3          : Double;    //Rabatt
        cRabArt3          : String;    //RabattArt
        nRabatt4          : Double;    //Rabatt
        cRabArt4          : String;    //RabattArt
        nRabatt5          : Double;    //Rabatt
        cRabArt5          : String;    //RabattArt
        nAddSub           : Double;    //AddSub
        cKonto            : String;    //Konto
        cLagNr            : String;    //LagerNr
        cLagONr           : String;    //Lagerort
        cVerkaufer        : String;    //Sachbearbeiter
        cStatus           : String;    //Positionskennzeichen
        cAngebotsNr       : String;    //AuftragsNr
        cUID              : String;    //UID
        cMUID             : String;    //Multi-Steuer UID
        cSpNr             : String;    //SpNr
        cBestellUID       : String;    //BestellUID
        cMaterialUID      : String;    //MaterialUID
        cEiliUID          : String;    //EiliUID
        cXUID1            : String;    //XUID1
        cXUID2            : String;    //XUID2
        cXUID3            : String;    //XUID3
        cXUID4            : String;    //XUID4
        cKommentar        : String;    //Kommentar
        nProvision        : Double;    //Provision
        cLiefKz           : String;    //LiefKz
        cProdGr           : String;    //ProdGr
        nFrachtV          : Double;    //FrachtV
        cLSNr             : String;    //Lieferschein-Nummer
        dLSDatum          : TDateTime; //Lieferschein-Datum
        cPosArt           : String;    //Positionsart
        cSKFJN            : String;    //Skonto fähig J/N
        cEKHerkunft       : String;
        cLiefNr           : String;    //Liefer Nr.
        cLagStreck        : String;    //Streckenlieferung
        cAufschlag        : String;    //Aufschlag
        nStaffelPreis     : integer;
        nStaffelmenge     : Double;
        lAktionspreis     : Boolean;
        lVerbrauchsMater  : Boolean;
        cAusdruckJN       : String;    //Ausdruck Ja/Nein
        cMemoDruck        : String;    //Positionslangtext drucken? Ja, Nein oder Voreinstellung

        cCMPUID       : String;    //Zum merken von referenzen
        cZeit_CMPUID  : String;    //Zum merken von referenzen
        cZeit_Text    : String;    //Zum merken von referenzen
        cZeit_Mitarb  : String;    //Zum merken von referenzen
        dZeit_Date    : TDateTime; //Zum merken von referenzen
        cZeit_NurLei  : String;    //Zum merken von referenzen

        //Rechnung
        cKostst           : String;
        lNeuNum           : Boolean;
        cSysUID           : String;    //SYS_UID

Methoden

PositionsVorbelegung

Definition:

procedure PositionsVorbelegung();

Erklärung:


Beispiel:

GenNewUid

Definition:

procedure GenNewUid();

Erklärung:


Beispiel:

CopyPosmenge

Definition:

function  CopyPosmenge(cFromUID : string): string;

Erklärung:


Beispiel:

CopyPosverp

Definition:

function  CopyPosverp(cFromUID : string): string;

Erklärung:


Beispiel:

CopyFrom

Definition:

procedure CopyFrom(oSrc: TVorgangPos; lFull: boolean=False);

Erklärung:


Beispiel:

QueryToPos

Definition:

procedure QueryToPos(qTmp : TxFQuery); 

procedure QueryToPos(      qTmp       : TxFQuery;
                     const cFromTable : string;
                           lVerpack   : Boolean=False;
                           lUmkehr    : boolean=False); overload;

Erklärung:


Beispiel:

DBPosToPos

Definition:

procedure DBPosToPos(const cFromTable : string;
                     const cSysUid    : string;
                           lVerpack   : Boolean=False;
                           lUmkehr    : boolean=False);

Erklärung:


Beispiel:

GetLan_Artikel

Definition:

function  GetLan_Artikel(cArtNr: String; cFeld: string; cDefault: string): string;

Erklärung:


Beispiel:

FillArtikel

Definition:

procedure FillArtikel(cArtNr:String);

Erklärung:


Beispiel:

SetzeLieferant

Definition:

function  SetzeLieferant(const cLiefNr: string; lEKNeu: boolean=True; lDefaultEK1: boolean=False): boolean;

Erklärung:


Beispiel:

GetLan_Leist

Definition:

function  GetLan_Leist(cLeistNr: String; cFeld: string; cDefault: string): string;

Erklärung:


Beispiel:

FillLeistung

Definition:

procedure FillLeistung(cLeistNr:String);

Erklärung:


Beispiel:

KalkPos

Definition:

procedure KalkPos();

Erklärung:


Beispiel:

SetPosNr

Definition:

procedure SetPosNr(cP: string; cT: string=''; cG: string=''; cFormat: string=''); overload;

procedure SetPosNr(nP: integer; nT: integer=-1; nG: integer=-1; cFormat: string=''); overload;

Erklärung:


Beispiel:

PosLaufend

Definition:

function  PosLaufend(iPos: integer=0): string;

Erklärung:


Beispiel:

Preisfindung

Definition:

procedure Preisfindung(cShopNr: string=CONST_NO_SHOP);

Erklärung:


Beispiel:

Properties

        property PcMWSTSch        : string   read cMWSTSch        write SetMWSTSch;
        property PcMengeIn        : string   read cMengeIn        write SetcMengeIn;
        property PnMengeIn        : double   read nMengeIn        write SetnMengeIn;
        property PnMengeInFak     : double   read nMengeInFak     write SetnMengeInFak;
        property PcMemofeld       : string   read cMemofeld       write SetcMemofeld;
        property PcMemofeldAnsi   : string   read cMemofeldAnsi   write SetcMemofeldAnsi;
        property cPosLaufend      : string   read ReadPosLfd      write cPosLfd;

Allgemeine Datentypen

TVB_MaterMode

    TVB_MaterMode = (
        mmMD5=1,
        mmReadUID=2
    );

Allgemeine Konstanten

    POSTYP_POS =  '0'; //Artikel/Leistung Position
    POSTYP_TXT =  '1'; //Text
    POSTYP_ELN =  '2'; //Leerzeile (empty line)
    POSTYP_ZWS =  '3'; //Zwischensumme
    POSTYP_TIS =  '4'; //Titelsumme
    POSTYP_TIT =  '7'; //Titel
    POSTYP_GEW =  '8'; //Gewerk
    POSTYP_PBR = '17'; //Seitenumbruch (Pagebreak)
    POSTYP_PIC = '19'; //Bildposition

Allgemeine Funktionen

IstVKVorgang

Definition:

function IstVKVorgang(cMainTable: string): boolean;

Erklärung:
Gibt "True" zurück wenn der übergebene Name der Tabelle (cMainTable) "Angebot", "Auftrag", "Liefsta" oder "Rechsta" ist.


Beispiel:

if (IstVKVorgang(cTable)) then begin 
    //Zugriff auf die Tabelle
end;

IstVKVorgangPos

Definition:

function IstVKVorgangPos(cPosTable: string): boolean;

Erklärung:
Gibt "True" zurück wenn der übergebene Name der Tabelle (cPosTabele) "Angpos", "Aufpos", "Liefpos" oder "Raufpos" ist.
Beispiel:

if (IstVKVorgangPos(cPosTable)) then begin
    //Zugriff auf die Tabelle
end;

CopyPosmengeDB

Definition:

function CopyPosmengeDB(oMyDB: TxDB; cFromUID : string): string;

Erklärung:


Beispiel:

function CopyPosmenge(cFromUID : string): string;
begin
    Result := CopyPosmengeDB(Self.oMyDB,cFromUID);
end;

CopyPosverpDB

Definition:

function CopyPosverpDB(oMyDB: TxDB; cFromUID : string): string;

Erklärung:


Beispiel:

CopyRTFLan

Definition:

function CopyRTFLan(oMyDB: TxDB; cVonTable: String; cVonRef: String; cNachTable: String; cNachRef: String): String;

Erklärung:


Beispiel:

PosNrFormatCheck

Definition:

function PosNrFormatCheck(const cFormat: string): boolean;

Erklärung:


Beispiel:

PosNrFormatCounts

Definition:

function PosNrFormatCounts(const cFormat: string; out nG: integer; out nT: integer; out nP: integer): boolean;

Erklärung:


Beispiel:

GetVorgangMandant

Definition:

function GetVorgangMandant(oMyDB: TxDB; const cTable: string; const cNr: string): string;

Erklärung:


Beispiel: