OBS/Makros und Scripting/Allgemeines/Klassen/Vorgänge: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Nimz (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Nimz (Diskussion | Beiträge) |
||
Zeile 331: | Zeile 331: | ||
property cPosLaufend : string read ReadPosLfd write cPosLfd; | property cPosLaufend : string read ReadPosLfd write cPosLfd; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=Allgemeine Datentypen= | |||
==TVB_MaterMode== | |||
<syntaxhighlight lang="Delphi"> | |||
TVB_MaterMode = ( | |||
mmMD5=1, | |||
mmReadUID=2 | |||
); | |||
</syntaxhighlight> | |||
=Allgemeine Konstanten= | =Allgemeine Konstanten= | ||
<syntaxhighlight lang="Delphi"> | <syntaxhighlight lang="Delphi"> | ||
Zeile 343: | Zeile 352: | ||
POSTYP_PIC = '19'; //Bildposition | POSTYP_PIC = '19'; //Bildposition | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=Allgemeine Funktionen= | =Allgemeine Funktionen= | ||
<syntaxhighlight lang="Delphi"> | <syntaxhighlight lang="Delphi"> |
Version vom 15. April 2019, 10:27 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:
- Angebot
- Auftrag
- Reparaturauftrag
- Produktionsauftrag
- Lieferschein
- Rechnung
- Bestellung
- Einkaufslieferschein
- Einkauf
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 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
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;