Skip to main content
Skip table of contents

TBeCbCodeblockCollector

TBeCbCodeblockCollector

Klasse zum Exportieren von Codeblöcken.

Diese Klasse ermöglicht es alle möglichen Codeblöcke, welche in be hinterlegt werden können, zu exportieren.

Eigenschaften:

Eigeschaften

Beschreibung
CbFilePath:CPfadangabe in dem Exportiert werden soll
CbDataBasePath:COrdner-Pfad der das DataDictionary enthält aus dem exportiert werden soll
CbDabPARPath:COrdner-Pfad für die DabPAR, sofern dieser vom Pfad des DataDictionary abweicht, kann
diese Eigenschaft leer bleiben
CbUsername:CUsername für den zugriff auf einen externen Datenbestand mit unterschiedlichen Log-in Daten
CbPassword:CPassword für den zugriff auf einen externen Datenbestand mit unterschiedlichen Log-in Daten

Funktionen und Methoden

Beschreibung
CbAddExportTypeFügt einen Bereich der exportiert werden soll hinzu
ParameterBeschreibung
aType:N

be-Codeblock-Bereich

0 (cctUndefined)
1 (cctPrintManager)
2 (cctCRMAction)
3 (cctIndividualMenu)
4 (cctBrowserDefinition)
5 (cctMaskDefinition)
6 (cctAttributeTable)
7 (cctShippingControl)
8 (cctDocLayout)
9 (cctTextModule)
10 (cctRights)
11 (cctMemoViews)
12 (cctParameter)
13 (cctCodeBlockProgram)
14 (cctScComm)
15 (cctColSize)
16(cctIndivDataTurnover)
17(cctReportGenerator)
18(cctIntrastatParameter)
19(cctInventoryFilter)
20(cctFilterList)
21(cctParameterFilter)
22(cctReleaseByDate)
23(cctFiBuParameter)
24(cctSqlSelection)
25(cctAgentArticleFilter)
26(cctSachkonto)
27(cctPaymentMethod)
28(cctOtherWinPosition)


Undefinierte Bereich
Druckerzuweisungen
CRM-Aktionen
Individual Menüs
Browser Definitionen
Masken Definitionen
Merkmalstabellen
Versandsteuerung
Beleg Layouts
Textbausteine
Tabellen- und Feldrechte
Memo Ansichten
Allgemeine- und Lokale Parameter
Codeblock Programme
Außendienst Parameter
Größen/Farb Raster
Kum.Stat. Indiv. Betrachtung
Reportgenerator
Intrastat Parameter
Inventur Filter
Filter Liste
Parameter Filter
Automatische Liefereinstellungen
FiBu Parameter
SQL-Selektionen
Vertreter Absatzplanung Artikelfilter
FiBu Sachkonten
FiBu Zahlungsarten
Sonstige WinPositionen

CbClearExportZu exportierenden Bereiche zurück setzen
CbExportCodeblockExportiert alle Codeblöcke der angegebenen Bereiche aus dem be des angegebenen Datadictionarys in den angegebenen CbFilePath

Verfügbare Ereignisse

Beschreibung
CbOnErrorEvent der beim auftreten eines Fehler ausgelöst wird
OptionenBeschreibung
aSender:OInformations-Objekt über den auf getretenen Fehler (TBeCollectorErrorItem)

Erklärungen zu den Teilbereichen

Druckerzuweisungen

Hauptordner (Druckerzuweisungen)
Codeblock (DabR30:EMailCB)

CRM-Aktionen

Hauptordner (CRM-Aktionen)
Unterordner (Dab075:NAME z.B.: TestAktion)
Codeblöcke:
Update-Block (Dab075:UPD_BLOCK)
Platzhalter (Dab075:FELDER)

Individual Menüs

Hauptordner (Individual-Menus)
Codeblöcke:
Codeblockinformationen (DabFIL:FELD wenn DabFIL:DATEI = 523)

Browser Definitionen

Hauptordner (Browserdefinitionen)
Codeblöcke:
Codeblockinformationen (DabBro:DATA)

Masken Definitionen

Hauptordner (Maskendefinitionen)
Codeblöcke:
Neue Masken (DabFRM:DATA)
Alte Masken (DabFRM:DATA_OLD)

Merkmalstabellen

Hauptordner (Merkmalstabellen)
Unterordner (DabMTA:BEZ z.B.: Artikeltypen)
Codeblöcke:
Default-Änderungsrecht (DabMTA:CHG_DEF)
User-Änderungsrecht (DabMTA:CHG_USR)
Anzeigewert-Funktion (DabMTA:DISPVALUE)
Default-Filter (DabMTA:FILT_DEF)
User-Filter (DabMTA:FILT_USR)
Default nach DS-Wechsel (DabMTA:DSREF_DEF)
User nach DS-Wechsel (DabMTA:DSREF_USR)
Dynamische Datenquelle (DabMTA:TAB_DEF)

Versandsteuerung

Hauptordner (Versandsteuerungen)
Unterordner (Versenderstamm = Dab760:NAME)
Unterordner (Versandarten = Dab765:VERSANDART)
Codeblöcke:
Kostenberechnung (Dab765:KOSTENCALC)
Gewichtsberechnung (Dab765:GEWICHTCAL)
Sendung Schließen (Dab765:SEND_SCHL)
Export Block (Dab765:INTERFINFO)

Beleg Layouts

Hauptordner (Beleg Layouts)
Unterordner (DabR10:BEZ z.B.: Sammelrechnung)
Codeblöcke:
Codeblockinformationen (DabR10:REPORT_ID)

Textbausteine

Hauptordner (Textbausteine)
Codeblöcke:
Codeblock Dab350:CODEBLOCK

Tabellen- und Feldrechte

Hauptordner (Tabellenrechte)
Unterordner (z.B.: '1 - Kunden-Stamm (DAB000)')
Unterordner (Tabellenrechte)
Codeblöcke:
Rechte Lesen
Rechte Ändern
Rechte Löschen
Rechte Neu
Rechte Validieren
Update Neu
Update Update
Update Löschen
Unterordner (Feldrechte)
Unterordner (Feldname z.B.: KdNr)
Codeblöcke_
User-Rechte
User-Rechte Lesen
User-Rechte Ändern
User-Rechte Validierung
User-Rechte Masken Validierung
User-Rechte Update
User-Rechte Neu
Default-Rechte
Default-Rechte Lesen
Default-Rechte Ändern
Default-Rechte Validierung
Default-Rechte Masken Validierung
Default-Rechte Update
Default-Rechte Neu
Picture Mask
Unterordner (Optionen)
Codeblöcke:
Index-Scope von
Index-Scope bis
Anzeigewert-Funktion
Rückgabewert- / Combo-Lookup-Felder-Funktion
Suchwert-Funktion

Memo Ansichten

Hauptordner (Memo Ansichten)
Codeblöcke:
Codeblockinformationen (DabSET)

Allgemeine- und Lokale Parameter

