Codeblock Onlinehilfe

TBeBDECodesBO

TBeBDECodesBO

Die Klasse TBeBDECodesBO kapselt Zugriffe auf die BDE-Codes (DabBDC).

Eigenschaften

Eigenschaft

Beschreibung

CaptionInfo:O


CbAllowPostingCodeForPostingTypes:C


CbAllowScrapCodeForPostingTypes:C


CbAllowTroubleCodeForPostingTypes:C


CbCaptionInfo:O


CbChanged:N


CbChangedBy:C


CbCheckFieldRights:L


CbCode:N


CbComment:C


CbCreated:N


CbCreatedBy:C


CbDataModule:O


CbDescription:C


CbGUIDStr:C


CbID:N


CbIsActive:L


CbIsSystemCode:L


CbReadOnly:L


CbSubtractTroubleTimePreset:L


CbTable:O


CbUseTableAlias:C


Name:C


Tag:N


Methoden

Methode

Beschreibung

CbGoToCode(aCode:N)


CbGotoID(aBoID:N)


CbInsert()


CbEdit()


CbCancel()


CbPost()


CbDelete()


CbInEditOrInsertMode():L


CbInEditMode():L


CbInInsertMode():L


CbInBrowseMode():L


CbCanRead():L


CbCheckRight_Read():L


CbCheckRight_Insert():L


CbCheckRight_Edit():L


CbCheckRight_Delete():L


CbCheckRight_Validate():L


CbCheckFieldRight_Read(aFieldName:C):L


CbCheckFieldRight_Edit(aFieldName:C):L


CbCheckFieldRight_Validate(aFieldName:C):L


Beispiel

//##############################################################################
//##############################################################################
// Beschreibung: Dieses Programm legt zur Demonstration des BDEBusinessObjects
//               einen BDE Code an, verändert diesen und entfernt ihn
//               anschließend wieder
//##############################################################################
//##############################################################################
| m_oDM |

//******************************************************************************
// Behandelt Fehler je nach Typen. Liefert zurück, ob der übergebene Fehler
// bereits behandelt wurde
//******************************************************************************
function HandleException(oError)
   Result := False, // Fehler noch nicht behandelt

   // Prüfen ob ein Code nicht gefunden werden konnte
   if ClassOf(oError, 'EBeCustomDBBoIDNotFoundException') or
      ClassOf(oError, 'EBeBDECodesBO') then
      Result := True, // Fehler wurde behandelt

      // Schöne Meldung ausgeben
      SetError(GetErrorText(oError) + crlf + crlf +
               ArrToStr(GetErrorStack(True))),
   endif,
end,

//******************************************************************************
// Erstellt einen neuen BDE Code
//******************************************************************************
function CreateNewBDECode(oDM, nCode, cDescription, bIsActive, cComment)
| oBDECBC, oBDECodesBO |
   oBDECBC := CreateObject('TBeBDECodesBusinessController', 'TESTBC', oDM),
   startseq
      oBDECBC.CbDataModule := oDM,
      oBDECodesBO         := CreateObject('TBeBDECodesBO', 'TESTBO', oDM),
      startseq
         oBDECodesBO.CbDataModule := oDM,

         // Anlegen eines neuen Codes ******************************************
         DBStartTrans(oDM.ADSConnection),
         startseq
            oBDECBC.BDECode_Insert(oBDECodesBO),
            oBDECodesBO.CbCode        := nCode,
            oBDECodesBO.CbDescription := cDescription,
            oBDECodesBO.CbIsActive    := bIsActive,
            oBDECodesBO.CbComment     := cComment,
            oBDECBC.BDECode_Post(oBDECodesBO),

            DBCommit(oDM.ADSConnection),
         always
            if DBInTrans(oDM.ADSConnection) then
               DBRollback(oDM.ADSConnection),
            endif,
         stopseq,
      always
         DestroyObject(oBDECodesBO),
      stopseq,
   always
      DestroyObject(oBDECBC),
   stopseq,
