Einrichten der Suche

Erforderliche Objekte und Reihenfolge der Einrichtung

Um eine Suche einzurichten sind folgende Objekte zu definieren:

  • Abfragewerkzeug Modultypen definieren und einstellen,
  • Listengenerator Modultypen erstellen und einstellen,
  • Thema und Inhalt für die Anzeige der Suchergebnisse einrichten.

Bei der Einrichtung der Suche ist eine bestimmte Reihenfolge einzuhalten.

Das ergibt sich daraus, dass, das Abfragewerkzeug ein bestimmtes Thema für die Anzeige der Suchergebnisse benötigt und, dieses Thema einen Inhalt erfordert in den das Modul des Listengenerators, der die Datenbankabfrage veranlasst, eingebunden wird.

Die Definitionen und Deklarationen erfolgen der Reihe nach wie folgt:

  • Kapitel, Thema und Inhalt für Ergebnisliste einrichten,
  • Modultypen für Abfragewerkzeug erstellen und dort das Thema deklarieren mit dem die Ergebnisliste angezeigt werden soll,
  • Modultypen für Listengenerator erstellen und einrichten,
  • dem Inhalt der Anzeige der Ergebnisliste den Modultypen des Listengenerators zuweisen,
  • den Inhalt, mit dem die Anzeige der Suchliste erfolgen soll, freischalten.

Abfragewerkzeug für Suche einrichten und einbinden

Das Abfragewerkzeug ist ein Systemmodul das der Software unter dem Namen 'QueryTool' bekannt ist und fester Bestandteil der Software ist.

In der Grundausstattung, wie es mit der Software geliefert wird, zeigt das Modul ein Eingabefeld und eine Optionsbox an.

Im Verlauf einer Benutzersitzung sammelt es die eingegebenen Suchworte in einer Speicherstelle des Klienten und zeigt sie in einer Optionsliste an. Der Speicher des Klienten wird mit Beendigung des Browsers gelöscht.

Um das Eingabefeld anzuzeigen muss das Abfragewerkzeug explizit eingebunden werden. Das bedeutet, dass das Modul für jedes Template, oder jeden Inhalt, in dem es erscheinen soll deklariert werden muss. Die Software kennt kein spezielles Template, dass die Suche automatisch einbindet.

Für unser Beispiel wird das Abfragewerkzeug für das Template registriert, die Einbindung erfolgt somit durch den Produzenten des Template und das Produkt möchten wir im Kopf des Dokuments auftreten lassen.

Benutzerführung

Aus Gründen der Benutzerführung und Grafik werden wir die Themen für die Anzeige von Suchergebnissen in einem eigens dafür eingerichteten Template angezeigen. Der Benutzer erwartet auf der Ergebnisseite ebenfalls ein Suchfeld, um von dort aus eine erneute Suche ausführen zu können.

Folglich ist das Abfragewerkzeug nicht nur in das Template einzubinden, von dessen Dokument das Suchwort ursprünglich versendet wird, sondern auch in das Template, von dessen Dokument die Ergebnisliste angezeigt wird.

Modultypen erstellen

Abbildung 02-0611 zeigt den Modultypen Generator für das Abfragewerkzeug.

Das Formular des Generators der Modultypen besitzt lediglich ein Eingabefeld und ein Auswahlfeld. In das Eingabefeld wird der Name des Modultypen eingetragen und in dem Auswahlfeld ist das Modul auszuwählen, für das ein Modultyp generiert werden soll.

In Abbildung 02-0611 ist zu erkennen, dass wir bereits vorgearbeitet haben, denn der Auswahlbaum im Befehlsbalken des Managers zeigt den neuen Modultypen bereits an.

Die Schalter des Auswahlbaums zeigen ein Informationsicon oder ein Öffner Symbol an. Das Öffner Symbol wird angezeigt wenn für das Modul bereits Modultypen angelegt wurden. Das Infosymbol wird angezeigt, wenn für das Modul noch kein Modultyp erstellt wurde oder, wenn ein Erweiterungsmodul keine einstellbaren Parameter besitzt.

