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

Aus OBS Wiki
Zur Navigation springen Zur Suche springen
Zeile 279: Zeile 279:
Beispiel:
Beispiel:
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang="Delphi">
begin
    if (Assigned(oNeuNumLock)) then begin
        oNeuNumLock.Release();
        MyFreeAndNil(oNeuNumLock);
    end;
end;
</syntaxhighlight>
</syntaxhighlight>


Zeile 291: Zeile 297:
Beispiel:
Beispiel:
<syntaxhighlight lang="Delphi">
<syntaxhighlight lang="Delphi">
begin
    if (Self.NeuNumLock()) then begin
        Self.cVorgNr := NeuNum_Vorgang(
            oMyDB,
            Self.cDMS_TYP,
            cFilter,
            Self.cFiliale,
            lAbweichend
        );
    end else begin
        Self.cVorgNr := '';
    end;
    Result := Self.cVorgNr;
end;
</syntaxhighlight>
</syntaxhighlight>



Version vom 14. Oktober 2019, 09:55 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
        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;

NeuNumLock

Definition:

function  NeuNumLock(): boolean;

Erklärung:


Beispiel:

begin
    Result := True;

    if (not Assigned(oNeuNumLock)) then begin
        oNeuNumLock := TxLockNeuNum.Create(oMyDB);
        try
            Result := oNeuNumLock.Lock(Self.cDMS_TYP);
        except
            on  E: Exception do begin
                Result := False;
                MyException('TVorgang NeuNumLock',E);
                MyFreeAndNil(oNeuNumLock);
            end;
        end;
    end;
end;

NeuNumLockRelease

Definition:

procedure NeuNumLockRelease();

Erklärung:


Beispiel:

begin
    if (Assigned(oNeuNumLock)) then begin
        oNeuNumLock.Release();
        MyFreeAndNil(oNeuNumLock);
    end;
end;

VorgNeuNum

Definition:

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

Erklärung:


Beispiel:

begin
    if (Self.NeuNumLock()) then begin
        Self.cVorgNr := NeuNum_Vorgang(
            oMyDB,
            Self.cDMS_TYP,
            cFilter,
            Self.cFiliale,
            lAbweichend
        );
    end else begin
        Self.cVorgNr := '';
    end;

    Result := Self.cVorgNr;
end;

VorgNeuNumBool

Definition:

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

Erklärung:


Beispiel:

IstVorgNrGueltig

Definition:

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

Erklärung:


Beispiel:

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:


Beispiel:

IsPosBerechnung

Definition:

function  IsPosBerechnung(cPosArt: string): boolean;

Erklärung:


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: