//best4p.prg///////////////////////////////////////////////////////////////////
//
//  Vom Xbase++ FormDesigner erstellter Funktions Code
//    Erstellt am: 25.02.01 Zeit: 18:32:45
//       -erweitert-   UDFs: best4f.prg
///////////////////////////////////////////////////////////////////////////////

#include "Gra.ch"
#include "Xbp.ch"
#include "Appevent.ch"
#include "Font.ch"
#include "Common.ch"
#include "xbpdev.ch"
#include "fileio.ch"

#define   xbeUser_FileMarked       xbeP_User + 1
#define   xbeUser_FileSelected     xbeP_User + 2

//+25.06.2013 17:55 ersetzt durch AKDialog1.prg:
//+26.12.2013 21:38 wieder eingesetzt:
CLASS AKDialog from XbpDialog
  EXPORTED:
    VAR cFont
    METHOD  Init
ENDCLASS

METHOD AKDialog:Init( oParent, oOwner, aPos, aSize, aPP, lVisible )
   LOCAL nBSb
   aPP := IIf( Empty(aPP), {}, aPP )
   nBSb := AppDesktop():currentSize()[1]
   IF nBSb > 1000
      cFont := "10.Arial"
   ELSEIF nBSb >750
      cFont := "8.Arial"
   ELSE
      cFont := "7.Arial"
   ENDIF
   AAdd ( aPP, { XBP_PP_COMPOUNDNAME, cFont } )
   ::XbpDialog:init( oParent, oOwner, aPos, aSize, aPP, lVisible )
   ::XbpDialog:taskList := .T.
//   Alternative zu aPP :
//    oFont := xbpFont():new()                     // Font-Objekt und
//    oFont:create()                                // Font erzeugen
//    oFont:configure( cFont )                     // Neuen Font laden
//   ::XbpDialog:setFont( oFont )
RETURN self

PROCEDURE best4p( cTitel )
   LOCAL nEvent, mp1, mp2, aFelder := {}, ID_SLE_PRIMKEY := 1, ID_SLE_NAME := 5
   LOCAL oDlg, oXbp, oXbpG1, oXbpG2, oXbpG3, oXbpG4, oXbpG5
   LOCAL oXbpC, oXbp1, oXbp2, oXbp3, oXbp4, oXbp5, oXbp6, oXbp7
   LOCAL oXbp8, oXbp9
   LOCAL oXbpN, oXbp12, oXbp13, oXbp14, oXbp15, oXbp16, oXbp17
   LOCAL oXbp22, oXbp23, oXbp24, oXbp25, oXbp26, oXbp27
   LOCAL oXbp32, oXbp33, oXbp34, oXbp35, oXbp36, oXbp37
   LOCAL drawingArea, aEditControls := {}
   LOCAL bKeyboard, bActivate, aData1[ FCount() ]
   LOCAL aPP := { { XBP_PP_FGCLR       , GRA_CLR_BLACK    } , ;
                  { XBP_PP_BGCLR       , GRA_CLR_WHITE    } }

//                  { XBP_PP_COMPOUNDNAME, FONT_TIMES_MEDIUM + FONT_STYLE_BOLD } }


// tats„chliche Bildschirmaufl”sung:
   LOCAL aSizeDesktop := AppDesktop():currentSize()
   LOCAL nBSb := aSizeDesktop[1]
   LOCAL nBSh := aSizeDesktop[2]
// folgende Zahlen-Werte basieren auf 800x600:
   LOCAL nH := nBSb/800         // Korrekturfaktor fr tats„chliche Aufl”sung
   LOCAL nV := nBSh/600, nHV := nH/nV  //+07.06.2011 17:28
   LOCAL n5 := int(5*nV)
   LOCAL n10 := int(10*nV)
   LOCAL n15 := int(15*nV)
   LOCAL n20 := int(20*nV)
   LOCAL n30 := int(30*nV)
   LOCAL nRo := int(505*nV)     // oberstes Eingabefeld =505
   LOCAL nBo := nRo
   LOCAL nR1 := 5       // linker Rand Bezeichnungsfeld
   LOCAL nR2 := int(70*nV)       // linker Rand EingabeFeld
   LOCAL nR3 := int(200*nV)     // linker Rand Bezeichnungsfeld
   LOCAL nR4 := int(250*nV)       // linker Rand EingabeFeld
   LOCAL nR5 := int(300*nV)       // linker Rand EingabeFeld
   LOCAL nR6 := int(350*nV)     // linker Rand Bezeichnungsfeld
   LOCAL nR7 := int(430*nV)     // linker Rand Bezeichnungsfeld
   LOCAL nR8 := int(490*nV)       // linker Rand EingabeFeld
   LOCAL nR9 := int(610*nV)     // linker Rand Bezeichnungsfeld
   LOCAL nR10 := int(740*nV)       // linker Rand EingabeFeld

   LOCAL nBl1 := int(60*nV)      // L„nge des Bezeichnungsfeldes
   LOCAL nBl2 := int(50*nV)      // L„nge des Bezeichnungsfeldes
   LOCAL nBl3 := int(30*nV)      // L„nge des Bezeichnungsfeldes
   LOCAL nBl4 := int(20*nV)      // L„nge des Bezeichnungsfeldes
   LOCAL nBh := int(20*nV)      // H”he des Bezeichnungsfeldes =20
   LOCAL nBha := int(20*nV)      // H”he des Bezeichnungsfeldes =20  +23.09.2018 11:15 (+31.08.2015 13:46)
   LOCAL nBz := int(25*nV)      // Zeilenh”he des Bezeichnungsfeldes =25

   LOCAL nFl1 := int(170*nV)    // L„nge des Eingabefeldes
   LOCAL nFl2 := int(120*nV)    // L„nge des Eingabefeldes
   LOCAL nFl3 := int(80*nV)    // L„nge des Eingabefeldes
   LOCAL nFl4 := int(60*nV)    // L„nge des Eingabefeldes
   LOCAL nFl5 := int(30*nV)    // L„nge des Eingabefeldes
   LOCAL nFa := 0
   LOCAL nT1 := int(200*nV)     // Linker Rand Taste
   LOCAL nT2 := int(430*nV)     // Linker Rand Taste
   LOCAL nT3 := int(480*nV)     // Linker Rand Taste
   LOCAL nT4 := int(530*nV)     // Linker Rand Taste
   LOCAL nT4a := int(530*nV)     // Linker Rand Taste +31.08.2015 13:47
   LOCAL nT4b := int(580*nV)     // Linker Rand Taste +31.08.2015 13:47
   LOCAL nT4c := int(530*nV)     // Linker Rand Taste +31.08.2015 13:47
   LOCAL nT4d := int(580*nV)     // Linker Rand Taste +31.08.2015 13:47
   LOCAL nT5 := int(630*nV)     // Linker Rand Taste
   LOCAL nT6 := int(680*nV)     // Linker Rand Taste
   LOCAL nT7 := int(730*nV)     // Linker Rand Taste
   LOCAL nTl := int(40*nV)     // Breite Taste
   LOCAL n2 := 2
   LOCAL n6 := 6

   LOCAL cDeko, aDeko, bAction, cSTATUS, aSTATUS  // fr die ComboBox
   LOCAL cVerst0 := cVerst1 := cVerst2 := cVerst3 := Trim(" ")
   LOCAL cV := " "
   LOCAL nXmod:=nXehe:=Int(350*nH), nYehe:=Int(350*nV), nYmod:=int(250*nV)
   LOCAL oBestMenu := SetAppFocus()
   LOCAL oBest
   LOCAL nBGFarbe := GRA_CLR_BACKGROUND            //+26.11.2011 20:29 originales Grau
   LOCAL nBSFarbe := GraMakeRGBColor({230,180,100}) //24.08.2007 10:20
   PRIVATE oCB
   PRIVATE cFeldC, cFeldN, cFeldD, aFeld[FCount()]
   PRIVATE cFont, oFont

   ErrorBlock( {|e| FehlerBehandlung(e) } )     // e = Error-Objekt  //+24.03.2012 14:46

   SELECT 1
   IF !Empty(cPubAuf)
      FIND &cPubAuf
   ELSE
      GO TOP
   ENDIF
   IF Alias(1)="VBEST"
      cV := "V"
   ELSE
      cV := "B"
   ENDIF

   oDlg := AKDialog():new( AppDesktop(), SetAppWindow(), {n5*nHV,n30}, {nBSb-n10*nHV,nBSh-n30}, , .F.) //+07.06.2011 17:31
   oDlg:taskList := .T.
   oDlg:title := cTitel+" *" //+04.09.2012 22:17 Markierung *
   oDlg:create()
   oCB := oDlg:drawingArea
   oBest := oDlg:drawingArea
   oCB:cargo := oDlg
   oBest:cargo := oDlg
//   SetAppWindow():clipChildren := .F.
//   SetAppWindow():configure()

   drawingArea := oDlg:drawingArea

   oXbpG1 := XbpStatic():new( drawingArea, , {(nR1-n5)*nHV,nRo-9*nBz-n5}, {(nFl1+nBl1+n15)*nHV,9*nBz+n10},) //+07.06.2011 17:31
   oXbpG1:clipSiblings := .T.
   oXbpG1:type := XBPSTATIC_TYPE_GROUPBOX
   oXbpG1:create()

   oXbp := XbpStatic():new( drawingArea, , {(nR1-n5)*nHV,nRo-13*nBz-n5}, {(nR7-n5)*nHV,4*nBz+n10}, )  //+07.06.2011 17:31
   oXbp:caption := ""
   oXbp:clipSiblings := .T.
   oXbp:type := XBPSTATIC_TYPE_GROUPBOX
   oXbp:create()

   oXbp := XbpStatic():new( drawingArea, , {(nR1-n5)*nHV,nRo-20*nBz-n5}, {(nR7-n5)*nHV,7*nBz+n10} )   //+07.06.2011 17:32
   oXbp:caption := ""
   oXbp:clipSiblings := .T.
   oXbp:type := XBPSTATIC_TYPE_GROUPBOX
   oXbp:create()

   oXbp := XbpStatic():new( drawingArea, , {(nR4-n5)*nHV,nRo-9*nBz-n5}, {(nFl1+n5)*nHV,9*nBz+n10} )   //+07.06.2011 17:32
   oXbp:caption := ""
   oXbp:clipSiblings := .T.
   oXbp:type := XBPSTATIC_TYPE_GROUPBOX
   oXbp:create()

   oXbp := XbpStatic():new( drawingArea, , {(nR7-n5)*nHV,nRo-9*nBz-n5}, {nBSb-(nR7+n15)*nHV,9*nBz+n10} )    //+07.06.2011 17:33
   oXbp:caption := ""
   oXbp:clipSiblings := .T.
   oXbp:type := XBPSTATIC_TYPE_GROUPBOX
   oXbp:create()



   oXbp1 := XbpPushButton():new( drawingArea, , {nT1*nHV,nBo}, {nTl*nHV,nBh} )  //+07.06.2011 17:33
   oXbp1:caption := "~Such"
   oXbp1:clipSiblings := .T.
   oXbp1:create()
   oXbp1:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
                        Suchen( oDlg, @aData1, nXmod, nYmod*2 ), Scatter ( aEditControls ), ;
                        IIf( cV == "V", ;
                        oBest:setColorBG( nBSFarbe ),oBest:setColorBG( nBGFarbe )), ;
                        oXbp:enable() }

   oXbp2 := XbpPushButton():new( drawingArea, , {nT2*nHV,nBo}, {nTl*nHV,nBh} )   //+07.06.2011 17:34
   oXbp2:caption := "~Neu"
   oXbp2:clipSiblings := .T.
   oXbp2:create()
   oXbp2:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
                        NeuVB( oDlg, @aData1, nXmod, nYmod ), Radio(), 1->(DbCommit()), ;
                        1->(DbRUnlock( Recno() ) ), Scatter ( aEditControls ), ;
                        IIf( cV == "V", ;
                        oBest:setColorBG( nBSFarbe ),oBest:setColorBG( nBGFarbe )), ;
                        oXbp:enable() }


   oXbp3 := XbpPushButton():new( drawingArea, , {nT3*nHV,nBo}, {nTl*nHV,nBh} )  //+07.06.2011 17:34
   oXbp3:caption := "|<<"
   oXbp3:clipSiblings := .T.
   oXbp3:group := XBP_BEGIN_GROUP
   oXbp3:create()
   oXbp3:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), ZumAnfang() , ;
                        Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        IIf( cV == "V", ;
                        oBest:setColorBG( nBSFarbe ),oBest:setColorBG( nBGFarbe )), ;
                        oXbp:enable() }

   oXbp4 := XbpPushButton():new( drawingArea, , {nT4*nHV,nBo}, {nTl*nHV,nBh} )      //+07.06.2011 17:35
   oXbp4:caption := "<"
   oXbp4:clipSiblings := .T.
   oXbp4:group := XBP_WITHIN_GROUP
   oXbp4:create()

   oXbp4:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), Zurueck(), ;
                        Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        IIf( cV == "V", ;
                        oBest:setColorBG( nBSFarbe ),oBest:setColorBG( nBGFarbe )), ;
                        oXbp:enable() }

   oXbp5 := XbpPushButton():new( drawingArea, , {nT5*nHV,nBo}, {nTl*nHV,nBh} )  //+07.06.2011 17:35
   oXbp5:caption := ">"
   oXbp5:clipSiblings := .T.
   oXbp5:group := XBP_WITHIN_GROUP
   oXbp5:create()
   oXbp5:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), Vorwaerts() , ;
                        Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        IIf( cV == "V", ;
                        oBest:setColorBG( nBSFarbe ),oBest:setColorBG( nBGFarbe )), ;
                        oXbp:enable() }

   oXbp6 := XbpPushButton():new( drawingArea, , {nT6*nHV,nBo}, {nTl*nHV,nBh} )   //+07.06.2011 17:35
   oXbp6:caption := ">>|"
   oXbp6:clipSiblings := .T.
   oXbp6:group := XBP_END_GROUP
   oXbp6:create()
//   oXbp6:activate := {|| Satzsp( oDlg ),  Gather( aEditControls ), ;
   oXbp6:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), ZumEnde() , ;
                        Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        IIf( cV == "V", ;
                        oBest:setColorBG( nBSFarbe ),oBest:setColorBG( nBGFarbe )), ;
                        oXbp:enable() }

   oXbp7 := XbpPushButton():new( drawingArea, , {nT7*nHV,nBo}, {nTl*nHV,nBh} )  //+07.06.2011 17:35
   oXbp7:caption := "Ende"
   oXbp7:clipSiblings := .T.
   oXbp7:create()
   oXbp7:activate := {|| PostAppEvent( xbeP_Close ) }
//   oXbp7:activate := {|| Satzsp( oDlg ), Gather( aEditControls ), 1->(DbCommit()), ;
//                        __SETFUNCTION( 9, str( 1->AUFTRNR,6,0 ) ), ;
//                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
//                        PostAppEvent( xbeP_Close ) , ;
//                        oDlg:destroy() , Scatter( xbeP_Close ) }

   oXbp := XbpStatic():new( drawingArea, , {nR1*nHV,nBo}, {nBl1*nHV,nBh} ) //+07.06.2011 17:36
   oXbp:caption := "Auftr+Ber:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 6 ; nFl := nFa*8
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl3*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:36
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:tabStop := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Transform( 1->AUFTRNR, '@L0 999999' ), 1->AUFTRNR := Val(x) ) }
   oXbp:validate := {|o| IsIndexUnique( 1, PadL(Trim(o:editBuffer()),6) ) }   //29.08.2007 08:12
   oXbp:create():setData()
   oXbp:cargo := "AUFTRNR"		//+18.09.2018 21:22
   oXbp:setName( ID_SLE_PRIMKEY )
   oXbp:disable()
   AAdd ( aEditControls, oXbp )