Modultypen erstellenAbb. 02-0611

Die in Abbildung 02-0611 weiterhin in dem Commander des Managers zu sehenden Schalter 'Installieren' und 'Deinstallieren' öffnen ein Formular zur Installation von Erweiterungsmodulen.

Wird im Auswahlbaum des Managers, der auch als 'Selektor' bezeichnet wird, der Schalter des erstellten Modultypen betätigt, dann erhalten wir vom Server das Formular des Modultypen Editors (Abb.02-0706).

Modultypen erstellenAbb.02-0706

Wenn Sie den Abschnitt 'Programmierbare Module und Modultypen' gelesen haben, dann verstehen Sie die Einstellung des Auswahlfelds 'Typ'. Damit wird eingestellt in welcher Umgebung das Modul implementiert werden kann.

Alle anderen Felder auf dem Registerblatt dienen der Information.

Die wesentliche Einstellung erfolgt auf dem Registerblatt 'Parameter' mit der Einstellung des Zielthemas (Abb.02-0711). In der Abbildung ist zu erkennen, dass wir das von uns erstellte Thema anwählen.

Modultypen erstellenAbb.02-0711

In Abb.01-0711 ist außerdem die Befehlsleiste des Modultypeneditors eingeblendet. Dort ist zu sehen welche weiteren Aktionen der Editor außerdem noch ausführt.

Modultypen in Produktion einbinden

Nachdem der Modultyp erstellt wurde werden wir das Modul in die Produktion einbinden.

Wir möchten das Produkt des Moduls im Kopf der Dokumente anzeigen lassen und deklarieren den Modultypen deshalb für das Template. Dafür begeben wir uns in den Templatemanager.

Wir möchten ausßerdem, dass die Sucheingabe auf der Startseite bereitsteht und dass die Suchergebnisse in einem speziellen Template angezeigt werden. Das Template soll mit Css spezifisch für die Anzeige von Suchergebnissen formatiert werden soll.

Dafür erstellen wir mit dem Templatemanager ein neues Template, das wir 'searchresults_contenttext' nennen. Anschließend registrieren wir den Modultypen des Abfragewerkzeugs für:

  • die Produktion des neuen Template und,
  • des Template 'Startchannel'.

Wie Templates erstellt und installiert werden ist an anderer Stelle beschrieben. Deshalb fahren wir hier jetzt mit der Beschreibung der Registrierung des Modultypen fort.

Mit dem Commander des Managers wählen wir das Template aus, für das wir den Modultypen registrieren möchten und fordern mit dem Schalter 'Registriere Modul' das entsprechende Registrar Formular auf (Abb.02-0806).

Das Formular ist ein reiner Registrar. Bestehende Einträge können nicht verändert, sondern lediglich mit einem anderen Formular aus dem Register entfernt werden.

Modultypen in Produktion einbindenAbb.02-0806

In der Auswahlliste für Positionen zeigt das Formular alle, für das ausgewählte Template definierten, Ersetzungspositionen an. Aus der Liste wählen wir die Position 'loadsearchtop' aus. Die Ersetzungsmarke der Position befindet sich im Kopf des Templates.

Mit 'Auswahl Modul' wählen wir den von uns erstellten Modultypen aus und speichern das Formular.

Werden mehrere Module für eine Position deklariert, kann die Reihenfolge ihres Auftretens definiert werden. Diese Einstellung ist jetzt nicht erforderlich.

Sind für das Template bereits andere Module registriert worden, dann zeigt der Registrar mit seiner Infoliste 'Bestehende Anbindungen' die bestehenden Registereinträge an.

Mit diesen beiden Deklarationen ist das Abfragewerkzeug betriebsbereit installiert und eingerichtet.

