TBeCbChangeStateOfConstruction
TBeCbChangeStateOfConstruction
Die Klasse TBeCbChangeStateOfConstruction kapselt Eigenschaften und Funktionen zum Ändern eines Bauzustands.
Für die Benutzung der Funktionen müssen zuvor die Properties CbMasterArtNo, CbMasterSerialNo, CbArtNo, CbSerialNo auf die gewünschten Werte gesetzt werden.
Eigenschaften:
Eigenschaften | Beschreibung |
---|---|
CbDataModule:O | Daten-Modul |
CbMasterArtNo:C | Artikelnummer, dessen Baugruppe geändert werden soll |
CBMasterSerialNo:C | Seriennummer des Artikels, dessen Baugruppe geändert werden soll |
CbArtNo:C | Artikelnummer des zu ändernden Artikels |
CbSerialNo:C | Seriennummer des zu ändernden Artikels |
CbVoucherNo:C | Belegnummer |
CbModifiedDate:D | Datum der Änderung |
CbErrorMode:N | Verhalten im Fehlerfall:
|
Funktionen und Methoden | |
CbCanChangeSerialNo():L | Mit dieser Funktion lässt sich prüfen, ob die Seriennummer des übergebenen Artikels verändert werden darf. |
aNewSerialNo:C | Gewünschte Seriennummer |
CbCanDeleteSerialNoArticle():L | Prüft, ob ein Artikel aus dem aktuellen Bauzustand entfernt werden kann. |
CbCanUseSerialNoArticleForChangeSoC():L | Prüft, ob Serien-Nr. Artikel für eine Änderung des Bauzustands benutzt / beim Master-Artikel hinzugefügt werden kann.
|
CbCanModifySerialNoArticle():L | Prüfen, ob der Bauzustand eines Artikels verändert werden kann. |
CbChangeSerialNo():L | Seriennummer eines Artikels austauschen. |
aNewSerialNo:C | Neue Seriennummer |
CbDeleteSerialNoArticle():L | Serien-Nr. Artikel aus einem Bauzustand löschen. |
CbInsertSerialNoArticle():L | Serien-Nr. Artikel zu einem Bauzustand hinzufügen. |
Beispiel
| m_oStateObj, m_cMasterArtNR, m_cMasterSerNr, m_cSubArtNr, m_cSubSerNr |
//******************************************************************************
// Gibt alle Propertie-Werte eines ChangeStateOfConstruction-Objectes aus
//******************************************************************************
function WriteCurrentObjectState(oObj)
writeln('##############'),
writeln('VoucherNo', oObj.CbVoucherNo),
writeln('SerialNo', oObj.CbSerialNo),
writeln('ArtNo', oObj.CbArtNo),
writeln('MasterSerialNo', oObj.CbMasterSerialNo),
writeln('MasterArtNo:', oObj.CbMasterArtNo),
writeln('ErrorMode', oObj.CbErrorMode),
end,
m_oStateObj := CreateObject('TBeCbChangeStateOfConstruction', 'CSOC'),
startseq
startseq
// ACHTUNG: Diese Daten müssen, für eine erfolgreiche Ausführung,
// für den jeweiligen Datenbestand angepasst werden.
// Hierbei ist darauf zu achten, dass dieses Beispiel einige
// Änderungen an den gewählten Artikel durchführt. Es ist daher
// ratsam einen Testartikel zu verwenden.
m_cMasterArtNR := 'PC',
m_cMasterSerNr := '40',
m_cSubArtNr := 'PC_CPU',
m_cSubSerNr := '1',
// Hauptartikel setzen
m_oStateObj.CbMasterArtNo := m_cMasterArtNR,
m_oStateObj.CbMasterSerialNo := m_cMasterSerNr,
// Unterartikel setzen
m_oStateObj.CbArtNo := m_cSubArtNr,
m_oStateObj.CbSerialNo := m_cSubSerNr,
writeln('########## Konfiguration der Properties '),
WriteCurrentObjectState(m_oStateObj),
writeln(crlf + '########## CbCanChangeSerialNo ' + crlf),
//************************************************************************
// CbCanChangeSerialNo und CbErrorMode
//************************************************************************
// CbErrorMode -> Fehlermeldung ausgeben
m_oStateObj.CbErrorMode := errmShowMsg,
m_oStateObj.CbCanChangeSerialNo(m_cSubSerNr),
// CbErrorMode -> Exception auslösen
startseq
m_oStateObj.CbErrorMode := errmRaise,
m_oStateObj.CbCanChangeSerialNo(m_cSubSerNr),
onerror
writeln('Fehlerausgabe ' + GetErrorText()),
stopseq,
// CbErrorMode -> boolean zurückgeben
m_oStateObj.CbErrorMode := errmResult,
iif(m_oStateObj.CbCanChangeSerialNo(m_cSubSerNr),
writeln('Änderbar'),
writeln('Nicht änderbar')),
iif(m_oStateObj.CbCanChangeSerialNo(112),
writeln('Änderbar'),
writeln('Nicht änderbar')),
//************************************************************************
// CanModifySerialNoArticle
//************************************************************************
writeln(crlf + '########## CanModifySerialNoArticle' + crlf),
// CbErrorMode -> Fehlermeldung ausgeben
m_oStateObj.CbMasterArtNo := m_cMasterArtNR,
m_oStateObj.CbMasterSerialNo := 999,
m_oStateObj.CbErrorMode := errmShowMsg,
m_oStateObj.CbCanModifySerialNoArticle(),
// CbErrorMode -> Exception auslösen
startseq
m_oStateObj.CbErrorMode := errmRaise,
m_oStateObj.CbCanModifySerialNoArticle(),
onerror
writeln('Fehlerausgabe ' + GetErrorText()),
stopseq,
// CbErrorMode -> boolean zurückgeben
m_oStateObj.CbErrorMode := errmResult,
iif(m_oStateObj.CbCanModifySerialNoArticle(),
writeln('Änderbar'),
writeln('Nicht änderbar')),
m_oStateObj.CbMasterSerialNo := m_cMasterSerNr,
iif(m_oStateObj.CbCanModifySerialNoArticle(),
writeln('Änderbar'),
writeln('Nicht änderbar')),
//************************************************************************
// CbCanDeleteSerialNoArticle
//************************************************************************
writeln(crlf + '########## CbCanDeleteSerialNoArticle' + crlf),
m_oStateObj.CbMasterArtNo := m_cMasterArtNr,
m_oStateObj.CbMasterSerialNo := m_cMasterSerNr,
m_oStateObj.CbArtNo := m_cSubArtNr,
m_oStateObj.CbSerialNo := 999999,
// CbErrorMode -> Fehlermeldung ausgeben
m_oStateObj.CbErrorMode := errmShowMsg,
m_oStateObj.CbCanDeleteSerialNoArticle(),
// CbErrorMode -> Exception auslösen
startseq
m_oStateObj.CbSerialNo := 999,
m_oStateObj.CbErrorMode := errmRaise,
m_oStateObj.CbCanDeleteSerialNoArticle(), // Gibt hier keine exception aus?!
onerror
writeln('Fehlerausgabe ' + GetErrorText()),
stopseq,
m_oStateObj.CbMasterArtNo := m_cMasterArtNR,
m_oStateObj.CbMasterSerialNo := 999999,
m_oStateObj.CbErrorMode := errmResult,
// CbErrorMode -> boolean zurückgeben
iif(m_oStateObj.CbCanDeleteSerialNoArticle(), writeln('Löschbar'), writeln('Nicht löschbar')),
m_oStateObj.CbMasterSerialNo := 1,
iif(m_oStateObj.CbCanDeleteSerialNoArticle(), writeln('Löschbar'), writeln('Nicht löschbar')),
//************************************************************************
// CbCanUseSerialNoArticleForChangeSoC
//************************************************************************
writeln(crlf + '########## CbCanUseSerialNoArticleForChangeSoC' + crlf),
m_oStateObj.CbArtNo := m_cSubArtNr,
m_oStateObj.CbSerialNo := 999,
// CbErrorMode -> Fehlermeldung ausgeben
m_oStateObj.CbErrorMode := errmShowMsg,
m_oStateObj.CbCanUseSerialNoArticleForChangeSoC(),
// CbErrorMode -> Exception auslösen
m_oStateObj.CbErrorMode := errmRaise,
startseq
m_oStateObj.CbCanUseSerialNoArticleForChangeSoC(), // Gibt hier keine exception aus?!
onerror
writeln('Fehlerausgabe ' + GetErrorText()),
stopseq,
// CbErrorMode -> boolean zurückgeben
m_oStateObj.CbErrorMode := errmResult,
iif(m_oStateObj.CbCanUseSerialNoArticleForChangeSoC(), writeln('Verwendbar'), writeln('Nicht verwendbar')),
m_oStateObj.CbSerialNo := m_cSubSerNr,
iif(m_oStateObj.CbCanUseSerialNoArticleForChangeSoC(), writeln('Verwendbar'), writeln('Nicht verwendbar')),
//************************************************************************
// CbChangeSerialNo
//************************************************************************
m_oStateObj.CbChangeSerialNo(3), // Seriennummer von 1 -> 3
m_oStateObj.CbSerialNo := '3', // Neu positionieren
m_oStateObj.CbChangeSerialNo(m_cSubSerNr), // Seriennummer zurück von 3 -> 1
//************************************************************************
// CbDeleteSerialNoArticle und CbInsertSerialNoArticle
//************************************************************************
m_oStateObj.CbSerialNo := m_cSubSerNr, // Positionieren
m_oStateObj.CbErrorMode := errmResult, // Rückgabe als Boolean
if m_oStateObj.CbDeleteSerialNoArticle() then // Wenn Löschen OK dann wieder hinzufügen
writeln(iif(m_oStateObj.CbInsertSerialNoArticle(), 'Gelöscht und wieder hinzugefügt', 'Fehler')),
else
writeln('Löschen fehlgeschlagen'),
endif,
onerror
MessageDlg(GetErrorText()),
stopseq,
always
DestroyObject(m_oStateObj),
stopseq,