OBS/Makros und Scripting/Allgemeines/Klassen/Vorgänge: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Böhrer (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Got nothing to say about me really.<br>Lovely to be a part of this community.<br>I just hope Im useful in some way here.<br><br>my blog - exhibition booth Mosc…“) |
Nimz (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „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 Vorga…“) |
||
Zeile 1: | Zeile 1: | ||
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. | |||
=Basis TVorgang= | |||
==Variablen== | |||
<syntaxhighlight lang="Delphi"> | |||
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; | |||
</syntaxhighlight> | |||
==Methoden== | |||
<syntaxhighlight lang="Delphi"> | |||
function IstAngebot(): boolean; | |||
function IstAuftrag(): boolean; | |||
function IstReparaturAuftrag(): boolean; | |||
function IstLieferschein(): boolean; | |||
function IstRechnung(): boolean; | |||
function NeuNumLock(): boolean; | |||
procedure NeuNumLockRelease(); | |||
function VorgNeuNum(cFilter: string=''; lAbweichend: boolean = false): string; | |||
function VorgNeuNumBool(cFilter: string=''; lAbweichend: boolean = false): boolean; | |||
function IstVorgNrGueltig(cUID: string=''): boolean; | |||
function NeuePositionBase(): TVorgangPos; | |||
procedure NeuePositionBaseMS(oOrgPos: TVorgangPos); | |||
procedure LoeschePositionBase(nDel: integer); | |||
procedure VerschiebePositionBase(nPos: integer; nZiel: integer); | |||
function CheckIfNotNull(): Boolean; | |||
function IsPosBerechnung(cPosArt: string): boolean; | |||
procedure CopyFrom(oSrc: TVorgang); | |||
procedure KalkAll(); | |||
procedure Check_Multisteuer(oOrgPos: TVorgangPos; const cTable: string; const cMUID: string; const cRefNr: string); | |||
function CopyPosmenge(cFromUID : string): string; | |||
function CopyPosverp(cFromUID : string): string; | |||
procedure FillPersonBase(qPers: TxFQuery); | |||
function SaveRecord(cUID : String = ''; lAlleSpeichern : Boolean = true): Boolean; virtual; abstract; | |||
function ReadVorgangBase(qQuery: TxFQuery; lPos: boolean=false): boolean; overload; | |||
function ReadVorgangBase(const cNr: string; lPos: boolean=false): boolean; overload; | |||
function JahrNr(): string; | |||
</syntaxhighlight> | |||
==Properties== | |||
<syntaxhighlight lang="Delphi"> | |||
property PnPosCnt : integer read nPosCnt write nPosCnt; | |||
property PaPositionen[Index: integer] : TVorgangPos read GetPosition write SetPosition; // Vorgangspositionen | |||
property PcRabGrPers : string read cRabGrPers; | |||
</syntaxhighlight> | |||
=Basis TVorgangPos= | |||
==Variablen== | |||
<syntaxhighlight lang="Delphi"> | |||
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 | |||
</syntaxhighlight> | |||
==Methoden== | |||
<syntaxhighlight lang="Delphi"> | |||
procedure PositionsVorbelegung(); | |||
procedure GenNewUid(); | |||
function CopyPosmenge(cFromUID : string): string; | |||
function CopyPosverp(cFromUID : string): string; | |||
procedure CopyFrom(oSrc: TVorgangPos; lFull: boolean=False); | |||
procedure QueryToPos( qTmp : TxFQuery); overload; | |||
procedure QueryToPos( qTmp : TxFQuery; | |||
const cFromTable : string; | |||
lVerpack : Boolean=False; | |||
lUmkehr : boolean=False); overload; | |||
procedure DBPosToPos(const cFromTable : string; | |||
const cSysUid : string; | |||
lVerpack : Boolean=False; | |||
lUmkehr : boolean=False); | |||
function GetLan_Artikel(cArtNr: String; cFeld: string; cDefault: string): string; | |||
procedure FillArtikel(cArtNr:String); | |||
function SetzeLieferant(const cLiefNr: string; lEKNeu: boolean=True; lDefaultEK1: boolean=False): boolean; | |||
function GetLan_Leist(cLeistNr: String; cFeld: string; cDefault: string): string; | |||
procedure FillLeistung(cLeistNr:String); | |||
procedure KalkPos(); | |||
procedure SetPosNr(cP: string; cT: string=''; cG: string=''; cFormat: string=''); overload; | |||
procedure SetPosNr(nP: integer; nT: integer=-1; nG: integer=-1; cFormat: string=''); overload; | |||
function PosLaufend(iPos: integer=0): string; | |||
procedure Preisfindung(cShopNr: string=CONST_NO_SHOP); | |||
</syntaxhighlight> | |||
==Properties== | |||
<syntaxhighlight lang="Delphi"> | |||
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; | |||
</syntaxhighlight> | |||
=Allgemeine Konstanten= | |||
<syntaxhighlight lang="Delphi"> | |||
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 | |||
</syntaxhighlight> | |||
=Allgemeine Funktionen= | |||
<syntaxhighlight lang="Delphi"> | |||
function IstVKVorgang(cMainTable: string): boolean; | |||
function IstVKVorgangPos(cPosTable: string): boolean; | |||
function CopyPosmengeDB(oMyDB: TxDB; cFromUID : string): string; | |||
function CopyPosverpDB(oMyDB: TxDB; cFromUID : string): string; | |||
function CopyRTFLan(oMyDB: TxDB; cVonTable: String; cVonRef: String; cNachTable: String; cNachRef: String): String; | |||
function PosNrFormatCheck(const cFormat: string): boolean; | |||
function PosNrFormatCounts(const cFormat: string; out nG: integer; out nT: integer; out nP: integer): boolean; | |||
function GetVorgangMandant(oMyDB: TxDB; const cTable: string; const cNr: string): string; | |||
</syntaxhighlight> |
Version vom 9. April 2019, 15:18 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.
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
function IstAngebot(): boolean;
function IstAuftrag(): boolean;
function IstReparaturAuftrag(): boolean;
function IstLieferschein(): boolean;
function IstRechnung(): boolean;
function NeuNumLock(): boolean;
procedure NeuNumLockRelease();
function VorgNeuNum(cFilter: string=''; lAbweichend: boolean = false): string;
function VorgNeuNumBool(cFilter: string=''; lAbweichend: boolean = false): boolean;
function IstVorgNrGueltig(cUID: string=''): boolean;
function NeuePositionBase(): TVorgangPos;
procedure NeuePositionBaseMS(oOrgPos: TVorgangPos);
procedure LoeschePositionBase(nDel: integer);
procedure VerschiebePositionBase(nPos: integer; nZiel: integer);
function CheckIfNotNull(): Boolean;
function IsPosBerechnung(cPosArt: string): boolean;
procedure CopyFrom(oSrc: TVorgang);
procedure KalkAll();
procedure Check_Multisteuer(oOrgPos: TVorgangPos; const cTable: string; const cMUID: string; const cRefNr: string);
function CopyPosmenge(cFromUID : string): string;
function CopyPosverp(cFromUID : string): string;
procedure FillPersonBase(qPers: TxFQuery);
function SaveRecord(cUID : String = ''; lAlleSpeichern : Boolean = true): Boolean; virtual; abstract;
function ReadVorgangBase(qQuery: TxFQuery; lPos: boolean=false): boolean; overload;
function ReadVorgangBase(const cNr: string; lPos: boolean=false): boolean; overload;
function JahrNr(): string;
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
procedure PositionsVorbelegung();
procedure GenNewUid();
function CopyPosmenge(cFromUID : string): string;
function CopyPosverp(cFromUID : string): string;
procedure CopyFrom(oSrc: TVorgangPos; lFull: boolean=False);
procedure QueryToPos( qTmp : TxFQuery); overload;
procedure QueryToPos( qTmp : TxFQuery;
const cFromTable : string;
lVerpack : Boolean=False;
lUmkehr : boolean=False); overload;
procedure DBPosToPos(const cFromTable : string;
const cSysUid : string;
lVerpack : Boolean=False;
lUmkehr : boolean=False);
function GetLan_Artikel(cArtNr: String; cFeld: string; cDefault: string): string;
procedure FillArtikel(cArtNr:String);
function SetzeLieferant(const cLiefNr: string; lEKNeu: boolean=True; lDefaultEK1: boolean=False): boolean;
function GetLan_Leist(cLeistNr: String; cFeld: string; cDefault: string): string;
procedure FillLeistung(cLeistNr:String);
procedure KalkPos();
procedure SetPosNr(cP: string; cT: string=''; cG: string=''; cFormat: string=''); overload;
procedure SetPosNr(nP: integer; nT: integer=-1; nG: integer=-1; cFormat: string=''); overload;
function PosLaufend(iPos: integer=0): string;
procedure Preisfindung(cShopNr: string=CONST_NO_SHOP);
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 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
function IstVKVorgang(cMainTable: string): boolean;
function IstVKVorgangPos(cPosTable: string): boolean;
function CopyPosmengeDB(oMyDB: TxDB; cFromUID : string): string;
function CopyPosverpDB(oMyDB: TxDB; cFromUID : string): string;
function CopyRTFLan(oMyDB: TxDB; cVonTable: String; cVonRef: String; cNachTable: String; cNachRef: String): String;
function PosNrFormatCheck(const cFormat: string): boolean;
function PosNrFormatCounts(const cFormat: string; out nG: integer; out nT: integer; out nP: integer): boolean;
function GetVorgangMandant(oMyDB: TxDB; const cTable: string; const cNr: string): string;