Listengenerator einbinden für Suche einrichten und einbinden

Wie Eingangs in dem Abschnitt 'Implementation der Suche' bereits beschrieben wurde produziert die Software Datenlisten mit einem programmierbaren Listengenerator Modul. Das Modul ist der Software als 'AutoTable' bekannt.

Die Software verwendet das Modul auch für die Anzeige von Ergebnislisten von Contentsuchen.

Das grundlegende Vorgehen ist dasselbe wie beim Abfragewerkzeug: Im ersten Schritt wird für das Modul ein Modultyp erstellt.

Nachfolgend wird für den Modultypen ein Zeilenwrapper deklariert, der die Produktion der gefundenen Datensätze durchführt. Zuletzt wird der Modultyp dem Inhalt zugewiesen, der für die Anzeige der Suchergebnisse erstellt wurde.

Einstellung des Modultypen

Nachdem wir einen Modultypen erstellt haben fordern wir, mit einem Klick auf den Schalter des neuen Modultypen, den Moduleditor des AutoTable Moduls an.

Dort begeben wir uns auf das Registerblatt 'Abfrage' und legen die 'content' Datenbanktabelle als Datenquelle fest.

Danach speichern wir den Editor erst einmal, damit die Definition der Datenbanktabelle eingelesen werden kann und die erforderlichen Umgebungsvariablen darauf eingestellt werden können.

Der Editor zeigt anschließend nachfolgende Bild an(Abb.02-0811).

Einstellung des ModultypenAbb.02-0811

Wie zu sehen ist haben wir den Modultypen mit 'autotable_searchresult_contenttext' benannt.

Wir achten darauf, dass der Listengenerator alle Felder der Tabelle abfragt. Damit stellen wir sicher dass der eingebundene Wrapper nicht auf Felder zugreifen kann, die ihm nicht bereitgestellt wurden. Wenn das geschieht, und der Programmierer des Wrappers die Zugriffe auf Datenfelder nicht entsprechend abgesichert hat, dann treten Fehler auf.

Felder die nicht explizit deklariert werden müssen

Alle Felder für die SQL Sortierung oder Gruppierung werden nicht als Abfragefeld deklariert, sondern werden in den Feldern 'Order Klausel' und 'Group Klausel' namentlich und explizit eingegeben.

Felder die deklariert werden müssen

Für den von uns eingesetzten Wrapper sind die Felder 'title', 'subtitle' und 'content' zu deklarieren.

Vorprogrammierte gespeicherte SQL Abfragen

Alternativ können wir auch einen bereits vorab, mit dem SQL Editor erstellten und, gespeicherten Bedingungssatz deklarieren. In dem Fall verwendet die, von dem Listengenerator angeforderte, Abfrage die gespeicherte WHERE Klausel (Abb.02-0906).

Vorprogrammierte SQL AbfragenAbb.02-0906

Ausschließlich eine der Methoden der Zuweisung ist möglich:

  • Entweder wird eine vordefinierter gespeicherter Abfragesatz verwendet,
  • oder der Abfragesatz wird von dem Modultypen definiert und temporär erzeugt.

Grundsätzlich ist die erste Methode vorzuziehen, aber wir gehen in diesem Beispiel, der Einfachheit wegen, nach der zweiten Methode vor.

Zeilenwrapper deklarieren

Nachdem das Formular mit der Auswahl der Datenbanktabelle gespeichert wurde, wechseln wir auf das Registerblatt 'Wrapper' und wählen dort den, mit 'contentsearch_regular' bezeichneten, Zeilenwrapper für die Standardanzeige der Suchergebnisse von Inhalten aus.

Der Wrapper ist, wie auch der weiter oben beschriebene Abfragesatz, standardmäßiger Bestandteil der Software.