Hauptordner1 (Allgemeine Parameter)
Unterordner (DabPAR:USER z.B.: 0. Standort 1)
Unterordner1 (Abteilungen)
Unterordner (DabPAR:USER z.B.: "1. Verkauf" )
Unterordner1 (Lagerverwaltung)
Unterordner1 (Seite 1a)
Codeblöcke:
Formel Verfalls.Dat. automat. (DabPAR:VERF_AUTO)
Formel Serien/Chargen# Prüfung (DabPAR:SNUM_PRUEF)
Bei Umlagerung ein Lag.Kartei-Eintrag je Kommission erzeugen (DabPAR:UML_EINZEL)
Unterordner2 (Seite 2)
Codeblöcke:
Verd.Bedarf Ber.Formel 1 (DabPAR:VERD_BEDF1)
Verd.Bedarf Ber.Formel 2 (DabPAR:VERD_BEDF2)
Verd.Bedarf Ber.Formel 3 (DabPAR:VERD_BEDF3)
Verd.Bedarf Ber.Formel 4 (DabPAR:VERD_BEDF4)
Verd.Bedarf Ber.Formel 5 (DabPAR:VERD_BEDF5)
Unterordner2 (Kunde-Vertrieb)
Unterordner1 (Seite 2)
Codeblöcke:
Formel Rabatt-Sperre (DabPAR:RAB_SPERR)
Formel Auftrags-Sperre (DabPAR:AUF_SPERR)
Formel Liefer-Sperre (DabPAR:LIEF_SPERR)
Differenz-Code (DabPAR:DIFF_CODE)
Anz.Tage Prioriberechn. (DabPAR:PRIOR_TAGE)
Anz. Tage Prod.Reserv. berücks. (DabPAR:RUEPR_TAGE)
Unterordner2 (Absatzplanung)
Codeblöcke:
Formel: Anzahl Wochen, Verrechnung in die Vergangenheit (DabPAR:FC_VERRUE)
Formel: Anzahl Wochen, Verrechnung in der Zukunft (DabPAR:FC_VERVOR)
Formel: Absatzplanung wirksam ab Woche (DabPAR:FC_PLANAB)
Unterordner3 (Einkauf-Wareneingang)
Codeblöcke:
Prüfformel WE-Lager/Lieferant (DabPAR:LAG_WEFORM)
Horizont in Tagen für Bestellung Verfügbarkeit=sofort (DabPAR:EKPLHORZSO)
Vorplanzeit +1 Woche für -2 Artikel Einkauf (DabPAR:EKVPZMIN2)
Unterordner4 (Fertigung)
Unterordner1 (Seite 1)
Codeblöcke:
Formel Verfalls.Dat. Fertigung (DabPAR:VERF_PROD)
Unterordner2 = (Planungsparameter)
Codeblöcke: Horizont in Tagen für Prod.Auftr. Verfügbarkeit=sofort = (DabPAR:PRPLHORZSO)
Vorplanzeit +1 Woche für -2 Artikel Fertigung = (DabPAR:PRVPZMIN2)
Unterordner5 (Kommunikation)
Unterordner1 (Datensicherung)
Codeblöcke:
"Sicherung wenn zutreffend (Codeblock-Ereignis = True)" (DabPAR:SIFUNK)
Unterordner2 (Finanzbuchhaltung)
Codeblöcke:
Erlöskonto-Formel -> FiBu = (DabPAR:ERLKTO)
Kostenstellen-Formel Auftrag = (DabPAR:AUFPKST_F)
Kostenstellen-Formel Rechnung = (DabPAR:ERLKST)
WE-Kostenst.Formel Re.Kontroll = (DabPAR:WE_KST)
WE-Konto Formel Rechn.Kontroll = (DabPAR:WE_KTO)
Unterordner2 (Codeblöcke)
(Selben Unterordner wie die Abteilungen)
Hauptordner2 (Lokale Parameter)
Unterordner (DabFIL:NAME wenn DabFIL:DATEI = 999 z.B.: Global-Passwort-User (Nr.000))
Unterordner1 (Lager-Kunden)
Codeblöcke:
Artikel-Filter Schnellsuche (DabPAL:M_ARTFILT)
Anzeige-Funktion Stücklisten-Bezeichnung (DabPAL:M_STLTEXT)
Unterordner2 =(Auftragsbearbeitung)
Unterordner1 (Seite 1)
Codeblöcke:
Pos.Filter für Entn.Sch.-Druck (DabPAL:M_ENTFILT)
Pos.Filter für Lfs-Druck (DabPAL:M_LFSFILT)
Unterordner2 (Seite 2)
Codeblöcke:
Formel "Set-Stückliste ändern" (DabPAL:M_SETAEND)
Unterordner3 (Fertigung-BDE)
Codeblöcke:
BDE Formel: %Mengen-Überbuchen (DabPAL:M_BDEMPROZ)
Unterordner4 (Wareneingang-Quali)
Codeblöcke:
Formel: Menge/VE, VE berechnen (DabPAL:M_QSMENGVE)
Bedingung für autom. Buchung (DabPAL:M_QSWEBFOR)
WE Formel: Anz. Art.Etiketten (DabPAL:M_QSARTETI)
Formel: WePosNr wird Chargen# (DabPAL:M_QSWEKOMM)

Codeblock Programme

Hauptordner (Codeblock Programme)
Codeblöcke:
Codeblock(DabPRG:PROGRAMM)

Außendienst Parameter

Hauptordner (Außendienst Parameter)
Unterordner (DabFIA:NAME z.B.: "Benutzer 2 - Außendienst (66)")
Codeblöcke:
Codeblockinformationen (DabFIA.FILTER_IND)

Größen/Farb Raster

Hauptordner = Größen- und Farbraster
Codeblöcke:
Codeblockinformationen (WinPosition ID = 'COLSIGR')
Zellen-Block
Art.Bez.-Block
Info-Block

Kum.Stat. Indiv. Betrachtung

Hauptordner (Individuelle Codeblöcke für Umsätze)
Unterordner (DabITO:BEZ)
Codeblöcke:
Anzeige-Filter (DabITO:DISPBLOCK)
Anzeigewert-Funktion (DabITO:RUNBLOCK)
Prüf-Funktion 1 - 20 (DabITO:PFUNC0 - DabITO:PFUNC19)

Reportgenerator

Hauptordner (Reportgenerator)
Unterordner1 (Selektion)
Codeblöcke
Kopfzeile 1 (Dab420:HEADL)
Kopfzeile 2 (Dab420:HEADL1)
Select P (Dab420:SELEKT)
Select S (Dab420:SELEKT1)
Obergrenze (Dab420:SCOPETOP)
Untergrenze (Dab420:SCOPEBOT)
Unterordner1 (Sotierschlüssel)
Codeblöcke:
Sortierschlüssel 1 - 5 (Dab420:TKOPF1 - Dab420:TKOPF5)
Unterordner2 (Drucktext)
Codeblöcke
Drucktext 1 - 5 (Dab420:UK1 - Dab420:UK5)
Unterordner2 (Parameter)
Codeblöcke:
Prüf-Funktion 1 - 20 (Dab420:PF0 - Dab420:PF19)

Intrastat Parameter

Hauptordner (Reportgenerator)
Codeblöcke:
Einfuhr (individuell) (Dia030:BLOCK_E)
Ausfuhr (individuell) (Dia030:BLOCK_V)

Inventur Filter

Hauptordner (Inventur Filter)
Unterordner (DabPAR:USER z.B.: Standort 1)
Codeblöcke:
Codeblockinformationen (WinPosition ID = 'INV_' + DabPAR:Standort z.B.: 'INV_001')
Ausschluß - Bedingung

Filter Liste

Hauptordner (Filter Listen)
Codeblöcke:
Codeblockinformationen (DabFIL:WIN_DATA wenn DabFIL:DATEI = 529)
Unterordner1 = "Lagerverwaltung" (DabFIL:FELD = IDFEART)
Unterordner2 = "Kundenverwaltung" (DabFIL:FELD = IDFBECU oder IDFECLT)
Unterordner3 = "Auftragsbearbeitung Kunde" (DabFIL:FELD = IDFMPRO)
Unterordner4 = "Auftragsbearbeitung Lieferanten" (DabFIL:FELD = IDFSPRO)
Unterordner5 = "Basis Lieferantenverwaltung" (DabFIL:FELD = IDFBESP)

Parameter Filter

Hauptordner (Parameter Filter)
Unterordner (DabFIL:NAME wenn DabFIL:DATEI = 999 z.B.: Global-Passwort-User (Nr.000))
Unterordner (Abteilung 0 - 9)
Codeblöcke:
Codeblockinformationen (DabFIL:WIN_DATA)

Automatische Liefereinstellungen

Hauptordner (Automatische Liefereinstellungen)
Codeblöcke:
Codeblockinformationen (WinPosition)
Unterordner1 (Kunde)
Automatische Lieferfreigabe (ID = AUTOOR2)
Zusatzauswahl Kopf
Zusatzauswahl Position
Automatische Lieferreservierung (ID = AUTOOR4)
Zusatzauswahl Kopf
Zusatzauswahl Position
Unterordner2 (Zulieferer)
Automatische Lieferfreigabe (ID = AUTOOR1)
Zusatzauswahl Kopf
Zusatzauswahl Position
Automatische Lieferreservierung (ID = AUTOOR3)
Zusatzauswahl Kopf
Zusatzauswahl Position

FiBu Parameter

Hauptordner (FiBu Parameter)
Unterordner (DfPAR:FIRMA)
Codeblöcke:
Ford-Formel (DfPAR:FKFORMEL)
Verb-Formel (DfPAR:VKFORMEL)

SQL-Selektionen

