EvtLstRecControl
EvtLstRecControl
Überspringen einzelner Datensätze
Details
- Name: Typ Beschreibung
- aEvt:
eventEreignisinformationen - aRecID:
int/bigintID des Datensatzes - Resultat:
logicDatensatz anzeigen? - Siehe: Liste , Objekte ,
DbFilter,DbSelection, Ereignisbefehle , Ereignisabläufe RecList , Ereignisabläufe RecView
Das Ereignis wird ausgelöst, bevor ein Datensatz dargestellt wird. Es kann verwendet werden, um bestimmte Datensätze im RecList - oder RecListPopup -Objekt nicht darzustellen.
Aus Performancegründen sollte dieses Ereignis nur dann verwendet werden, wenn die Anzahl der Sätze, die angezeigt wird, überwiegt und keine allzu großen Lücken vorhanden sind, da jeder Satz der übersprungen wird, auch gelesen werden muss.
Definition des Funktionskopfes:
sub EvtLstRecControl
(
aEvt : event; // Ereignis
aRecID : bigint; // Datensatz-ID
)
: logic; // Datensatz anzeigen?
{
return(true);
}
Alternativer Funktionskopf:
sub EvtLstRecControl
(
aEvt : event; // Ereignis
aRecID : int; // Datensatz-ID
)
: logic; // Datensatz anzeigen?
{
return(true);
}
aEvt
In diesem Parameter vom Typ event wird unter anderem der Deskriptor des auslösenden Objektes übergeben. Dies ist der Deskriptor des Objektes, in dem die Ereignisfunktion eingetragen wurde.
aRecID
Dies ist die Datensatz-ID des Datensatzes, der angezeigt werden soll.
Wird der alternative Funktionskopf verwendet, kommt es zum Laufzeitfehler _ErrValueOverflow , wenn die zu übergebende Datensatz-ID nicht in den Wertebereich von int passt.
Resultat
Der Rückgabewert bestimmt, ob der Datensatz angezeigt wird. Bei true wird der Datensatz angezeigt, bei false nicht.
Der Datensatzpuffer der Datei, die zum Aufbau des RecList -Objekts benötigt wird, darf nicht verändert werden. Bei Änderungen kann nicht mehr die korrekte Reihenfolge ermittelt werden und es kann dazu kommen, dass Datensätze übersprungen oder eine Endlosschleife programmiert wird. Muss der entsprechende Feldpuffer verändert werden, muss dafür Sorge getragen werden, dass der ursprüngliche Zustand des Feldpuffers wieder hergestellt wird, bevor die Funktion beendet wird (siehe RecBufCopy () ).
Beispiele:
sub EvtLstRecControl
(
aEvt : event; // Ereignis
aRecID : bigint; // Datensatz-ID
)
: logic; // Datensatz anzeigen?
{
// nur Datensätze anzeigen, in denen UNIX im Titel vorkommt
return(ART.aBezeichnung =* '*UNIX*');
}
// Ereignisaufruf mit Sicherung der Feldpuffer
sub EvtLstRecControl
(
aEvt : event; // Ereignis
aRecID : bigint; // Datensatz-ID
)
: logic; // Datensatz anzeigen?
local
{
tRecBuf : handle;
tErg : logic;
}
{
// Sichern der Feldpuffer
tRecBuf # RecBufCreate(aEvt:Obj->wpDbFileNo);
RecBufCopy(aEvt:Obj->wpDbFileNo, tRecBuf);
...
// Wiederherstellen des Datensatzpuffers
tRecBuf->RecBufCopy(aEvt:Obj->wpDbFileNo);
tRecBuf->RecBufDestroy();
// Rückgabe des Ergebnisses
return(tErg);
}