Sind zusätzliche Wrapper vorhanden, dann zeigt der rechte Infoblock eine Liste mit der Beschreibungen des Wrapper. Derzeit ist dort nur ein Text zu sehen. Die Beschreibungen entstammen dem Code der Wrapper und werden von den Entwicklern der Wrapper dort eingetragen. Die Texte sind einsprachig und werden nicht übersetzt (Abb.02-0911).

Zeilenwrapper deklarierenAbb.02-0911

Wir speichern das Formular jetzt erneut und können uns nun im Frontend das vorläufige Ergebnis der Einstellungen ansehen.

Vorläufiges Resultat

Von dem Resultat ist derzeit noch nicht viel zu erwarten. Einerseits haben wir für das Template noch kein Css definiert und andererseits sind die Einstellungen des Listengenerators noch nicht abgeschlossen (Abb.02-1006).

Vorläufiges ResultatAbb.02-1006

Abbildung 02-1006 zeigt die Startseite und das, für das Template deklarierte, Sucheingabefeld. Wir geben das Wort London ein und lassen die Suche einmal ausführen.

In der Abbildung ist zu erkennen, dass wir die Suche vorweg bereits einmal ausgeführt haben, da die Datenliste des Eingabefeldes den Namen bereits anzeigt.

ErgebnislisteAbb.02-1011

Führen wir die Suche aus, dann zeigt sich das rohe unformatierte Bild des Suchergebnisses (Abb.02-1011).

Die Suche für die Zeichenfolge 'London' ergab drei Ergebnisse. Wie aus dem Pfad der Suchergebnisse zu ersehen ist, entstammt das dritte Ergebnis den Sicherungskopien der Inhalte, die wir während des Umbaus der Startseite angelegt haben. (Siehe Abschnitt 'Template, Kapitel und Themen erstellen')

Wenn wir diese Inhalte aus der Veröffentlichung herausnehmen, dann erscheinen sie nicht mehr in dem Suchergebnis (Abb.02-1106).

Ergebnisliste formatiertAbb.02-1106

Inhalte veröffentlichen oder sperren

Handelt es sich um mehrere oder viele Inhalte, die unveröffentlicht geschaltet werden sollen, so kann das mit Formular 'Veröffentlichung für Inhalte des Kapitels Bearbeiten' geschehen. Das Formular kann im Commander des Contentmanagers mit dem Schalter 'Veröffentlichen' angefordert werden (Abb.02-1111).

Inhalte veröffentlichen oder sperrenAbb.02-1111

Im Kopf des Formulars befinden Schaltflächen, mit denen alle Inhalte eines Kapitels ein- oder ausgeschaltet werden können. Entsprechend kann dort auch der Zähler für die Anzahl der ausgelieferten Anzeigen zurückgesetzt werden.

Inhalte, die mit einem Ausrufezeichen versehen sind, sind unveröffentlicht und damit für die Anzeige gesperrt.

Zähler der Anzeigen (Views)

Der Zähler der Anzeigen ist eine Eigenschaft der Themen und nicht der einzelnen Inhalte.
Das gilt auch für dynamisch erstellten Content. Auch dabei werden die Anfragen nach der Contentdirektive gezählt, für die der Content zusammengestellt wird.

Fertigstellung der Ergebnisanzeige

Im erstem Schritt weisen wir dem, im vorherigen Abschnitt erläuterten, neu erstellten Template das Start- und Fußmenü zu.

Danach übernehmen wir komplett alle Css Daten, Dateien und Templatedateien von dem Template 'destinations' und stellen im Backend für das Template den Satzspiegel auf die dritte Option ein.

Fertigstellung der ErgebnisanzeigeAbb.02-1206

Abbildung 02-1206 zeigt die Produktion nachdem wir die Daten des Css und Templates übernommen und den Satzspiegel eingestellt haben.

Mit den Css Daten ist auch das Kopfbild übernommen worden, das für dieses Template jedoch falsch formatiert ist.

Das Template 'destinations' hatte kein Eingabefeld für Suchworte. Deshalb konnte das Corporate dort vertikal mittig auftreten. Wir werden die Größe und Lage des Bildes neu einstellen.