//   IF !Eof()
//        oXbp:disable()
//   ELSE
//        oXbp:enable()
//        SetAppFocus( oXbp )
//   ENDIF

   nFa := 3 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {(nR2+nFl3+n5)*nHV,nBo}, {nFl5*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 17:36
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:tabStop := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->BERATER ), 1->BERATER := x ) }
   oXbp:create():setData()
   oXbp:cargo := "BERATER"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   oXbp := XbpStatic():new( drawingArea, , {(nR4)*nHV,nBo}, {(nBl2)*nHV,nBh} )   //+07.06.2011 17:37
   oXbp:caption := "Telefon:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR5*nHV,nBo}, {nFl2*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:37
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:tabStop := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->ANSP_TELP ), 1->ANSP_TELP := x ) }
   oXbp:create():setData()
   oXbp:cargo := "ANSP_TELP"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR1*nHV,nBo}, {nBl1*nHV,nBh} )   //+07.06.2011 17:37
//   oXbp := XbpStatic():new( oXbpG1, , {10,10}, {nBl1,nBh} )
   oXbp:caption := "Anrede:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 10 ; nFl := nFa*7
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl3*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:38
//   oXbp := XbpSLE():new( oXbpG1, , {70,10}, {nFl3,nBh}, )
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:tabStop := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->ANREDE ), 1->ANREDE := x ) }
   oXbp:create():setData()
   oXbp:cargo := "ANREDE"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )


   oXbp8 := XbpPushButton():new( drawingArea, , {(nR2+nFl3+n5)*nHV,nBo}, {nTl*nHV,nBh} )  //+07.06.2011 17:38
   oXbp8:caption := "~EHE"
   oXbp8:clipSiblings := .T.
   oXbp8:create()
   oXbp8:activate := {|| Satzsp( oDlg ), Gather( aEditControls ), 1->(DbCommit()), ;
                        aEditcontrols := Ehe( oDlg, aEditcontrols, nXehe, nYehe ) , ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }

   oXbp9 := XbpPushButton():new( drawingArea, , {nT1*nHV,nBo}, {nTl*nHV,nBh} )  //+07.06.2011 17:38
   oXbp9:caption := "~ANSP"
   oXbp9:clipSiblings := .T.
   oXbp9:create()
   oXbp9:activate := {|| Satzsp( oDlg ), Gather( aEditControls ), 1->(DbCommit()), ;
                        aEditcontrols := Ansprech( oDlg, aEditcontrols, nXehe, nYehe ) , ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {(nR1)*nHV,nBo}, {(nBl1)*nHV,nBh} )   //+07.06.2011 17:39
   oXbp:caption := "Name:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:39
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim(1->Name), 1->Name:= x ) }
//   oXbp:dataLink := &( Bs("1->Name") )
   oXbp:create():setData()
   oXbp:cargo := "NAME"		//+18.09.2018 21:22
   oXbp:setName( ID_SLE_NAME )
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR1*nHV,nBo}, {nBl1*nHV,nBh} )   //+07.06.2011 17:39
   oXbp:caption := "Vorname:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:40
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->VORNAME ), 1->VORNAME := x ) }
   oXbp:create():setData()
   oXbp:cargo := "VORNAME"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR1*nHV,nBo}, {nBl1*nHV,nBh} )   //+07.06.2011 17:40
   oXbp:caption := "Geb.-Name:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:44
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->GEB_NAME ), 1->GEB_NAME := x ) }
   oXbp:create():setData()
   oXbp:cargo := "GEB_NAME"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {(nR1)*nHV,nBo}, {(nBl1)*nHV,nBh} ) //+07.06.2011 17:40
   oXbp:caption := "Straáe:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:40
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->STRASSE ), 1->STRASSE := x ) }
   oXbp:create():setData()
   oXbp:cargo := "STRASSE"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR1*nHV,nBo}, {nBl1*nHV,nBh} )   //+07.06.2011 17:45
   oXbp:caption := "PLZ/Ort:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:45
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->PLZ_ORT ), 1->PLZ_ORT := x ) }
   oXbp:create():setData()
   oXbp:cargo := "PLZ_ORT"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR1*nHV,nBo}, {nBl1*nHV,nBh} )   //+07.06.2011 17:45
   oXbp:caption := "Beruf:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:46
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->BERUF ), 1->BERUF := x ) }
   oXbp:create():setData()
   oXbp:cargo := "BERUF"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR1*nHV,nBo}, {nBl1*nHV,nBh} )   //+07.06.2011 17:46
   oXbp:caption := "geb/gest:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 10 ; nFl := nFa*7
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl3*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:46
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, ;
                        IIf( DtoC( 1->GEB_DATUM )=" ", trim(" "), DtoC( 1->GEB_DATUM )), ;
                        IIf( len(x)<7, 1->GEB_DATUM := CtoD(x+str(year(date(),4,0))), ;
                        1->GEB_DATUM := CtoD(x) ) ) }
   oXbp:create():setData()
   oXbp:cargo := "GEB_DATUM"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nFa := 10 ; nFl := nFa*7
   oXbp := XbpSLE():new( drawingArea, , {(nR2+nFl1-nFl3)*nHV,nBo}, {nFl3*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:46
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, ;
                        IIf( DtoC( 1->GESTORBEN )=" ", trim(" "), DtoC( 1->GESTORBEN )), ;
                        IIf( len(x)<7, 1->GESTORBEN := CtoD(x+str(year(date(),4,0))), ;
                        1->GESTORBEN := CtoD(x) ) ) }
   oXbp:create():setData()
   oXbp:cargo := "GESTORBEN"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR1*nHV,nBo}, {nBl1*nHV,nBh} ) //+07.06.2011 17:47
   oXbp:caption := "Geburtsort:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 17:47
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->GEB_IN ), 1->GEB_IN := x ) }
   oXbp:create():setData()
   oXbp:cargo := "GEB_IN"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

//------
   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR1*nHV,nBo}, {nBl1*nHV,nBh} )    //+07.06.2011 17:48
   oXbp:caption := "Familienstand:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 9 ; nFl := nFa*7
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl3*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 17:48
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:tabStop := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->FAMSTAND ), 1->FAMSTAND := x ) }
   oXbp:create():setData()
   oXbp:cargo := "FAMSTAND"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   oXbp := XbpStatic():new( drawingArea, , {(nR2+nFl3)*nHV,nBo}, {nBl2*nHV,nBh} )   //+07.06.2011 17:48
   oXbp:caption := "Rel.:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 9 ; nFl := nFa*7
   oXbp := XbpSLE():new( drawingArea, , {nR3*nHV,nBo}, {nFl3*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 17:48
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->KONF ), 1->KONF := x ) }
   oXbp:create():setData()
   oXbp:cargo := "KONF"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   oXbp := XbpStatic():new( drawingArea, , {(nR5-n15)*nHV,nBo}, {nBl2*nHV,nBh} ) //+07.06.2011 17:49
   oXbp:caption := "St-Ang.:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 15 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {(nR5+nFl2-nFl3)*nHV,nBo}, {nFl3*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )   //+07.06.2011 17:49
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->STAATSAN ), 1->STAATSAN := x ) }
   oXbp:create():setData()
   oXbp:cargo := "STAATSAN"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR1*nHV,nBo}, {nBl1*nHV,nBh} ) //+07.06.2011 17:49
   oXbp:caption := "Strb-Ort:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 1 ; nFl := nFa*7
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl5*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 17:49
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ), Satzsp(oDlg), ;
                        IIf( Upper(aEditcontrols[17]:getData()) = "W", ;
                        {aEditControls[19]:setdata(""), ;
                        aEditControls[20]:setdata("zu Hause"), ;
                        aEditControls[21]:setdata(aEditcontrols[8]:getData()), ;
                        aEditControls[22]:setdata(aEditcontrols[9]:getData()) }, ), ;
                        DbRUnlock(RecNo()), SetAppFocus( aEditControls[20] ) }
//   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->KZWO ), 1->KZWO := x ) }
   oXbp:create():setData()
   oXbp:cargo := "KZWO"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nFa := 1 ; nFl := nFa*7
   oXbp := XbpSLE():new( drawingArea, , {(nR2+nFl5+n5)*nHV,nBo}, {nFl5*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 17:50
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->KZORT ), 1->KZORT := x ) }
   oXbp:create():setData()
   oXbp:cargo := "KZORT"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   oXbp9 := XbpPushButton():new( drawingArea, , {(nR2+nR2)*nHV,nBo}, {nTl*nHV,nBh} ) //+07.06.2011 17:50
   oXbp9:caption := "~Kennz:"
   oXbp9:clipSiblings := .T.
   oXbp9:create()
   oXbp9:activate := {|| Satzsp(oDlg), Krankenhaus( Upper(Trim(aEditControls[19]:getdata())), ;
                        oDlg, @cVerst0, @cVerst1, @cVerst2, @cVerst3 ), ;
                        aEditControls[19]:setdata(cVerst0), ;
                        aEditControls[20]:setdata(cVerst1), ;
                        aEditControls[21]:setdata(cVerst2), ;
                        aEditControls[22]:setdata(cVerst3), ;
                        DbRUnlock(RecNo()), SetAppFocus( aEditControls[20] )  }

//   oXbp := XbpStatic():new( drawingArea, , {nR2+nFl3,nBo}, {nBl3,nBh} )
//   oXbp:caption := "Kennz:"
//   oXbp:clipSiblings := .T.
//   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
//   oXbp:create()
   nFa := 5 ; nFl := nFa*7
   oXbp := XbpSLE():new( drawingArea, , {(nR2+nFl1-nFl4)*nHV,nBo}, {nFl4*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:51
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ), Satzsp(oDlg), ;
                        Krankenhaus( Upper(Trim(aEditControls[19]:getdata())), ;
                        oDlg, @cVerst0, @cVerst1, @cVerst2, @cVerst3 ), ;
                        aEditControls[19]:setdata(cVerst0), ;
                        aEditControls[20]:setdata(cVerst1), ;
                        aEditControls[21]:setdata(cVerst2), ;
                        aEditControls[22]:setdata(cVerst3), ;
                        DbRUnlock(RecNo()), SetAppFocus( aEditControls[20] ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->VERST_KZ ), 1->VERST_KZ := x ) }
   oXbp:create():setData()
   oXbp:cargo := "VERST_KZ"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR4*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 17:51
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->VERST_IN1 ), 1->VERST_IN1 := x ) }
   oXbp:create():setData()
   oXbp:cargo := "VERST_IN1"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:52
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->VERST_IN2 ), 1->VERST_IN2 := x ) }
   oXbp:create():setData()
   oXbp:cargo := "VERST_IN2"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR4*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 17:52
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->VERST_IN3 ), 1->VERST_IN3 := x ) }
   oXbp:create():setData()
   oXbp:cargo := "VERST_IN3"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR1*nHV,nBo}, {nBl1*nHV,nBh} )    //+07.06.2011 17:52
   oXbp:caption := "Tot/Urs/Obd:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 17:52
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->TOTENSCH ), 1->TOTENSCH := x ) }
   oXbp:create():setData()
   oXbp:cargo := "TOTENSCH"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR4*nHV,nBo}, {nFl2*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:53
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->TODESURS ), 1->TODESURS := x ) }
   oXbp:create():setData()
   oXbp:cargo := "TODESURS"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   oXbp := XbpStatic():new( drawingArea, , {(nR4+nFl2+n5)*nHV,nBo}, {nBl4*nHV,nBh} )   //+07.06.2011 18:26
   oXbp:caption := "Obd:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 20 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {(nR7-n10-nFl5)*nHV,nBo}, {nFl5*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 17:53
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->OBDUKT ), 1->OBDUKT := x ) }
   oXbp:create():setData()
   oXbp:cargo := "OBDUKT"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

//------
   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR1*nHV,nBo}, {nBl1*nHV,nBh} ) //+07.06.2011 17:54
   oXbp:caption := "Gruft/Reihgr:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 20 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl2*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 17:54
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:tabStop := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->GRREIHE ), 1->GRREIHE := x ) }
   oXbp:create():setData()
   oXbp:cargo := "GRREIHE"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   oXbp := XbpStatic():new( drawingArea, , {nR3*nHV,nBo}, {(nBl2+nBl3)*nHV,nBh} )   //+07.06.2011 17:54
   oXbp:caption := "Gesteck:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 20 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR5*nHV,nBo}, {nFl2*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 17:54
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->SGESTECK ), 1->SGESTECK := x ) }
   oXbp:create():setData()
   oXbp:cargo := "SGESTECK"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR1*nHV,nBo}, {nBl1*nHV,nBh} ) //+07.06.2011 17:55
   oXbp:caption := "Dekoration:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 20 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl2*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:55
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->DEKO ), 1->DEKO := x ) }
   oXbp:create():setData()
   oXbp:cargo := "DEKO"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   oXbp := XbpStatic():new( drawingArea, , {nR3*nHV,nBo}, {(nBl2+nBl3)*nHV,nBh} ) //+07.06.2011 17:55
   oXbp:caption := "G„rtner:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 20 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR5*nHV,nBo}, {nFl2*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:56
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->GAERT ), 1->GAERT := x ) }
   oXbp:create():setData()
   oXbp:cargo := "GAERT"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR1*nHV,nBo}, {nBl1*nHV,nBh} )   //+07.06.2011 17:56
   oXbp:caption := "Testament:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 20 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl2*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:56
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->TESTAMENT ), 1->TESTAMENT := x ) }
   oXbp:create():setData()
   oXbp:cargo := "TESTAMENT"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   oXbp := XbpStatic():new( drawingArea, , {nR3*nHV,nBo}, {(nBl2+nBl3)*nHV,nBh} ) //+07.06.2011 17:56
   oXbp:caption := "Nachlaá:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 20 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR5*nHV,nBo}, {nFl2*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:57
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->NACHLASS ), 1->NACHLASS := x ) }
   oXbp:create():setData()
   oXbp:cargo := "NACHLASS"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR1*nHV,nBo}, {nBl1*nHV,nBh} )   //+07.06.2011 17:57
   oXbp:caption := "Kriegsrente j/n:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 1 ; nFl := nFa*20
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl5*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:57
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->KRIEGSRENT ), 1->KRIEGSRENT := x ) }
   oXbp:create():setData()
   oXbp:cargo := "KRIEGSRENT"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   oXbp := XbpStatic():new( drawingArea, , {nR3*nHV,nBo}, {(nBl2+nBl3)*nHV,nBh} ) //+07.06.2011 17:57
   oXbp:caption := "Vers-Amt:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 20 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR5*nHV,nBo}, {nFl2*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:58
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->VERSORGAMT ), 1->VERSORGAMT := x ) }
   oXbp:create():setData()
   oXbp:cargo := "VERSORGAMT"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR1*nHV,nBo}, {nBl1*nHV,nBh} )   //+07.06.2011 17:58
   oXbp:caption := "Autobus:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 20 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl2*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:58
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->BUSKOMM ), 1->BUSKOMM := x ) }
   oXbp:create():setData()
   oXbp:cargo := "BUSKOMM"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   oXbp := XbpStatic():new( drawingArea, , {nR3*nHV,nBo}, {(nBl2+nBl3)*nHV,nBh} ) //+07.06.2011 17:58
   oXbp:caption := "Bus-Zeit:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 10 ; nFl := nFa*7
   oXbp := XbpSLE():new( drawingArea, , {nR5*nHV,nBo}, {nFl4*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:59
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ), Satzsp(oDlg),;
                               aEditControls[35]:getdata(), ;
                               aEditControls[35]:setdata(), DbRUnlock(RecNo())  }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, IIf( 1->BUSZEIT=0, Trim(" "), Str( 1->BUSZEIT,5,2 ) ), ;
                1->BUSZEIT := Val( IIf( ","$x, Stuff( x, At(",",x), 1, "." ), x ) ) ) }
   oXbp:create():setData()
   oXbp:cargo := "BUSZEIT"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR1*nHV,nBo}, {nBl1*nHV,nBh} )   //+07.06.2011 17:59
   oXbp:caption := "Kaffeetrinken:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 20 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {nFl2*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 17:59
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->KAFFEE ), 1->KAFFEE := x ) }
   oXbp:create():setData()
   oXbp:cargo := "KAFFEE"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   oXbp := XbpStatic():new( drawingArea, , {nR3*nHV,nBo}, {(nBl2+nBl3)*nHV,nBh} ) //+07.06.2011 17:59
   oXbp:caption := "Trauerbriefe:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 20 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR5*nHV,nBo}, {nFl2*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 18:00
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->TBRIEFE ), 1->TBRIEFE := x ) }
   oXbp:create():setData()
   oXbp:cargo := "TBRIEFE"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR1*nHV,nBo}, {nBl1*nHV,nBh} )   //+07.06.2011 18:00
   oXbp:caption := "WAZ:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 70 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR2*nHV,nBo}, {2*nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )   //+07.06.2011 18:00
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->WAZ ), 1->WAZ := x ) }
   oXbp:create():setData()
   oXbp:cargo := "WAZ"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

