Skip to main content
Skip table of contents

TBeCheckListBox

TBeCheckListBox

TBeCheckListBox zeigt eine bildlauffähige Liste mit Datenbank-Bindung an, deren Einträge mit Kontrollfeldern (Checkboxen) ausgestattet sind. Der Benutzer kann die Listeneinträge aktivieren und deaktivieren.

Eigenschaften

EigenschaftBeschreibung
CheckedItems:CollectionIndizes der aktuell ausgewählten Einträge
ValuesChecked: CollectionWert (Value) der Einträge

Verwendung

  • TBeCheckListBox auf eine F12-Maske platzieren und BeAttributeID zuweisen
  • DataSource muss zugewiesen und aktiv sein
  • DataField muss zugewiesen sein
  • DataField muss als Control-Typ TBeCheckListBox definiert sein
  • Im F12-Designer findet sich die Komponente unter der Palette "BE-Combo"

Beispiel

CODE
// demonstriert den Einsatz der Klassen TBeCheckListBox
//                                      TBeAttribCheckListBox,
//                                      TBeFieldCheckListBox,
// HINWEIS:
// Die im Beispiel "manuell" erzeugten Klassen können natürlich auch im Designer
// erstellt werden und die entsprechenden Eigenschaften dort gesetzt werden.

| oForm, oBeAttribCheckListBox, oBeFieldCheckListBox, oMemTable, oMemField,
  oDataSourceMem, oBeCheckListBox, oDab010:DB:="waDAB010, DAB011", oDataSourceStd, oTextEdit,
  oLabelAttribBox, oLabelFieldBox, oLabelListBox, aItems |

//******************************************************************************
function OnBeAttribCheckListBoxClickCheck( Sender )
| i, aItems, aValues |
  oTextEdit.Text := 'Sender: ' + ClassName(Sender) + crlf,
  // Werte (Value) der einzelnen Einträge
  oTextEdit.Text += 'ValuesChecked: ',
  aValues        := oBeAttribCheckListBox.ValuesChecked,
  for i:=1 to CollCount(aValues) do
     oTextEdit.Text += CollItem(aValues, i) + ',',
  end,
  // Index der ausgewählten Einträge
  aItems         := oBeAttribCheckListBox.CheckedItems,
  oTextEdit.Text += crlf + 'CheckedItems: '  + arrtostr(aItems) + crlf,
end,
//******************************************************************************
function OnBeFieldListBoxClickCheck( Sender )
| i, aItems, aValues |
  oTextEdit.Text := 'Sender: ' + ClassName(Sender) + crlf,
  // Werte (Value) der einzelnen Einträge
  oTextEdit.Text += 'ValuesChecked: ',
  aValues        := oBeFieldCheckListBox.ValuesChecked,
  for i:=1 to CollCount(aValues) do
     oTextEdit.Text += CollItem(aValues, i) + ',',
  end,
  // Index der ausgewählten Einträge
  aItems         := oBeFieldCheckListBox.CheckedItems,
  oTextEdit.Text += crlf + 'CheckedItems: '  + arrtostr(aItems) + crlf,
  // Werte wie sie in der MemTable abgelegt werden
  oTextEdit.Text += 'MemTable: ',
  for i:=1 to aLen(aItems) do
     oTextEdit.Text += CollItem(aValues, aItems[i]) + '/',
  end,
end,
//******************************************************************************
function OnBeCheckListBoxClickCheck( Sender )
| i, aItems, aValues |
  oTextEdit.Text := 'Sender: ' + ClassName(Sender) + crlf,
  // Werte (Value) der einzelnen Einträge
  oTextEdit.Text += 'ValuesChecked: ',
  aValues        := oBeCheckListBox.ValuesChecked,
  for i:=1 to CollCount(aValues) do
     oTextEdit.Text += CollItem(aValues, i) + ',',
  end,
  // Index der ausgewählten Einträge
  aItems         := oBeCheckListBox.CheckedItems,
  oTextEdit.Text += crlf + 'CheckedItems: '  + arrtostr(aItems) + crlf,

  // Werte wie sie in der Table abgelegt werden
  oTextEdit.Text += 'Table: ',
  for i:=1 to aLen(aItems) do
     oTextEdit.Text += CollItem(aValues, aItems[i]) + '/',
  end,
