TbeCbGrid
Die Klasse stellt eine Verbindung zu einem klassischen DataSource oder zu einem PostgreSQL Datenbank Server her. > ERROR > > Breaking Change: ab Version 7.6 ist die Verwendung mit allen Tabellen möglich. Hierzu mussten einige Funktionen angepasst werden.
Eigenschaften
|
Eigenschaft |
Beschreibung |
|---|---|
|
Align:N |
|
|
AlignWithMargins:L |
|
|
Anchors:N |
|
|
BeCbGridHelper:O |
|
|
BevelEdges:N |
|
|
BevelInner:N |
|
|
BevelKind:N |
|
|
BevelOuter:N |
|
|
BevelWidth:N |
|
|
BiDiMode:N |
|
|
BorderStyle:N |
|
|
BorderWidth:N |
|
|
CbFocusedColumn:O |
Fokusierte Spalte - siehe [TbeCbGridColumnWrapper](158793747_tbecbgridcolumnwrapper.md) |
|
CbFocusedRow:O |
Fokusierte Zeile - siehe [TbeCbGridRowWrapper](157941851_tbecbgridrowwrapper.md) |
|
CbOrder:U |
(nur lesend) Array aller Sortierungen (in der Sortierreihenfolge): ``` {{'Feldname':C, 'Absteigend?':L}, ...} ``` |
|
Constraints:O |
|
|
Cursor:N |
|
|
CustomHint:O |
|
|
DragCursor:N |
|
|
DragKind:N |
|
|
DragMode:N |
|
|
DragOpening:L |
|
|
DragOpeningWaitTime:N |
|
|
Enabled:L |
|
|
Font:O |
|
|
Height:N |
|
|
HelpContext:N |
|
|
HelpKeyword:C |
|
|
HelpType:N |
|
|
Hint:C |
|
|
Images:O |
|
|
Left:N |
|
|
LevelTabs:O |
|
|
LockedStateImageOptions:O |
|
|
LookAndFeel:O |
|
|
Margins:O |
|
|
Name:C |
|
|
ParentBiDiMode:L |
|
|
ParentCustomHint:L |
|
|
ParentFont:L |
|
|
PopupMenu:O |
|
|
RootLevelOptions:O |
|
|
RootLevelStyles:O |
|
|
Settings:O |
|
|
TabOrder:N |
|
|
TabStop:L |
|
|
Tag:N |
|
|
Top:N |
|
|
Touch:O |
|
|
Visible:L |
|
|
Width:N |
|
Methoden
|
Methode |
Beschreibung |
|---|---|
|
CbInitForDatasource(aDatasource:O) |
|
|
CbInitForPostgres(aKeyFieldNames:C, aSQL:C) |
|
|
CbDataBinding():O |
|
|
CbLoadGlobalSettings(aGridID:C) |
|
|
CbLoadUserSettings(aGridID:C) |
|
|
CbNext() |
|
|
CbPrior() |
|
|
CbFirst() |
|
|
CbLast() |
|
|
CbDataAvailable():L |
|
|
CbNoDataAvailable():L |
|
|
CbSaveGroups() |
|
|
CbRestoreGroups() |
|
|
CbRefreshData() |
|
|
CbData(aFieldName:C):U |
|
|
CbOrderBy(aFieldName:C, aDescending:L) |
|
|
CbRemoveOrder(aFieldName:C) |
|
|
CbBeginUpdate() |
|
|
CbEndUpdate() |
|
|
CbRefreshDynamicCaptions() |
|
|
CbRefreshDynamicVisibility() |
|
Beispiel
|
// @VDB@ Der nachfolgende Teil wird automatisch gepflegt.
oForm, A_HelpContent
// @VDE@ Der vorangehende Teil wird automatisch gepflegt.
, oGrid
|
function DoOnRecordChanged(aSender, aPrevRecordIndex, aCurrRecordIndex, aNewRecordFocused)
writeln(aCurrRecordIndex),
// writeln(oGrid.CbData('anummer')),
end,
startseq
// @VZB@ Der nachfolgende Teil wird automatisch gepflegt.
oForm := LoadForm("@GRIDTEST", Application),
A_HelpContent := FindObject(oForm, "A_HelpContent"),
// @VZE@ Der vorangehende Teil wird automatisch gepflegt.
oGrid := CreateObject('TbeCbGrid', 'grd', oForm, oForm),
oGrid.Align := alClient,
AssignEvent(oGrid, 'CbOnGridFocusedRecordChanged', 'DoOnRecordChanged'),
oGrid.CbInitForPostgres('anummer', 'select * from dab050'),
oGrid.CbLoadUserSettings('test2'),
oGrid.CbRefreshData(),
oGrid.CbNext(),
ShowModal(oForm),
onerror
DestroyObject(oForm),
GU_ShowStdErrorMessage(GetErrorText(), GetErrorObj()),
stopseq,
|
// @VDB@ Der nachfolgende Teil wird automatisch gepflegt.
oForm, A_HelpContent, DataSourceEx1
// @VDE@ Der vorangehende Teil wird automatisch gepflegt.
, oGrid, oQuery, oDB, cCurrentOrder
|
function SwapSort()
oGrid.CbBeginUpdate(),
startseq
oGrid.CbRemoveOrder(''),
if cCurrentOrder == 'MC' then
oGrid.CbOrderBy('KDNR', true),
oGrid.CbOrderBy('NAME1', false),
cCurrentOrder := 'KDNR',
else
oGrid.CbOrderBy('MC', false),
cCurrentOrder := 'MC',
endif,
always
oGrid.CbEndUpdate(),
stopseq,
end,
function DoOnRecordChanged(aSender, aPrevRecordIndex, aCurrRecordIndex, aNewRecordFocused)
// writeln(aCurrRecordIndex),
// writeln(ArrToStr(ogrid.CbOrder)),
// writeln(oGrid.CbData('anummer')),
end,
function DoOnDblClick(aSender, aTarget, aObject)
// writeln(ogrid.CbFocusedColumn.Caption),
SwapSort(),
case aTarget
of bcghttNone :: writeln('nothing'),
of bcghttCell :: writeln('cell in column ' + ' has field <' + aObject.FieldName + '> with value <' + aObject.EditValue + '>'),
of bcghttColumnHeader :: writeln('column header of ' + aObject.Caption),
of bcghttFilterRow :: writeln('geht gegenwärtig nicht'),
of bcghttGroupByBox :: writeln('group by box'),
of bcghttGroupRow :: writeln('group row index ' + str(aObject.RecordIndex)),
of bcghttGroupFooter :: writeln('group summary'),
of bcghttFooter :: writeln('footer'),
endcase,
end,
startseq
// @VZB@ Der nachfolgende Teil wird automatisch gepflegt.
oForm := LoadForm("@GRIDTEST", Application),
A_HelpContent := FindObject(oForm, "A_HelpContent"),
DataSourceEx1 := FindObject(oForm, "DataSourceEx1"),
// @VZE@ Der vorangehende Teil wird automatisch gepflegt.
oGrid := CreateObject('TbeCbGrid', 'grd', oForm, oForm),
oGrid.Align := alClient,
oGrid.CbInitForDatasource(DataSourceEx1),
oGrid.CbLoadUserSettings('test'),
AssignEvent(oGrid, 'CbOnGridFocusedRecordChanged', 'DoOnRecordChanged'),
AssignEvent(oGrid, 'CbOnDblClick', 'DoOnDblClick'),
oQuery := CreateObject('TbeAdsQuery', ,oForm),
DataSourceEx1.Dataset := oQuery,
CollAdd(oQuery.SQL, 'select * from "dab050.adt" '),
oQuery.Active := true,
oGrid.CbBeginUpdate(),
startseq
oGrid.CbOrderBy('KDNR', true),
oGrid.CbOrderBy('NAME1', true),
cCurrentOrder := 'KDNR',
always
oGrid.CbEndUpdate(),
stopseq,
oGrid.CbNext(),
ShowModal(oForm),
onerror
DestroyObject(oForm),
GU_ShowStdErrorMessage(GetErrorText(), GetErrorObj()),
stopseq,