//-----
   nBo := nRo-nBz
   oXbp := XbpStatic():new( drawingArea, , {(nR4)*nHV,nBo}, {(nBl1+nBl3)*nHV,nBh} ) //+07.06.2011 18:00
   oXbp:caption := "Anspr./Anrede:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 10 ; nFl := nFa*7
   oXbp := XbpSLE():new( drawingArea, , {(nR4+nFl1-nFl3)*nHV,nBo}, {nFl3*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 18:01
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:tabStop := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->ANSP_ANR ), 1->ANSP_ANR := x ) }
   oXbp:create():setData()
   oXbp:cargo := "ANSP_ANR"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )


   nBo := nBo-nBz
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR4*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 18:01
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->ANSP_NAME ), 1->ANSP_NAME := x ) }
   oXbp:create():setData()
   oXbp:cargo := "ANSP_NAME"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR4*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 18:01
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->ANSP_VNAME ), 1->ANSP_VNAME := x ) }
   oXbp:create():setData()
   oXbp:cargo := "ANSP_VNAME"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR4*nHV,nBo}, {nBl3*nHV,nBh} )   //+07.06.2011 18:01
   oXbp:caption := "Verw.:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {(nR4+nBl3)*nHV,nBo}, {(nFl2+nBl4)*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )   //+07.06.2011 18:02
//   oXbp := XbpSLE():new( drawingArea, , {nR4,nBo}, {nFl1,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->ANSP_BEZ ), 1->ANSP_BEZ := x ) }
   oXbp:create():setData()
   oXbp:cargo := "ANSP_BEZ"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR4*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 18:02
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->ANSP_STR ), 1->ANSP_STR := x ) }
   oXbp:create():setData()
   oXbp:cargo := "ANSP_STR"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR4*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 18:02
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->ANSP_ORT ), 1->ANSP_ORT := x ) }
   oXbp:create():setData()
   oXbp:cargo := "ANSP_ORT"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR4*nHV,nBo}, {nBl3*nHV,nBh} )   //+07.06.2011 18:03
   oXbp:caption := "Bank:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 28 ; nFl := nFa*5
   oXbp := XbpSLE():new( drawingArea, , {(nR4+nBl3)*nHV,nBo}, {(nFl2+nBl4)*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )   //+07.06.2011 18:03
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->ANSP_BANKV ), 1->ANSP_BANKV := x ) }
   oXbp:create():setData()
   oXbp:cargo := "ANSP_BANKV"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   nFa := 12 ; nFl := nFa*7
   oXbp := XbpSLE():new( drawingArea, , {nR4*nHV,nBo}, {nFl3*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 18:03
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->ANSP_KTO ), 1->ANSP_KTO := x ) }
   oXbp:create():setData()
   oXbp:cargo := "ANSP_KTO"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nFa := 10 ; nFl := nFa*7
   oXbp := XbpSLE():new( drawingArea, , {(nR7-nFl3-n10)*nHV,nBo}, {nFl3*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 18:03
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->ANSP_BLZ ), 1->ANSP_BLZ := x ) }
   oXbp:create():setData()
   oXbp:cargo := "ANSP_BLZ"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR4*nHV,nBo}, {nBl3*nHV,nBh} ) //+07.06.2011 18:04
   oXbp:caption := "Inh:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 28 ; nFl := nFa*5
   oXbp := XbpSLE():new( drawingArea, , {(nR4+nBl3)*nHV,nBo}, {(nFl1-nBl3)*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )   //+07.06.2011 18:04
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->ANSP_KTOI ), 1->ANSP_KTOI := x ) }
   oXbp:create():setData()
   oXbp:cargo := "ANSP_KTOI"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

//------
   nBo := nRo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR7*nHV,nBo}, {nBl1*nHV,nBh} ) //+07.06.2011 18:05
   oXbp:caption := "Best.-Art (E/F/S/A):"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 1 ; nFl := nFa*20
   oXbp := XbpSLE():new( drawingArea, , {nR8*nHV,nBo}, {nFl5*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 18:05
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:tabStop := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->BEST_ART ), 1->BEST_ART := x ) }
   oXbp:create():setData()
   oXbp:cargo := "BEST_ART"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   oXbp := XbpStatic():new( drawingArea, , {(nR8+nFl5+n5)*nHV,nBo}, {(nBl1+nBl3)*nHV,nBh} )  //+07.06.2011 18:05
   oXbp:caption := "šb.(ab Z/K):"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR9*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 18:05
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->UEBERFRIED ), 1->UEBERFRIED := x ) }
   oXbp:create():setData()
   oXbp:cargo := "UEBERFRIED"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR7*nHV,nBo}, {nBl1*3*nHV,nBh} )  //+07.06.2011 18:06
   oXbp:caption := "Friedhof:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR9*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 18:06
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->BEIFRIED ), 1->BEIFRIED := x ) }
   oXbp:create():setData()
   oXbp:cargo := "BEIFRIED"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   cDeko := "Zelle"
   aDeko := { "Zelle", "Kapelle", "Grab", "Korb" }
   oXbp := XbpStatic():new( drawingArea, , {nR7*nHV,nBo}, {nBl1*3*nHV,nBh} )  //+07.06.2011 18:06
   oXbp:caption := "Dekoration (Zelle/Kapelle/Grab/Korb):"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 20 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR9*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 18:07
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
//   oXbp:tabStop := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->DEKO ), 1->DEKO := x ) }
   oXbp:create():setData()
   oXbp:cargo := "DEKO"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR7*nHV,nBo}, {nBl1*3*nHV,nBh} )  //+07.06.2011 18:25
   oXbp:caption := "Trauerfeier (Sarg/Urne/keine)(Orgel):"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 28 ; nFl := nFa*5
   oXbp := XbpSLE():new( drawingArea, , {nR9*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 18:07
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->KOMMBEERD1 ), 1->KOMMBEERD1 := x ) }
   oXbp:create():setData()
   oXbp:cargo := "KOMMBEERD1"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR7*nHV,nBo}, {nBl1*3*nHV,nBh} ) //+07.06.2011 18:07
   oXbp:caption := "Gemeinde - Messe/WGD:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 28 ; nFl := nFa*5
   oXbp := XbpSLE():new( drawingArea, , {nR9*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 18:08
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->KOMMBEERD2 ), 1->KOMMBEERD2 := x ) }
   oXbp:create():setData()
   oXbp:cargo := "KOMMBEERD2"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR7*nHV,nBo}, {nBl2*nHV,nBh} )   //+07.06.2011 18:08
   oXbp:caption := "Messe in:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 28 ; nFl := nFa*4
   oXbp := XbpSLE():new( drawingArea, , {nR8*nHV,nBo}, {nFl2*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 18:08
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->MESSEWO ), 1->MESSEWO := x ) }
   oXbp:create():setData()
   oXbp:cargo := "MESSEWO"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   oXbp := XbpStatic():new( drawingArea, , {nR9*nHV,nBo}, {nBl3*nHV,nBh} )   //+07.06.2011 18:08
   oXbp:caption := "am:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 10 ; nFl := nFa*7
   oXbp := XbpSLE():new( drawingArea, , {(nR9+nBl3)*nHV,nBo}, {nFl3*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 18:09
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ), Satzsp(oDlg), ;
                               aEditControls[56]:getdata(), ;
                               aEditControls[56]:setdata(), DbRUnlock(RecNo())  }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, ;
                        IIf( DtoC( 1->MESSEDAT )=" ", trim(" "), DtoC( 1->MESSEDAT )), ;
                        IIf( len(x)<7, 1->MESSEDAT := CtoD(x+str(year(date(),4,0))), ;
                        1->MESSEDAT := CtoD(x) ) ) }
   oXbp:create():setData()
   oXbp:cargo := "MESSEDAT"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   nFa := 5 ; nFl := nFa*7
   oXbp := XbpSLE():new( drawingArea, , {nBSb-(nFl4+n15)*nHV,nBo}, {nFl4*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )   //+07.06.2011 18:09
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ), Satzsp(oDlg), ;
                               aEditControls[57]:getdata(), ;
                               aEditControls[57]:setdata(), DbRUnlock(RecNo())  }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, IIf( 1->MESSEZEIT=0, Trim(" "), Str( 1->MESSEZEIT,5,2 ) ), ;
                1->MESSEZEIT := Val( IIf( ","$x, Stuff( x, At(",",x), 1, "." ), x ) ) ) }
   oXbp:create():setData()
   oXbp:cargo := "MESSEZEIT"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR7*nHV,nBo}, {(nBl1+nBl3)*nHV,nBh} )   //+07.06.2011 18:09
   oXbp:caption := "Beerdigung am:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 20 ; nFl := nFa*5
   oXbp := XbpSLE():new( drawingArea, , {(nR8+nFl2-nFl3)*nHV,nBo}, {nFl3*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )   //+07.06.2011 18:09
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->BEERDTAG ), 1->BEERDTAG := x ) }
   oXbp:create():setData()
   oXbp:cargo := "BEERDTAG"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   oXbp := XbpStatic():new( drawingArea, , {nR9*nHV,nBo}, {nBl3*nHV,nBh} ) //+07.06.2011 18:10
   oXbp:caption := "am:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 10 ; nFl := nFa*7
   oXbp := XbpSLE():new( drawingArea, , {(nR9+nBl3)*nHV,nBo}, {nFl3*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 18:10
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
//   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ), ;
//                               aEditControls[59]:getdata(), ;
//                               aEditControls[59]:setdata()  }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ), Satzsp(oDlg), ;
                        obj:getdata(), obj:setdata(), ;
                        aEditControls[58]:setData( Cdow(CtoD(obj:getData()) ) ), DbRUnlock(RecNo()) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, ;
                        IIf( DtoC( 1->BEERD_DAT )=" ", trim(" "), DtoC( 1->BEERD_DAT )), ;
                        IIf( len(x)<7, 1->BEERD_DAT := CtoD(x+str(year(date(),4,0))), ;
                        1->BEERD_DAT := CtoD(x) ) ) }
   oXbp:create():setData()
   oXbp:cargo := "BEERD_DAT"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   nFa := 5 ; nFl := nFa*7
   oXbp := XbpSLE():new( drawingArea, , {nBSb-(nFl4+n15)*nHV,nBo}, {nFl4*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 18:11
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ), Satzsp(oDlg), ;
                               aEditControls[60]:getdata(), ;
                               aEditControls[60]:setdata(), DbRUnlock(RecNo())  }
   oXbp:group := XBP_WITHIN_GROUP
//   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Transform( 1->BEERD_ZEIT, '@N' ), 1->BEERD_ZEIT := ;
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, IIf( 1->BEERD_ZEIT=0, Trim(" "), Str( 1->BEERD_ZEIT,5,2 ) ), ;
                1->BEERD_ZEIT := Val( IIf( ","$x, Stuff( x, At(",",x), 1, "." ), x ) ) ) }
   oXbp:create():setData()
   oXbp:cargo := "BEERD_ZEIT"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR7*nHV,nBo}, {nBl1*3*nHV,nBh} ) //+07.06.2011 18:11
   oXbp:caption := "Pastor / Prediger:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 28 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR9*nHV,nBo}, {nFl1*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 18:11
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->PASTOR ), 1->PASTOR := x ) }
   oXbp:create():setData()
   oXbp:cargo := "PASTOR"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR7*nHV,nBo}, {nBl2*nHV,nBh} ) //+07.06.2011 18:11
   oXbp:caption := "Taxi:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 50 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR8*nHV,nBo}, {(nFl1+nFl2)*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 18:11
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->TAXI ), 1->TAXI := x ) }
   oXbp:create():setData()
   oXbp:cargo := "TAXI"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nRo-10*nBz
   oXbp := XbpStatic():new( drawingArea, , {nR7*nHV,nBo}, {(nBl1+nBl3)*nHV,nBh} )   //+07.06.2011 18:12
   oXbp:caption := "Sargtr„ger:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 2 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {(nR8+nFl2-nFl5)*nHV,nBo}, {nFl5*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )   //+07.06.2011 18:12
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:tabStop := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->SARGTRAE ), 1->SARGTRAE := x ) }
   oXbp:create():setData()
   oXbp:cargo := "SARGTRAE"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   oXbp := XbpStatic():new( drawingArea, , {nR9*nHV,nBo}, {(nBl1+nBl3)*nHV,nBh} )   //+07.06.2011 18:13
   oXbp:caption := "Aufbahrung:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 2 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nBSb-(nFl5+n15)*nHV,nBo}, {nFl5*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )   //+07.06.2011 18:13
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->KZOFFGE ), 1->KZOFFGE := x ) }
   oXbp:create():setData()
   oXbp:cargo := "KZOFFGE"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo-nBz
   oXbp := XbpStatic():new( drawingArea, , {nR7*nHV,nBo}, {nBl1*nHV,nBh} ) //+07.06.2011 18:13
   oXbp:caption := "Eig.Bekl.:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 20 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {(nR7+nBl1)*nHV,nBo}, {nFl2*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )  //+07.06.2011 18:13
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->BEKLEID ), 1->BEKLEID := x ) }
   oXbp:create():setData()
   oXbp:cargo := "BEKLEID"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )

   nBo := nBo
   oXbp := XbpStatic():new( drawingArea, , {nR9*nHV,nBo}, {nBl1*nHV,nBh} ) //+07.06.2011 18:14
   oXbp:caption := "Schmuck:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 20 ; nFl := nFa*6
