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
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)