Skip to main content
Skip table of contents

TbeArticleBusinessController

TbeArticleBusinessController

Business Controller, der für Artikel-Bearbeitung zuständig ist.

Eigenschaften

Beschreibung

CbDataModule:O

Datenmodul (TbeDbGet)

CbInsertOptions:O

Einstellungen für die Neuanlage eines Artikels

CbOptions:O

Einstellungen bei Verarbeitung eines Artikels

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

CODE
|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,

Weitere Verknüpfungen

JavaScript errors detected

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

If this problem persists, please contact our support.