//   oXbp := XbpSLE():new( drawingArea, , {nR9+nBl1,nBo}, {nFl2,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
   oXbp := XbpSLE():new( drawingArea, , {(nR9+nBl1)*nHV,nBo}, {nFl2*nHV,nBh}, )   //+07.06.2011 18:14
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->RING ), 1->RING := x ) }
   oXbp:create():setData()
   oXbp:cargo := "RING"		//+18.09.2018 21:22
   AAdd ( aEditControls, oXbp )



      oXbpN := XbpMle():new( drawingArea,, {nR7*nHV,nRo-16*nBz}, {nBSb-(nR7+n20)*nHV,5*nBz-n5}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 18:15
      oXbpN:dataLink  := {|x| IIf( PCount()==0, 1->NOTIZ, 1->NOTIZ := x ) }
      oXbpN:clipSiblings := .T.
      oXbpN:ignoreTab := .T.
      oXbpN:tabStop   := .T.
      oXbpN:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
      oXbpN:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
      oXbpN:wordWrap  := .T.
      oXbpN:horizScroll := .F.
      oXbpN:group     := XBP_END_GROUP
      oXbpN:create()
      Sleep(5)             //+07.06.2011 18:50 warten bis es created ist
      oXbpN:setData()      //+07.06.2011 18:49 separat wg race-Effekt
      AAdd ( aEditControls, oXbpN )

   nBo := nRo-17*nBz
   oXbp32 := XbpPushButton():new( drawingArea, , {nT2*nHV,nBo}, {nTl*nHV,nBh} ) //+07.06.2011 18:15
   oXbp32:caption := "TFM"
   oXbp32:clipSiblings := .T.
   oXbp32:create()
   oXbp32:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
            RunDosWin(oDlg, "DrFirma", {0,0}, {0,0}, "Todesfallmeldung ans Versorgungsamt", ;
                          Str(1->auftrnr,6,0)),  SetAppFocus( oBest ), ;
                        1->(DbRUnlock( ) ), Scatter ( aEditControls ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }
//            VersEingabe( Str(1->Auftrnr,6,0), oDlg ), ;

   oXbp33 := XbpPushButton():new( drawingArea, , {nT3*nHV,nBo}, {nTl*nHV,nBh} )  //+07.06.2011 18:15
   oXbp33:caption := "KK"
   oXbp33:clipSiblings := .T.
   oXbp33:group := XBP_BEGIN_GROUP
   oXbp33:create()
   oXbp33:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
            KKBrief(.T.), ;
                        1->(DbRUnlock( ) ), Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }
//+28.06.2018 13:40 KKBrief weiter hinten in dieser prg:
//            RunDosWin(oDlg, "FoKK", {0,0}, {0,0}, "Rechnung an die Krankenkasse", ;
//                          Str(1->auftrnr,6,0)),  SetAppFocus( oBest ), ;

   oXbp34a := XbpPushButton():new( drawingArea, , {nT4a*nHV,nBo}, {nTl*nHV,nBha} )
   oXbp34a:caption := "Guth.AZA"
   oXbp34a:clipSiblings := .T.
   oXbp34a:group := XBP_WITHIN_GROUP
   oXbp34a:create()
   oXbp34a:activate := {|| IIf( aData1[1] == Val( aEditcontrols[1]:editbuffer() ), Satzsp( oDlg ), ;
                        { 1->(DbAppend()), Satzsp( oDlg ), ;
                        aData1 := SatzGet( Select(), RecNo() )} ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
            HTML_Brief( "dummy.abr", "KSO_GhAusz.png" ), ;
            WriterBrief( 1->ansp_anr,Trim(1->ansp_vname)+" "+1->ansp_name,1->ansp_str,1->ansp_ort,"Guthaben.txt" ), ;
                        1->(DbRUnlock( Recno() ) ), Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }

   oXbp34b := XbpPushButton():new( drawingArea, , {nT4b*nHV,nBo}, {nTl*nHV,nBha} )
   oXbp34b:caption := "A-Konto"
   oXbp34b:clipSiblings := .T.
   oXbp34b:group := XBP_WITHIN_GROUP
   oXbp34b:create()
   oXbp34b:activate := {|| IIf( aData1[1] == Val( aEditcontrols[1]:editbuffer() ), Satzsp( oDlg ), ;
                        { 1->(DbAppend()), Satzsp( oDlg ), ;
                        aData1 := SatzGet( Select(), RecNo() )} ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
            WriterBrief( 1->ansp_anr,Trim(1->ansp_vname)+" "+1->ansp_name,1->ansp_str,1->ansp_ort,"ErinnA-Kto.txt" ), ;
                        1->(DbRUnlock( Recno() ) ), Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }

//   oXbp34 := XbpPushButton():new( drawingArea, , {nT4,nBo}, {nTl,nBh} )
//   oXbp34:caption := "~Uebe"
//   oXbp34:clipSiblings := .T.
//   oXbp34:group := XBP_WITHIN_GROUP
//   oXbp34:create()
//   oXbp34:activate := {|| IIf( aData1[1] == Val( aEditcontrols[1]:editbuffer() ), Satzsp( oDlg ), ;
//                        { 1->(DbAppend()), Satzsp( oDlg ), ;
//                        aData1 := SatzGet( Select(), RecNo() )} ), ;
//                        Gather( aEditControls ), 1->(DbCommit()), ;
//                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
//            Rech4Eingabe( Str(1->Auftrnr,6,0), oDlg ), ;
//                        1->(DbRUnlock( Recno() ) ), Scatter ( aEditControls ), ;
//                        aData1 := SatzGet( Select(), RecNo() ), ;
//                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
//                        oXbp:enable() }

   oXbp35 := XbpPushButton():new( drawingArea, , {nT5*nHV,nBo}, {nTl*nHV,nBh} )  //+07.06.2011 18:15
   oXbp35:caption := "Stap-V"
   oXbp35:clipSiblings := .T.
   oXbp35:group := XBP_WITHIN_GROUP
   oXbp35:create()
   oXbp35:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ),  ;
           StapelVEingabe( oDlg ),  SetAppFocus( oBest ), ;
                        1->(DbRUnlock( ) ), Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }

   oXbp36 := XbpPushButton():new( drawingArea, , {nT6*nHV,nBo}, {nTl*nHV,nBh} )
   oXbp36:caption := "Kuvert"
   oXbp36:clipSiblings := .T.
   oXbp36:group := XBP_END_GROUP
   oXbp36:create()
//   oXbp6:activate := {|| Satzsp( oDlg ),  Gather( aEditControls ), ;
   oXbp36:activate := {|| IIf( aData1[1] == Val( aEditcontrols[1]:editbuffer() ), Satzsp( oDlg ), ;
                        { 1->(DbAppend()), Satzsp( oDlg ), ;
                        aData1 := SatzGet( Select(), RecNo() )} ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ),  ;
           KuvertDruck( "j" ), ;
                        1->(DbRUnlock( Recno() ) ), Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }

   oXbp37 := XbpPushButton():new( drawingArea, , {nT7*nHV,nBo}, {nTl*nHV,nBh} )
   oXbp37:caption := "KuvKl"
   oXbp37:clipSiblings := .T.
   oXbp37:create()
   oXbp37:activate := {|| IIf( aData1[1] == Val( aEditcontrols[1]:editbuffer() ), Satzsp( oDlg ), ;
                        { 1->(DbAppend()), Satzsp( oDlg ), ;
                        aData1 := SatzGet( Select(), RecNo() )} ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ),  ;
           KuvertDruck( "k" ), ;
                        1->(DbRUnlock( Recno() ) ), Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }

   nBo := nRo-18*nBz
   oXbp12 := XbpPushButton():new( drawingArea, , {nT2*nHV,nBo}, {nTl*nHV,nBh} ) //+07.06.2011 18:16
   oXbp12:caption := "~Brief"
   oXbp12:clipSiblings := .T.
   oXbp12:create()
   oXbp12:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
            AdressBrief( 1->ansp_anr, (Trim(1->ansp_vname)+" "+Trim(1->ansp_name)), ;
                              1->ansp_str, 1->ansp_ort ),  SetAppFocus( oBest ), ;
                        1->(DbRUnlock( ) ), Scatter ( aEditControls ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }
//            VersEingabe( Str(1->Auftrnr,6,0), oDlg ), ;

   oXbp13 := XbpPushButton():new( drawingArea, , {nT3*nHV,nBo}, {nTl*nHV,nBh} )  //+07.06.2011 18:16
   oXbp13:caption := "~Term"
   oXbp13:clipSiblings := .T.
   oXbp13:group := XBP_BEGIN_GROUP
   oXbp13:create()
   oXbp13:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
            TerminEingabe( oDlg ),  SetAppFocus( oBest ), ;
                        1->(DbRUnlock( ) ), Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }

//   oXbp14 := XbpPushButton():new( drawingArea, , {nT4*nHV,nBo}, {nTl*nHV,nBh} ) //+07.06.2011 18:16
//   oXbp14:caption := "~Uebe"
//   oXbp14:clipSiblings := .T.
//   oXbp14:group := XBP_WITHIN_GROUP
//   oXbp14:create()
////   oXbp14:activate := {|| Satzsp( oDlg ), ;
////                        Gather( aEditControls ), 1->(DbCommit()), ;
////                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
////            RechEingabe( Str(1->Auftrnr,6,0), oDlg,, "bl_r" ),  SetAppFocus( oBest ), ;
////                        1->(DbRUnlock( ) ), Scatter ( aEditControls ), ;
////                        aData1 := SatzGet( Select(), RecNo() ), ;
////                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
////                        oXbp:enable() }
//   oXbp14:activate := {|| Satzsp( oDlg ), ;
//                        Gather( aEditControls ), 1->(DbCommit()), ;
//                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
//            Rech4Eingabe( Str(1->Auftrnr,6,0), oDlg ),  SetAppFocus( oBest ), ;
//                        1->(DbRUnlock( ) ), Scatter ( aEditControls ), ;
//                        aData1 := SatzGet( Select(), RecNo() ), ;
//                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
//                        oXbp:enable() }

   oXbp34c := XbpPushButton():new( drawingArea, , {nT4c*nHV,nBo}, {nTl*nHV,nBha} )
   oXbp34c:caption := "GH-Mittlg"
   oXbp34c:clipSiblings := .T.
   oXbp34c:group := XBP_WITHIN_GROUP
   oXbp34c:create()
   oXbp34c:activate := {|| IIf( aData1[1] == Val( aEditcontrols[1]:editbuffer() ), Satzsp( oDlg ), ;
                        { 1->(DbAppend()), Satzsp( oDlg ), ;
                        aData1 := SatzGet( Select(), RecNo() )} ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
            WriterBrief( 1->ansp_anr,Trim(1->ansp_vname)+" "+1->ansp_name,1->ansp_str,1->ansp_ort,"ErinnTF.txt" ), ;
                        1->(DbRUnlock( Recno() ) ), Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }

   oXbp34d := XbpPushButton():new( drawingArea, , {nT4d*nHV,nBo}, {nTl*nHV,nBha} )
   oXbp34d:caption := "Kuv.KSO"
   oXbp34d:clipSiblings := .T.
   oXbp34d:group := XBP_WITHIN_GROUP
   oXbp34d:create()
   oXbp34d:activate := {|| IIf( aData1[1] == Val( aEditcontrols[1]:editbuffer() ), Satzsp( oDlg ), ;
                        { 1->(DbAppend()), Satzsp( oDlg ), ;
                        aData1 := SatzGet( Select(), RecNo() )} ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
           KuvertDruck( "j", .T. ), ;
                        1->(DbRUnlock( Recno() ) ), Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }

   oXbp15 := XbpPushButton():new( drawingArea, , {nT5*nHV,nBo}, {nTl*nHV,nBh} )  //+07.06.2011 18:16
   oXbp15:caption := "Ser~ie"
   oXbp15:clipSiblings := .T.
   oXbp15:group := XBP_WITHIN_GROUP
   oXbp15:create()
   oXbp15:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ),  ;
           SerienEingabe( oDlg ),  SetAppFocus( oBest ), ;
                        1->(DbRUnlock( ) ), Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }

   oXbp16 := XbpPushButton():new( drawingArea, , {nT6*nHV,nBo}, {nTl*nHV,nBh} ) //+07.06.2011 18:16
   oXbp16:caption := "~Leist"
   oXbp16:clipSiblings := .T.
   oXbp16:group := XBP_END_GROUP
   oXbp16:create()
//   oXbp6:activate := {|| Satzsp( oDlg ),  Gather( aEditControls ), ;
   oXbp16:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ),  ;
           ArtikelEingabe( oDlg ),  SetAppFocus( oBest ), ;
                        1->(DbRUnlock( ) ), Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }

   oXbp17 := XbpPushButton():new( drawingArea, , {nT7*nHV,nBo}, {nTl*nHV,nBh} )  //+07.06.2011 18:17
   oXbp17:caption := "For~m"
   oXbp17:clipSiblings := .T.
   oXbp17:create()
   oXbp17:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ),  ;
           FormularVerwaltung( oDlg ),  SetAppFocus( oBest ), ;
                        1->(DbRUnlock( ) ), Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }

   nBo := nRo-19*nBz
   oXbp22 := XbpPushButton():new( drawingArea, , {nT2*nHV,nBo}, {nTl*nHV,nBh} ) //+07.06.2011 18:17
   oXbp22:caption := "~Vers"
   oXbp22:clipSiblings := .T.
   oXbp22:create()
   oXbp22:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
            VersEingabe( Str(1->Auftrnr,6,0), oDlg ),  SetAppFocus( oBest ), ;
                        1->(DbRUnlock( ) ), Scatter ( aEditControls ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }

//                        Neu( oDlg, @aData1, nXmod, nYmod ), Radio(), 1->(DbCommit()), ;


   oXbp23 := XbpPushButton():new( drawingArea, , {nT3*nHV,nBo}, {nTl*nHV,nBh} )  //+07.06.2011 18:17
   oXbp23:caption := "Rec~h"
   oXbp23:clipSiblings := .T.
   oXbp23:group := XBP_BEGIN_GROUP
   oXbp23:create()
   oXbp23:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
            Rech3Eingabe( Str(1->Auftrnr,6,0), oDlg ), SetAppFocus( oBest ), ;
                        1->(DbRUnlock( ) ), Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }

   oXbp24 := XbpPushButton():new( drawingArea, , {nT4*nHV,nBo}, {nTl*nHV,nBh} ) //+07.06.2011 18:17
   oXbp24:caption := "Au~fst"
   oXbp24:clipSiblings := .T.
   oXbp24:group := XBP_WITHIN_GROUP
   oXbp24:create()
   oXbp24:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
            Rech5Eingabe( Str(1->Auftrnr,6,0), oDlg ),  SetAppFocus( oBest ), ;
                        1->(DbRUnlock( ) ), Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }

   oXbp25 := XbpPushButton():new( drawingArea, , {nT5*nHV,nBo}, {nTl*nHV,nBh} )  //+07.06.2011 18:18
   oXbp25:caption := "Sta~pel"
   oXbp25:clipSiblings := .T.
   oXbp25:group := XBP_WITHIN_GROUP
   oXbp25:create()
   oXbp25:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ),  ;
           StapelEingabe( oDlg ),  SetAppFocus( oBest ), ;
                        1->(DbRUnlock( ) ), Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }

   oXbp26 := XbpPushButton():new( drawingArea, , {nT6*nHV,nBo}, {nTl*nHV,nBh} ) //+07.06.2011 18:18
   oXbp26:caption := "Adr"
   oXbp26:clipSiblings := .T.
   oXbp26:group := XBP_END_GROUP
   oXbp26:create()