Hauptordner (SQL-Selektion)
Unterordner (DabFIL:NAME wenn DabFIL:DATEI = 526)
Codeblöcke:
SQL-Selektion (DabFIL:WIN_DATA)

Vertrerer Absatzplanung Artikelfilter

Hauptordner (Vertreterverwaltung)
Unterordner (Dab062:NAME1)
Codeblöcke:
Absatzplanung Artikelfilter (Dab062:FORE_FILT)

FiBu Sachkonten

Hauptordner (Sachkonten)
Unterordner (DfPAR:FIRMA)
Unterordner (Df010:TEXT)
Codeblöcke:
Buchungstext-Funkt. Bankauszg. (Df010:BAD_BUTEXT)
Belegnr.-Funktion Bankauszug (Df010:BAD_BELNR)

FiBu Zahlungsarten

Hauptordner (Zahlungsarten)
Unterordner (DfPAR:FIRMA)
Unterordner (DfZAA:NAME)
Codeblöcke: OP-Filter (DfZAA:OPFILTER)
Konto-Filter (DfZAA:KTOFILTER)

Sonstige WinPositionen

Hauptordner (Sonstige WinPositionen)
Unterordner (Preisänderung)
Codeblöcke:
Codeblockinformationen (WinPosition ID = 'GP_CHAN')
Zusatzselektion für Artikel

Beispiel


CODE
//##############################################################################
//##############################################################################
// CodeblockCollector
// Beschreibung: Programm zum Exportieren von allen in be verfügbaren
//               Codeblöcken
//##############################################################################
//##############################################################################

|
   oForm, oBtnAbort, oBtnChangePath, oBtnDabPARPath, oBtnDDPath, oBtnExport,
   oBtnSelectAll, oBtnDeselectAll, oCkBoxAttrTable, oCkBoxAttrDefault,
   oCkBoxAttrUser, oCkBoxCodeblockProgram, oCkBoxColSize, oCkBoxCRMAction,
   oCkBoxDocLayout, oCkBoxIndividualMenu, oCkBoxMaskDef, oCkBoxMemoView,
   oCkBoxParameter, oCkBoxPrintManager, oCkBoxDefaultRights, oCkBoxUserRights,
   oCkBoxScComm, oCkBoxClearPath, oCkBoxRights, oEdtBrowserDef,
   oCkBoxShippingControl, oCkBoxTextModule, oCkBoxIndiDatTurn, oCkBoxRepGen,
   oCkBoxIntrastatParam, oCkBoxInvFilter, oCkBoxFilterList, oCkBoxOtherWinPos,
   oCkBoxParamFilter, oCkBoxReleaseByDate, oCkBoxFiBuParam, oCkBoxSqlSelect,
   oCkBoxAgentArtFilter, oCkBoxSachkonten, oCkPaymentMethod, oEdtDabPARPath,
   oEdtDataBasePath, oEdtExportPath, oGrpBoxDataBase, oGrpBoxExportPath,
   oGrpBoxMainControl, oGrpBoxRegExpr, oLblDataBasePath, oLblDabPARPath,
   oPanelBottom, oPanelDDBtnPath, oPanelDDEdtPath, oPanelLeftSide, oPanelOptions,
   oPanelPathOptions, oPanelBrowserDef, oPanelRightSide, oPanelRights,
   oPanelAttr, oCkBoxBrowserDef, oCkBoxBrowserDefDefault, oCkBoxArr,
   oComboCkBoxBrowserDef, oPanelMainOptions, lCheckBoxClicked,
   oEdtPathIncludeRegEx, oEdtPathExcludeRegEx, oEdtCodeIncludeRegEx,
   oEdtCodeExcludeRegEx, oPanelPathIncludeRegEx, oPanelPathExcludeRegEx,
   oPanelCodeIncludeRegEx, oPanelCodeExcludeRegEx, oLblPathIncludeRegEx,
   oLblPathExcludeRegEx, oLblCodeIncludeRegEx, oLblCodeExcludeRegEx,
   cErrorLog, oPanelExportPath, lShowInstantErrorMessage
|

// Diesen Wert auf True setzen um Fehler während der Laufzeit in der Console angezeigt zu bekommen
// ACHTUNG! dies kann ser performancelastig sein
lShowInstantErrorMessage := False,

