Skip to main content
Skip table of contents

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

Weitere Verknüpfungen


JavaScript errors detected

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

If this problem persists, please contact our support.