In der
Konfigurationsdatei CADENAS_SETUP/geomsearch.cfg können Sie
eine Menge von Filterregeln definieren. Trifft auf ein Teil wenigstens eine
Regel zu, wird es herausgefiltert und somit von der Indexgenerierung
ausgenommen.
Bestimmen Sie im Block [settings], im Schlüssel GenerationFilterRules kommasepariert
eine Liste aller Regelnamen.
[settings] GenerationFilterRules=Rule1,Rule2,etc.
Legen Sie für jede Regel einen Block nach dem
Schema GenerationFilterRule_Rulex
an.
[GenerationFilterRule_Rule1] Catalogs=cat/__partialtest AlgoTypes=PARTIAL,TOPO PrjRegExp=.*ass.* PrjScriptCallbackFile= PrjScriptCallbackFunction= LineFilterCount=1 LineFilterVar0=TYPE LineFilterRegExp0=.*ass.* Conjunction=AND LineScriptCallbackFile=test.vbb LineScriptCallbackFunction=checkLine
Erläuterungen zu den einzelnen Schlüsseln:
AlgoTypes: Index-Typen, die NICHT generiert werden sollen (komma-separiert)
Bezieht sich auf die Projektbedingungen und auf die Zeilenbedingungen. Wenn nur höchstens 1 Projektbedingung und nur höchstens 1 Zeilenbedingung, dann ist es egal, ob OR oder AND.
Wenn OR, dann wird ein Projekt- oder Zeilenfilter angewendet, wenn EINE Regel zutrifft. Wenn AND, dann müssen alle nicht leeren Regeln zutreffen.
PrjRegExp: Angabe eines regulären Ausdrucks. Dieser wird auf den Projektpfad relativ zum Katalog getestet. Wenn er zutrifft, wird gefiltert.
Beispiel: Alle Projekte, die im Pfad irgendwo "asm" enthalten, werden durch folgenden regulären Ausdruck herausgefiltert.
.*asm.*
PrjScriptCallbackFile: Pfad zum vbb-Skript, das den callback enthält.
PrjScriptCallbackFunction: Die
Funktion PrjScriptCallbackFunction wird
aufgerufen mit dem Projektpfad als Parameter und sollte 1 zurückgeben,
wenn gefiltert werden soll, sonst 0.
Einstellungen zur Tabellenzeile
LineFilterCount: Anzahl der Zeilenbedingungen
Beispiel mit 3 Zeilenbedingungen:
LineFilterCount=3 LineFilterVar0=A LineFilterRegExp0=.*ab.* LineFilterVar1=B LineFilterRegExp1=.*ac.* LineFilterVar2=C LineFilterRegExp2=.*ad.*
LineFilterVar0: Variablenname aus der Tabelle (0 ist durch den Index der Bedingung zu ersetzen.)
LineFilterRegExp0= Der Merkmalswert der benannten Variablen muss den regulären Ausdruck matchen, um herausgefiltert zu werden. (0 ist durch den Index der Bedingung zu ersetzen.)
LineScriptCallbackFile: Pfad zum vbb-Skript, das den callback enthält.
LineScriptCallbackFunction: Die
Funktion LineScriptCallbackFunction wird
aufgerufen mit der Tabelle als Parameter und sollte 1 zurückgeben, wenn
gefiltert werden soll, sonst 0.
Folgendes Beispiel filtert alle Zeilen mit Line-Id größer 50000 raus:
function filterLines(table)
dim row = table.SelectedRow
dim lineId = row.Idnr
if lineId > 50000 then
filterLines = 1
else
filterLines = 0
end if
end function