end,

//******************************************************************************
// Editiert einen BDE Code
//******************************************************************************
function EditBDECode(oDM, nCode, cDescription, bIsActive, cComment)
| oBDECBC, oBDECodesBO, oError |
   oBDECBC := CreateObject('TBeBDECodesBusinessController', 'TESTBC', oDM),
   startseq
      oBDECBC.CbDataModule := oDM,
      oBDECodesBO         := CreateObject('TBeBDECodesBO', 'TESTBO', oDM),
      startseq
         oBDECodesBO.CbDataModule := oDM,

         startseq
            oBDECodesBO.CbGoToCode(nCode), // Code positionieren -> Wirft einen Fehler wenn der Code nicht existiert

            // Verändern des Codes
            DBStartTrans(oDM.ADSConnection),
            startseq
               oBDECBC.BDECode_Edit(oBDECodesBO),
               oBDECodesBO.CbCode        := nCode,
               oBDECodesBO.CbDescription := cDescription,
               oBDECodesBO.CbIsActive    := bIsActive,
               oBDECodesBO.CbComment     := cComment,
               oBDECBC.BDECode_Post(oBDECodesBO),

               DBCommit(oDM.ADSConnection),
            always
               if DBInTrans(oDM.ADSConnection) then
                  DBRollback(oDM.ADSConnection),
               endif,
            stopseq,
         onerror
            if not HandleException(GetErrorObj()) then
               Raise(),
            endif,
         stopseq
      always
         DestroyObject(oBDECodesBO),
      stopseq,
   always
      DestroyObject(oBDECBC),
   stopseq,
end,

//******************************************************************************
// Löscht einen BDE Code
//******************************************************************************
function DeleteBDECode(oDM, nCode)
| oBDECBC, oBDECodesBO, oError |
   oBDECBC := CreateObject('TBeBDECodesBusinessController', 'TESTBC', oDM),
   startseq
      oBDECBC.CbDataModule := oDM,
      oBDECodesBO         := CreateObject('TBeBDECodesBO', 'TESTBO', oDM),
      startseq
         oBDECodesBO.CbDataModule := oDM,

         startseq
            oBDECodesBO.CbGoToCode(nCode), // Code positionieren -> Wirft einen Fehler wenn der Code nicht existiert

            // Verändern des Codes
            DBStartTrans(oDM.ADSConnection),
            startseq
               oBDECBC.BDECode_Delete(oBDECodesBO),
               DBCommit(oDM.ADSConnection),
            always
               if DBInTrans(oDM.ADSConnection) then
                  DBRollback(oDM.ADSConnection),
               endif,
            stopseq,
         onerror
            if not HandleException(GetErrorObj()) then
               SetError(GetErrorText() + crlf + crlf + ArrToStr(GetErrorStack(True))),
            endif,
         stopseq
      always
         DestroyObject(oBDECodesBO),
      stopseq,
   always
      DestroyObject(oBDECBC),
   stopseq,
end,

//##############################################################################
//##############################################################################
// Hauptprogramm
//##############################################################################
//##############################################################################

m_oDM := CreateObject('TBeDBGet', 'TESTGET'),
startseq
   // Erstellten eines Test BDE Codes
   CreateNewBDECode(m_oDM,
                    1234,
                    'Test BDE Code',
                    False,
                    'Dieser BDE Code ist ein Test'),
   // Verändern des Test BDE Codes
   EditBDECode(m_oDM,
               1234,
               'Veränderter Test BDE Code',
               True,
               'Dieser BDE Code ist ein veränderter Test'),

   // Löschen des Test BDE Codes
   DeleteBDECode(m_oDM, 1234),

   // Versuch einen System-Code zu löschen
//   DeleteBDECode(m_oDM, -11),

   // Versuch einen nicht existierenden Code zu Löschen
//   DeleteBDECode(m_oDM, -9999),
always
   DestroyObject(m_oDM),
stopseq,

Weitere Verknüpfungen