TbeArticleBusinessController
TbeArticleBusinessController
Business Controller, der für Artikel-Bearbeitung zuständig ist.
Eigenschaften | Beschreibung |
---|---|
CbDataModule:O | Datenmodul (TbeDbGet) |
CbInsertOptions:O | |
CbOptions:O |
Funktionen und Methoden
Funktion | Parameter | Beschreibung |
---|---|---|
CbClearOptions() |
| Alle Einstellungen zurücksetzen (InsertOptions, Options..) |
CbInsertArticle() | aArticleBO:TBeArticleBO, aArticleNo:C | Neuen Artikel einfügen |
CbInsertArticleWithAutomaticNo() | aArticleBO:TBeArticleBO | Neuen Artikel mit automatischen Artikelnummer einfügen |
CbInsertNewVersion() | aArticleBO:TBeArticleBO | Neue Version für einen Artikel einfügen |
CbCancel() | aArticleBO:TBeArticleBO | Abbrechen |
CbEdit() | aArticleBO:TBeArticleBO | Bearbeiten |
CbDelete() | aArticleBO:TBeArticleBO | Löschen |
CbPost() | aArticleBO:TBeArticleBO | Speichern |
CbValidate() | aArticleBO:TBeArticleBO | Eingaben validieren (wird automatisch in Post aufgerufen) |
Beispiel
|oDM:O, oBO:O, oBC:O, oTable:O|
function CheckSQL(cSQL:C, cCaption:C)
|oQuery|
oQuery := CreateObject('TbeAdsQuery'),
startseq
oQuery.SQL := cSQL,
oQuery.Active := true,
browse(cCaption, oQuery),
always
DestroyObject(oQuery),
stopseq,
end,
function ExecSQL(cSQL)
|oQuery|
oQuery := CreateObject('TbeAdsQuery'),
startseq
oQuery.SQL := cSQL,
oQuery.CbExecSQL(),
always
DestroyObject(oQuery),
stopseq,
end,
function DeleteProtocol(cArticleNo:C)
|oQuery, cSQL|
cSQL := 'DELETE FROM "DABPTK.ADT" WHERE "INDEX"=',
cSQL += "'",
cSQL += '"' + cArticleNo + '"',
cSQL += "'",
ExecSQL(cSQL),
end,
function DeleteArticle(cArtNo)
oBO.CbGoToArticleNo(cArtNo),
oBC.CbDelete(oBO),
Writeln('Artikel ' + cArtNo + ' gelöscht'),
oDM.CbTransaction_Commit(),
oDM.CbTransaction_Begin(),
end,
function CreateVersionArticle()
oBC.CbClearOptions(),
oBC.CbInsertArticle(oBO, 'VERS-1'),
oBO.CbVersionStatus := 80, // aktuelle Version
oBO.CbDecimals := 0, // Nachkomastellen
oBC.CbPost(oBO),
Writeln('neuen Artikel VERS-1 mit Version 80 angelegt'),
oDM.CbTransaction_Commit(),
oDM.CbTransaction_Begin(),
end,
function EditVersionArticle()
oBC.CbClearOptions(),
oBO.CbGoToArticleNo('VERS-1'),
oBC.CbEdit(oBO),
startseq
oBO.CbArticleNo := 'nicht erlaubt',
oBC.CbValidate(oBO),
onerror // RICHTIG!! man darf das ARTNR nicht ändern!
Writeln('Erwartete Fehler: ' + GetErrorText()),
oBC.CbCancel(oBO),
stopseq,
oBC.CbEdit(oBO),
oBO.CbDescription_2 := 'wurde editiert',
oBO.CbStockDiscountAmount_1_0 := 10,
oBC.CbPost(oBO),
Writeln('Artikel VERS-1 geändert'),
browse('DAB010: Artikel VERS-1 nach Änderungen', oBO.CbTable),
end,
function CreateNewVersionOfArticleAndDeleteIt()
oBC.CbInsertOptions.SourceArticleNo := 'VERS-1',
oBC.CbInsertOptions.AsNewVersion := True,
oBC.CbInsertOptions.NewVersionNumber := 4,
oBC.CbInsertNewVersion(oBO),
oBO.CbDescription_1 := 'neue Version VERS-1',
oBO.CbDescription_2 := 'genannt vierte aber ist zwiete Version',
oBO.CbSalesPrice_0 := 4.99,
oBC.CbPost(oBO),
Writeln('Neue Version Nummer 4 von Artikel VERS-1 angelegt'),
browse('DAB010: Neue Version Nummer 4 von Artikel VERS-1', oBO.CbTable),
DeleteArticle('VERS-1#004'),
end,
function CopyArticleWithSupplierDataAndDeleteIt()
oBC.CbClearOptions(),
oBC.CbInsertOptions.SourceArticleNo := 'MUTTER M4',
oBC.CbInsertOptions.CopySuppliers := true,
oBC.CbInsertOptions.CopySupplierRelatedData := true,
oBC.CbInsertArticle(oBO, 'MUTTER NEU4'),
oBO.CbMatchCode := 'MUTTER_NEU4',
oBC.CbPost(oBO),
Writeln('Neue Kopie Mutter NEU4 von Artikel MUTTER M4 angelegt'),
oDM.CbTransaction_Commit(),
oDM.CbTransaction_Begin(),
CheckSQL('SELECT * FROM "DAB510.ADT" WHERE ARTNR=' + "'" + 'MUTTER NEU4' + "'" + ' or ARTNR=' + "'" + 'MUTTER M4' + "'", 'DAB510: Artikel MUTTER NEU4 ist Kopie von MUTTER M4'),
DeleteArticle('MUTTER NEU4'),
end,
function CopyArticleWithPartListAndDeleteIt()
oBC.CbClearOptions(),
oBC.CbInsertOptions.SourceArticleNo := 'MASCHINE',
oBC.CbInsertOptions.CopyPartList := true,
oBC.CbInsertArticle(oBO, 'MASCHINE2'),
oBO.CbSearchCode_1 := 'Maschine Zwei',
oBC.CbPost(oBO),
Writeln('Neue Kopie MASCHINE2 von Artikel MASCHINE angelegt'),
oDM.CbTransaction_Commit(),
oDM.CbTransaction_Begin(),
CheckSQL('SELECT DAB210.ARTNR1 as blafasel, Dab210.* FROM "DAB210.ADT" Dab210 WHERE ARTNR1=' + "'" + 'MASCHINE' + "'" + ' OR ARTNR1=' + "'" + 'MASCHINE2' + "'", 'DAB210: Artikel MASCHINE2 ist Kopie von MASCHINE'),
DeleteArticle('MASCHINE2'),
end,
function CopyArticleWithQualityAssurancePlanAndDeleteIt()
oBC.CbClearOptions(),
oBC.CbInsertOptions.SourceArticleNo := 'MASCHINEV',
oBC.CbInsertOptions.CopyQualityAssurancePlan := true,
oBC.CbInsertArticle(oBO, 'MASCHINEV2'),
oBO.CbSearchCode_1 := 'Maschine Version Zwei',
oBO.CbEAN := '123456789',
oBC.CbPost(oBO),
Writeln('Neue Kopie MASCHINEV2 von Artikel MASCHINEV angelegt'),
oDM.CbTransaction_Commit(),
oDM.CbTransaction_Begin(),
CheckSQL('SELECT DABPPL.ARTNR1 as blafasel, DABPPL.* FROM "DABPPL.ADT" DABPPL WHERE ARTNR1=' + "'" + 'MASCHINEV' + "'" + ' OR ARTNR1=' + "'" + 'MASCHINEV2' + "'", 'DABPPL: Artikel MASCHINEV2 ist Kopie von MASCHINEV'),
DeleteArticle('MASCHINEV2'),
end,
function CopyArticleWithForeignLanguagesAndDeleteIt()
oBC.CbClearOptions(),
oBC.CbInsertOptions.SourceArticleNo := 'KLEBSTOFF',
oBC.CbInsertOptions.CopyForeignLanguages := true,
oBC.CbInsertArticle(oBO, 'KLEBSTOFF2'),
oBC.CbPost(oBO),
Writeln('Neue Kopie KLEBSTOFF2 von Artikel KLEBSTOFF angelegt'),
oDM.CbTransaction_Commit(),
oDM.CbTransaction_Begin(),
CheckSQL('SELECT DAB110.ARTNR as blafasel, DAB110.* FROM "DAB110.ADT" DAB110 WHERE ARTNR=' + "'" + 'KLEBSTOFF' + "'" + ' OR ARTNR=' + "'" + 'KLEBSTOFF2' + "'", 'DAB110: Artikel KLEBSTOFF2 ist Kopie von KLEBSTOFF'),
DeleteArticle('KLEBSTOFF2'),
end,
function CreateAndDeleteAutomaticArticle()
|artno|
oBC.CbClearOptions(),
oBC.CbInsertArticleWithAutomaticNo(oBO),
oBO.CbDescription_1 := 'automatisches artikelnummer',
oBC.CbPost(oBO),
artno := oBO.CbArticleNo,
Writeln('Neuen Artikel mit automatische Nummer ' + artno + ' angelegt'),
oDM.CbTransaction_Commit(),
oDM.CbTransaction_Begin(),
browse('Neuen Artikel mit automatische Nummer ' + artno, oBO.CbTable),
DeleteArticle(artno),
DeleteProtocol(artno),
end,
DeleteProtocol('VERS-1'), // CreateVersionArticle, CreateNewVersionOfArticleAndDeleteIt, MAIN (unten)
DeleteProtocol('VERS-1#004'), // CreateNewVersionOfArticleAndDeleteIt
DeleteProtocol('MUTTER NEU4'),// CopyArticleWithSupplierDataAndDeleteIt
DeleteProtocol('MASCHINE2'), // CopyArticleWithPartListAndDeleteIt
DeleteProtocol('MASCHINEV2'), // CopyArticleWithQualityAssurancePlanAndDeleteIt
DeleteProtocol('KLEBSTOFF2'), // CopyArticleWithForeignLanguagesAndDeleteIt
oDM := CreateObject('TbeDbGet'),
startseq
oBC := CreateObject('TbeArticleBusinessController',,oDM),
oBC.CbDataModule := oDM,
oBO := CreateObject('TbeArticleBO',,oDM),
oBO.CbDataModule := oDM,
oTable := oBO.CbTable,
oDM.CbTransaction_Begin(),
startseq
startseq
DeleteArticle('VERS-1'),
onerror
Writeln('VERS-1 existiert nicht'),
stopseq,
CreateVersionArticle(),
CreateNewVersionOfArticleAndDeleteIt(),
EditVersionArticle(),
DeleteArticle('VERS-1'),
CopyArticleWithSupplierDataAndDeleteIt(),
CopyArticleWithPartListAndDeleteIt(),
CopyArticleWithQualityAssurancePlanAndDeleteIt(),
CopyArticleWithForeignLanguagesAndDeleteIt(),
CreateAndDeleteAutomaticArticle(),
always
oDM.CbTransaction_TryRollBack(),
stopseq,
always
DestroyObject(oDM),
stopseq,