TDBSelectBoxEx
TDBSelectBoxEx
Spezialisierte SelectBoxEx-Klasse mit DB-Anbindung für ein Control zur Auswahl einer oder mehrerer vorgegebenen Optionen:
Eigenschaften
Eigenschaft | Beschreibung |
---|---|
DataSource:O | DataSource der Tabelle mit der die SelectBox verbunden werden soll |
DataField:C | Feldname in der die Werte der SelectBox eingetragen werden sollen |
ReadOnlyStateFromField:L | Gibt an ob das Control den ReadOnly status vom Feld übernehmen soll |
Beispiel
CODE
//##############################################################################
//##############################################################################
// Beschreibung: Onlinehilfe Beispiel für die Verwendung von TDBSelectBoxEx im
// Codeblock.
//##############################################################################
//##############################################################################
| oForm, oBtn_Save, oBtn_Skip, oEdit, oSelectBox, oDM, oDS010 |
//******************************************************************************
// Aktualisiert die Informationen für den aktuellen Artikel
//******************************************************************************
function RefreshArticleInfo()
oBtn_Save.Caption := 'Speichern' + ' [' + Trim(oDs010.DataSet:ARTNR) + ']',
oSelectBox.CbCheckNone(),
case oDs010.DataSet:ARTTYP
of 'M' :: oSelectBox.CbItemIndex := 0,
of 'B' :: oSelectBox.CbItemIndex := 1,
of 'U' :: oSelectBox.CbItemIndex := 2,
of 'T' :: oSelectBox.CbItemIndex := 3,
of 'H' :: oSelectBox.CbItemIndex := 4,
of 'V' :: oSelectBox.CbItemIndex := 5,
of 'A' :: oSelectBox.CbItemIndex := 6,
of 'E' :: oSelectBox.CbItemIndex := 7,
endcase
end,
//******************************************************************************
// Fügt ein neues SelectBox Item hinzu
//******************************************************************************
function DoBtn_SaveClick()
DbPost(oDs010),
RefreshArticleInfo(),
end,
//******************************************************************************
// Wechselt zum nächsten Datensatz
//******************************************************************************
function DoBtn_Skip()
DbSkip(1, oDs010),
RefreshArticleInfo(),
if EoF(oDs010) then
DbGoTop(oDs010),
endif,
end
//******************************************************************************
// Stellt sicher das ein ArtikelTyp ausgewählt wurde
//******************************************************************************
function DoValidateSelectBox()
| i, lFoundChecked |
lFoundChecked := False,
for i := 0 to 7 do
SetErrorIf(lFoundChecked and oSelectBox.CbIsItemChecked(i), 'Es darf nur 1 Typ ausgewählt sein!'),
if oSelectBox.CbIsItemChecked(i) then
lFoundChecked := True,
endif,
next,
SetErrorIf(not lFoundChecked, 'Es muss 1 Typ ausgewählt sein'),
end,
oForm := CreateObject('TFormEx'),
oDM := CreateObject('TBeDBGet', , oForm),
oDS010 := CreateObject('TDataSourceEx', , oForm),
startseq
oDS010.DataSet := DbGetTable(oDm, waDab010),
DbGoTop(oDS010),
//***************************************************************************
oBtn_Save := CreateObject('TButton', , oForm, oForm),
oBtn_Save.Caption := 'Speichern',
oBtn_Save.Align := alBottom,
AssignEvent(oBtn_Save, 'OnClick', 'DoBtn_SaveClick'),
//***************************************************************************
oBtn_Skip := CreateObject('TButton', , oForm, oForm),
oBtn_Skip.Caption := 'Nächster Artikel',
oBtn_Skip.Align := alBottom,
AssignEvent(oBtn_Skip, 'OnClick', 'DoBtn_Skip'),
//***************************************************************************
oEdit := CreateObject('TEdit', , oForm, oForm),
oEdit.Align := alBottom,
//**************************************************************************<h3>
oSelectBox := CreateObject('TDBSelectBoxEx', '', oForm, oForm),
oSelectBox.Align := alTop,
AssignEvent(oSelectBox, 'OnValidateValue', 'DoValidateSelectBox'),
oSelectBox.DataSource := oDs010,
oSelectBox.DataField := 'ARTTYP',
oSelectBox.CbAddItem('M:Endprodukt'),
oSelectBox.CbAddItem('B:Baugruppe'),
oSelectBox.CbAddItem('U:Unterbaugruppe'),
oSelectBox.CbAddItem('T:Kaufteil'),
oSelectBox.CbAddItem('H:Setartikel'),
oSelectBox.CbAddItem('V:Variante'),
oSelectBox.CbAddItem('A:Arbeitswert'),
oSelectBox.CbAddItem('E:Externleistung'),
RefreshArticleInfo(),
ShowModal(oForm),
always
DestroyObject(oForm),
stopseq