//******************************************************************************
// Setzt den Pfad auf die selbe Ordnerstruktur wie die ausgewählte Datei
//******************************************************************************
function oBtnChangePathClick( Sender )
| oDlgFolderPath, cPath |
   Result := '',

   if Sender = oBtnDDPath or Sender = oBtnDabPARPath then
      oDlgFolderPath := OpenDlg('Export Pfad', 'DD/DabPAR|*.ADD; DABPAR.ADT', oEdtDataBasePath.Text,'a'),
   else
      oDlgFolderPath := OpenDlg('Export Pfad', 'DD/DabPAR|*.ADD; DABPAR.ADT', oEdtExportPath.Text,'a'),
   endif,

   StartSeq
      oDlgFolderPath.Active := true,
      if oDlgFolderPath.Selected then
         cPath := SubStr(oDlgFolderPath.FileName, 0, RAt('\', oDlgFolderPath.FileName)),

         if Sender = oBtnChangePath then
            oEdtExportPath.Text := cPath,
         endif,

         if Sender = oBtnDDPath then
            oEdtDataBasePath.Text := cPath,
            if oEdtDataBasePath.Text <> mbedefault then
               oComboCkBoxBrowserDef.Visible := False,
               oEdtBrowserDef.Visible        := True,
               oEdtBrowserDef.Align          := alBottom,
               oEdtBrowserDef.Align          := alTop,
            else
               oComboCkBoxBrowserDef.Visible := True,
               oEdtBrowserDef.Visible        := False,
            endif,
         endif,

         if Sender = oBtnDabPARPath then
            oEdtDabPARPath.Text := cPath,
         endif,
      endif,
   Always
      DestroyObject(oDlgFolderPath),
   StopSeq,
end,

//******************************************************************************
// Gibt anhand des Collector-Typen den Berreich in be den er represäntiert zurück
//******************************************************************************
function BeSectionFromCollectorType(nExportType)
   Result := '',
   case nExportType
      of 0 ::  Result := 'Unbekannt',
      of 1 ::  Result := 'Druckzuweisungen',
      of 2 ::  Result := 'CRM-Aktionen',
      of 3 ::  Result := 'Individual Menüs',
      of 4 ::  Result := 'Browser Definitionen',
      of 5 ::  Result := 'Masken Definitionen',
      of 6 ::  Result := 'Merkmalstabellen',
      of 7 ::  Result := 'Versand Steuerungen',
      of 8 ::  Result := 'Beleg Layouts',
      of 9 ::  Result := 'Text Bausteine',
      of 10 :: Result := 'Tabellen- und Feld Rechte',
      of 11 :: Result := 'Memo Ansichten',
      of 12 :: Result := 'Allgemeine- und Lokale Parameter',
      of 13 :: Result := 'Codeblock Programme',
      of 14 :: Result := 'Außendienst Parameter',
      of 15 :: Result := 'Größen und Farb Raster',
      of 16 :: Result := 'Kum.Stat. Indiv.Betrachtungen',
      of 17 :: Result := 'Reportgenerator',
      of 18 :: Result := 'Intrastat Parameter',
      of 19 :: Result := 'Inventur Filter',
      of 20 :: Result := 'Filter Liste',
      of 21 :: Result := 'Parameter Filter',
      of 22 :: Result := 'Automatische Liefereinstellungen',
      of 23 :: Result := 'FiBu Parameter',
      of 24 :: Result := 'SQL-Selektion',
      of 25 :: Result := 'Vertreterverwaltung Absatzplanung Artikelfilter',
      of 26 :: Result := 'FiBu Sachkonten',
      of 27 :: Result := 'FiBuZahlungsarten',
      of 28 :: Result := 'Sonstige WinPositionen',
   endcase,
end,

//******************************************************************************
// Gibt die Export art zurück die eine Checkbox represäntiert
//******************************************************************************
function CheckBoxToExportType(oCkBox)
   Result := 0,
   case oCkBox
      of oCkBoxPrintManager     :: Result := 1,   // Druckzuweisungen
      of oCkBoxCRMAction        :: Result := 2,   // CRM-Aktionen
      of oCkBoxIndividualMenu   :: Result := 3,   // Individual Menüs
//      of oCkBoxBrowserDef       :: Result := 4,   // Browser Definitionen
      of oCkBoxMaskDef          :: Result := 5,   // Masken Definitionen
//      of oCkBoxAttrTable        :: Result := 6,   // Merkmalstabellen
      of oCkBoxShippingControl  :: Result := 7,   // Versand Steuerungen
      of oCkBoxDocLayout        :: Result := 8,   // Beleg Layouts
      of oCkBoxTextModule       :: Result := 9,   // Text Bausteine
//      of oCkBoxDefaultRights    :: Result := 10,  // Tabellen- und Feld Rechte
      of oCkBoxMemoView         :: Result := 11,  // Memo Ansichten
      of oCkBoxParameter        :: Result := 12,  // Allgemeine- und Lokale Parameter
      of oCkBoxCodeblockProgram :: Result := 13,  // Codeblock Programme
      of oCkBoxScComm           :: Result := 14,  // Außendienst Parameter
      of oCkBoxColSize          :: Result := 15,  // Größen und Farb Raster
      of oCkBoxIndiDatTurn      :: Result := 16,  // Kum.Stat. Indiv.Betrachtungen
      of oCkBoxRepGen           :: Result := 17,  // Reportgenerator
      of oCkBoxIntrastatParam   :: Result := 18,  // Intrastat Parameter
      of oCkBoxInvFilter        :: Result := 19,  // Inventur Filter
      of oCkBoxFilterList       :: Result := 20,  // Filter Liste
      of oCkBoxParamFilter      :: Result := 21,  // Parameter Filter
      of oCkBoxReleaseByDate    :: Result := 22,  // Automatische Liefereinstellungen
      of oCkBoxFiBuParam        :: Result := 23,  // FiBu Parameter
      of oCkBoxSqlSelect        :: Result := 24,  // SQL-Selektion
      of oCkBoxAgentArtFilter   :: Result := 25,  // Vertreterverwaltung Absatzplanung Artikelfilter
      of oCkBoxSachkonten       :: Result := 26,  // FiBu Sachkonten
      of oCkPaymentMethod       :: Result := 27,  // FiBuZahlungsarten
      of oCkBoxOtherWinPos      :: Result := 28,  // Sonstige WinPositionen
   endcase,
end,

//******************************************************************************
// Löscht alle Leeren Unterordner des übergebenen Pfades
//******************************************************************************
function myRemoveDir(cDir)
|aDirArray, i|

   if right(alltrim(cDir),1) <> '\' then
       cDir += '\',
   endif,

   aDirArray := DirArray(cDir),
   // Rekrusiver aufruf für jeden gefundenen Unterordner
   for i:=3 to alen(aDirArray) do
      myRemoveDir(cDir + aDirArray[i, 1]),
      RemoveDir(cDir + aDirArray[i, 1]),
   next,
end,

//******************************************************************************
// Fehlerbehandlung für den CodeblockCollectors
//******************************************************************************
function DoError(Sender)
| cErrorText |
   // Fehlernachricht erstellen
   Sender.CbRaiseError := False, // Fehler ignorieren, da ein Log geschriebenwird
   cErrorText          := 'ErrorType:     ' + Str(Sender.CbErrorType) + ' (' + BeSectionFromCollectorType(Sender.CbErrorType) + ')' + crlf,
   cErrorText          += 'InternalError: ' + iif(Sender.CbIsInternalError, 'True', 'False') + crlf,
   cErrorText          += 'ErrorMessage:  ' + crlf + Sender.CbErrorMessage + crlf,
   cErrorText          += '---------------------------------------------------' + crlf,
   // Sofortnachricht in der Cb-Console ausgeben
   if lShowInstantErrorMessage then
      WriteLn(cErrorText),
   endif,
   ProcessMsg(),
   // ErrorLog Schreiben
   cErrorLog += cErrorText,
end,

//******************************************************************************
// Die Funktion legt ein .vscode Settings-File an, damit man den Export-Ordner
//   in vscode öffnen kann und dort per Reguläre Ausdrücke suchen.
//
// - Die Definition des Encodings ist notwendig, da sonst vscode "utf-8" nutzt
//   und die vscode Volltext-Suche falsche Treffer liefert
//******************************************************************************
function CreateVsCodeSettings(cPath)
| cFileName, oFile, cContent |

  cPath     := cPath + '\.vscode\',
  cFileName := 'settings.json',
  cContent  :=
   '{'                                    + crlf +
   '    "files.encoding": "windows1252"'  + crlf +
   '}',

  // Verzeichnis anlegen
  ForceDirectories(cPath),

  // Erstellen
  oFile := FOpen(cPath + cFileName, _or(FO_CREATE, FO_EXCLUSIVE)),
  startseq
     FWrite(oFile, cContent),
  always
     FClose(oFile),
  stopseq,
end,

//******************************************************************************
// Führt die Exportierung für alle ausgewählten Checkboxen aus
//******************************************************************************
function oBtnExportClick( Sender )
| oExporter, i, oElement, aDir, aDirArr, nHandle, cFile, oFile |
   Result := '',
   SetCursor(crHourGlass),

   // Prüfung, ob das Directory beschreibbar ist
   if not DirectoryExists(oEdtExportPath.Text) then
      if not CreateDir(oEdtExportPath.Text) then
         messagedlg('Verzeichnis ' + oEdtExportPath.Text + ' konnte nicht erstellt werden', mtError),
         ModalResult(oForm, mrCancel),
      endif,
   else
      cFile := oEdtExportPath.Text +'juhu.txt',
      startseq
         oFile := fOpen(cFile, fo_Create),
         fClose(oFile),
         DeleteFile(cFile),
      onerror
         GU_ShowStdErrorMessage('Fehler beim Erzeugen einer Testdatei', GetErrorObj()),
         ModalResult(oForm, mrCancel),
      stopseq,
   endif,

   // Für die spätere Analyse der exportierten Daten eine Settings-Datei für vscode anlegen
   CreateVsCodeSettings(oEdtExportPath.Text),

   oExporter := CreateObject('TBeCbCodeblockCollector'),

   AssignEvent(oExporter, 'CbOnError', 'DoError'),
   StartSeq
      oExporter.CbFilePath := oEdtExportPath.Text,
      // Alle selektierten Codeblöcke durchlaufen
      foreach oElement in oCkBoxArr do
         if oElement.Checked then
            oExporter.CbAddExportType(CheckBoxToExportType(oElement)),
         endif,
      next,

      // Browserdefinitionen mit Optionen hinzufügen
      if oCkBoxBrowserDef.Checked then
         if oComboCkBoxBrowserDef.Visible then
            oExporter.CbAddExportTypeWithOptions(4, {oCkBoxBrowserDefDefault.Checked, oComboCkBoxBrowserDef.Text}),
         else
            oExporter.CbAddExportTypeWithOptions(4, {oCkBoxBrowserDefDefault.Checked, oEdtBrowserDef.Text}),
         endif,
      endif,

      // Tabellen- und Feldrechte mit Optionen hinzufügen
      if oCkBoxRights.Checked then
         oExporter.CbAddExportTypeWithOptions(10, {oCkBoxDefaultRights.Checked, oCkBoxUserRights.Checked}),
      endif,

      // Merkmalstabellen mit Optionen hinzufügen
      if oCkBoxAttrTable.Checked then
         oExporter.CbAddExportTypeWithOptions(6, {oCkBoxAttrDefault.Checked, oCkBoxAttrUser.Checked}),
      endif,

      if oCkBoxClearPath.Checked then
         StartSeq
            // löscht alle .DWP (Codeblock) dateien im angegebenen Pfad und in den Unterordnern
            aDir := PathSeek({'*.DWP'}, oEdtExportPath.Text),
            aDirArr := DirArray(oEdtExportPath.Text),
            for i := 1 to aLen(aDir) do
               DeleteFile(aDir[i]),
            next,
            myRemoveDir(oEdtExportPath.Text),
            RemoveDir(oEdtExportPath.Text),
         OnError
            // Fängt den Fehler ab der ensteht wenn der Ordner nicht existiert
         StopSeq
      endif,
      // Übergabe des DD- und des DabPar Pfades
      oExporter.CbDataBasePath := oEdtDataBasePath.Text,
      oExporter.CbDabPARPath   := oEdtDabPARPath.Text,

      // Übergabe der verschiedenen Regulären Ausdrücke
      oExporter.CbPathIncludeRegEx := oEdtPathIncludeRegEx.Text,
      oExporter.CbPathExcludeRegEx := oEdtPathExcludeRegEx.Text,
      oExporter.CbCodeIncludeRegEx := oEdtCodeIncludeRegEx.Text,
      oExporter.CbCodeExcludeRegEx := oEdtCodeExcludeRegEx.Text,

      // ProgressBar aktivieren
      oExporter.CbShowProgressBar := True,

      // Export der Codeblöcke
      WriteLn(now()),
      oExporter.CbExportCodeblock(),
   Always
      DestroyObject(oExporter),
      SetCursor(crDefault),

      WriteLn(now()),
      WriteLn('----------'),
      // Falls vorhanden den ErrorLog anzeigen
      if cErrorLog <> '' then
         ShowErrorLog('TBeCbCodeblockCollector', cErrorLog),
         cErrorLog := '',
      else
         ShowMessage('Export ohne Fehler abgeschlossen'),
      endif,
   StopSeq,
end,

//******************************************************************************
// Schliest das Programm
//******************************************************************************
function oBtnCancelClick(Sender)
   Result := '',
   ModalResult(oForm, mrCancel),
end,

//******************************************************************************
// Steuert die jeweiligen CheckBox Click Events
//******************************************************************************
function DoCheckBoxClicked(Sender)
| oElement |
   if not lCheckBoxClicked then
      lCheckBoxClicked := True,

      //************************************************************************
      // Hauptcheckbox der Merkmalstabellen steuert die Checkboxen für Optionen
      if Sender = oCkBoxAttrTable then
         oCkBoxAttrDefault.Enabled := oCkBoxAttrTable.Checked,
         oCkBoxAttrUser.Enabled    := oCkBoxAttrTable.Checked,
      endif,

      //************************************************************************
      // Hauptcheckbox der Tabellenrechte steuert die Checkboxen für Optionen
      if Sender = oCkBoxRights then
         oCkBoxDefaultRights.Enabled := oCkBoxRights.Checked,
         oCkBoxUserRights.Enabled    := oCkBoxRights.Checked,
      endif,

      //************************************************************************
      // Hauptcheckbox der Browserdefinitionen
      if Sender = oCkBoxBrowserDef then
         oComboCkBoxBrowserDef.Enabled   := oCkBoxBrowserDef.Checked,
         oEdtBrowserDef.Enabled          := oCkBoxBrowserDef.Checked,
         oCkBoxBrowserDefDefault.Enabled := oCkBoxBrowserDef.Checked,
      endif,

      lCheckBoxClicked := False,
   endif,
end,

//******************************************************************************
// Steuert die Selektions-Buttons
//******************************************************************************
function DoSelektionButtonClicked(Sender)
| lChecked, oElement |
   // Wenn oBtnSelectAll gerdückt wird, alle selektieren sonst alle deselektieren
   lChecked := Sender = oBtnSelectAll,

   // CheckBoxClicked Flag setzen um keine event-sprünge zu verursachen
   lCheckBoxClicked := True,

   // Alle selektierten Codeblöcke durchlaufen
   foreach oElement in oCkBoxArr do
      oElement.Checked := lChecked,
   next,

   oCkBoxAttrDefault.Enabled := oCkBoxAttrTable.Checked,
   oCkBoxAttrUser.Enabled    := oCkBoxAttrTable.Checked,

   oCkBoxDefaultRights.Enabled := oCkBoxRights.Checked,
   oCkBoxUserRights.Enabled    := oCkBoxRights.Checked,

   oComboCkBoxBrowserDef.Enabled   := oCkBoxBrowserDef.Checked,
   oEdtBrowserDef.Enabled          := oCkBoxBrowserDef.Checked,
   oCkBoxBrowserDefDefault.Enabled := oCkBoxBrowserDef.Checked,


   lCheckBoxClicked := False,

   // Setzt den Filter für Browserdefinitionen auf Alle User
   oEdtBrowserDef.Text := IIf(lChecked, '0', ''),
   IIf(lChecked, oComboCkBoxBrowserDef.CBCheckAllItems, oComboCkBoxBrowserDef.CBUnCheckAllItems),
end,

//******************************************************************************
// Setzt die Margins des Übergebenen Objects auf die Übergebenen werte
//******************************************************************************
function SetAlignMargins(oComponent, nAlignTyp, nBottom, nLeft, nRight, nTop)
   oComponent.Align            := nAlignTyp,
   oComponent.AlignWithMargins := true,
   oComponent.Margins.Bottom   := nBottom,
   oComponent.Margins.Left     := nLeft,
   oComponent.Margins.Right    := nRight,
   oComponent.Margins.Top      := nTop,
end,

//******************************************************************************
// Erstellt eine Checkbox der Codeblock Arten
//******************************************************************************
function MyCreateObject(cClass, cName, cCaption, oParent, nTabOrder, nAlignType, nBottom, nLeft, nRight, nTop)
   Result          := nil,
   Result          := CreateObject(cClass, cName, oForm, oParent),
   Result.Caption  := cCaption,
   Result.TabOrder := nTabOrder,
   SetAlignMargins(Result, nAlignType, nBottom, nLeft, nRight, nTop),
end,

//******************************************************************************
// Setzt die Margins des Übergebenen Objects auf die Übergebenen werte
//******************************************************************************
function CreateForm()
   // Formular
   oForm           := CreateObject('TFormEx', 'FormtCodeblockExport'),
   oForm.OrigCapt  := 'codeblock-collector',
   oForm.Font.Name := 'Segoe UI',
   oForm.Font.Size := 10,
   oForm.Height    := 640,
   oForm.Width     := 900,
   oForm.Position  := poScreenCenter,

   // Haupt-Panel zum halten aller Grundeinstellungen für den Export
   oPanelMainOptions            := MyCreateObject('TPanel', 'PanelMainOptions', '', oForm, 0, alClient, 0, 0, 0, 0),
   oPanelMainOptions.BevelOuter := bvNone,

   //***************************************************************************
   // GroupBox Export Pfad
   oGrpBoxExportPath        := MyCreateObject('TGroupBox', 'GrpBoxExportPath', 'Pfad für den Export', oPanelMainOptions, 0, alClient, 3, 3, 3, 3),
   oGrpBoxExportPath.Height := 187,

   // Panel für die Pfadoptionen
   oPanelPathOptions            := MyCreateObject('TPanel', 'PanelPathOptions', '', oGrpBoxExportPath, 1, alClient, 3, 3, 3, 0),
   oPanelPathOptions.Height     := 151,
   oPanelPathOptions.BevelOuter := bvNone,

   //***************************************************************************
   // GroupBox Reguläre ausdrücke
   oGrpBoxRegExpr        := MyCreateObject('TGroupBox', 'GrpBoxRegExpr', 'Reguläre Ausdrücke', oPanelPathOptions, 0, alClient, 3, 3, 3, 10),

   //***************************************************************************
   // Panel für den RegEx der Im Code nicht vorkommen darf
   oPanelCodeExcludeRegEx            := MyCreateObject('TPanel', 'PanelCodeExcludeRegEx', '', oGrpBoxRegExpr., 4, alTop, 3, 3, 3, 0),
   oPanelCodeExcludeRegEx.Height     := 70,
   oPanelCodeExcludeRegEx.BevelOuter := bvNone,
   // Label für den RegEx der Im Code nicht vorkommen darf
   oLblCodeExcludeRegEx              := CreateObject('TLabel', 'LblCodeExcludeRegEx', oForm, oPanelCodeExcludeRegEx),
   oLblCodeExcludeRegEx.Caption      := 'Ausdruck der im Code nicht vorkommen darf:',
   SetAlignMargins(oLblCodeExcludeRegEx, alTop, 0, 3, 3, 3),
   // Edit für den RegEx der Im Code nicht vorkommen darf
   oEdtCodeExcludeRegEx              := CreateObject('TBeEdit', 'EdtCodeExcludeRegEx', oForm, oPanelCodeExcludeRegEx),
   oEdtCodeExcludeRegEx.Text         := '',
   oEdtCodeExcludeRegEx.WordWrap     := True,
   SetAlignMargins(oEdtCodeExcludeRegEx, alClient, 0, 0, 0, 0),
   //***************************************************************************
   // Panel für den RegEx der Im Code vorkommen muss
   oPanelCodeIncludeRegEx            := MyCreateObject('TPanel', 'PanelCodeIncludeRegEx', '', oGrpBoxRegExpr., 3, alTop, 3, 3, 3, 0),
   oPanelCodeIncludeRegEx.Height     := 70,
   oPanelCodeIncludeRegEx.BevelOuter := bvNone,
   // Label für den RegEx der Im Code vorkommen muss
   oLblCodeIncludeRegEx              := CreateObject('TLabel', 'LblCodeIncludeRegEx', oForm, oPanelCodeIncludeRegEx),
   oLblCodeIncludeRegEx.Caption      := 'Ausdruck der im Code vorkommen muss:',
   SetAlignMargins(oLblCodeIncludeRegEx, alTop, 0, 3, 3, 3),
   // Edit für den RegEx der Im Code vorkommen muss
   oEdtCodeIncludeRegEx              := CreateObject('TBeEdit', 'EdtCodeIncludeRegEx', oForm, oPanelCodeIncludeRegEx),
   oEdtCodeIncludeRegEx.Text         := '',
   oEdtCodeIncludeRegEx.WordWrap     := True,
   SetAlignMargins(oEdtCodeIncludeRegEx, alClient, 0, 0, 0, 0),
   //***************************************************************************
   // Panel für den RegEx der Im Pfad nicht vorkommen darf
   oPanelPathExcludeRegEx            := MyCreateObject('TPanel', 'PanelPathExcludeRegEx', '', oGrpBoxRegExpr., 2, alTop, 3, 3, 3, 0),
   oPanelPathExcludeRegEx.Height     := 70,
   oPanelPathExcludeRegEx.BevelOuter := bvNone,
   // Label für den RegEx der Im Pfad nicht vorkommen darf
   oLblPathExcludeRegEx              := CreateObject('TLabel', 'aLblPathExcludeRegEx', oForm, oPanelPathExcludeRegEx),
   oLblPathExcludeRegEx.Caption      := 'Ausdruck der im Pfad nicht vorkommen darf:',
   SetAlignMargins(oLblPathExcludeRegEx, alTop, 0, 3, 3, 3),
   // Edit für den RegEx der Im Pfad nicht vorkommen darf
   oEdtPathExcludeRegEx              := CreateObject('TBeEdit', 'EdtPathExcludeRegEx', oForm, oPanelPathExcludeRegEx),
   oEdtPathExcludeRegEx.Text         := 'Beleg Layouts\\BACKUP_|Beleg Layouts\\KOPIE_|Beleg Layouts\\ARCHIV_', // Vorbelegung, damit archivierte Beleg-Layouts etc. nicht exportiert werden
   oEdtPathExcludeRegEx.WordWrap     := True,
   SetAlignMargins(oEdtPathExcludeRegEx, alClient, 0, 0, 0, 0),
   //***************************************************************************
   // Panel für den RegEx der Im Pfad vorkommen muss
   oPanelPathIncludeRegEx            := MyCreateObject('TPanel', 'PanelPathIncludeRegEx', '', oGrpBoxRegExpr., 1, alTop, 3, 3, 3, 0),
   oPanelPathIncludeRegEx.Height     := 70,
   oPanelPathIncludeRegEx.BevelOuter := bvNone,
   // Label für den RegEx der Im Pfad vorkommen muss
   oLblPathIncludeRegEx              := CreateObject('TLabel', 'aLblPathIncludeRegEx', oForm, oPanelPathIncludeRegEx),
   oLblPathIncludeRegEx.Caption      := 'Ausdruck der im Pfad vorkommen muss:',
   SetAlignMargins(oLblPathIncludeRegEx, alTop, 0, 3, 3, 3),
   // Edit für den RegEx der Im Pfad vorkommen muss
   oEdtPathIncludeRegEx              := CreateObject('TBeEdit', 'EdtPathIncludeRegEx', oForm, oPanelPathIncludeRegEx),
   oEdtPathIncludeRegEx.Text         := '',
   oEdtPathIncludeRegEx.WordWrap     := True,
   SetAlignMargins(oEdtPathIncludeRegEx, alClient, 0, 0, 0, 0),

   // CheckBox zum leeren des zu Exportierenden Ordners
   oCkBoxClearPath       := MyCreateObject('TCheckBox', 'CheckBoxClearPath', 'Export Ordner leeren', oPanelPathOptions, 0, alTop, 3, 3, 3, 0),
   oCkBoxClearPath.Width := 130,

   //***************************************************************************
   // Panel für den Pfad indem die Codeblock hinein exportiert werden sollen
   oPanelExportPath            := MyCreateObject('TPanel', 'PanelExportPath', '', oGrpBoxExportPath, 0, alTop, 0, 0, 0, 0),
   oPanelExportPath.BevelOuter := bvNone,
   oPanelExportPath.Height     := 29,

   // Button Export Pfad über OpenDialog
   oBtnChangePath       := MyCreateObject('TBeBitBtn', 'BtnChangeExportPath', '...', oPanelExportPath, 0, alRight, 3, 0, 3, 3),
   oBtnChangePath.Width := 23,
   AssignEvent(oBtnChangePath, 'OnClick', 'oBtnChangePathClick'),
   // Edit Export Pfad
   oEdtExportPath          := CreateObject('TBeEdit', 'EdtExportPath', oForm, oPanelExportPath),
   oEdtExportPath.Text     := 'C:\be_Codeblock_Export\',
   SetAlignMargins(oEdtExportPath, alClient, 3, 5, 3, 4),
   oEdtExportPath.ReadOnly := true,

   //***************************************************************************
   // GroupBox Datenbestand und DabPAR Pfad
   oGrpBoxDataBase        := MyCreateObject('TGroupBox', 'GrpBoxDataBase', 'Pfad des Datenbestandes', oPanelMainOptions, 1, alBottom, 3, 3, 3, 3),
   oGrpBoxDataBase.Height := 120,

   // Panel für die Buttons zum ändern der DD und DabPAR pfade
   oPanelDDBtnPath            := MyCreateObject('TPanel', 'PanelDDBtnPath', '', oGrpBoxDataBase, 0, alRight, 0, 0, 0, 0),
   oPanelDDBtnPath.Width      := 26,
   oPanelDDBtnPath.BevelOuter := bvNone,

   // Panel für den Pfad des DataDictionarys und der DabPAR
   oPanelDDEdtPath            := MyCreateObject('TPanel', 'PanelDDEdtPath', '', oGrpBoxDataBase, 1, alClient, 0, 0, 0, 0),
   oPanelDDEdtPath.BevelOuter := bvNone,

   // Button Export Pfad über OpenDialog
   oBtnDDPath        := MyCreateObject('TBeBitBtn', 'BtnDDPath', '...', oPanelDDBtnPath, 0, alTop, 10, 0, 3, 22),
   oBtnDDPath.Height := 25,
   AssignEvent(oBtnDDPath, 'OnClick', 'oBtnChangePathClick'),
   // Button Export Pfad über OpenDialog
   oBtnDabPARPath        := MyCreateObject('TBeBitBtn', 'BtnDabPARPath', '...', oPanelDDBtnPath, 1, alBottom, 3, 0, 3, 4),
   oBtnDabPARPath.Height := 25,
   AssignEvent(oBtnDabPARPath, 'OnClick', 'oBtnChangePathClick'),

   oLblDataBasePath         := CreateObject('TLabel', 'LblDataBasePath', oForm, oPanelDDEdtPath),
   oLblDataBasePath.Caption := 'DataDictionary Ordner:',
   SetAlignMargins(oLblDataBasePath, alTop, 0, 3, 3, 3),

   // Edit für das Datadictionary (Den Datenbestand)
   oEdtDataBasePath          := CreateObject('TBeEdit', 'EdtDataBasePath', oForm, oPanelDDEdtPath),
   oEdtDataBasePath.Text     := mbedefault,
   SetAlignMargins(oEdtDataBasePath, alBottom, 3, 5, 3, 3),
   oEdtDataBasePath.Align    := alTop,
   oEdtDataBasePath.ReadOnly := true,

   // Edit für die DabPAR
   oEdtDabPARPath          := CreateObject('TBeEdit', 'EdtDabPARPath', oForm, oPanelDDEdtPath),
   oEdtDabPARPath.Text     := '',
   SetAlignMargins(oEdtDabPARPath, alBottom, 3, 5, 3, 0),
   oEdtDabPARPath.ReadOnly := true,

   oLblDabPARPath         := CreateObject('TLabel', 'LblDabPARPath', oForm, oPanelDDEdtPath),
   oLblDabPARPath.Caption := 'DabPAR Ordner:',
   SetAlignMargins(oLblDabPARPath, alBottom, 3, 3, 3, 0),

   //***************************************************************************
   // Panel für die Fußzeile
   oPanelBottom            := MyCreateObject('TPanel', 'PanelBottom', '', oForm, 2, alBottom, 3, 3, 3, 0),
   oPanelBottom.Height     := 25,
   oPanelBottom.BevelOuter := bvNone,
   // Button Export
   oBtnExport                        := MyCreateObject('TBeBitBtn', 'BtnExport', '&Exportieren', oPanelBottom, 0, alRight, 0, 0, 3, 0),
   oBtnExport.ImageIndex.IndexNormal := 287,
   oBtnExport.Width                  := 120,
   AssignEvent(oBtnExport, 'OnClick', 'oBtnExportClick'),
   // Button Abbruch
   oBtnAbort                        := MyCreateObject('TBeBitBtn', 'BtnAbort', 'A&bbrechen', oPanelBottom, 1, alRight, 0, 0, 3, 0),
   oBtnAbort.ImageIndex.IndexNormal := 8,
   oBtnAbort.Width                  := 120,
   AssignEvent(oBtnAbort, 'OnClick', 'oBtnCancelClick'),
   //***************************************************************************
   // GroupBox für die Optionen die Export einstellungen
   oGrpBoxMainControl       := MyCreateObject('TGroupBox', 'GrpBoxMainControl', 'Zu exportierende Codeblöcke', oForm, 1, alRight, 3, 3, 3, 3),
   oGrpBoxMainControl.Width := 440,
   //***************************************************************************
   // Panel für zusätliche Optionen
   oPanelOptions            := MyCreateObject('TPanel', 'PanelOptions', '', oGrpBoxMainControl, 1, alBottom, 3, 3, 3, 3),
   oPanelOptions.Height     := 25,
   oPanelOptions.BevelOuter := bvNone,
   // Button zum selektieren aller Export-Bereiche
   oBtnSelectAll                        := MyCreateObject('TBeBitBtn', 'BtnSelectAll', 'Alle selektieren', oPanelOptions, 1, alLeft, 0, 0, 3, 0),
   oBtnSelectAll.ImageIndex.IndexNormal := 189,
   oBtnSelectAll.Width                  := 116,
   AssignEvent(oBtnSelectAll, 'OnClick', 'DoSelektionButtonClicked'),
   // Button der alle Selektionen aufhebt
   oBtnDeselectAll                        := MyCreateObject('TBeBitBtn', 'BtnDeselectAll', 'Alle aufheben', oPanelOptions, 2, alLeft, 0, 0, 3, 0),
   oBtnDeselectAll.ImageIndex.IndexNormal := oBtnSelectAll.ImageIndex.IndexNormal + 1,
   oBtnDeselectAll.Width                  := 116,
   AssignEvent(oBtnDeselectAll, 'OnClick', 'DoSelektionButtonClicked'),
   //***************************************************************************
   // Panel linke Seite der Export Arten
   oPanelLeftSide := MyCreateObject('TPanel', 'PanelLeftSide', '', oGrpBoxMainControl, 0, alLeft, 0, 3, 3, 3),
   oPanelLeftSide.Width      := 180,
   oPanelLeftSide.BevelOuter := bvNone,
   // CheckBox Druckerzuweisungen
   oCkBoxPrintManager     := MyCreateObject('TCheckBox', 'CkBoxPrintManager', 'Druckerzuweisungen',         oPanelLeftSide, 0,  alTop, 3, 3, 3, 3),
   // CheckBox Individual Menüs
   oCkBoxIndividualMenu   := MyCreateObject('TCheckBox', 'CkBoxIndividualMenu', 'Individual-Menüs',         oPanelLeftSide, 1,  alTop, 3, 3, 3, 3),
   // CheckBox Maskendefinitionen
   oCkBoxMaskDef          := MyCreateObject('TCheckBox', 'CkBoxMaskDef', 'Maskendefinitionen',              oPanelLeftSide, 2,  alTop, 3, 3, 3, 3),
   // CheckBox Versandsteuerung
   oCkBoxShippingControl  := MyCreateObject('TCheckBox', 'CkBoxShippingControl', 'Versandsteuerung',        oPanelLeftSide, 3,  alTop, 3, 3, 3, 3),
   // CheckBox Textbausteine
   oCkBoxTextModule       := MyCreateObject('TCheckBox', 'CkBoxTextModule', 'Textbausteine',                oPanelLeftSide, 4,  alTop, 3, 3, 3, 3),
   // CheckBox Memo Ansichten
   oCkBoxMemoView         := MyCreateObject('TCheckBox', 'CkBoxMemoView', 'Memo Ansichten',                 oPanelLeftSide, 5,  alTop, 3, 3, 3, 3),
   // CheckBox Codeblock Programme
   oCkBoxCodeblockProgram := MyCreateObject('TCheckBox', 'CkBoxCodeblockProgram', 'Codeblock Programme',    oPanelLeftSide, 6,  alTop, 3, 3, 3, 3),
   // CheckBox Größen- und Farbraster
   oCkBoxColSize          := MyCreateObject('TCheckBox', 'CkBoxColSize', 'Größen- und Farbraster',          oPanelLeftSide, 7,  alTop, 3, 3, 3, 3),
   // CheckBox Reportgenerator
   oCkBoxRepGen           := MyCreateObject('TCheckBox', 'CkBoxRepGen', 'Reportgenerator',                  oPanelLeftSide, 8,  alTop, 3, 3, 3, 3),
   // CheckBox Reportgenerator
   oCkBoxInvFilter        := MyCreateObject('TCheckBox', 'CkBoxInvFilter', 'Inventur Filter',               oPanelLeftSide, 9,  alTop, 3, 3, 3, 3),
   // Automatische Liefereinstellungen
   oCkBoxReleaseByDate    := MyCreateObject('TCheckBox', 'CkBoxReleaseByDate', 'Automatische Liefereinst.', oPanelLeftSide, 10, alTop, 3, 3, 3, 3),
   // CheckBox SQL-Selektion
   oCkBoxSqlSelect        := MyCreateObject('TCheckBox', 'CkBoxSqlSelect', 'SQL-Selektion',                 oPanelLeftSide, 11, alTop, 3, 3, 3, 3),
   // CheckBox FiBu Sachkonten
   oCkBoxSachkonten       := MyCreateObject('TCheckBox', 'CkBoxSachkonten', 'Sachkonten',                   oPanelLeftSide, 12, alTop, 3, 3, 3, 3),
   // CheckBox FiBu Zahlungsarten
   oCkPaymentMethod       := MyCreateObject('TCheckBox', 'CkPaymentMethod', 'Zahlungsarten',                oPanelLeftSide, 13, alTop, 3, 3, 3, 3),

   //***************************************************************************
   // Panel rechte Seite der Export Arten
   oPanelRightSide            := MyCreateObject('TPanel', 'PanelRightSide', '', oGrpBoxMainControl, 1, alRight, 0, 0, 3, 3),
   oPanelRightSide.Width      := 240,
   oPanelRightSide.BevelOuter := bvNone,
   // CheckBox CRM-Aktionen
   oCkBoxCRMAction := MyCreateObject('TCheckBox', 'CkBoxCRMAction', 'CRM-Aktionen', oPanelRightSide, 0, alTop, 3, 3, 3, 3),

   //***************************************************************************
   // Panel für die ComboCheckBox und das Label für die Browser Definitionen
   oPanelBrowserDef            := MyCreateObject('TPanel', 'PanelBrowserDef', '', oPanelRightSide, 1, alTop, 0, 0, 0, 3),
   oPanelBrowserDef.Height     := 70,
   oPanelBrowserDef.BevelOuter := bvNone,

   // Edit für den Userfilter auf anderen Datenbeständen
   oEdtBrowserDef          := CreateObject('TEdit', 'EdtBrowserDef', oForm, oPanelBrowserDef),
   oEdtBrowserDef.Text     := '',
   oEdtBrowserDef.Visible  := False,
   oEdtBrowserDef.TabOrder := 4,
   oEdtBrowserDef.Enabled  := False,
   SetAlignMargins(oEdtBrowserDef, alTop, 3, 18, 3, 0),

   // ComboCheckBox für Browserdefinitionen erstellen
   oComboCkBoxBrowserDef                := CreateObject('TBeAttribCheckCombo', 'ComboCkBoxBrowserDef', oForm, oPanelBrowserDef),
   oComboCkBoxBrowserDef.TabOrder       := 4,
   oComboCkBoxBrowserDef.ShowTextAsHint := True,
   oComboCkBoxBrowserDef.BeAttributeID  := -13,
   oComboCkBoxBrowserDef.Enabled        := False,
   SetAlignMargins(oComboCkBoxBrowserDef, alTop, 3, 18, 3, 0),

   // CheckBox für die Default Codeblöcke der Browserdefinitionen
   oCkBoxBrowserDefDefault         := MyCreateObject('TCheckBox', 'CkBoxBrowserDefDefault', 'Default Browser', oPanelBrowserDef, 2, alTop, 3, 18, 3, 0),
   oCkBoxBrowserDefDefault.Enabled := False,

   // Allgemein CheckBox für die Browserdefinitionen
   oCkBoxBrowserDef        := MyCreateObject('TCheckBox', 'CkBoxBrowserDef', 'Browserdefinitionen', oPanelBrowserDef, 3, alTop, 3, 3, 3, 0),
   AssignEvent(oCkBoxBrowserDef, 'OnClick', 'DoCheckBoxClicked'),

   //***************************************************************************
   // Panel Tabellen- und Feldrechte
   oPanelAttr            := MyCreateObject('TPanel', 'PanelAttr', '',                    oPanelRightSide, 4, alTop, 3, 3, 3, 3),
   oPanelAttr.Height     := 70,
   oPanelAttr.BevelOuter := bvNone,
   // CheckBox Merkmalstabellen
   oCkBoxAttrTable       := MyCreateObject('TCheckBox', 'CkBoxAttrTable', 'Merkmalstabellen', oPanelAttr, 2, alTop, 3, 0,  3, 3),
   AssignEvent(oCkBoxAttrTable, 'OnClick', 'DoCheckBoxClicked'),
   // CheckBox Default
   oCkBoxAttrDefault         := MyCreateObject('TCheckBox', 'CkBoxAttrDefault', 'Default',    oPanelAttr, 2, alTop, 3, 18, 3, 3),
   oCkBoxAttrDefault.Enabled := False,
   AssignEvent(oCkBoxAttrDefault, 'OnClick', 'DoCheckBoxClicked'),
   // CheckBox Individual
   oCkBoxAttrUser         := MyCreateObject('TCheckBox', 'CkBoxAttrUser', 'Individual',       oPanelAttr, 2, alTop, 3, 18, 3, 3),
   oCkBoxAttrUser.Enabled := False,
   AssignEvent(oCkBoxAttrUser, 'OnClick', 'DoCheckBoxClicked'),

   // CheckBox Beleg Layouts
   oCkBoxDocLayout := MyCreateObject('TCheckBox', 'CkBoxDocLayout', 'Beleg Layouts',     oPanelRightSide, 3, alTop, 3, 3, 3, 3),

   //***************************************************************************
   // Panel Tabellen- und Feldrechte
   oPanelRights            := MyCreateObject('TPanel', 'PanelRights', '', oPanelRightSide, 4, alTop, 3, 3, 3, 0),
   oPanelRights.Height     := 70,
   oPanelRights.BevelOuter := bvNone,
   // CheckBox Tabellen- und Feldrechte
   oCkBoxRights            := MyCreateObject('TCheckBox', 'CkBoxRights', 'Tabellen- und Feldrechte', oPanelRights, 4, alTop, 3, 0, 3, 3),
   AssignEvent(oCkBoxRights, 'OnClick', 'DoCheckBoxClicked'),
   // CheckBox Default-Rechte
   oCkBoxDefaultRights         := MyCreateObject('TCheckBox', 'CkBoxDefaultRights', 'Default Rechte', oPanelRights, 4, alTop, 3, 18, 3, 3),
   oCkBoxDefaultRights.Enabled := False,
   AssignEvent(oCkBoxDefaultRights, 'OnClick', 'DoCheckBoxClicked'),
   // CheckBox User-Rechte
   oCkBoxUserRights         := MyCreateObject('TCheckBox', 'CkBoxUserRights', 'User Rechte', oPanelRights, 4, alTop, 3, 18, 3, 3),
   oCkBoxUserRights.Enabled := False,
   AssignEvent(oCkBoxUserRights, 'OnClick', 'DoCheckBoxClicked'),

   // CheckBox Allgemeine- und Lokale Parameter
   oCkBoxParameter      := MyCreateObject('TCheckBox', 'CkBoxParameter', 'Allgemeine- und Lokale Parameter', oPanelRightSide,  5, alTop, 3, 3, 3, 3),
   // CheckBox Außendienst Parameter
   oCkBoxScComm         := MyCreateObject('TCheckBox', 'CkBoxScComm', 'Außendienst Parameter',               oPanelRightSide,  6, alTop, 3, 3, 3, 3),
   // CheckBox Individuelle Datenquelle für Umsätze
   oCkBoxIndiDatTurn    := MyCreateObject('TCheckBox', 'CkBoxIndiDatTurn', 'Kum.Stat. Indiv.Betrachtungen',  oPanelRightSide,  7, alTop, 3, 3, 3, 3),
   // CheckBox Intrastat Parameter
   oCkBoxIntrastatParam := MyCreateObject('TCheckBox', 'CkBoxIntrastatParam', 'Intrastat Parameter',         oPanelRightSide,  8, alTop, 3, 3, 3, 3),
   // CheckBox Filter Liste
   oCkBoxFilterList     := MyCreateObject('TCheckBox', 'CkBoxFilterList', 'Filter Liste',                    oPanelRightSide,  9, alTop, 3, 3, 3, 3),
   // CheckBox Parameter Filter
   oCkBoxParamFilter    := MyCreateObject('TCheckBox', 'CkBoxParamFilter', 'Parameter Filter',               oPanelRightSide, 10, alTop, 3, 3, 3, 3),
   // CheckBox FiBu Parameter
   oCkBoxFiBuParam      := MyCreateObject('TCheckBox', 'CkBoxFiBuParam', 'FiBu Parameter',                   oPanelRightSide, 11, alTop, 3, 3, 3, 3),
   // CheckBox Vertreterverwaltung Absatzplanung Artikelfilter
   oCkBoxAgentArtFilter := MyCreateObject('TCheckBox', 'CkBoxAgentArtFilter', 'Absatzplanung Artikelfilter', oPanelRightSide, 12, alTop, 3, 3, 3, 3),
   // CheckBox Sonstige WinPosition Codeblöcke
   oCkBoxOtherWinPos    := MyCreateObject('TCheckBox', 'CkBoxOtherWinPos', 'Sonstige WinPositionen',         oPanelRightSide, 13, alTop, 3, 3, 3, 3),

   // Array aus allen CheckBoxen die eine export Art represäntieren
   oCkBoxArr := {oCkBoxPrintManager, oCkBoxCRMAction, oCkBoxIndividualMenu,
                 oCkBoxMaskDef, oCkBoxAttrTable, oCkBoxAttrDefault,
                 oCkBoxAttrUser, oCkBoxUserRights, oCkBoxDefaultRights,
                 oCkBoxRights, oCkBoxShippingControl, oCkBoxDocLayout,
                 oCkBoxTextModule, oCkBoxMemoView, oCkBoxParameter,
                 oCkBoxCodeblockProgram, oCkBoxScComm, oCkBoxColSize,
                 oCkBoxIndiDatTurn, oCkBoxRepGen, oCkBoxIntrastatParam,
                 oCkBoxInvFilter, oCkBoxFilterList, oCkBoxOtherWinPos,
                 oCkBoxParamFilter, oCkBoxReleaseByDate, oCkBoxFiBuParam,
                 oCkBoxSqlSelect, oCkBoxAgentArtFilter, oCkBoxSachkonten,
                 oCkPaymentMethod, oCkBoxBrowserDef, oCkBoxBrowserDefDefault},
end,

startseq
   CreateForm(),
   ShowModal(oForm),
always
   DestroyObject(oForm),
stopseq,


Weitere Verknüpfungen


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.