//   oXbp26:activate := {|| Satzsp( oDlg ),  Gather( aEditControls ), ;
   oXbp26:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ),  ;
           AdressEingabe( oDlg ),  SetAppFocus( oBest ), ;
                        1->(DbRUnlock( ) ), Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }

   oXbp27 := XbpPushButton():new( drawingArea, , {nT7*nHV,nBo}, {nTl*nHV,nBh} )  //+07.06.2011 18:18
   oXbp27:caption := "K~ont"
   oXbp27:clipSiblings := .T.
   oXbp27:create()
   oXbp27:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ),  ;
           AuftrKontrolle( Str(1->Auftrnr,6,0), oDlg ),  SetAppFocus( oBest ), ;
                        1->(DbRUnlock( ) ), Scatter ( aEditControls ), ;
                        aData1 := SatzGet( Select(), RecNo() ), ;
                        SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY )), ;
                        oXbp:enable() }



   nBo := nRo-20*nBz
   oXbp := XbpStatic():new( drawingArea, , {nR7*nHV,nBo}, {nBl2*nHV,nBh} )   //+07.06.2011 18:18
   oXbp:caption := "Status:"
   oXbp:clipSiblings := .T.
   oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
   oXbp:create()
   nFa := 50 ; nFl := nFa*6
   oXbp := XbpSLE():new( drawingArea, , {nR8*nHV,nBo}, {(nFl1+nFl2)*nHV,nBh}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) //+07.06.2011 18:19
   oXbp:bufferLength := nFa
   oXbp:clipSiblings := .T.
   oXbp:setInputFocus  := {|mp1,mp2,obj| HiliteSle( obj ) }
   oXbp:killInputFocus := {|mp1,mp2,obj| DeHiliteSle( obj ) }
   oXbp:group := XBP_WITHIN_GROUP
   oXbp:dataLink := {|x| IIf( PCOUNT()==0, Trim( 1->STATUSTEXT ), 1->STATUSTEXT := x ) }
   oXbp:create():setData()
   AAdd ( aEditControls, oXbp )

   nBo := nRo-2*nBz
   oXbp1V := XbpPushButton():new( drawingArea, , {nR1*nHV,nBo}, {nTl/2*nHV,nBh} )  //+07.06.2011 17:33
   oXbp1V:caption := "V"
   oXbp1V:clipSiblings := .T.
   oXbp1V:create()
   oXbp1V:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
                        Suchen( oDlg, @aData1, nXmod, nYmod*2 ), Scatter ( aEditControls ), ;
                        IIf( cV == "V", ;
                        oBest:setColorBG( nBSFarbe ),oBest:setColorBG( nBGFarbe )), ;
                        oXbp:enable() }

   nBo := nRo-5*nBz
   oXbp1S := XbpPushButton():new( drawingArea, , {nR1*nHV,nBo}, {nTl/2*nHV,nBh} )  //+07.06.2011 17:33
   oXbp1S:caption := "S"
   oXbp1S:clipSiblings := .T.
   oXbp1S:create()
   oXbp1S:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
                        Suchen( oDlg, @aData1, nXmod, nYmod*2 ), Scatter ( aEditControls ), ;
                        IIf( cV == "V", ;
                        oBest:setColorBG( nBSFarbe ),oBest:setColorBG( nBGFarbe )), ;
                        oXbp:enable() }

   nBo := nRo-1*nBz
   oXbp1A := XbpPushButton():new( drawingArea, , {nR4*nHV,nBo}, {nTl/2*nHV,nBh} )  //+07.06.2011 17:33
   oXbp1A:caption := "A"
   oXbp1A:clipSiblings := .T.
   oXbp1A:create()
   oXbp1A:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
                        Suchen( oDlg, @aData1, nXmod, nYmod*2 ), Scatter ( aEditControls ), ;
                        IIf( cV == "V", ;
                        oBest:setColorBG( nBSFarbe ),oBest:setColorBG( nBGFarbe )), ;
                        oXbp:enable() }

   nBo := nRo
   oXbp1F := XbpPushButton():new( drawingArea, , {nR4*nHV,nBo}, {nTl/2*nHV,nBh} )  //+07.06.2011 17:33
   oXbp1F:caption := "F"
   oXbp1F:clipSiblings := .T.
   oXbp1F:create()
   oXbp1F:activate := {|| Satzsp( oDlg ), ;
                        Gather( aEditControls ), 1->(DbCommit()), ;
                        Trckng( 1, RecNo(), aData1, cV ), 1->(DbRUnlock( Recno() ) ), ;
                        Suchen( oDlg, @aData1, nXmod, nYmod*2 ), Scatter ( aEditControls ), ;
                        IIf( cV == "V", ;
                        oBest:setColorBG( nBSFarbe ),oBest:setColorBG( nBGFarbe )), ;
                        oXbp:enable() }

//------------------------------------------
   oDlg:setModalState( XBP_DISP_APPMODAL )
   oDlg:show()

   IIf( cV == "V", oBest:setColorBG( nBSFarbe ),oBest:setColorBG( nBGFarbe )) //07.06.2011 20:44GRA_CLR_BACKGROUND ))
   SetAppFocus( oDlg )
//*
   aData1 := SatzGet( Select(), RecNo() )               // TT
*//
//------------------------------------------
//      das Ende des Hauptprogramms:

   nEvent := xbe_None
   DO WHILE nEvent <> xbeP_Close
      nEvent := AppEvent( @mp1, @mp2, @oXbp )
      IF nEvent = xbeP_Close
         IF Empty(mp1)
            y := AppQuit( oDlg, aEditControls, aData1, cV )
            IF y  == XBPMB_RET_CANCEL .OR. ( y == XBPMB_RET_NO .AND. IsMemVar( "NurWindows" ) )
               nEvent := 0
               LOOP
            ENDIF
         ELSE           // wenn Abbruch durch AppQuit, dann mp1!=NIL
            LOOP  //k 08.07.2013 22:18 weil sonst das Fenster destroyed wird vor dem gather()!
         ENDIF
      ENDIF
      IF nEvent == xbeP_Keyboard
      DO CASE
         CASE mp1 == xbeK_ALT_S
         	SetAppFocus(oXbp1)	//+21.09.2018 13:36
            PostAppEvent( xbeP_Activate,,, oXbp1)
         CASE mp1 == xbeK_ALT_N
            PostAppEvent( xbeP_Activate,,, oXbp2)
         CASE mp1 == xbeK_SH_PGUP
            PostAppEvent( xbeP_Activate,,, oXbp3)
         CASE mp1 == xbeK_PGUP
            PostAppEvent( xbeP_Activate,,, oXbp4)
         CASE mp1 == xbeK_PGDN
            PostAppEvent( xbeP_Activate,,, oXbp5)
         CASE mp1 == xbeK_SH_PGDN
            PostAppEvent( xbeP_Activate,,, oXbp6)
         CASE mp1 == xbeK_ESC .or. mp1 == xbeK_F10
            y := AppQuit( oDlg, aEditControls, aData1, cV )
            IF y  == XBPMB_RET_CANCEL .OR. ( y == XBPMB_RET_NO .AND. IsMemVar( "NurWindows" ) )
               LOOP
            ENDIF
//////            PostAppEvent( xbeP_Activate,,, oXbp7)
         CASE mp1 == xbeK_ALT_E
            PostAppEvent( xbeP_Activate,,, oXbp8)
         CASE mp1 == xbeK_ALT_K
            PostAppEvent( xbeP_Activate,,, oXbp9)
         CASE mp1 == xbeK_ALT_V
            PostAppEvent( xbeP_Activate,,, oXbp22)
         CASE mp1 == xbeK_ALT_H
            PostAppEvent( xbeP_Activate,,, oXbp23)
         CASE mp1 == xbeK_ALT_F
            PostAppEvent( xbeP_Activate,,, oXbp24)
         CASE mp1 == xbeK_ALT_P
            PostAppEvent( xbeP_Activate,,, oXbp25)
         CASE mp1 == xbeK_ALT_O
            PostAppEvent( xbeP_Activate,,, oXbp27)
//         CASE mp1 == xbeK_ALT_D
//            Satzsp( oDlg );  Gather( aEditControls )
//            Trckng( 1, RecNo(), aData1, cV )
//            cAuf := str( Auftrnr,6,0 )
////            Rechdruni( cAuf, "h", DtoC( date() ), "j", 1 )
//            Blatt1dr( "blatt1dr.dbf", "Bestattungs-Auftrag", oDlg, 700*nV, 480*nV )
//            Scatter ( aEditControls )
//            aData1 := SatzGet( Select(), RecNo() )
//            SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY ))
//            oXbp:enable()
         CASE mp1 == xbeK_ALT_R
            Satzsp( oDlg );  Gather( aEditControls )
            Trckng( 1, RecNo(), aData1, cV )
            Radio()
            Scatter ( aEditControls )
            aData1 := SatzGet( Select(), RecNo() )
            SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY ))
            oXbp:enable()
//         CASE mp1 == xbeK_CTRL_F3
//            Satzsp( oDlg );  Gather( aEditControls )
//            Trckng( 1, RecNo(), aData1, cV )
//            KRech3Eingabe( Str(1->Auftrnr,6,0), oDlg )
//            Scatter ( aEditControls )
//            aData1 := SatzGet( Select(), RecNo() )
//            SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY ))
//            oXbp:enable()
//         CASE mp1 == xbeK_CTRL_F4
//            SELECT 23
//            USE C:\HDBE\SICHERUN\AUFTR
//            INDEX ON Str(auftrnr,6,0) TO C:\HDBE\SICHERUN\XAUFAUF
//            USE
//            SELECT 1
//         CASE mp1 == xbeK_CTRL_F5
//            Satzsp( oDlg );  Gather( aEditControls )
//            Trckng( 1, RecNo(), aData1, cV )
//            KRech5Eingabe( Str(1->Auftrnr,6,0), oDlg )
//            Scatter ( aEditControls )
//            aData1 := SatzGet( Select(), RecNo() )
//            SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY ))
//            oXbp:enable()
         CASE mp1 == xbeK_CTRL_F12
               IF ConfirmBox( oCB, ;      //+24.03.2012 10:59
                           "Wollen Sie wirklich diesen Auftrag in allen Filialen l”schen?" + CRLF + ;
                           "Achtung: OK schreibt den L”schbefehl in die šbertragungsdatei!" + CRLF + ;
                           "abbrechen mit <Esc>", ;
                           "Funktion Auftrag fernl”schen!", ;
                           XBPMB_OKCANCEL, ;
                           XBPMB_QUESTION ) == XBPMB_RET_OK
                  IF ConfirmBox( oCB, ;      //+24.03.2012 10:58
                              "Die Daten dieser Maske wirklich als gel”scht markieren?" + CRLF + ;
                              "(Der Datensatz wird dann beim n„chsten Prflauf gel”scht!)" + CRLF + ;
                              "abbrechen mit <Esc>", ;
                              "Zur Sicherheit nochmal best„tigen:", ;
                              XBPMB_OKCANCEL, ;
                              XBPMB_QUESTION ) == XBPMB_RET_OK
                        Satzsp( oDlg )
                        1->name:="#"+Left(1->name,Len(1->name)-1)
                        1->ansp_name:="#"+Left(1->ansp_name,Len(1->ansp_name)-1)
                        1->(DbCommit())
                        Scatter( aEditcontrols ) //+24.03.2012 11:20
                        DbUnlock(RecNo()) //+24.03.2012 10:58
                        Trckng( 1, RecNo(), aData1, cV )
                        oXbp:enable()
                  ENDIF
               ENDIF
/*16.04.2008 12:27 damit kann man eine Bestattungsfallmaske mit Rechnung + Zahlung komplett zwangs-bertragen: */
         CASE mp1 == xbeK_SH_CTRL_DOWN //+28.03.2017 22:03
            AuftragsKorrektur()
         CASE mp1 == xbeK_CTRL_F11 .OR. mp1 == xbeK_SH_CTRL_UP //+24.03.2012 12:04 UP
               IF ConfirmBox( oCB, ;
                           "Wollen Sie wirklich diesen Auftrag komplett bertragen?" + CRLF + ;
                           "Achtung: OK schreibt diese Daten in die šbertragungsdatei!" + CRLF + ;
                           "(Sie k”nnen gleich ausw„hlen, ob auch mit Rechnung und Zahlungen)" + CRLF + ;
                           "abbrechen mit <Esc>", ;
                           "Funktion Auftrag bertragen!", ;
                           XBPMB_OKCANCEL, ;
                           XBPMB_QUESTION ) == XBPMB_RET_OK
                    Satzsp( oDlg )
                    Gather( aEditcontrols )
                    DbRUnlock(RecNo())
//                    1->(DbSkip(0))
//                    aData1 := SatzGet( Select(), RecNo() )               // TT
                    TTausBEST()
               ENDIF
            /* 28.03.2017 19:26 vorsichtshalber geREMt
            CASE mp1 == xbeK_SH_CTRL_RIGHT   //+24.03.2012 12:03
               IF ConfirmBox( oCB, ;
                           "Wollen Sie wirklich alle Auftr„ge dieser Filiale ab diesem bis x99 komplett bertragen?" + CRLF + ;
                           "Achtung: OK schreibt die Daten +Rechnung +Zahlungen in die šbertragungsdatei!" + CRLF + ;
                           "abbrechen mit <Esc>", ;
                           "Funktion Auftrag bertragen!", ;
                           XBPMB_OKCANCEL, ;
                           XBPMB_QUESTION ) == XBPMB_RET_OK
                    Satzsp( oDlg )
                    Gather( aEditcontrols )
                    DbRUnlock(RecNo())
                    aData1 := SatzGet( Select(), RecNo() )               // TT
                    cAuf := Str(1->auftrnr)
                 DO WHILE Val(SubStr(cAuf,1,4)+"99") >= 1->auftrnr
                    TTausBEST("ohne Abfrage")  // +Rechnung+Zahlungen, alle Auftr„ge dieser Filiale ab dem aktuellen
                    1->(DbSkip())
                    Scatter( aEditcontrols )
                    aData1 := SatzGet( Select(), RecNo() )               // TT
                  ENDDO
                  MsgBox("Fertig! Der angezeigte Auftrag wurde noch nicht bertragen!"+CRLF+"Weiter bertragen: nochmal Strg+Umschalt+Rechtspfeil.")
               ENDIF
               */
