Skip to main content
Skip table of contents

TBeAttribCombo

TBeAttribCombo

Erweiterte TBeCombo Klasse für die Verwendung von Merkmalstabellen ohne Bindung an eine Datenbank.

Allgemeine-Eigenschaften

Beschreibung
BeAttributeID:NID der zu verwendenden Merkmalstabelle

Verwendung:

  • TBeAttribCombo auf eine F12-Maske platzieren und BeAttributeID zuweisen
  • Im F12-Designer findet sich die Komponente unter der Palette "BE-Combo"

Beispiel

CODE
// demonstriert den Einsatz der Klassen TBeAttribCombo, TBeFieldAttribCombo, TBeCombo

// HINWEIS:
// Die im Beispiel "manuell" erzeugten Klassen können natürlich auch
// im Designer erstellt werden und die entsprechenden Eigenschaften dort gesetzt werden.

| oForm, oBeAttribCombo, oBeFieldAttribCombo, oMemTable, oMemField,
  oDataSourceMem, oBeCombo, oDab010:DB:="waDAB010, DAB011", oDataSourceStd, oTextEdit |

function OnBeAttribComboChange( Sender )
  oTextEdit.Text := 'Ohne Tabelle: '
                    + oBeAttribCombo.Text + ' = ' + oBeAttribCombo.Value,
end,

function OnBeFieldAttribComboChange( Sender )
  oTextEdit.Text := 'MemTable: '
                    + oBeFieldAttribCombo.Text + ' = ' + oBeFieldAttribCombo.Value,
end,

function OnBeComboChange( Sender )
  oTextEdit.Text := 'Artikelstamm [' + AllTrim(oDab010:ARTNR) + '] '
                    + oBeCombo.Text + ' = ' + oBeCombo.Value,
end,

startseq
   //***************************************************************************
   // Beispiel-Formular erstellen
   //***************************************************************************
   oForm          := CreateObject('TFormEx'),
   oForm.OrigCapt := 'Merkmalstabellen im Codeblock',
   oForm.Position := POSCREENCENTER,
   oForm.Width    := 400,
   oForm.Height   := 180,

   //***************************************************************************
   // Beispiel eines nicht datengebundenen Combo-Controls
   //***************************************************************************
   oBeAttribCombo                 := CreateObject('TBeAttribCombo', 'BeAttribCombo1', oForm, oForm),
   oBeAttribCombo.Left            := 10,
   oBeAttribCombo.Top             := 10,
   oBeAttribCombo.Width           := 360,
   oBeAttribCombo.Height          := 21,
   oBeAttribCombo.UseColorAsImage := true,
   // Merkmalstabelle wählen (Standard "RABAC - Evaluierungstypen")
   oBeAttribCombo.BeAttributeID := 102079,
   // der Initialwert kann vorgegeben werden !
   oBeAttribCombo.Value   := '1',
   // Event zuweisen
   AssignEvent(oBeAttribCombo, 'OnChange', 'OnBeAttribComboChange'),

   //***************************************************************************
   // Beispiel eines datengebundenen Combo-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     := 1,
   oMemTable.Active   := True,
   // Datensatz anlegen mit 'Gebinde-Chargen'
   dbappend(oMemTable),
   oMemTable:PLATZ_VER := 'G',

   // DataSource erstellen
   oDataSourceMem         := CreateObject('TDataSourceEx', 'DataSourceExMem1', oForm),
   oDataSourceMem.DataSet := oMemTable,
   // Combo-Control für Datenbank-Zugriff erstellen
   oBeFieldAttribCombo               := CreateObject('TBeFieldAttribCombo', 'BeFieldAttribCombo1', oForm, oForm),
   oBeFieldAttribCombo.Left          := 10,
   oBeFieldAttribCombo.Top           := 40,
   oBeFieldAttribCombo.Width         := 360,
   oBeFieldAttribCombo.Height        := 21,
   oBeFieldAttribCombo.DataSource    := oDataSourceMem,
   oBeFieldAttribCombo.DataField     := 'PLATZ_VER',
   oBeFieldAttribCombo.BeAttributeID := 102023,
   // Event zuweisen
   AssignEvent(oBeFieldAttribCombo, 'OnChange', 'OnBeFieldAttribComboChange'),
   AssignEvent(oBeFieldAttribCombo, 'OnExit',   'OnBeFieldAttribComboChange'),

   //***************************************************************************
   // Beispiel eines datengebundenen "Standard" Combo-Controls
   //***************************************************************************
   // DataSource erstellen
   oDataSourceStd         := CreateObject('TDataSourceEx', 'DataSourceExStd1', oForm, oForm),
   oDataSourceStd.DataSet := oDab010,
   DbGoBottom(oDab010),
   // "Standard" Combo-Control erstellen
   oBeCombo            := CreateObject('TBeCombo', 'BeCombo1', oForm, oForm),
   oBeCombo.Left       := 10,
   oBeCombo.Top        := 70,
   oBeCombo.Width      := 360,
   oBeCombo.Height     := 21,
   // durch die Zuweisung eines DataSources und eines DataFields, holt sich das BeCombo die MM-Tabelle von selbst
   oBeCombo.DataSource := oDataSourceStd,
   oBeCombo.DataField  := 'PLATZ_VER',
   // Event zuweisen
   AssignEvent(oBeCombo, 'OnChange', 'OnBeComboChange'),

   //***************************************************************************
   // Ausgabe-Control - nur für den Test
   //**************************************************************************<h3>
   oTextEdit           := CreateObject('TBeEdit', 'Edit1', oForm, oForm),
   oTextEdit.Text      := '',
   oTextEdit.Left      := 10,
   oTextEdit.Top       := 100,
   oTextEdit.Width     := 360,
   oTextEdit.Height    := 21,
   oTextEdit.ReadOnly  := True,

   // 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.