TbeCbGrid
TbeCbGrid
Die Klasse stellt eine Verbindung zu einem klassischen DataSource oder zu einem PostgreSQL Datenbank Server her.
Breaking Change: ab Version 7.6 ist die Verwendung mit allen Tabellen möglich. Hierzu mussten einige Funktionen angepasst werden.
Eigenschaften | Beschreibung |
---|---|
CbFocusedColumn:O | Fokusierte Spalte - siehe TbeCbGridColumnWrapper |
CbFocusedRow:O | Fokusierte Zeile - siehe TbeCbGridRowWrapper |
CbOrder:A | (nur lesend) Array aller Sortierungen (in der Sortierreihenfolge):
CODE
|
Funktion | Parameter | Beschreibung |
---|---|---|
CbInitForDatasource() Grid mit klassischem Datasource initialisieren | aDataSource:O | Achtung! Dies ist eine Hauptfunktion. Nutzen Sie keine andere Funktionen, ohne eine der Init-Funktionen auszuführen! |
CbInitForPostgres() Grid für die Verwendung mit PostgreSQL initialisieren | aKeyFieldNames:C aSQL:C | Achtung! Dies ist eine Hauptfunktion. Nutzen Sie keine andere Funktionen, ohne eine der Init-Funktionen auszuführen! |
CbDataBinding() siehe | ||
CbLoadGlobalSettings() Allgemeine Einstellung aus den Browser-RABAC-Zuweisungen laden | aGridID:C | ID des Browsers |
CbLoadUserSettings() Allgemeine und Benutzer Einstellungen aus den Browser-RABAC-Zuweisungen laden | aGridID:C | ID des Browsers |
CbNext() Auf nächsten Datensatz positionieren | ||
CbPrior() Auf vorherigen Datensatz positionieren | ||
CbFirst() Auf den ersten Datensatz positionieren | ||
CbLast() Auf den letzten Datensatz positionieren | ||
CbDataAvailable():L Prüft, ob Daten vorhanden sind | ||
CbNoDataAvailable():L Prüft, ob keine Daten vorhanden sind | ||
CbSaveGroups() vom Benutzer aufgeklappte Gruppierungen zwischen speichern | Hier werden nur die Gruppierungen die aufgeklappt sind, gespeichert | |
CbRestoreGroups() zwischen aufgeklappte Gruppierungen wiederherstellen | Die Gruppierungen, die mit CbSaveGroups() gespeichert wurden, wieder aufklappen | |
CbRefreshData() Daten vom Server laden | ||
CbData():U Wert einer Feld-Spalte vom aktuellen Datensatz ermitteln | aFieldName:C | Name des Feldes |
CbBeginUpdate() Updates starten (Neu-Zeichnen verzichten) | ||
CbEndUpdate() Updates beenden (Neu-Zeichnen wieder einschalten) | ||
CbOrderBy() Eine Spalte sortieren (andere Spaltensortierungen bleiben ungeändert) | aFieldName:C aDescending:L | Name des Feldes Absteigend |
CbRemoveOrder() Spaltensortierung entfernen | aFieldName:C | Name des Feldes (Leer-String <''> = alle Spalten) |
CbRefreshDynamicCaptions() | Dynamische Spalten Überschriften neu berechnen | |
CbRefreshDynamicVisibility() | Dynamische Spalten Sichtbarkeit neu berechnen |
Ereignisse | Beschreibung | Parameter |
---|---|---|
CbGridFocusedRecordChangedEvent | Beim Wechseln eines Datensatzes | TODO |
CbOnDblClick | Beim Doppelklick auf eine Zeile | aSender:O - das Grid aTarget:C - Target-Typ
aObject:O - Objekt als Referenz (entweder TbeCbGridColumnWrapper, TbeCbGridRowWrapper oder nil) |
CbOnKeyDown | Tastendruck | |
CbOnKeyPress | Tastendruck gehalten | |
CbOnKeyUp | Tastendruck aufgehoben |
Beispiel für die Verwendung mit PostgreSQL
|
// @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,
Beispiel für die Verwendung mit DataSource
|
// @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,