// mit dieser Funktion k”nnte man Gesamtauftr„ge (Best/VV/Auftr) zwangs-bertragen:
//geREMt 15.03.2008 16:54:
//         CASE mp1 == xbeK_ALT_T
//            TTausBVA( 1->auftrnr, 230000, Val(SubStr( Str(1->auftrnr,6,0),3,1 )) )
//////         CASE mp1 == xbeK_F7     // Test fr die Vorvertrags/Stadt-Unterscheidung
//////            oBest:setColorBG( iii := GRA_CLR_BACKGROUND )
//////         CASE mp1 == xbeK_F8
//////            oBest:setColorBG( ++iii )
         CASE mp1 == xbeK_CTRL_F          //+26.11.2011 20:37
            IF nBGFarbe == GraMakeRGBColor({255,255,225})
               nBGFarbe := GRA_CLR_BACKGROUND
            ELSEIF nBGFarbe == GraMakeRGBColor({225,255,255})
               nBGFarbe := GraMakeRGBColor({255,225,255})
            ELSEIF nBGFarbe == GraMakeRGBColor({255,225,255})
               nBGFarbe := GraMakeRGBColor({255,255,225})
            ELSE
               nBGFarbe := GraMakeRGBColor({225,255,255})
            ENDIF
            oBest:setColorBG( nBGFarbe )
         CASE mp1 == xbeK_F1
            ModalDialog( (cDatver+"f1.dbf"), "Bedienungshinweise", oDlg, 600*nH, 480*nV )
            SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY ))
            oXbp:enable()
         CASE mp1 == xbeK_CTRL_DEL
            Loeschen( oDlg, 1->auftrnr )
            Scatter ( aEditControls )
            aData1 := SatzGet( Select(), RecNo() )
            SetAppFocus( oDlg:childFromName( ID_SLE_PRIMKEY ))
//         CASE nEvent == xbeUser_FileMarked
//            mp2 := oXbpC:XbpSLE:getData() + mp1
//            oXbpC:XbpSLE:setData( mp2 )
//         CASE nEvent == xbeUser_FileSelected
//            mp2 := oXbpC:XbpSLE:getData() + mp1
//            oXbpC:XbpSLE:setData( mp2 )
         CASE mp1 == xbeK_SH_CTRL_HOME //+08.10.2012 18:28 erzeugt nach PLZ+KONF+... sortierte Datei
            FallAbgleich() //+22.12.2013 18:00
      //in Enwicklung geREMt: 22.12.2013 15:37         KundenHistorie(oCB,{"ortgrab","Friedhof"})
//            nRec := 1->(RecNo())
//            1->(DbSuspendNotifications())
//            COPY TO auswert.dbf fields plz_ort, konf /C, beifried, best_art, grreihe, messewo, strasse, verst_in2, verst_in3, gestorben, auftrnr
//            SELECT 11
//            USE auswert
//            INDEX on plz_ort + konf + beifried + best_art + grreihe TO auswert
//            USE
//            SELECT 1
//            1->(DbGoto(nRec))
//            1->(DbResumeNotifications())
      ENDCASE
      ENDIF
      oXbp:handleEvent( nEvent, mp1, mp2 )
   ENDDO

// zum Duplizieren von S„tzen unter einer anderen Nummer:
//////   IIf( aData1[1] == Val( aEditcontrols[1]:editbuffer() ), Satzsp(oDlg), ;
//////                        { IIf( Val( aEditcontrols[1]:editbuffer() ) == 0, ;
//////                        {Satzsp( oDlg ), aEditcontrols[1]:getdata()}, ;
//////                        {1->(DbAppend()), Satzsp( oDlg ), ;
//////                        aData1 := SatzGet( Select(), RecNo() )} )} )
////   IIf( aData1[1] == Val( aEditcontrols[1]:editbuffer() ), Satzsp( oDlg ), ;
////                        { IIf( Val( aEditcontrols[1]:editbuffer() ) == 0, ;
////                        {Satzsp( oDlg ), aEditcontrols[1]:getdata()}, ;
////                        {1->(DbAppend()), Satzsp( oDlg ), ;
////                        aData1 := SatzGet( Select(), RecNo() )} )} )

//   IIf( aData1[1] == Val( aEditcontrols[1]:getdata() ), Satzsp( oDlg ), ;
//             { aEditcontrols[1]:setdata( Str( ;
//             IIf( Val( aEditcontrols[1]:getdata() ) == 0, 0, aData1[1] ),6,0 ) ), ;
//             Satzsp( oDlg ), 1->(DbAppend()) } )
   Satzsp(oDlg)
   Gather( aEditControls )
   __SETFUNCTION( 9, str( 1->AUFTRNR,6,0 ) )
   cPubAuf := Str( 1->auftrnr,6,0 )
   SELECT 20
   USE mwstdat EXCLUSIVE
   20->pubauf := cPubAuf
   USE
   SELECT 1
   oDlg:setModalState( XBP_DISP_MODELESS )
   oDlg:destroy()
   1->(DbCommit())
   Trckng( 1, RecNo(), aData1, cV )
   1->(DbRUnlock())
//   Radio( aData1 ) // dort Trckng()
   SetAppFocus( oBestMenu )
   SET DATE TO GERMAN
RETURN
//------------------------------------------

//**      oXbp:dataLink  := {|x| IIf( x==NIL, NOTI( DbRLockList() ), NOTIZ := x ) }
FUNCTION Noti( aDRLL )
   LOCAL cNoti := " "
   FOR i := 1 TO Len( aDRLL )
      cNoti := cNoti+Chr(13)+Chr(10)+Str( aDRLL[i] )
   NEXT
RETURN cNoti

FUNCTION No( oDlg )
   REPLACE 1->NOTIZ WITH oDlg:getdata()
RETURN .T.

//------------------------------------------
FUNCTION FehlerBehandlung(oError)   //+24.03.2012 14:46
   LOCAL cFehler := "Fehlerart: "+oError:description +CRLF+ ;
                  "in Operation: "+oError:operation +CRLF+ ;
                  "in Thread: "+LTrim(Str(oError:thread)) +CRLF+ ;
                  IIf(!Empty(oError:filename), "Datei: "+oError:filename +CRLF,"") + ;
                  "aufgerufen von:" +CRLF+ ;
                  IIf( !Empty(ProcName(1)), ProcName(1)+"("+LTrim(Str(ProcLine(1)))+")"+CRLF,"")+;
                  IIf( !Empty(ProcName(2)), ProcName(2)+"("+LTrim(Str(ProcLine(2)))+")"+CRLF,"")+;
                  IIf( !Empty(ProcName(3)), ProcName(3)+"("+LTrim(Str(ProcLine(3)))+")"+CRLF,"")+;
                  IIf( !Empty(ProcName(4)), ProcName(4)+"("+LTrim(Str(ProcLine(4)))+")"+CRLF,"")+;
                  IIf( !Empty(ProcName(5)), ProcName(5)+"("+LTrim(Str(ProcLine(5)))+")"+CRLF,"")+;
                  IIf( !Empty(ProcName(6)), ProcName(6)+"("+LTrim(Str(ProcLine(6)))+")"+CRLF,"")+;
                  IIf( !Empty(ProcName(7)), ProcName(7)+"("+LTrim(Str(ProcLine(7)))+")"+CRLF,"")+;
                  IIf( !Empty(ProcName(8)), ProcName(8)+"("+LTrim(Str(ProcLine(8)))+")"+CRLF,"")+;
                  IIf( !Empty(ProcName(9)), ProcName(9)+"("+LTrim(Str(ProcLine(9)))+")"+CRLF,"")+;
                  IIf( !Empty(ProcName(10)), ProcName(10)+"("+LTrim(Str(ProcLine(10)))+")"+CRLF,"")+;
                  IIf( !Empty(ProcName(11)), ProcName(11)+"("+LTrim(Str(ProcLine(11)))+")"+CRLF,"")+;
                  IIf( !Empty(ProcName(12)), ProcName(12)+"("+LTrim(Str(ProcLine(12)))+")"+CRLF,"")+;
                  "Wiederholen mit <JA>, Datenretten + Ende mit <NEIN>"+CRLF+;
                  "(Service-Telefon: 0171 - 4 66 49 67)"
   IF oError:severity > 1
      IF ConfirmBox( AppDeskTop(), ;
                  cFehler, ;
                  "Ein Fehler ist aufgetreten!", ; 
                  XBPMB_YESNO, ;
                  XBPMB_WARNING, ;
                  XBPMB_DEFBUTTON2 ) ;
                  =  XBPMB_RET_NO
         DbCloseAll()
         USE AK_F_LOG new
         APPEND BLANK
         AK_F_LOG->datum := DATE()
         AK_F_LOG->zeit := Time()
         AK_F_LOG->logtext := DtoC(DATE()) +CRLF+ ;
                              Time() +CRLF+ ;
                              cFehler +CRLF+ ;
                              "Datenverzeichnis: "+cDatver +CRLF+ ;
                              "Thread: " + LTrim(Str(ThreadId())) + "/"+ThreadObject():ClassName()
         USE
         BREAK()
      ENDIF
   ENDIF
RETURN .F.
//------------------------------------------


PROCEDURE KuvertDruck(cUm,lKSO)
   DEFAULT cUm TO "j"
   DEFAULT lKSO TO .F.

//   nAnzum := 1
//   nAnzum := Val( ModalDialog( LTrim(Str(nAnzum,2,0)), ;
//                   "Anzahl der Umschl„ge (1/0) eingeben:", oDlg1, 200*nV, 150*nV, {"",""} ))
//   cUm := IIf( nAnzum == 1 .OR. nAnzum == -1, IIf( nAnzum == -1, "k", "j"), "n" )

   select 20
   use drubef
   edrucker=upper(cdrucker)
   if edrucker="E" .OR. cDrucker="EP"
      z12p=trim(ep12p)
      z14p=trim(ep14p)
      znorm=trim(epnorm)
      cRes1 := Trim(epres1)
      cRes2 := Trim(epres2)
      cRes3 := Trim(epres3)
      cRes4 := Trim(epres4)
      nPoffY:= Val(SubStr(epres5,1,3))
      nPoffX:= Val(SubStr(epres5,4,3))
      nPpZ := Val( Substr( 20->epres5, 7, 3 ) )    //10.01.2008 09:24
      nPpS := Val( Substr( 20->epres5, 10, 3 ) )   //10.01.2008 09:24
   else
      z12p=trim(hp12p)
      z14p=trim(hp14p)
      znorm=trim(hpnorm)
      cRes1 := Trim(hpres1)
      cRes2 := Trim(hpres2)
      cRes3 := Trim(hpres3)
      cRes4 := Trim(hpres4)
      nPoffY:= Val(SubStr(hpres5,1,3))
      nPoffX:= Val(SubStr(hpres5,4,3))
      nPpZ := Val( Substr( 20->hpres5, 7, 3 ) )    //10.01.2008 09:24
      nPpS := Val( Substr( 20->hpres5, 10, 3 ) )   //10.01.2008 09:24
   endif
   USE

   select 9
   use mwstdat
   nZnam := Val( Substr( 9->f13,1,2 ) )
   nSnam := Val( Substr( 9->f13,4,2 ) )
   nZadr := Val( Substr( 9->f14,1,2 ) )
   nSadr := Val( Substr( 9->f14,4,2 ) )
   use
   nZadr := IIf( cUm="k", nZadr-8, nZadr )
   SELECT 1
   nOrientierung := XBPPRN_ORIENT_LANDSCAPE  // 27.10.2005
   SET DEVICE TO printw
   IF cLPT = "LPTA"
//      oPrinterPS:DEVICE():setOrientation( XBPPRN_ORIENT_LANDSCAPE )  //Papier horizontal bedrucken
////      oPrinterPS:DEVICE():setupDialog()    // nur zum Testen !!
//      oPrinterPS:DEVICE():startdoc()    // 26.10.2005 geremt fr Essen 
   ELSE
      @ 0,0 say IIf(cDrucker=="HP",chr(27)+znorm+" "+chr(27)+"&l1O",)
   ENDIF
   IF lKSO == .T. //+26.08.2016 08:07 fr den Rckumschlag in die Vestische Straáe
      @ nZadr,nSadr say "Beerdigungsinstitut"
      @ ++nZadr,nSadr say "Karl Schumacher e.K."
      @ ++nZadr,nSadr say "Vestische Str. 146"
//      @ ++nZadr,(nSadr-40) say 1->name
      @ ++nZadr,nSadr say "46117 Oberhausen"
   ELSE
      @ nZadr,nSadr say 1->ansp_anr
      @ ++nZadr,nSadr say trim(1->ansp_vname) + " " + 1->ansp_name
      @ ++nZadr,nSadr say 1->ansp_str
      @ ++nZadr,(nSadr-40) say 1->name
      @ ++nZadr,nSadr say 1->ansp_ort
   ENDIF

   IF cLPT = "LPTA"
//      oPrinterPS:DEVICE():setOrientation( XBPPRN_ORIENT_PORTRAIT )   //Papier vertikal bedrucken
   ELSE
      @ ++nZadr,0 say IIf(cDrucker=="HP",chr(27)+"&l0O",)
   ENDIF
   IF cLPT = "LPT1"
         EJECT
   ENDIF
   nOrientierung := XBPPRN_ORIENT_PORTRAIT   // 27.10.2005
   SET DEVICE TO SCREEN

RETURN

