TBeAttribCombo
TBeAttribCombo
Erweiterte TBeCombo Klasse für die Verwendung von Merkmalstabellen ohne Bindung an eine Datenbank.
Allgemeine-Eigenschaften | Beschreibung |
---|---|
BeAttributeID:N | ID 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,