end,
//******************************************************************************
startseq
   //***************************************************************************
   // Beispiel-Formular erstellen
   //***************************************************************************
   oForm          := CreateObject('TFormEx'),
   oForm.OrigCapt := 'CheckListBox im Codeblock',
   oForm.Position := POSCREENCENTER,
   oForm.Width    := 505,
   oForm.Height   := 250,

   //***************************************************************************
   // Beispiel eines nicht datengebundenes CheckListBox-Controls
   //***************************************************************************
   oBeAttribCheckListBox         := CreateObject('TBeAttribCheckListBox',
                                                 'BeAttribCheckListBox1',
                                                 oForm, oForm),
   oBeAttribCheckListBox.Left    := 10,
   oBeAttribCheckListBox.Top     := 30,
   oBeAttribCheckListBox.Width   := 150,
   oBeAttribCheckListBox.Height  := 90,
   // Merkmalstabelle wählen (Standard "Lagerplatz-Verwaltung")
   oBeAttribCheckListBox.BeAttributeID := 102023,
   // der Initialwert kann vorgegeben werden !
   aItems := oBeAttribCheckListBox.CheckedItems,
   AAdd(aItems, 1),
   AAdd(aItems, 3),
   oBeAttribCheckListBox.CheckedItems := aItems,
   // Event zuweisen
   AssignEvent(oBeAttribCheckListBox, 'OnClickCheck', 'OnBeAttribCheckListBoxClickCheck'),


   //***************************************************************************
   // Beispiel eines datengebundenes CheckListBox-Controls auf einer MemTable
   // (jede beliebige Tabelle denkbar)
   //***************************************************************************
   // Memtable erstellen
   oMemTable          := CreateObject('TMemCalcTable', 'MemTable1', oForm),
   // Feld erstellen
   oMemField          := CollAdd( oMemTable.FieldsDefinition ),
   oMemField.Name     := 'PLATZ_VER',
   oMemField.DataType := 1, // Character
   oMemField.Size     := 20,
   oMemTable.Active   := True,
   // leeren Datensatz
   dbappend(oMemTable),

   // DataSource erstellen
   oDataSourceMem         := CreateObject('TDataSourceEx',
                                          'DataSourceExMem1', oForm),
   oDataSourceMem.DataSet := oMemTable,
   // CheckListBox-Control für Datenbank-Zugriff erstellen
   oBeFieldCheckListBox               := CreateObject('TBeFieldCheckListBox',
                                                      'BeFieldCheckListBox1',
                                                      oForm, oForm),
   oBeFieldCheckListBox.Left          := 170,
   oBeFieldCheckListBox.Top           := 30,
   oBeFieldCheckListBox.Width         := 150,
   oBeFieldCheckListBox.Height        := 90,
   oBeFieldCheckListBox.DataSource    := oDataSourceMem,
   oBeFieldCheckListBox.DataField     := 'PLATZ_VER',
   oBeFieldCheckListBox.BeAttributeID := 102023,
   // Event zuweisen
   AssignEvent(oBeFieldCheckListBox, 'OnClickCheck', 'OnBeFieldListBoxClickCheck'),


   //***************************************************************************
   // Beispiel eines datengebundenen "Standard" CheckListBox-Controls
   //***************************************************************************
   // DataSource erstellen
   oDataSourceStd         := CreateObject('TDataSourceEx',
                                          'DataSourceExStd1', oForm, oForm),
   oDataSourceStd.DataSet := oDab010,
   DbGoBottom(oDab010),
   // "Standard" CheckListBox-Control erstellen
   oBeCheckListBox            := CreateObject('TBeCheckListBox',
                                              'BeCheckListBox1', oForm, oForm),
   oBeCheckListBox.Left       := 330,
   oBeCheckListBox.Top        := 30,
   oBeCheckListBox.Width      := 150,
   oBeCheckListBox.Height     := 90,
   // durch die Zuweisung eines DataSources und eines DataFields, holt sich die
   // BeCheckListBox die MM-Tabelle von selbst
   oBeCheckListBox.DataSource := oDataSourceStd,
   oBeCheckListBox.DataField  := 'PLATZ_VER', // Feld-Control-Typ muss
                                              // TBeCheckListBox sein!
   dbrefresh(oDab010),              
   // Event zuweisen
   AssignEvent(oBeCheckListBox, 'OnClickCheck', 'OnBeCheckListBoxClickCheck'),

   //***************************************************************************
   // Ausgabe-Control - nur für den Test
   //***************************************************************************
   oTextEdit             := CreateObject('TBeEdit', 'Edit1', oForm, oForm),
   oTextEdit.Text        := '',
   oTextEdit.Left        := 10,
   oTextEdit.Top         := 130,
   oTextEdit.Width       := 470,
   oTextEdit.AutoSize    := False,
   oTextEdit.Height      := 80,
   oTextEdit.WantReturns := True,
   oTextEdit.WordWrap    := True,
   oTextEdit.ReadOnly    := True,

   //***************************************************************************
   // Beschriftungen
   //**************************************************************************<h3>
   oLabelAttribBox         := CreateObject('TBeLabel', 'BeLabel1', oForm, oForm),
   oLabelAttribBox.Left    := 10,
   oLabelAttribBox.Top     := 10,
   oLabelAttribBox.Caption := 'TBeAttribCheckListBox',
   oLabelFieldBox          := CreateObject('TBeLabel', 'BeLabel2', oForm, oForm),
   oLabelFieldBox.Left     := 170,
   oLabelFieldBox.Top      := 10,
   oLabelFieldBox.Caption  := 'TBeFieldCheckListBox',
   oLabelListBox           := CreateObject('TBeLabel', 'BeLabel3', oForm, oForm),
   oLabelListBox.Left      := 330,
   oLabelListBox.Top       := 10,
   oLabelListBox.Caption   := 'TBeCheckListBox',

   // Formular anzeigen
   ShowModal(oForm),
   // Formular zerstören
   DestroyObject(oForm),
onerror,
   writeln(GetErrorText()),
   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.