TBeStandardTable
TBeStandardTable
Die Klasse TBeStandardTable kapselt Eigenschaften und Funktionen zum Lesen und Verändern von Tabellen-Daten.
Eigenschaften
Eigenschaft | Beschreibung |
---|---|
CbFilter:C | Liefert den aktuellen Filter zurück oder setzt ihn. |
CbFiltered:L | Aktiviert oder deaktiviert die Filterung der Tabelle. |
CbFieldCount:N | Liefert die Anzahl der Datenbank-Felder zurück. |
CbBoF:L | "Begin of File". Gibt an, ob sich die Tabelle auf dem ersten Datensatz befindet. |
CbEoF:L | "End of File". Gibt an, ob sich die Tabelle auf dem letzten Datensatz befindet. |
CbBookmark:C | Speichert die Position des aktuellen Datensatzes in einem Bookmark-String und kann die Position wieder auf diesen Datensatz setzen. |
CbState:N | Liefert den aktuellen Status der Tabelle zurück. Mögliche Stati sind: |
CbIndexname:C | Liefert den Namen des aktuellen Indexes zurück oder setzt einen neuen Index. |
CbRecordCount:N | Liefert die Anzahl der Datensätze zurück. |
CbRecNo:N | Liefert die Nummer des aktuellen Datensatzes zurück. |
CbIsRecordLocked:L | Die Funktion prüft, ob der aktuelle Datensatz vom eigenen oder einem anderen Benutzer gesperrt ist. |
CbDataAvailable:L | Die Eigenschaft ist True, wenn Datensätze sichtbar sind |
CbNoDataAvailable:L | Die Eigenschaft ist True, wenn keine Datensätze sichtbar sind (z.B. wenn die Tabelle gefiltert ist) |
CbPermFilterCount:N | Gibt die Anzahl der in der Tabelle gesetzten permanenten Filter zurück. |
Funktionen
Funktion | Parameter | Beschreibung |
---|---|---|
CbCalcDataRecordSize():O Feldgröße(n) eines Datensatzes ermitteln | cFieldName:C | Feldnamen mit Semikolon getrennt, für die Felder, deren Größe ermittelt werden soll |
bDetermineStringSize:L | Tatsächliche Größe der String-Felder ermitteln | |
CbIsNoRecordMove():L Die Funktion prüft, ob ein Datensatzwechsel derzeit möglich ist. | ||
CbInsert():L Die Funktion fügt einen neuen, leeren Datensatz in die Tabelle ein. | ||
CbAppend():L Die Funktion fügt der Tabelle einen neuen, leeren Datensatz hinzu. | ||
CbEdit():L Die Funktion versetzt die Tabelle in den Bearbeitungsmodus.Ist dies nicht möglich, so wird eine Exception ausgelöst. | ||
CbPost():L Die Funktion schreibt neu angelegte oder editierte Datensätze in die Tabelle. | ||
CbCancel():L Die Funktion bricht den Bearbeitungsmodus der Tabelle ab und schreibt eventuell neu angelegte Datensätze oder neu zugewiesene Werte nicht in die Tabelle. | ||
CbDelete():L Die Funktion löscht den aktuellen Datensatz und setzt den Zeiger auf den nächsten Datensatz. | ||
CbField():O Die Funktion ermittelt ein Datenbank-Feld-Objekt anhand des Feldindexes und liefert es zurück. | nIndex:N | Index des Feldes |
CbFieldByName():0 Die Funktion ermittelt ein Datenbank-Feld-Objekt anhand des Feldnamens und liefert es zurück. | cFieldName:C | Name des Feldes |
CbLocate():L Die Funktion sucht in der Datenmenge nach einem bestimmten Datensatz und macht diesem zum aktive Datensatz. | cKeyFields:C | Feldnamen der Felder die durchsucht werden sollen. Durch Semikolon getrennt: |
cKeyValues:C | Suchbegriffe als Array: | |
nOptions:N | Suchoptionen: | |
CbFindKey():L Die Funktion sucht in einer Datenmenge nach einem bestimmten Datensatz und macht diesem zum aktiven Datensatz. CbFindKey benutzt für das Suchen des Datensatzes einen Index. | aKey:A | Schlüssel / Suchkriterium als Array |
CbFindNearest():L Die Funktion sucht in der Datenmenge den Datensatz der die größte Übereinstimmung mit aKey hat und macht diesen zum aktiven Datensatz. CbFindNearest benutzt für das Suchen des Datensatzes einen Index. | aKey:A | Schlüssel / Suchkriterium als Array |
CbOldValue():V Die Funktion repräsentiert den ursprünglichen Wert des Feldes. Nach einem CbEdit und vor einem CbPost. | cFieldName:C | Name des Feldes, dessen alter Wert ermittelt werden soll |
CbDisplayText():C Die Methode repräsentiert den Feldwert, wie er in einem datensensitiven Steuerelement angezeigt werden kann. | cFieldName:C | Name des Feldes, dessen Anzeigetext ermittelt werden soll |
CbGoTo():L Die Funktion springt zu dem Datensatz, dessen RecordNumber aRecordNo ist. | nRecordNo:N | RecordNumber des Datensatzed, auf den positioniert werden soll |
CbLockRecord():L Die Funktion sperrt den aktuellen Datensatz. Der Datensatz kann solange nicht von anderen Benutzern editiert werden, bis die Datensatzsperre mit CbUnLockRecord() wieder aufgehoben wird. | ||
CbUnLockRecord():L Die Funktion entsperrt den aktuellen Datensatz. | ||
CbGetBookmarkEx():O Die Funktion ermittelt ein BookmarkEx-Objekt welches detaillierte Information über den aktuellen Zustand der Tabelle bzgl. gesetztem Index, Range und Filter enthält. | ||
CbGetRecAsArray():O Die Funtkion ermittelt den aktuellen Datensatz als Array. Jedes Feld ist ein Element des Arrays. | ||
CbIsNoRecordMove():L Die Funktion liefert True zurück wenn NoRecordMove für die Tabelle aktiv ist, ansonsten liefert sie False zurück |
Methoden
Methode | Parameter | Beschreibung |
---|---|---|
CbFirst() Die Methode positioniert den Zeiger auf den ersten Datensatz der Tabelle. | ||
CbLast() Die Methode positioniert den Zeiger auf den letzten Datensatz der Tabelle. | ||
CbEnableControls() Die Methode aktiviert die Benachrichtigungen von datensensitiven Steuerelementen, die mit der Tabelle verbunden sind, falls diese zuvor mit CbDisableControls() deaktiviert wurden. | ||
CbDisableControls() Die Methode verhindert die Benachrichtigungen von datensensitiven Steuerelementen, die mit der Tabelle verbunden sind. Es werden beispielsweise die Browser, welche auf die Tabelle zugreifen nicht mehr automatisch aktualisiert. Dies kann die Geschwindigkeit erheblich erhöhen. Es muss durch ein startseq - always - stopseq sichergestellt werde, das CbEnableControls() ausgeführt wird. | ||
CbNext() Die Methode verschiebt den Zeiger um einen Datensatz nach unten. | ||
CbPrior() Die Methode verschiebt den Zeiger um einen Datensatz nach oben. | ||
CbMove() Die Methode verschiebt den Zeiger um die Anzahl der Datensätze aus nRecordCount in die gewünschte Richtung. Wenn nRecordCount negativ ist wird der Zeiger nach oben verschoben, wenn nRecordCount positiv ist, wird der Zeiger nach unten verschoben | nRecordCount:N | Anzahl der Datensätze um die der Zeiger verschoben werden soll. |
CbSetFilter() Setzt einen Filter auf die Tabelle und aktiviert diesen. | cFilter:C | Logischer Filter-Ausdruck. |
CbRefresh() Die Methode aktualisiert die Datenmenge durch erneutes Abrufen der Daten aus der Datenbank. | ||
CbSetRange() Die Methode begrenzt den sichtbaren Bereich der Tabelle auf die Datensätze die zwischen den übergebenen Werten sind. Es muss ein gültiger Index auf der Tabelle aktiv sein. Die Parameter müssen beide als Array übergeben werde. | aTopValue:U | Werte für die Obere Begrenzung |
aEndValue:U | Werte für die Untere Begrenzung | |
CbSetRangeEx() Die Methode grenzt den sichtbaren Bereich der Tabelle auf die Datensätze ein, die dem übergebenem Wert entsprechen. Es muss ein gültiger Index auf der Tabelle aktiv sein. Der Parameter muss als Array übergeben werden. | aScopeValue:U | Werte für die Begrenzung |
CbCancelRange() Die Methode hebt die Begrenzung des sichtbaren Bereiches der Tabelle auf. | ||
CbReplace() Die Methode ersetzt den Wert des Feldes durch den übergebenen Wert. | cFieldName:c | Name des Feldes, dessen Wert ersetzt werden soll |
vNewValue:V | Neuer Wert, der in das Feld geschrieben wird | |
CbGoToBookmarkEx() Die Funktion setzt den Zustand der Tabelle auf einen zuvor mit CbGetBookMarkEx() ermittelten Zustand zurück. Gesetzt werden Index, Ranges und Filter. | aBookmark:O | Zuvor mit CbGetBookmarkEx() ermitteltes Bookmarkobjekt |
aFreeBookmark:L | Gibt nach der Rückgabe das Bookmarkobjekt frei | |
CbSetRecAsArray() Die Methode schreibt die Werte eines Record-Array in die Table. Die Table muss sich dabei im Einfüge- oder Editiermodus befinden. | aRecord:U | Record-Array |
CbSetRecAsArrayEx() Die Methode schreibt die Werte eines Record-Array in die Table. Die Table muss sich dabei im Einfüge- oder Editiermodus befinden. | aRecord:U | Record-Array |
aIgnoreFields:C | Durch ';' getrennter String mit Feldnamen, die nicht aus dem RecordArray übernommen werden sollen | |
CbBeginNoRecordMove() Die Methode aktivert die NoRecordMove-Logik für die Tabelle. Währen NoRecordMove aktiv ist, kann die Tabelle nicht umpositioniert werden. | cNoRecordMoveFormName:c | Name des Formulars, in dem die Tabelle die gesperrt werden soll, verwendet wird. |
CbEndNoRecordMove() Die Methode deaktivert die NoRecordMove-Logik für die Tabelle wieder. Wenn die Methode aufgerufen wird wenn die NoRecordMove-Logik nicht aktiv ist, wird eine Exception ausgelöst | cNoRecordMoveFormName:c | Name des Formulars, in dem die Tabelle die entsperrt werden soll, verwendet wird. |
CbAddPermFilter() Fügt einen permanenten Filter hinzu. | aFilter:c | Filterbedingung |
CbRemovePermFilter() Hebt alle permanente Filter auf. | ||
CbGetPermFilter() Liefert einen bestimmten Filterausdruck zurück. Falls der eingegebene Index in der Liste der Filter nicht vorhanden ist (z.B. -1), liefert die Funktion alle permanente Filterausdrücke zurück. | aFilter:N | Filterindex |
CbSaveIndex() Den aktuellen Index der Tabelle merken | ||
CbSaveAndSetIndex() Den aktuellen Index der Tabelle merken und auf den angegebenen Index setzen | cIndexName:C | Name des Index der auch gesetzt wird |
CbResetIndex() Auf den Zuletzt gemerkten Index zurücksetzen |
Verfügbare Ereignisse
Ereignis | Beschreibung |
---|---|
NoRecordMoveChanged | Nach dem Umschalten der NoRecordMoveLogik |
NoRecordMoveChanging | Beim Umschalten der NoRecordMove-Logik |
Beispiel
//##############################################################################
//##############################################################################
// Beschreibung: Neues Memo anlegen und die Größe der enthaltenen Daten ermitteln
//##############################################################################
//##############################################################################
| m_oDab065, m_oMemoBO |
m_oDab065 := CreateObject('TBeStandardTable' , 'ARTIKELSTAMM'),
m_oDab065.WorkArea := waDab065,
m_oDab065.IndexName := 'Dab06B',
m_oMemoBO := CreateObject('TBeMemoBo', 'MEMOS'),
startseq
// Neues Memo anlegen
m_oMemoBO.WriteLastUsedUserID := 65,
m_oMemoBO.WriteLastUsed := true,
m_oMemoBO.CbInsertEmptyMemo(10, bcMemoLinkIDUser, 65, 0),
m_oMemoBO.SubjectValue := 'Neues Memo', // Memo-Feld
m_oMemoBO.CbCreatedBy := '65', // String-Feld
m_oMemoBO.CbPost(),
// Auf des neu angelegte Memo positionieren
m_oDab065.Active := True,
DBSeek({m_oMemoBO.CbID}, m_oDab065),
// Felder prüfen
WriteLn(m_oDab065.CbCalcDataRecordSize('PLATZ', True)),
WriteLn(m_oDab065.CbCalcDataRecordSize('PLATZ', False)),
WriteLn(m_oDab065.CbCalcDataRecordSize('DATA', True)),
WriteLn(m_oDab065.CbCalcDataRecordSize('BETREFF', True)),
WriteLn(m_oDab065.CbCalcDataRecordSize('', True)),
WriteLn(m_oDab065.CbCalcDataRecordSize('', False)),
always
DestroyObject(m_oMemoBO),
DestroyObject(m_oDab065),
stopseq,