Mercurial > lada > lada-server
comparison README.markdown @ 985:3019d7797037
Beschreibung zur Erstellung von Filtern zu README hinzugefügt.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Wed, 29 Jun 2016 18:36:35 +0200 |
parents | aba3a5384c69 |
children | 1f7e40f27103 |
comparison
equal
deleted
inserted
replaced
984:a51b320a5316 | 985:3019d7797037 |
---|---|
87 | 87 |
88 $ mvn javadoc:javadoc | 88 $ mvn javadoc:javadoc |
89 | 89 |
90 Der Ordner 'target' enthält dann die Dokumentation im HTML-Format in dem | 90 Der Ordner 'target' enthält dann die Dokumentation im HTML-Format in dem |
91 Verzeichnis 'site/apidocs'. | 91 Verzeichnis 'site/apidocs'. |
92 | |
93 Erstellen von Filtern | |
94 --------------------- | |
95 Um neue Filter für die Suche von Proben, Messungen und Messprogrammen zu | |
96 erstellen sind die folgenden Schritte erforderlich: | |
97 | |
98 1. In der Tabelle 'stammdaten.query' einen neuen Eintrag erzeugen. | |
99 * id: Primary-Key (wird generiert) | |
100 * name: Der Name des Filters | |
101 * type: Der Datentyp der gefiltert werden soll. | |
102 (mögliche Werte: 'probe', 'messung', 'messprogramm') | |
103 * sql: Das auszuführende SQL-Statement (siehe #Regeln für die Syntax) | |
104 * description: Ein beschreibender Text | |
105 | |
106 2. In der Tabelle 'stammdaten.result' für die anzuzeigenden Felder je einen | |
107 Eintrag erzeugen: | |
108 * id: Primary-Key (wird generiert) | |
109 * query_id: ID der zugehörigen und in Schritt 1. erzeugten Query | |
110 * data_index: Name des Feldes zur Übertragung an den Client (in CamelCase) | |
111 * header: Der Titel der Spalte für diesen Eintrag | |
112 * width: Die Spaltenbreite (in Pixel) | |
113 * flex: Dynamische Spaltenbreite (true/false) | |
114 * index: Der Datenindex | |
115 | |
116 3. In der Tabelle 'stammdaten.filter' für jedes 'WHERE'-Statement in der Query | |
117 einen Eintrag erzeugen: | |
118 * id: Primary-Key (wird generiert) | |
119 * query_id: ID der zugehörigen und in Schritt 1. erzeugten Query | |
120 * data_index: Der Name der Variablen, die in dem 'WHERE'-Statement ersetzt | |
121 werden soll | |
122 * type: Datenbasis, die im Client als Eingabe genutzt werden soll | |
123 * label: Der angezeigte Name des Filters | |
124 * multiselect: Mehrfachangabe von Werten für diesen Filter (true/false) | |
125 | |
126 ### Regeln | |
127 | |
128 * Bei Queries vom Typ `probe` muss das erste selektierte Feld `probe.id` sein. | |
129 Dieses wird in der Oberfläche nicht angezeigt. | |
130 * Bei Queries vom Typ `messung` muss das erste selektierte Feld `messung.id` und | |
131 das Zweite `probe.id AS probeId` sein. Diese werden in der Oberfläche nicht | |
132 angezeigt. | |
133 * Bei Queries vom Typ `messprogramm` muss das erste selektierte Feld | |
134 `messprogramm.id` sein. Dieses wird in der Oberfläche nicht angezeigt. | |
135 * Selektierte Felder müssen als `feld.bezeichner AS data_index` angegeben | |
136 werden, wobei `data_index` dem Eintrag `data_index` in der Tabelle | |
137 `data_index` entspricht. | |
138 * Im `WHERE`-Statement genutzte Variablen müssen in der Form `:variablenName` | |
139 angegeben werden und dem Feld `data_index` im zugehörigen Filter entsprechen. | |
140 * Um auch leere Filterangaben zu erlauben, sollte im `WHERE`-Statement ein | |
141 Element wie folgt aussehen: | |
142 ... WHERE (tabelle.feld = :variablenName OR '' = :variablenName) ... | |
143 * Wenn ein Filter mit `multiselect = true` angegeben wird, so wird in dem | |
144 `WHERE`-Statement ein `SIMILAR TO` erwartet. | |
145 * Das Feld `index` in der Tabelle `stammdaten.result` dient zur Zuordnung des | |
146 selektierten Datenfeldes zu dem Entsprechenden Eintrag in der Tabelle | |
147 `stammdaten.result`. Beispiel: | |
148 ``` | |
149 'SELECT probe.id, probe.mst_id AS mstId, probe.hauptproben_nr AS hpNr, ...' | |
150 |----- index 1 -----| |--------- index 2 --------| | |
151 Wird in der Tabelle 'stammdaten.result' zu: | |
152 Result 1: | |
153 ... | |
154 data_index: mstId | |
155 header: Messstelle | |
156 width: 100 | |
157 flex: false | |
158 index: 1 | |
159 ... | |
160 Result 2: | |
161 ... | |
162 data_index: hpNr | |
163 header: Hauptproben Nr | |
164 width: 150 | |
165 flex: false | |
166 index: 2 | |
167 .... | |
168 ``` | |
169 * Filter für Stammdaten werden gesondert behandlet und beinhalten keine | |
170 SQL-Statements. Dementsprechend können auch keine Einträge für Ergebnisse in | |
171 der Tabelle `stammdaten.result` gemacht werden. Filter können allerdings, | |
172 unter der Bedingung, dass `data_index` auf einen in vorhandenes und in | |
173 CamelCase geschriebenes Datenfeld zeigt, angelegt werden. | |
174 Momentan sind Filter für die folgenden Stammdaten möglich: | |
175 * Orte | |
176 * Probennehmer | |
177 * Datensatzerzeuger | |
178 * Messprogrammkategorien |