- Funktion find()
- Parameter
- table
- group
- id
- mode
- select
- index
- Ein find() kommt nie allein!
- Beispiel
- Parameter
- table
- group
- id
- mode
- select
- index
- Ein find() kommt nie allein!
- Beispiel
Mit der Funktion find() können beliebig viele Suchangaben gemacht werden.
Dabei werden Selektionen hierarchisch behandelt. Der Baum stellt sich wie folgt dar: Tabelle,Gruppe,Selektions-ID
Zeigen mehrere aufeinanderfolgende find() Anweisungen auf die gleiche Selektions-ID, so werden diese als Teilselektionen mit einem logischen ODER verknüpft.
Aufeinanderfolgende find() Anweisungen auf die gleiche Gruppe führen zu einer logischen UND-Verknüpfung der Selektions-IDs innerhalb der Gruppe. Das Ergebnis dieser UND-Verknüpfung steht als Eintrag ohne Selektions-ID bereit.
Beispiel:
tabelle="address" group="neukunden" id="kunden" select="Type=1" //Kennzeichen normaler Kunde
tabelle="address" group="neukunden" id="kunden" select="Type=2" //Kennzeichen besonderer Kunde
tabelle="address" group="neukunden" id="bestellt" select="LastOrder > 0" //Mindestens eine Bestellung durchgeführt
Es werden insgesamt 4 MKLs in tdb_find abgelegt, die drei Vollqualifizierten, so wie hier dargestellt und die folgende
tabelle="address" group="neukunden" id=""
welche letztlich die Verknüpfung der Teilmengen untereinander (mit logischem ODER) und innerhalb der Gruppe (mit logischem UND) abbildet.Freilich ließe sich dieses Beispiel auch vereinfachen, indem die beiden Selektion auf die Selektions-ID "kunden" zu einer zusammenfassen würde (z.B. "Type IN [1,2]").
Im Anschluss kann mit jeder dieser 4 MKLs weiter verfahren werden.
Dieser Parameter enthält den Namen der Tabelle, in der Datensätze gesucht bzw. markiert werden sollen.
Der Parameter table ist zwingend erforderlich.
Bestimmt die Gruppe, der die Markierungsliste angehören soll.
Die ID der Markierungsliste kann dazu verwendet werden, um bei mehreren Markierungslisten zu einer Tabelle und Gruppe, explizit auf exakt die gewünschte Teilmenge zuzugreifen.
Per default ist dieser Parameter auf "findandmark" eingestellt. Ausserdem können hier noch angegeben werden: "complete", "empty", "reuse", "filter" und "fulltext".
Enthält die Selektionsanweisung für die Modi findandmark und fulltext, sowie die Filterbereichs-Einschränkung für den Modus "filter"
Wird für eine Selektion mit dem Modus "filter" benötigt und enthält den Dateinamen des zu verwendenden Indexes.
Die Funktion find() wird erst wirksam, wenn eine leere Parameterliste übergeben wird.
D.h. es wird immer mindestens eine find()-Anweisung mit Parametern und eine ohne benötigt.
VAR ADDRESS : INTEGER = openDB(getTablePath("ADDRESS"))
find('table="ADDRESS" group="browser" id="teilmengeA" mode="findandmark" select="$PLZ = '+"'91126'"+"') //Teilmenge 1 bestimmen
find('table="ADDRESS" group="browser" id="teilmengeB" mode="fulltext" select="Name:tdb*"') //Teilmenge 2 bestimmen
find('') //Teilmenge 1 und 2 ermitteln und mit UND verknüpfen
esp:extensions:mkls:find, Rev. 6, Zuletzt geändert 2006-11-17 13:26, 724 Aufrufe