Außerdem stehen noch alle Einstellungen für die Präsentationslogik des Listengenerators und die Css Einstellungen für den Inhalt aus.

Formular des Listengenerator Moduls für SQL Modellierung

Auf der Abbildung 02-1211 ist ein Formular zu erkennen, dass die Grafik des Listengenerators unterhalb des Eingabefeldes für Suchworte implementiert.

Das Formular ist unsichtbar und wird angezeigt, wenn das Icon neben dem Eingabefeld angeklickt wird.

Wir werden den Kopf des Listengenerators, und damit auch die hier gezeigte Sucheingabe, später ausschalten. Deshalb nutzen wir jetzt die Gelegenheit das Formular kurz zu zeigen und zu erläutern.

SQL ModellierungAbb.02-1211

Wird mit dem Eingabefeld ein Suchwort versendet, so hat das dieselbe Wirkung als sei das Suchwort mit dem Eingabefeld des Abfragewerkzeug versendet worden.

Allerdings werden darüber hinaus auch noch alle weiteren, in dem Formular zu gezeigte Parameter, an den Server.

Zwar müssen die Bedingungen der Abfragen, der Name der Datenbanktabelle und der Befehl einer Datenbankabfrage serverseitig unveränderlich vorprogrammiert sein, weitere Parameter, wie die in der Abbildung, werden jedoch auch außen her entgegengenommen.

In einem der anderen Abschnitt ist bereits beschrieben worden, dass der Empfänger der Software einen fest definierten Satz wohl bekannter Parameter verarbeitet und an die Programme der Software weitergibt.

Für unser aktuelles Beispiel ist die Anzeige des Kopfes der Liste, und darin enthalten auch diese Anwendung, unerwünscht. Wir möchten den Benutzern die gezeigten Optionen derzeit nicht bereitstellen.

Die Erläuterung weiterer Hintergründe würde uns in dem Rahmen dieses Abschnitts zu weit von dem eigentlichen Thema entfernen. Folglich belassen wir es jetzt bei dieser Beschreibung.

Kopf der generierten Ergebnisliste ausschalten

Wie im vorhergehenden Absatz erwähnt möchten wir den Kopf der Listenanzeige ausschalten.

Dazu begeben wir uns zurück in den Modulmanager und laden denentsprechenden Modultypen des Listengenerators in den Editor.

In Abschnitt 'Listengenerator einbinden und Zeilenwrapper deklarieren' haben wir für den Modultypen bereits die Datenabfrage eingestellt. Jetzt werden wir auf dem Registerblatt 'Parameter' die Erzeuger der Grafik, wie in Abbildung 02-1212 zu gezeigt, einstellen.

ModulparameterAbb.02-1212

Spezifische Css Regelungen

Die Optionen 'Css Datei', 'Css Identität des Wurzelrahmens' und 'Css Identität des Wurzelrahmens' liefern dem Modul entscheidende Deklarationen und Werte für die grafische Formatierung der Listenanzeige.

Mit der Version 1.1.7 können zwar die wesentlichen Knoten des erzeugten HTML über das generische Css ausgesteuert werden, aber die hiermit definierte Namenserweiterung kann damit nicht adressiert werden.

Entwickler können eine Css Datei erstellen und in dem AutoTable Css Verzeichnis 'customcss' ablegen. Dort vorhandene Css Dateien liest der Moduleditor des Listengenerators ein und zeigt sie in der Auswahlliste des Steuerelements 'Css Datei' ein.

Mit der Deklaration einer Css Datei durch den Modultypen wird veranlasst, dass der Produzent des Dokuments diese Datei in den Header des produzierten Dokuments einbindet.

Die Auszeichnungen der Identität und Css Klasse des Wurzelcontainers kann von Entwicklern als Bezeichner eines Css Namensraums verwendet werden, in dem spezifische, von der deklarierten Css Datei definierte, Regeln wirksam werden.