PROCEDURE FallAbgleich()
   LOCAL nOldArea := SELECT(), nRec := RecNo(), cStickDir
   LOCAL cAbgl0 := "\abgl\abgl0.dbf", cAbgl := "\abgl\abgleich.dbf", cBestabgl := "\abgl\bestabgl.dbf"
   LOCAL aData2[1->(FCount())], n
   LOCAL cAufF := "129999", cAufZ := "129999"
      
   // 1-> ist die Filialdatei 'best.dbf':
   1->(DbSuspendNotifications()) 
   StickDrive("\KSO\Abgleich",@cStickDir)
   IF cStickDir != NIL
      IF !FILE( cStickDir+cAbgl0 )
         //erzeugt die Protokolldatei des Abgleichs:
         aStruktur := { ;
               { "AUFTRNR1"   , "N",  6, 0 } , ;
               { "NAME1"      , "C", 28, 0 } , ;
               { "GESTORBEN1" , "D",  8, 0 } , ;
               { "AUFTRNR2"   , "N",  6, 0 } , ;
               { "NAME2"      , "C", 28, 0 } , ;
               { "GESTORBEN2" , "D",  8, 0 } , ;
               { "BEMERK"     , "C", 30, 0 } }
         DbCreate( cStickDir+cAbgl0, aStruktur, "DBFNTX" )
      ENDIF
      COPY FILE (cStickDir+cAbgl0) TO (cStickDir+cAbgl)

      // 11-> ist die Zentralendatei 'best.dbf':
      SELECT 11
      DbUseArea(,,cStickDir+"\Z\best",,.T.)
      OrdCreate(cStickDir+"\Z\BEST11",,"Str(AUFTRNR,6,0)")
      DbSeek(cAufZ,.T.)
      1->(DbSeek(cAufF,.T.))

      // 12-> ist die Zentralendatei mit komplexem Namens-Index:
      SELECT 12
      DbUseArea(,,cStickDir+"\Z\best",,.T.)
      OrdCreate(cStickDir+"\Z\BEST12",,"NAME+VORNAME+DtoS(GESTORBEN)+PLZ_ORT")

      // 13-> ist die Zentralendatei mit komplexem Namens-Index:
      SELECT 13
      DbUseArea(,,cDatver+"best",,.T.)
      OrdCreate(cDatver+"BEST13",,"NAME+VORNAME+DtoS(GESTORBEN)+PLZ_ORT")

      // 22-> wird die Protikolldatei 'bestabgl.dbf' fr die 'defekten' ganzen S„tze der Best.dbf
      COPY STRUCTURE TO (cStickDir+cBestabgl)
      SELECT 22
      DbUseArea(,,cStickDir+cBestabgl,,.F.)

      // 21-> ist die Protokolldatei 'abgleich.dbf' fr den Abgleich:
      SELECT 21               // Filialen-Datei
      DbUseArea(,,cStickDir+cAbgl,,.F.)
      DO WHILE 1->auftrnr < 140000 .AND. 11->auftrnr < 140000
         21->(DbAppend())
         IF 1->auftrnr < 11->auftrnr
         // zu dem Filialenfall gibt es keinen Zentralenfall:
            21->auftrnr1 := 1->auftrnr
            21->name1 := 1->name
            21->gestorben1 := 1->gestorben
            21->auftrnr2 := 11->auftrnr
            21->name2 := "-angehalten-"   // 11->name ist schon vom n„chsten Satz
            21->gestorben2 := 11->gestorben
            21->bemerk := "Filial-Sterbefall"

               // 22-> wird gefllt mit 1->er-Satz der Filiale
               FOR n := 1 to 1->(FCount())
                  aData2[n] := 1->(FieldGet( n ))
               NEXT
               22->(DbAppend())
               FOR n := 1 to 22->(FCount())
                  22->(FieldPut( n, aData2[n] ))
               NEXT
               22->berater := "<F"

               IF cAufF == Str(1->auftrnr,6,0) // wenn vorige Filial-Nr = Filialnummer,
                  // dann ist die Filialnummer doppelt:
                  22->(DbAppend())
                  22->name := "= doppelt in Filiale"
               ELSE
                  IF 12->(DbSeek(1->name+1->vorname+DtoS(1->gestorben)+1->plz_ort,.F.))
                     // 22-> wird gefllt mit 12->er-Satz der Zentrale
                     FOR n := 1 to 12->(FCount())
                        aData2[n] := 12->(FieldGet( n ))
                     NEXT
                     22->(DbAppend())
                     FOR n := 1 to 22->(FCount())
                        22->(FieldPut( n, aData2[n] ))
                     NEXT
                     22->berater := "<Z"
                     22->(DbAppend())
                     22->name := "= Name in Zentrale"
                  ELSE
                     22->(DbAppend())
                     22->name := "nur in Filiale!"
                  ENDIF
               ENDIF
   
//               // voriger Satz in der Zentrale:
//               11->(DbSkip(-1))
//               // 22-> wird gefllt mit 11->er-Satz der Zentrale
//               FOR n := 1 to 11->(FCount())
//                  aData2[n] := 11->(FieldGet( n ))
//               NEXT
//               22->(DbAppend())
//               FOR n := 1 to 22->(FCount())
//                  22->(FieldPut( n, aData2[n] ))
//               NEXT
//               22->(DbAppend())
//               22->name := "= voriger Zentralen-Satz"
//               22->(DbAppend())
            cAufF := Str(1->auftrnr,6,0)
            1->(DbSkip())
//            11->(DbSkip())
         ELSEIF 1->auftrnr == 11->auftrnr
         // in Filiale + Zentrale vorhandene Fallnummern:
            21->auftrnr1 := 1->auftrnr
            21->name1 := 1->name
            21->gestorben1 := 1->gestorben
            21->auftrnr2 := 11->auftrnr
            21->name2 := 11->name
            21->gestorben2 := 11->gestorben
            IF 1->name != 11->name
            // in Filiale+Zentrale sind unterschiedliche F„lle auf derselben Nummer:
               21->bemerk := "Namen verschieden"
               
               // 22-> wird gefllt mit 1->er-Satz der Filiale
               FOR n := 1 to 1->(FCount())
                  aData2[n] := 1->(FieldGet( n ))
               NEXT
               22->(DbAppend())
               FOR n := 1 to 22->(FCount())
                  22->(FieldPut( n, aData2[n] ))
               NEXT
               22->berater := "<F>"
               cName_1 := aData2[5]
               
               // 22-> wird gefllt mit 11->er-Satz der Zentrale
               FOR n := 1 to 11->(FCount())
                  aData2[n] := 11->(FieldGet( n ))
               NEXT
               22->(DbAppend())
               FOR n := 1 to 22->(FCount())
                  22->(FieldPut( n, aData2[n] ))
               NEXT
               22->berater := "<Z>"
               cName_11 := aData2[5]

               22->(DbAppend())
               22->name := "= gleiche Nummer/verschiedene Namen"
//               22->(DbAppend())

               1->(DbSkip())
               11->(DbSkip())
               IF 1->name == cName_11  // in Filiale ist der vorige Zentralname
                  // 22-> wird gefllt mit 1->er-Satz der Filiale
                  FOR n := 1 to 1->(FCount())
                     aData2[n] := 1->(FieldGet( n ))
                  NEXT
                  22->(DbAppend())
                  FOR n := 1 to 22->(FCount())
                     22->(FieldPut( n, aData2[n] ))
                  NEXT
                  22->berater := "<F>"
                  22->(DbAppend())
                  22->name := "= n„chster Filialen-Satz"

                  1->(DbSkip(-1)) // auf vorigen Satz der Filiale gehen und
                  // in Zentrale nach dem Filialen-Namen suchen:
                  IF 12->(DbSeek(1->name+1->vorname+DtoS(1->gestorben)+1->plz_ort,.F.))
                     // 22-> wird gefllt mit 12->er-Satz der Zentrale
                     FOR n := 1 to 12->(FCount())
                        aData2[n] := 12->(FieldGet( n ))
                     NEXT
                     22->(DbAppend())
                     FOR n := 1 to 22->(FCount())
                        22->(FieldPut( n, aData2[n] ))
                     NEXT
                     22->berater := "<Z>"
                     22->(DbAppend())
                     22->name := "=echter Filialsatz?"
                  ELSE
                     22->(DbAppend())
                     22->name := "nicht in Zentrale!"
                  ENDIF
                  22->(DbAppend())
                  1->(DbSkip())  //
                  11->(DbSkip(-1))  //
                  cAufF := Str(1->auftrnr,6,0)
               ELSEIF 11->name == cName_1 // in Zentrale ist der vorige Filialname
                  // 22-> wird gefllt mit 11->er-Satz der Zentrale
                  FOR n := 1 to 11->(FCount())
                     aData2[n] := 11->(FieldGet( n ))
                  NEXT
                  22->(DbAppend())
                  FOR n := 1 to 22->(FCount())
                     22->(FieldPut( n, aData2[n] ))
                  NEXT
                  22->berater := "<Z>"

                  11->(DbSkip(-1)) // auf vorigen Satz der Zentrale gehen und
                  // in Filiale nach dem Zentralen-Namen suchen:
                  IF 13->(DbSeek(11->name+11->vorname+DtoS(11->gestorben)+11->plz_ort,.F.))
                     // 22-> wird gefllt mit 13->er-Satz der Filiale
                     FOR n := 1 to 13->(FCount())
                        aData2[n] := 13->(FieldGet( n ))
                     NEXT
                     22->(DbAppend())
                     FOR n := 1 to 22->(FCount())
                        22->(FieldPut( n, aData2[n] ))
                     NEXT
                     22->berater := "<F>"
                     22->(DbAppend())
                     22->name := "=echter Zentralsatz?"
                  ELSE
                     22->(DbAppend())
                     22->name := "nicht in Filiale!"
                  ENDIF
   
                  22->(DbAppend())
                  1->(DbSkip(-1))
                  11->(DbSkip())
                  cAufZ := Str(11->auftrnr,6,0)
               ELSE
                  cAufF := Str(1->auftrnr,6,0)
                  cAufZ := Str(11->auftrnr,6,0)
                  22->(DbAppend())
                  22->name := "kein doppelter Fall"
                  22->(DbAppend())
               ENDIF
            ELSE
               cAufF := Str(1->auftrnr,6,0)
               cAufZ := Str(11->auftrnr,6,0)
            ENDIF
            1->(DbSkip())
            11->(DbSkip())
         ELSEIF 1->auftrnr > 11->auftrnr
         // zu dem Zentralenfall gibt es keinen Filialenfall
            21->auftrnr1 := 1->auftrnr
            21->name1 := "-angehalten-"   // 1->name ist schon vom n„chsten Satz
            21->gestorben1 := 1->gestorben
            21->auftrnr2 := 11->auftrnr
            21->name2 := 11->name
            21->gestorben2 := 11->gestorben
            21->bemerk := "Zentral-Sterbefall"
               
               // 22-> wird gefllt mit 11->er-Satz der Zentrale
               FOR n := 1 to 11->(FCount())
                  aData2[n] := 11->(FieldGet( n ))
               NEXT
               22->(DbAppend())
               FOR n := 1 to 22->(FCount())
                  22->(FieldPut( n, aData2[n] ))
               NEXT
               22->berater := "Z>"

               IF cAufZ == Str(11->auftrnr,6,0) // wenn vorige Zentral-Nr = Zentralnummer,
                  // dann ist die Zentralnummer doppelt:
                  22->(DbAppend())
                  22->name := "= doppelt in Zentrale"
               ELSE
                  IF 13->(DbSeek(11->name+11->vorname+DtoS(11->gestorben)+11->plz_ort,.F.))
                     // 22-> wird gefllt mit 13->er-Satz der Filiale
                     FOR n := 1 to 13->(FCount())
                        aData2[n] := 13->(FieldGet( n ))
                     NEXT
                     22->(DbAppend())
                     FOR n := 1 to 22->(FCount())
                        22->(FieldPut( n, aData2[n] ))
                     NEXT
                     22->berater := "F>"
                     22->(DbAppend())
                     22->name := "= Name in Filiale"
                  ELSE
                     22->(DbAppend())
                     22->name := "nur in Zentrale!"
                  ENDIF
               ENDIF

////               22->(DbAppend())
//               // voriger Satz in der Filiale:
//               1->(DbSkip(-1))
//               // 22-> wird gefllt mit 1->er-Satz der Filiale
//               FOR n := 1 to 1->(FCount())
//                  aData2[n] := 1->(FieldGet( n ))
//               NEXT
//               22->(DbAppend())
//               FOR n := 1 to 22->(FCount())
//                  22->(FieldPut( n, aData2[n] ))
//               NEXT
//               22->(DbAppend())
//               22->name := "= voriger Filialen-Satz"
//               22->(DbAppend())
            cAufZ := Str(11->auftrnr,6,0)
   //         1->(DbSkip())
            11->(DbSkip())
         ENDIF
      ENDDO
      21->(DbCloseArea())
      22->(DbCloseArea())
      11->(DbCloseArea())
   ELSE
      MsgBox("Keine StickDatei gefunden")
   ENDIF
   SELECT &nOldArea
   DbGoto(nRec)
   1->(DbResumeNotifications())
RETURN

//+22.12.2013 17:27 aus ScrapX kopiert:
// Laufwerk des Sticks, bzw. Verzeichnis auf dem Stick suchen
// Annnahme: der Stick hat die h”chste lokale Laufwerksbezeichnung
//+27.06.2009 15:37 cDir ist das Verzeichnis, das auf dem Stick vorhanden sein muss:
FUNCTION StickDrive(cDir,cStickDir)    //+ cStickDir als Referenz zurck 07.07.2009 09:05
   LOCAL nDrive
   DEFAULT cDir TO "\*.*"
      FOR nDrive := 82 TO 69 STEP -1     //08.03.2012 22:41 Chr(nDrive) = "R" ... "E"
         IF IsDriveReady(Chr(nDrive)) = 0
            // wenn das Laufwerk existiert:
            IF FExists( Chr(nDrive)+":"+cDir, "D" )
               // wenn das Verzeichnis existiert: 
               cStickDir := Chr(nDrive)+":"+cDir   //+07.07.2009 09:06
               EXIT
            ELSE
               //+ weitersuchen:
               cStickDir := NIL                    //+07.07.2009 09:06
               LOOP
            ENDIF
         ENDIF
      NEXT
   //+ wenn nicht gefunden, dann ist nDrive = 68 (="D")
RETURN Chr(nDrive)


