Skip to main content
Skip table of contents

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
{{'Feldname':C, 'Absteigend?':L}, ...}

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

TbeGridDataBinding_Datasource
TbeGridDataBinding_Postgres



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

  • bcghttNone - alles, was unten nicht aufgelistet ist

  • bcghttCell - Zelle

  • bcghttColumnHeader - Kopfzeile einer Spalte (inkl. im Gruppierungsbox)

  • bcghttFilterRow - Filter-Zeile

  • bcghttGroupByBox - Gruppierungs-Box (aber nicht die beinhaltende Spalten)

  • bcghttGroupRow - Eine Gruppen-Zeile

  • bcghttGroupFooter - Gruppen-Fußnote

  • bcghttFooter - Fußnote

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

CODE
|
   // @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

CODE
|
   // @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,

Weitere Verknüpfungen

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.