Praktische Anwendung finden diese Einstellungen im Zusammenhang mit Wrappern.

Der definierte Namensraum kann beispielsweise dazu genutzt werden um Anzeigeblöcke von Suchergebnissen zu formatieren.

Für den Css Editor sind die inneren Elemente der Zeilenwrapper nicht erreichbar. Zeilenwrapper sind benutzerdefinierte Erweiterungen der Software. Die Software kann die darin definierten HTML Elemente und Klassennamen nicht kennen. Entsprechende Konventionen sind für Zeilenwrapper nicht vorgesehen oder geplant.

Einstellung der Produzenten

Von entscheidender Bedeutung für unsere Beispielanwendung sind die Einstellungen, die das unterste rote Rechteck in Abb.02-1212 markiert.

Wie Sie mit der Einstellung für 'HTML Entities maskieren' verfahren hängt davon ab, ob Sie HTML Code auswerten lassen oder als Code anzeigen möchten. (Diese Option könnte in zukünftigen Versionen unerwünscht sein.)

Die Einstellungen des Paginators hängen davon ab, wie viele Ergebnisse zu erwarten sind. Werden mehr Ergebnisse geliefert, als unter 'Angezeigte Zeilen' eingestellt sind, dann erfolgt eine seitenweise Anzeige der Liste. Der 'Paginator' stellt die Navigationsschaltflächen bereit mit denen zwischen den Seiten gewechselt werden können.

Css Einstellungen

Um in unserem Beispiel fortzufahren werden wir jetzt zuerst das generische Css für den Inhalt und das Kopfbild einstellen.

Für den Inhalt sollen alle fest vorgegebenen Breiten gelöscht und auf 100% eingestellt werden. Lediglich die Breite des Contentrahmens wird fest begrenzt bleiben.
Das Kopfbild selbst wird gegen eine Kleinversion ausgetauscht, da die große Version bei einer verkleinerten Abbildung nicht mehr lesbar ist.

Abbildung 02-1306 zeigt die endgültige Fassung für die Suche in dem Text der Inhalte.

Css Einstellungen02-1306

Für die Einstellungen der Listenansicht ist anzumerken, dass die Elemente des Listengenerators fest codiert als Tabelle geregelt sind.

Damit die, von dem Zeilenwrapper erzeugten, Blöcke der angezeigten Ergebnisliste von dem generischen Css geregelt werden können, sind alle Elemente, deren Eigenschaft 'display' den Wert 'table-row-group' oder 'table' besitzen auf den Wert 'Block' einzustellen.

Die Einblendung in der Abbildung 02-1306 zeigt die Einstellungsmöglichkeiten des Css Editors für Formatierung der von AutoTable generierten Listenansichten.

Das betrifft die Tabelle selbst und außerdem den Kopf, Rumpf und den Fuß der Tabelle.

Suche mittels Erweiterungsattributen

Wenn Sie dem Beispiel bisher gefolgt sind, dann ist die Umstellung der Suche, von der Suche nach Zeichenfolgen der Inhalte, auf die Suche nach Werten der Erweiterungsattribute, mit wenig Aufwand verbunden.

Wir könnten den vorhandenen Modultypen umprogrammieren, aber wir möchten später wieder zurück umschalten können und erstellen deshalb einen neuen Modultypen mit dem Namen 'autotable_searchresult_contentattributes'.

Für diesen Modultypen stellen wird als Datenquelle der Abfrage die Tabelle 'contentattributes' ein und erlauben die Abfrage aller Felder außer der Datensatznummer (Abb.02-1311).

ModulparameterAbb.02-1311

Als Wrapper stellen wir den, ebenfalls mit der Software gelieferten, Wrapper 'contentsearch_attributes' ein (Abb.02-1406).

ModulparameterAbb.02-1406