FUNCTION WriterBrief( name1, name2, strasse, plz_ort, cFile )
   LOCAL nZei := 8, nAnf, CR := Chr(13), LF := Chr(10)
   LOCAL nHandle, cBuffer, nBytes, cText, cBuero := "Oberhausen", cNeuTxt := ""
   LOCAL cFont := '"Times New Roman", serif'
   LOCAL cFSize:= '11pt'
   LOCAL cFormSeite := "6cm 2cm 2cm 2cm"

	// Zur Vermeidung von Kollision verschiedener Drucke    vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
	// Test: ist bereits die Datei HTML_Brief.html auf diesem PC ge”ffnet?
	nHandle := FOpen( "c:\hdbe\WriterBrief.html", FO_EXCLUSIVE )
	IF nHandle = -1
	   //+ Die Datei ist bereits auf diesem PC ge”ffnet
	   FClose(nHandle)
	   msgbox("Es ist bereits ein WriterBrief offen!"+CR+LF+"Bitte zuerst schlieáen, dann nochmal versuchen!")
	   RETURN .F.
	ELSE
	   FClose(nHandle)
	ENDIF
	//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

   nHandle := FOpen( cFile, FO_READ )
   cBuffer := Space(3000)
   nBytes := FRead( nHandle, @cBuffer, 3000 )
   cText := AllTrim(cBuffer)
   FClose( nHandle )

   DO CASE
      CASE cSystem == "14" .OR. "Dortmund"$(za05x+za05)
         cBuero := "Dortmund"
      CASE cSystem == "18" .OR. "Duisburg"$(za05x+za05)
         cBuero := "Duisburg"
      CASE cSystem == "19" .OR. "Essen"$(za05x+za05)
         cBuero := "Essen"
      CASE cSystem == "17" .OR. "Gelsenkirchen"$(za05x+za05)
         cBuero := "Gelsenkirchen"
      CASE cSystem == "15" .OR. "Herne"$(za05x+za05)
         cBuero := "Herne"
      CASE cSystem == "16" .OR. "Oberhausen"$(za05x+za05)
         cBuero := "Oberhausen"
   ENDCASE

   cNeuTxt := ;
         '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">'+CR+LF+;
         '<HTML>'+CR+LF+;
         '<HEAD>'+CR+LF+;
         '	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">'+CR+LF+;
         '	<TITLE>'+cFile+'</TITLE>'+CR+LF+;
         '	<META NAME="GENERATOR" CONTENT="KSOX.EXE">'+CR+LF+;
         '	<META NAME="CHANGEDBY" CONTENT="' + cBuero + '">'+CR+LF+;
         '	<STYLE TYPE="text/css">'+CR+LF+;
         '	<!--'+CR+LF+;
         '		@page { margin: ' + cFormSeite + ' }'+CR+LF+;
         '		P { margin-bottom: 0.21cm }'+CR+LF+;
         '		PRE { font-family: ' + cFont + '; font-size: ' + cFSize + '; }'+CR+LF+;
         '	-->'+CR+LF+;
         '	</STYLE>'+CR+LF+;
         '</HEAD>'+CR+LF+;
         '<BODY LANG="de-DE">'+CR+LF+;
         '<PRE>'
   cNeuTxt += ConvToAnsiCP( IIf(name1=="Herr",'Herrn',name1) )
   cNeuTxt += CR+LF+ ConvToAnsiCP( name2 )
   cNeuTxt += CR+LF+ConvToAnsiCP( strasse )
   cNeuTxt += CR+LF
   cNeuTxt += CR+LF+ ConvToAnsiCP( plz_ort )
   cNeuTxt += CR+LF+CR+LF+CR+LF+CR+LF+CR+LF
   cNeuTxt += CR+LF+ ConvToAnsiCP( Space(130)+cBuero+", "+DtoC(date()) )
   cNeuTxt += CR+LF+CR+LF+CR+LF+CR+LF+CR+LF
   cNeuTxt += CR+LF+ ConvToAnsiCP( "Betr. Sterbefall: " + StrZero(1->auftrnr,6,0) )
   cNeuTxt += CR+LF+ ConvToAnsiCP( Trim( 1->anrede ) + " " + Trim( 1->vorname ) + " " + Trim( 1->name ) )
   IF name1 != 1->ansp_anr
      cNeuTxt += CR+LF+ ConvToAnsiCP( "Auftraggeber:" )
      cNeuTxt += Chr(9)+ ConvToAnsiCP( Trim( 1->ansp_anr )  + " " + Trim( 1->ansp_vname )  + " " + Trim( 1->ansp_name ) )
      cNeuTxt += CR+LF+Chr(9)+ ConvToAnsiCP( Trim( 1->ansp_str )  + ", " + Trim( 1->ansp_ort ) )
      cNeuTxt += CR+LF
      cNeuTxt += CR+LF+ ConvToAnsiCP( "Sehr geehrte Damen und Herren," + Chr(13) + Chr(13) )
   ELSE
      cNeuTxt += CR+LF
      cNeuTxt += CR+LF
      cNeuTxt += CR+LF+ ConvToAnsiCP( "Sehr geehrte" + IIf(1->ansp_anr="Herr","r "," ") + ;
          Trim( 1->ansp_anr ) + " " + Trim( 1->ansp_name ) + "," )
   ENDIF

   cNeuTxt += CR+LF
   cNeuTxt += CR+LF+ cText
   cNeuTxt += CR+LF
   cNeuTxt += CR+LF
   cNeuTxt += CR+LF
   cNeuTxt += CR+LF+ "Bestattungen Karl Schumacher e.K."
   cNeuTxt += '</PRE></BODY></HTML>'
   
   nHandle := FOpen("c:\hdbe\WriterBrief.html",FO_READWRITE)
   nBytes := FRead( nHandle, @cBuffer, 20000 )
   FSeek(nHandle, 0)
   nBytes := FWrite( nHandle, PadR(cNeuTxt,nBytes," ") )
   nBytes := FClose( nHandle )

   //23.08.2016 18:38: ################################################
   // Vermerk im Notizfeld:
   IF "Guthaben"$cFile
      cVermerk := "AZA: "+DtoC(DATE()) + ", " + Trim(name1) + ", " + Trim(name2) + ", " + Trim(strasse) + ", " + Trim(plz_ort) + "."
   ELSEIF "ErinnTF"$cFile
        cVermerk := "GH-Mittlg: "+DtoC(DATE()) + ", " + Trim(name1) + ", " + Trim(name2) + ", " + Trim(strasse) + ", " + Trim(plz_ort) + "."
   ELSEIF "ErinnA-Kto"$cFile 
      cVermerk := "aKto-Erinn: "+DtoC(DATE()) + ", " + Trim(name1) + ", " + Trim(name2) + ", " + Trim(strasse) + ", " + Trim(plz_ort) + "."
   ELSE
      cVermerk := ""
   ENDIF
   IF !cVermerk$1->notiz
      1->(DbRlock())
      1->notiz += Chr(13)+Chr(10)+cVermerk
      1->(DbCommit())
   ENDIF
   //##################################################################

   ? RunShell (" /C START c:\hdbe\"+cTextProg+" c:\hdbe\WriterBrief.html",cComCom,.T.)
RETURN .T.

//FUNCTION FormularBrief( cFile, cFormular )
FUNCTION HTML_Brief( cFile, cFormular, cFont, cFSize, cFormSeite )
   LOCAL nZei := 8, nAnf, CR := Chr(13), LF := Chr(10)
   LOCAL nHandle, cBuffer, nBytes, cText, cBuero := "Oberhausen", cNeuTxt := ""
   DEFAULT cFormular TO ""
   DEFAULT cFont TO '"Times New Roman", serif'
   DEFAULT cFSize TO '11pt'
   DEFAULT cFormSeite TO "1cm 1cm 1cm 1cm"

	// Zur Vermeidung von Kollision verschiedener Drucke    vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
	// Test: ist bereits die Datei HTML_Brief.html auf diesem PC ge”ffnet?
	nHandle := FOpen( "c:\hdbe\HTML_Brief.html", FO_EXCLUSIVE )
	IF nHandle = -1
	   //+ Die Datei ist bereits auf diesem PC ge”ffnet
	   FClose(nHandle)
	   msgbox("Es ist bereits ein HTML_Brief offen!"+CR+LF+"Bitte zuerst schlieáen, dann nochmal versuchen!")
	   RETURN .F.
	ELSE
	   FClose(nHandle)
	ENDIF
	//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	IF Len(cFile) > 50
		cText := cFile
		cFile := "HTML_Brief"
	ELSE
	   nHandle := FOpen( cFile, FO_READ )
	   cBuffer := Space(3000)
	   nBytes := FRead( nHandle, @cBuffer, 3000 )
	   cText := AllTrim(cBuffer)
	   FClose( nHandle )
	ENDIF

	// Test mit automatischem Ausfllen bei bestimmtem Formular:
	IF cFormular == "KSO_GhAusz.png"
		cFont := "Times New Roman"
		cFSize := "14pt"
		cFormSeite := "0cm 0cm 0cm 0cm"
		cText := CR+LF+CR+LF+CR+LF + Space(65) + "Auftrag: " + Str(1->auftrnr,6,0) + CR+LF+CR+LF+CR+LF+CR+LF+CR+LF+CR+LF
		cText += Space(35) + Trim(1->vorname) + " " + Trim(1->name) + CR+LF
	ENDIF         

	IF cFile == "c:\hdbe\dHTML.abr" .OR. cFile == "c:\hdbe\dHTML.mahn"
		cText := StrTran( cText, CR+LF+"     ", CR+LF )	// linken Rand zu NULL machen
	ENDIF

   DO CASE
      CASE cSystem == "14" .OR. "Dortmund"$(za05x+za05)
         cBuero := "Dortmund"
      CASE cSystem == "18" .OR. "Duisburg"$(za05x+za05)
         cBuero := "Duisburg"
      CASE cSystem == "19" .OR. "Essen"$(za05x+za05)
         cBuero := "Essen"
      CASE cSystem == "17" .OR. "Gelsenkirchen"$(za05x+za05)
         cBuero := "Gelsenkirchen"
      CASE cSystem == "15" .OR. "Herne"$(za05x+za05)
         cBuero := "Herne"
      CASE cSystem == "16" .OR. "Oberhausen"$(za05x+za05)
         cBuero := "Oberhausen"
   ENDCASE

   cNeuTxt := ;
         '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">'+CR+LF+;
         '<HTML>'+CR+LF+;
         '<HEAD>'+CR+LF+;
         '	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">'+CR+LF+;
         '	<TITLE>'+cFile+'</TITLE>'+CR+LF+;
         '	<META NAME="GENERATOR" CONTENT="KSOX.EXE">'+CR+LF+;
         '	<META NAME="CHANGEDBY" CONTENT="' + cBuero + '">'+CR+LF+;
         '	<STYLE TYPE="text/css">'+CR+LF+;
         '	<!--'+CR+LF+;
         '		@page { margin: ' + cFormSeite + ' }'+CR+LF+;
         '		P { margin-bottom: 0.21cm }'+CR+LF+;
         '		P#cour { font-family: "Courier New, monospace" }'+CR+LF+;
         '		PRE { font-family: ' + cFont + '; font-size: ' + cFSize + '; }'+CR+LF+;
         '	-->'+CR+LF+;
         '	</STYLE>'+CR+LF+;
         '</HEAD>'+CR+LF+;
         '<BODY LANG="de-DE" >'+CR+LF+;
         IIf( Upper(Right(cFormular,4))==".PNG", ;
         '<DIV CLASS="sd-abs-pos" '+CR+LF+;
         'STYLE="position: absolute; top: 0cm; left: 0cm; width: 100%; height: 100%;">'+CR+LF+;
			'<IMG SRC="'+cFormular+'" NAME="Grafik1" WIDTH=100% HEIGHT=100% BORDER=0></DIV>'+CR+LF+;
         '<PRE>', ;
         '<PRE>' )
	
   cNeuTxt += ConvToAnsiCP(cText)
         
   cNeuTxt += '</PRE></BODY></HTML>'

	cNeuTxt := StrTran( cNeuTxt, "</B>", "</B>       ")	// durch <> entstehen 7 Blanks
	
	IF !FExists("c:\hdbe\HTML_Brief.html")
		FCreate("c:\hdbe\HTML_Brief.html")
		Sleep(100)
	ENDIF
   nHandle := FOpen("c:\hdbe\HTML_Brief.html",FO_READWRITE)
   nBytes := FRead( nHandle, @cBuffer, 20000 )
   nBytes := Max(10000,nBytes)
   FSeek(nHandle, 0)
   nBytes := FWrite( nHandle, PadR(cNeuTxt,nBytes," ") )
   nBytes := FClose( nHandle )

   ? RunShell (" /C START c:\hdbe\"+cTextProg+" c:\hdbe\HTML_Brief.html",cComCom,.T.)
RETURN .T.


//+28.06.2018 14:23 vorl„ufige Rechnung an Angeh”rige:
FUNCTION KKBrief()
	LOCAL cText := "", cBuero := "Oberhausen"
			
   DO CASE
      CASE cSystem == "14" .OR. "Dortmund"$(za05x+za05)
         cBuero := "Dortmund"
      CASE cSystem == "18" .OR. "Duisburg"$(za05x+za05)
         cBuero := "Duisburg"
      CASE cSystem == "19" .OR. "Essen"$(za05x+za05)
         cBuero := "Essen"
      CASE cSystem == "17" .OR. "Gelsenkirchen"$(za05x+za05)
         cBuero := "Gelsenkirchen"
      CASE cSystem == "15" .OR. "Herne"$(za05x+za05)
         cBuero := "Herne"
      CASE cSystem == "16" .OR. "Oberhausen"$(za05x+za05)
         cBuero := "Oberhausen"
   ENDCASE

	cText += CRLF+CRLF+CRLF+CRLF+CRLF+CRLF+CRLF+CRLF+CRLF

		cText += 1->ansp_anr+IIf(1->ansp_anr="Herr","n","") + CRLF
		cText += Trim(1->ansp_vname)+" "+Trim(1->ansp_name) + CRLF
		cText += Trim(1->ansp_str) + CRLF
		cText += Trim(1->ansp_ort) + CRLF
		cText += CRLF+CRLF+CRLF+CRLF+CRLF
		cText += PadL(cBuero+", "+DtoC(DATE()),68," ") + CRLF
		cText += CRLF
		cText += "Sterbefall: "
		cText += Trim(1->anrede)+" "+Trim(1->vorname)+" "+Trim(1->name) + CRLF
		cText += CRLF
		cText += "Sehr geehrte"+IIf(1->ansp_anr="Herr","r "," ")+Trim(1->ansp_anr)+" "+Trim(1->ansp_name)+"," + CRLF
		cText += CRLF

		cText += "Anl„sslich der Bestattung sind folgende Kosten entstanden:" +CRLF
		cText += CRLF
		cText += KKRech()		// FUNCTION in BregieAK.prg
		cText += CRLF
		cText += "Fr die Richtigkeit"

	// wegen der Rechnungstabelle wird eine monospace-Schrift gew„hlt:
		HTML_Brief( cText, , '"Courier New", monospace', "11pt", "2cm 2cm 2cm 2cm" )

RETURN .T.


FUNCTION AdressKuvert2( name1, name2, strasse, plz_ort )
   nOldArea := Select()
   select 9
   use mwstdat
   nZnam := Val( Substr( 9->f13,1,2 ) )
   nSnam := Val( Substr( 9->f13,4,2 ) )
   nZadr := Val( Substr( 9->f14,1,2 ) )
   nSadr := Val( Substr( 9->f14,4,2 ) )
   use
   set device to printw
   IF cDrucker == "HP"
      @ 0,0 say Chr(27) + "&l1O"
   ENDIF
      @ nZadr,nSadr say name1
        @ ++nZadr,nSadr say name2
      @ ++nZadr,nSadr say strasse
      @ ++nZadr,nSadr say plz_ort
   IF cDrucker == "HP"
      @ ++nZadr,0 say Chr(27) + "&l0O"
   ENDIF
   EJECT
   Set device to screen
   SELECT &nOldArea
RETURN .T.

FUNCTION AuftragsKorrektur()
   LOCAL nOldArea := Select(), n, i := 0, j := 0, aData2 := Array(3->(FCount()))
   LOCAL cStickDir := ""
   LOCAL cStickLW := StickDrive("\auftr",@cStickDir)
   LOCAL cAuf := Str(1->auftrnr,6,0)
   IF ConfirmBox( oCB, ;      //+24.03.2012 10:59
               "Wollen Sie wirklich die Rechnung zu diesen Auftrag korrigieren?" + CRLF + ;
               "Achtung: OK schreibt die Rechnung aus dem Stick in die Auftragsdatei!" + CRLF + ;
               "abbrechen mit <Esc>", ;
               "Funktion Rechnung korrigieren!", ;
               XBPMB_OKCANCEL, ;
               XBPMB_QUESTION ) == XBPMB_RET_OK
      SELECT 23
      DbUseArea(,,cStickDir+"\auftr",,.T.)
      OrdListAdd( cStickDir+"\xaufauf" )     // muss vorher auf dem Stick geindext werden
      IF DbSeek(cAuf,.F.)  // wenn auf Stick dieser Auftrag drauf ist
         IF 3->(DbSeek(cAuf,.F.))
            i := 0; j := 0
            // die (defekte) Originalrechnung l”schen:
            DO WHILE 3->auftrnr == Val(cAuf) .AND. !3->(Eof())
               3->(Satzsp( oCB ))
               3->(DbDelete())
               3->(DbSkip())
               i++
            ENDDO
            // die (intakte) Ersatzrechnung vom Stick reinkopieren:
            DO WHILE 23->auftrnr == Val(cAuf) .AND. !23->(Eof())
               For n := 1 to FCount()
                  aData2[n] := FieldGet( n )
               NEXT
               SELECT 3
               APPEND BLANK
               FOR n := 1 to FCount()
                  FieldPut( n, aData2[n] )
               NEXT
               SELECT 23
               23->(DbSkip())
               j++
            ENDDO
         ENDIF
         msgbox(Str(i)+" Zeilen ersetzt durch "+Str(j)+" Zeilen.")
      ENDIF
      23->(DbCloseArea())
   ENDIF
   SELECT &nOldArea
RETURN .T.
