TBeBDECodesBO
TBeBDECodesBO
Die Klasse TBeBDECodesBO kapselt Zugriffe auf die BDE-Codes (DabBDC).
Funktionen | |
---|---|
CbGoToCode(aCode:N) | Positioniert das BO auf den übergebenen Code |
aCode:N | Code / Schlüssel |
Tabellen und Felder | |
---|---|
CbID:N | Datensatz-ID |
CbCreatedBy:D | Erstellt am / um |
CbCreated:C | Erstellt durch |
CbChangedBy:D | Zuletzt geändert am / um |
CbChanged:C | Zuletzt geändert durch |
CbCode:N | Code / Schlüssel - |
CbDescription:C | Bezeichnung - |
CbIsActive:L | Aktiv, freigeg. zur Nutzung - |
CbComment:C | Kommentar - |
CbAllowPostingCodeForPostingTypes:C | Nutzbar als Buchungs-Code - |
CbAllowTroubleCodeForPostingTypes:C | Nutzbar als integr. Störcode - |
CbSubtractTroubleTimePreset:L | Vorbeleg. "Störzeit abziehen" - |
CbAllowScrapCodeForPostingTypes:C | Nutzbar als Ausschuss-Code - |
CbIsSystemCode:L | Gibt zurück, ob es sich bei dem positionierten Code um einen System-Code handelt - |
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,