Anschließend wechseln wir in den Contentmanager, rufen dort den Inhalt für die Anzeige der Suchergebnisse auf, und deklarieren im untersten Auswahlfeld den neu erstellten Modultypen für die Produktion (Abb.02-1411).

Inhalt Zeilwrapper einstellenAbb.02-1411

Im Frontend testen wir jetzt die Suche. Anders als bei der Suche in Inhalten können wir nun nach dem Wert eines Attributes der Inhalte suchen und erhalten eine Liste der Themen zurück, in denen die eingegebene Zeichenfolge als Wert eines ihrer Attribute gefunden wird (Abb.02-1506).

Ergebnisliste AnsichtAbb.02-1506

Als Suchwort haben wir die Zeichenfolge 'Düsseldorf' eingegeben und als Ergebnis erhalten wird eine Liste von Reisezielen die als Attribut den Wert der Zeichenfolge besitzen.

Die Abbildung 02-1506 zeigt das Produkt des Listengenerators. Die maximale Höhe der Zeilengruppe und des Tabellenkörpers sind hart eingestellt. Genauso auch der Scrollbalken. Diese Einstellungen müssen mit dem generischen Css annulliert werden. Die Höhen werden auf 'auto' und die Angabe der maximalen Höhen werden auf 'none' eingestellt.

Außerdem ist der Rumpf von Tabellen hart als Zeilengruppe geregelt, was mit dem Wert 'Block' ausgesteuert werden muss.

Nachdem wir diese Eigenschaften mit dem generischen Css und dem Wert 'auto' überschrieben haben erhalten wir die Liste wie in Abbildung 02-1511 zu sehen.

Ergebnisliste AnsichtAbb.02- 1511

Bildanzeige

Der Unterschied zwischen dem Wrapper für die Suche in Inhalten und dem Wrapper für die Suche nach Attributen der Inhalte ist die Anzeige von Bildern.

Für die Anzeige von Bildern verwendet der Wrapper die Miniaturversionen, die bei dem Upload der Bilder erstellt wurden. Werden für die Bilder mit dem Css andere Größen festgelegt, dann kann die Bildqualität stark nachlassen. Entsprechend muss dann mit dem generischen Css gegengesteuert werden.

Ein anders programmierter Wrapper wäre allerdings vorzuziehen.

Mehrfache Anzeige von Themen

Die Datenbanktabelle der Erweiterungsattribute ist vertikal organisiert. Die Eindeutigkeit ihrer Daten ergibt sich erst in Relation zu der Datenbanktabelle der Inhalte.

Erfolgt die Suche ohne die Eingabe eines Suchworts, dann liefert die Abfrage alle Datensätze der Tabelle aus. Das hat zur Folge, das die Ergebnisliste für jeden Inhalt so viele Datensätze anzeigt, wie in der Tabelle 'contentattributes' Attribute für den Inhalt gespeichert sind.

Dieser Effekt wird vermieden, wenn die Abfrageergebnisse entsprechend der Spalte der relationalen Fremdreferenz der Tabelle gruppiert werden. Das geschieht indem der Modultyp des Listengenerators den Spaltennamen der Fremdreferenz für eine Gruppierung deklariert.

In unserem Fall ist das die Spalte 'contentid', die mit dem Moduleditor auf dem Registerblatt 'Abfrage' für eine Gruppierung eingetragen wird.

Irrelevante Abfrageergebnisse

AutoTable hat die Eigenschaft, dass es die Eingabe leerer Suchworte mit der Rückgabe aller Datensätze der deklarierten Tabelle zurückgibt.

Wenn dieses Verhalten ausgeschlossen sein soll, dann ist mit dem SQL Manager für die entsprechende Abfrage ein spezieller Abfragesatz zu definieren, der leere Werte ausschließt.

Die Programmierung von Sql Abfragesätzen wird in dem Abschnitt 'Programmierung SQL Abfragesätzen' besprochen.