1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.fhw.cabaweb.export.xml;
19
20 import java.sql.Date;
21 import java.text.SimpleDateFormat;
22 import java.util.ArrayList;
23 import java.util.Collection;
24 import java.util.Iterator;
25 import java.util.Properties;
26
27 import org.apache.commons.logging.Log;
28 import org.apache.commons.logging.LogFactory;
29 import org.dom4j.Document;
30 import org.dom4j.DocumentHelper;
31 import org.dom4j.Element;
32
33 import org.fhw.cabaweb.data.DataInterfaceErgebnissdaten;
34 import org.fhw.cabaweb.data.DataInterfaceErgebnissdatenFeldbeschreibungen;
35 import org.fhw.cabaweb.data.DataInterfaceErgebnissdatenFeldnamen;
36 import org.fhw.cabaweb.data.DataInterfaceErgebnissdatenGruppierungsbeschreibungen;
37 import org.fhw.cabaweb.data.DataInterfaceErgebnissdatenGruppierungsnamen;
38 import org.fhw.cabaweb.data.DataInterfaceErgebnissdatenUntergruppierungsbeschreibungen;
39 import org.fhw.cabaweb.data.DataInterfaceErgebnissdatenUntergruppierungsnamen;
40 import org.fhw.cabaweb.data.DataInterfaceProjektgruppen;
41 import org.fhw.cabaweb.data.DataInterfaceReporterzeugung;
42 import org.fhw.cabaweb.data.DataInterfaceReportnamen;
43 import org.fhw.cabaweb.data.dataobjects.Ergebniss;
44 import org.fhw.cabaweb.ojb.dataobjects.Ergebnissdaten_Feldbeschreibungen;
45 import org.fhw.cabaweb.ojb.dataobjects.Ergebnissdaten_Feldnamen;
46 import org.fhw.cabaweb.ojb.dataobjects.Ergebnissdaten_Gruppierungsbeschreibungen;
47 import org.fhw.cabaweb.ojb.dataobjects.Ergebnissdaten_Gruppierungsnamen;
48 import org.fhw.cabaweb.ojb.dataobjects.Ergebnissdaten_Untergruppierungsbeschreibungen;
49 import org.fhw.cabaweb.ojb.dataobjects.Ergebnissdaten_Untergruppierungsnamen;
50 import org.fhw.cabaweb.ojb.dataobjects.Projektgruppen;
51 import org.fhw.cabaweb.ojb.dataobjects.Reporterzeugung;
52 import org.fhw.cabaweb.ojb.dataobjects.Reportnamen;
53 import org.fhw.cabaweb.tools.StringUtilities;
54
55 /***
56 * Die Klasse exportiert die in der Reporterzeugung festgelegten WErte in eine XML Datei.
57 *
58 * @author <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
59 * @version Version 1.0 28.08.-11.09.2004
60 */
61 public class ExportReport
62 {
63 /*** Commons Logging Instanz */
64 private static Log log = LogFactory.getLog("org.fhw.cabaweb.export.xml.ExportReport");
65
66 /***
67 * Default Konstruktor
68 */
69 public ExportReport()
70 {
71 super();
72 }
73
74 /***
75 * Erzeugt ein XML Document für das entsprechende Projekt / Unternehmen / Quartal / ...
76 *
77 * @param projektnummer Die Projektnummer
78 * @param gruppennummer Die Gruppennummer
79 * @param quartal Das Quartal
80 * @param reportnummer Die Reportnummer
81 * @param sprachnummer Die Sprachnummer
82 * @return XML (DOM4J) Document
83 */
84 public final static Document createDocument(Integer projektnummer, Integer gruppennummer, Integer quartal, Integer reportnummer, Integer sprachnummer)
85 {
86 if (log.isDebugEnabled())
87 {
88 log.debug(" Erzeuge XML Dokument ROOT");
89 }
90
91 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
92 DataInterfaceErgebnissdatenGruppierungsnamen dieg = new DataInterfaceErgebnissdatenGruppierungsnamen();
93 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
94 DataInterfaceErgebnissdatenGruppierungsbeschreibungen diegb = new DataInterfaceErgebnissdatenGruppierungsbeschreibungen();
95
96 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
97 DataInterfaceErgebnissdatenUntergruppierungsnamen dieug = new DataInterfaceErgebnissdatenUntergruppierungsnamen();
98 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
99 DataInterfaceErgebnissdatenUntergruppierungsbeschreibungen dieugb = new DataInterfaceErgebnissdatenUntergruppierungsbeschreibungen();
100
101 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
102 DataInterfaceErgebnissdatenFeldnamen dief = new DataInterfaceErgebnissdatenFeldnamen();
103 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
104 DataInterfaceErgebnissdatenFeldbeschreibungen diefb = new DataInterfaceErgebnissdatenFeldbeschreibungen();
105
106 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
107 DataInterfaceErgebnissdaten die = new DataInterfaceErgebnissdaten();
108
109 Properties properties = StringUtilities.getPropertiesFromFile("cabaweb.properties");
110
111 String urlDTD = properties.getProperty("URLReportDTD");
112
113 Date datum = new Date(System.currentTimeMillis());
114 SimpleDateFormat dfd = new SimpleDateFormat("dd.MM.yyyy");
115 SimpleDateFormat dft = new SimpleDateFormat("HH:mm:ss");
116
117 Document document = DocumentHelper.createDocument();
118 document.addDocType("report", null, urlDTD);
119 Element root = document.addElement("report");
120
121 root.addAttribute("version", "1.0");
122 root.addAttribute("date", dfd.format(datum));
123 root.addAttribute("time", dft.format(datum));
124
125 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
126 DataInterfaceReportnamen dirn = new DataInterfaceReportnamen();
127 Reportnamen reportname = (Reportnamen) dirn.sucheReportnummer(reportnummer);
128
129 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
130 DataInterfaceReporterzeugung dir = new DataInterfaceReporterzeugung();
131 Collection reportlines = dir.sucheReportnummer(reportnummer);
132 Iterator reportlinesiterator = reportlines.iterator();
133
134 /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
135 DataInterfaceProjektgruppen dipg = new DataInterfaceProjektgruppen();
136 Projektgruppen projektgruppe = (Projektgruppen) dipg.sucheGruppennummer(gruppennummer);
137
138 Element page = null;
139 Element section = null;
140 Element element = null;
141 Element name = null;
142 Element text = null;
143
144 boolean sectionchange = true;
145 boolean start = true;
146
147 if (log.isDebugEnabled())
148 {
149 log.debug(" Erzeuge XML Dokument INHALT");
150 }
151
152 while (reportlinesiterator.hasNext())
153 {
154 Reporterzeugung reportline = (Reporterzeugung) reportlinesiterator.next();
155
156 if (log.isDebugEnabled())
157 {
158 log.debug(" + " + reportline.getReportnamen().getBezeichnung() + " (" + reportline.getPosition() + ")");
159 }
160
161 if (start == true && reportname.getBezeichnung() != null)
162 {
163 page = root.addElement("page").addAttribute("title", reportname.getBezeichnung()).addAttribute("project", projektgruppe.getProjekte().getProjektname()).addAttribute("group", gruppennummer.toString()).addAttribute("groupname", projektgruppe.getGruppenname().toString()).addAttribute("quarter", projektgruppe.getProjekte().getAktuellesQuartal().toString());
164 start = false;
165 }
166 else if (start == true)
167 {
168 page = root.addElement("page").addAttribute("title", "Seite").addAttribute("project", projektgruppe.getProjekte().getProjektname()).addAttribute("group", gruppennummer.toString()).addAttribute("groupname", projektgruppe.getGruppenname().toString()).addAttribute("quarter", projektgruppe.getProjekte().getAktuellesQuartal().toString());
169 start = false;
170 }
171
172 if (reportline.getGruppierungsname() != null && reportline.getGruppierungsname().compareTo("") != 0)
173 {
174 if (log.isDebugEnabled())
175 {
176 log.debug(" - G " + reportline.getGruppierungsname());
177 }
178
179 Collection gruppierungsnamen = dieg.sucheGruppierungsname(projektnummer, reportline.getGruppierungsname());
180 Iterator gruppierungsnameniterator = gruppierungsnamen.iterator();
181 Ergebnissdaten_Gruppierungsnamen gruppierungsname = null;
182
183 if (gruppierungsnameniterator.hasNext())
184 {
185 gruppierungsname = (Ergebnissdaten_Gruppierungsnamen) gruppierungsnameniterator.next();
186 }
187
188 Collection gruppierungsbeschreibungen = diegb.sucheKombination(projektnummer, gruppierungsname.getGruppierungsnummer(), sprachnummer);
189 Iterator gruppierungsbeschreibungsiterator = gruppierungsbeschreibungen.iterator();
190 Ergebnissdaten_Gruppierungsbeschreibungen gruppierungsbeschreibung = null;
191
192 if (gruppierungsbeschreibungsiterator.hasNext())
193 {
194 gruppierungsbeschreibung = (Ergebnissdaten_Gruppierungsbeschreibungen) gruppierungsbeschreibungsiterator.next();
195 }
196
197 if (gruppierungsbeschreibung.getBeschreibung() != null && sectionchange)
198 {
199 section = page.addElement("section").addAttribute("title", gruppierungsbeschreibung.getKurzbeschreibung());
200 element = section.addElement("element");
201 name = element.addElement("name").addText(gruppierungsbeschreibung.getKurzbeschreibung());
202 text = element.addElement("text").addAttribute("align", "center").addAttribute("style", "normal").addAttribute("weight", "bold").addAttribute("size", "0").addText(gruppierungsbeschreibung.getBeschreibung());
203 sectionchange = false;
204 }
205 else if (sectionchange)
206 {
207 section = page.addElement("section").addAttribute("title", "Sektion");
208 element = section.addElement("element");
209 name = element.addElement("name").addText("Sektion");
210 text = element.addElement("text").addAttribute("align", "center").addAttribute("style", "normal").addAttribute("weight", "bold").addAttribute("size", "0").addText("Sektion");
211 sectionchange = false;
212 }
213
214 Collection untergruppierungsnamen = dieug.sucheGruppierungsnummer(gruppierungsname.getGruppierungsnummer());
215 Iterator untergruppierungsnameniterator = untergruppierungsnamen.iterator();
216
217 while (untergruppierungsnameniterator.hasNext())
218 {
219 Ergebnissdaten_Untergruppierungsnamen untergruppierungsname = (Ergebnissdaten_Untergruppierungsnamen) untergruppierungsnameniterator.next();
220
221 Collection unterggruppierungsbeschreibungen = dieugb.sucheKombination(projektnummer, gruppierungsname.getGruppierungsnummer(), untergruppierungsname.getUntergruppierungsnummer(), sprachnummer);
222 Iterator unterggruppierungsbeschreibungsiterator = unterggruppierungsbeschreibungen.iterator();
223 Ergebnissdaten_Untergruppierungsbeschreibungen unterggruppierungsbeschreibung = null;
224
225 if (unterggruppierungsbeschreibungsiterator.hasNext())
226 {
227 unterggruppierungsbeschreibung = (Ergebnissdaten_Untergruppierungsbeschreibungen) unterggruppierungsbeschreibungsiterator.next();
228 }
229
230 if (unterggruppierungsbeschreibung.getBeschreibung() != null)
231 {
232 element = section.addElement("element");
233 name = element.addElement("name").addText(untergruppierungsname.getUntergruppierungsname());
234 text = element.addElement("text").addAttribute("align", "left").addAttribute("style", "normal").addAttribute("weight", "bold").addAttribute("size", "0").addText(unterggruppierungsbeschreibung.getBeschreibung());
235 }
236 else
237 {
238 element = section.addElement("element");
239 name = element.addElement("name").addText("Überschrift");
240 text = element.addElement("text").addAttribute("align", "left").addAttribute("style", "normal").addAttribute("weight", "bold").addAttribute("size", "0").addText("");
241 }
242
243 Collection ergebnisse = die.sucheKombination_Untergruppierung(projektnummer, gruppennummer, quartal, untergruppierungsname.getUntergruppierungsnummer());
244 Iterator ergebnisiterator = ergebnisse.iterator();
245 Ergebniss ergebnis = null;
246
247 while (ergebnisiterator.hasNext())
248 {
249 ergebnis = (Ergebniss) ergebnisiterator.next();
250
251 Collection feldbeschreibungen = diefb.sucheKombination(projektnummer, ergebnis.getFeldnummer(), ergebnis.getGruppierungsnummer(), ergebnis.getUntergruppierungsnummer(), sprachnummer);
252 Iterator feldbeschreibungsiterator = feldbeschreibungen.iterator();
253 Ergebnissdaten_Feldbeschreibungen feldbeschreibung = null;
254
255 if (feldbeschreibungsiterator.hasNext())
256 {
257 feldbeschreibung = (Ergebnissdaten_Feldbeschreibungen) feldbeschreibungsiterator.next();
258 }
259
260 element = section.addElement("element");
261 name = element.addElement("name").addText(ergebnis.getFeldname());
262 text = element.addElement("text").addAttribute("align", "left").addAttribute("style", "normal").addAttribute("weight", "normal").addAttribute("size", "0").addText(feldbeschreibung.getKurzbeschreibung());
263 Element contents = element.addElement("contents").addAttribute("align", "right").addAttribute("position", "right").addAttribute("style", "normal").addAttribute("weight", "normal").addAttribute("size", "0");
264 contents.addElement("value").addText(ergebnis.getStringWert());
265 if (reportline.getWertkennzeichenanzeigen() != null && reportline.getWertkennzeichenanzeigen().booleanValue() == true)
266 contents.addElement("symbol").addText(feldbeschreibung.getGroessenkennzeichen().trim());
267 }
268 }
269 }
270 else if (reportline.getUntergruppierungsname() != null && reportline.getUntergruppierungsname().compareTo("") != 0)
271 {
272 if (log.isDebugEnabled())
273 {
274 log.debug(" - UG " + reportline.getUntergruppierungsname());
275 }
276
277 Collection untergruppierungsnamen = dieug.sucheUntergruppierungsname(projektnummer, reportline.getUntergruppierungsname());
278 Iterator untergruppierungsnameniterator = untergruppierungsnamen.iterator();
279 Ergebnissdaten_Untergruppierungsnamen untergruppierungsname = null;
280
281 if (untergruppierungsnameniterator.hasNext())
282 {
283 untergruppierungsname = (Ergebnissdaten_Untergruppierungsnamen) untergruppierungsnameniterator.next();
284 }
285
286 Collection untergruppierungsbeschreibungen = null;
287 Iterator untergruppierungbeschreibungsiterator = null;
288 Ergebnissdaten_Untergruppierungsbeschreibungen untergruppierungsbeschreibung = null;
289
290 if (untergruppierungsname != null && untergruppierungsname.getErgebnissdaten_gruppierungsnamen() != null && untergruppierungsname.getErgebnissdaten_gruppierungsnamen().getGruppierungsnummer() != null)
291 {
292 untergruppierungsbeschreibungen = dieugb.sucheKombination(projektnummer, untergruppierungsname.getErgebnissdaten_gruppierungsnamen().getGruppierungsnummer(), untergruppierungsname.getUntergruppierungsnummer(), sprachnummer);
293 untergruppierungbeschreibungsiterator = untergruppierungsbeschreibungen.iterator();
294
295 if (untergruppierungbeschreibungsiterator.hasNext())
296 {
297 untergruppierungsbeschreibung = (Ergebnissdaten_Untergruppierungsbeschreibungen) untergruppierungbeschreibungsiterator.next();
298 }
299 }
300
301 if (untergruppierungsbeschreibung.getBeschreibung() != null && sectionchange)
302 {
303 section = page.addElement("section").addAttribute("title", untergruppierungsbeschreibung.getBeschreibung());
304 element = section.addElement("element");
305 name = element.addElement("name").addText(untergruppierungsbeschreibung.getKurzbeschreibung());
306 text = element.addElement("text").addAttribute("align", "center").addAttribute("style", "normal").addAttribute("weight", "bold").addAttribute("size", "0").addText(untergruppierungsbeschreibung.getBeschreibung());
307 sectionchange = false;
308 }
309 else if (sectionchange)
310 {
311 section = page.addElement("section").addAttribute("title", "Sektion");
312 element = section.addElement("element");
313 name = element.addElement("name").addText(untergruppierungsbeschreibung.getKurzbeschreibung());
314 text = element.addElement("text").addAttribute("align", "center").addAttribute("style", "normal").addAttribute("weight", "bold").addAttribute("size", "0").addText(untergruppierungsbeschreibung.getBeschreibung());
315 sectionchange = false;
316 }
317
318 Collection ergebnisse = die.sucheKombination_Untergruppierung(projektnummer, gruppennummer, quartal, untergruppierungsname.getUntergruppierungsnummer());
319 Iterator ergebnisiterator = ergebnisse.iterator();
320 Ergebniss ergebnis = null;
321
322 while (ergebnisiterator.hasNext())
323 {
324 ergebnis = (Ergebniss) ergebnisiterator.next();
325
326 Collection feldbeschreibungen = diefb.sucheKombination(projektnummer, ergebnis.getFeldnummer(), ergebnis.getGruppierungsnummer(), ergebnis.getUntergruppierungsnummer(), sprachnummer);
327 Iterator feldbeschreibungsiterator = feldbeschreibungen.iterator();
328 Ergebnissdaten_Feldbeschreibungen feldbeschreibung = null;
329
330 if (feldbeschreibungsiterator.hasNext())
331 {
332 feldbeschreibung = (Ergebnissdaten_Feldbeschreibungen) feldbeschreibungsiterator.next();
333 }
334
335 element = section.addElement("element");
336 name = element.addElement("name").addText(ergebnis.getFeldname());
337 text = element.addElement("text").addAttribute("align", "left").addAttribute("style", "normal").addAttribute("weight", "normal").addAttribute("size", "0").addText(feldbeschreibung.getKurzbeschreibung());
338 Element contents = element.addElement("contents").addAttribute("align", "right").addAttribute("position", "right").addAttribute("style", "normal").addAttribute("weight", "normal").addAttribute("size", "0");
339 contents.addElement("value").addText(ergebnis.getStringWert());
340 if (reportline.getWertkennzeichenanzeigen() != null && reportline.getWertkennzeichenanzeigen().booleanValue() == true)
341 contents.addElement("symbol").addText(feldbeschreibung.getGroessenkennzeichen().trim());
342 }
343 }
344 else if (reportline.getFeldname() != null && reportline.getFeldname().compareTo("") != 0)
345 {
346 if (log.isDebugEnabled())
347 {
348 log.debug(" - F " + reportline.getFeldname());
349 }
350
351 Collection feldnamen = dief.sucheFeldnameBenutzer(projektnummer, reportline.getFeldname());
352 Iterator feldnameniterator = feldnamen.iterator();
353 Ergebnissdaten_Feldnamen feldname = null;
354
355 if (feldnameniterator.hasNext())
356 {
357 feldname = (Ergebnissdaten_Feldnamen) feldnameniterator.next();
358 }
359
360 Ergebniss ergebnis = (Ergebniss) die.sucheKombination_Feld(projektnummer, gruppennummer, quartal, feldname.getFeldnummer());
361
362 Collection feldbeschreibungen = diefb.sucheKombination(projektnummer, ergebnis.getFeldnummer(), ergebnis.getGruppierungsnummer(), ergebnis.getUntergruppierungsnummer(), sprachnummer);
363 Iterator feldbeschreibungsiterator = feldbeschreibungen.iterator();
364 Ergebnissdaten_Feldbeschreibungen feldbeschreibung = null;
365
366 if (feldbeschreibungsiterator.hasNext())
367 {
368 feldbeschreibung = (Ergebnissdaten_Feldbeschreibungen) feldbeschreibungsiterator.next();
369 }
370
371 String textalign = "left";
372 if (reportline.getTextalign() != null)
373 textalign = reportline.getTextalign();
374
375 String textstil = "normal";
376 if (reportline.getTextstil() != null)
377 textstil = reportline.getTextstil();
378
379 String textweight = "normal";
380 if (reportline.getTextstil() != null)
381 textweight = reportline.getTextstil();
382
383 if (textstil.compareTo("italic") != 0)
384 textstil = "normal";
385
386 if (textweight.compareTo("bold") != 0)
387 textweight = "normal";
388
389 String contentsalign = "right";
390 if (reportline.getWertalign() != null)
391 contentsalign = reportline.getWertalign();
392
393 String contentsposition = "right";
394 if (reportline.getWertposition() != null)
395 contentsposition = reportline.getWertposition();
396
397 String contentsstil = "normal";
398 if (reportline.getWertstil() != null)
399 contentsstil = reportline.getWertstil();
400
401 String contentsweight = "normal";
402 if (reportline.getWertstil() != null)
403 contentsweight = reportline.getWertstil();
404
405 if (contentsstil.compareTo("italic") != 0)
406 contentsstil = "normal";
407
408 if (contentsweight.compareTo("bold") != 0)
409 contentsweight = "normal";
410
411 String elementname = ergebnis.getFeldname();
412 String elementtext = feldbeschreibung.getKurzbeschreibung();
413 String elementwert = ergebnis.getStringWert();
414 String elementsymbol = feldbeschreibung.getGroessenkennzeichen().trim();
415 Element contents = null;
416 Element value = null;
417 Element symbol = null;
418
419 String remembersectiontitle = null;
420 if(section != null)
421 remembersectiontitle = section.attributeValue("title");
422 else
423 remembersectiontitle = null;
424
425 if (reportline.getWiederholung() != null && reportline.getWiederholung().booleanValue() == true)
426 {
427 if (reportline.getWiederholungstyp() != null && reportline.getWiederholungstyp().compareTo("Quartal") == 0)
428 {
429 section = page.addElement("section").addAttribute("title", feldbeschreibung.getKurzbeschreibung()).addAttribute("quarter", quartal.toString()).addAttribute("group", "0").addAttribute("groupname", "Administration");
430
431 elementname = feldbeschreibung.getKurzbeschreibung();
432 elementtext = feldbeschreibung.getBeschreibung();
433
434 element = section.addElement("element");
435 name = element.addElement("name").addText(elementname);
436 text = element.addElement("text").addAttribute("align", "center").addAttribute("style", "normal").addAttribute("weight", "bold").addAttribute("size", "0").addText(elementtext);
437
438 section = page.addElement("section").addAttribute("title", feldbeschreibung.getKurzbeschreibung()).addAttribute("quarter", quartal.toString()).addAttribute("group", "0").addAttribute("groupname", "Administration");
439
440 ArrayList lines = new ArrayList();
441 lines.add(0, reportline);
442
443 int i = 1;
444 while (reportlinesiterator.hasNext())
445 {
446 reportline = (Reporterzeugung) reportlinesiterator.next();
447
448 if(reportline.getSektionende().equals(Boolean.TRUE) || reportline.getSeitenende().equals(Boolean.TRUE))
449 {
450 lines.add(i, reportline);
451 break;
452 }
453 else
454 {
455 lines.add(i, reportline);
456 i++;
457 }
458 }
459
460 elementname = "";
461 elementtext = "";
462
463 element = section.addElement("element");
464 name = element.addElement("name").addText(elementname);
465 text = element.addElement("text").addAttribute("align", textalign).addAttribute("style", textstil).addAttribute("weight", textweight).addAttribute("size", "0").addText(elementtext);
466
467 for(int j = 0; j < lines.size(); j++)
468 {
469 reportline = (Reporterzeugung) lines.get(j);
470
471 feldnamen = dief.sucheFeldnameBenutzer(projektnummer, reportline.getFeldname());
472 feldnameniterator = feldnamen.iterator();
473 feldname = null;
474
475 if (feldnameniterator.hasNext())
476 {
477 feldname = (Ergebnissdaten_Feldnamen) feldnameniterator.next();
478 }
479
480 feldbeschreibungen = diefb.sucheKombination(projektnummer, feldname.getFeldnummer(), feldname.getErgebnissdaten_untergruppierungsnamen().getErgebnissdaten_gruppierungsnamen().getGruppierungsnummer(), feldname.getErgebnissdaten_untergruppierungsnamen().getUntergruppierungsnummer(), sprachnummer);
481 feldbeschreibungsiterator = feldbeschreibungen.iterator();
482 feldbeschreibung = null;
483
484 if (feldbeschreibungsiterator.hasNext())
485 {
486 feldbeschreibung = (Ergebnissdaten_Feldbeschreibungen) feldbeschreibungsiterator.next();
487 }
488
489 if (reportline.getFeldbedingungstartquatal() != null && reportline.getFeldbedingungendquartal() != null)
490 {
491 for (int quart = reportline.getFeldbedingungstartquatal().intValue(); quart <= reportline.getFeldbedingungendquartal().intValue(); quart++)
492 {
493 elementname = "Quartal " + quart;
494 elementtext = "Quartal " + quart;
495
496 element = section.addElement("element");
497 name = element.addElement("name").addText(elementname);
498 text = element.addElement("text").addAttribute("align", "center").addAttribute("style", textstil).addAttribute("weight", textweight).addAttribute("size", "0").addText(elementtext);
499 }
500 }
501 else
502 {
503 elementname = feldbeschreibung.getKurzbeschreibung();
504 elementtext = feldbeschreibung.getKurzbeschreibung();
505
506 element = section.addElement("element");
507 name = element.addElement("name").addText(elementname);
508 text = element.addElement("text").addAttribute("align", "center").addAttribute("style", textstil).addAttribute("weight", textweight).addAttribute("size", "0").addText(elementtext);
509 }
510 }
511 element.addAttribute("linebreak", "true");
512
513 Collection gruppen = dipg.sucheProjektnummer(projektnummer);
514 Iterator gruppeniterator = gruppen.iterator();
515 Projektgruppen grp = null;
516
517 while (gruppeniterator.hasNext())
518 {
519 grp = (Projektgruppen) gruppeniterator.next();
520
521 if (grp.getAktiv().booleanValue() == false || grp.getGruppenname().compareTo("Default") == 0 || grp.getGruppenname().compareTo("Projektleiter") == 0 || grp.getGruppenname().compareTo("Administratorgruppe") == 0)
522 gruppeniterator.remove();
523 }
524
525 gruppeniterator = gruppen.iterator();
526
527 while (gruppeniterator.hasNext())
528 {
529 reportline = (Reporterzeugung) lines.get(0);
530
531 feldnamen = dief.sucheFeldnameBenutzer(projektnummer, reportline.getFeldname());
532 feldnameniterator = feldnamen.iterator();
533 feldname = null;
534
535 if (feldnameniterator.hasNext())
536 {
537 feldname = (Ergebnissdaten_Feldnamen) feldnameniterator.next();
538 }
539
540 feldbeschreibungen = diefb.sucheKombination(projektnummer, feldname.getFeldnummer(), feldname.getErgebnissdaten_untergruppierungsnamen().getErgebnissdaten_gruppierungsnamen().getGruppierungsnummer(), feldname.getErgebnissdaten_untergruppierungsnamen().getUntergruppierungsnummer(), sprachnummer);
541 feldbeschreibungsiterator = feldbeschreibungen.iterator();
542 feldbeschreibung = null;
543
544 if (feldbeschreibungsiterator.hasNext())
545 {
546 feldbeschreibung = (Ergebnissdaten_Feldbeschreibungen) feldbeschreibungsiterator.next();
547 }
548
549 section = page.addElement("section").addAttribute("title", feldbeschreibung.getKurzbeschreibung()).addAttribute("quarter", quartal.toString()).addAttribute("group", "0").addAttribute("groupname", "Administration");
550
551 grp = (Projektgruppen) gruppeniterator.next();
552
553 elementname = grp.getGruppenname();
554 elementtext = grp.getGruppenname();
555
556 element = section.addElement("element");
557 name = element.addElement("name").addText(elementname);
558 text = element.addElement("text").addAttribute("align", "left").addAttribute("style", textstil).addAttribute("weight", textweight).addAttribute("size", "0").addText(elementtext);
559
560 for(int j = 0; j < lines.size(); j++)
561 {
562 reportline = (Reporterzeugung) lines.get(j);
563
564 feldnamen = dief.sucheFeldnameBenutzer(projektnummer, reportline.getFeldname());
565 feldnameniterator = feldnamen.iterator();
566 feldname = null;
567
568 if (feldnameniterator.hasNext())
569 {
570 feldname = (Ergebnissdaten_Feldnamen) feldnameniterator.next();
571 }
572
573 feldbeschreibungen = diefb.sucheKombination(projektnummer, feldname.getFeldnummer(), feldname.getErgebnissdaten_untergruppierungsnamen().getErgebnissdaten_gruppierungsnamen().getGruppierungsnummer(), feldname.getErgebnissdaten_untergruppierungsnamen().getUntergruppierungsnummer(), sprachnummer);
574 feldbeschreibungsiterator = feldbeschreibungen.iterator();
575 feldbeschreibung = null;
576
577 if (feldbeschreibungsiterator.hasNext())
578 {
579 feldbeschreibung = (Ergebnissdaten_Feldbeschreibungen) feldbeschreibungsiterator.next();
580 }
581
582 if (reportline.getFeldbedingungstartquatal() != null && reportline.getFeldbedingungendquartal() != null)
583 {
584 for (int quart = reportline.getFeldbedingungstartquatal().intValue(); quart <= reportline.getFeldbedingungendquartal().intValue(); quart++)
585 {
586 Ergebniss ergebnisI = (Ergebniss) die.sucheKombination_Feld(projektnummer, grp.getGruppennummer(), new Integer(quart), feldname.getFeldnummer());
587
588 if(ergebnisI != null)
589 {
590 elementname = ergebnisI.getFeldname();
591 elementtext = feldbeschreibung.getKurzbeschreibung();
592 elementwert = ergebnisI.getStringWert();
593 elementsymbol = feldbeschreibung.getGroessenkennzeichen().trim();
594
595 element = section.addElement("element");
596 name = element.addElement("name").addText(grp.getGruppenname().toString() + " Q" + quart);
597 text = element.addElement("text").addAttribute("align", textalign).addAttribute("style", textstil).addAttribute("weight", textweight).addAttribute("size", "0").addText(grp.getGruppenname().toString() + " Q" + quart);
598 if (reportline.getWertanzeigen() != null && reportline.getWertanzeigen().booleanValue() == true)
599 {
600 contents = element.addElement("contents").addAttribute("align", contentsalign).addAttribute("position", contentsposition).addAttribute("style", contentsstil).addAttribute("weight", contentsweight).addAttribute("size", "0");
601 value = contents.addElement("value").addText(elementwert);
602
603 if (reportline.getWertkennzeichenanzeigen() != null && reportline.getWertkennzeichenanzeigen().booleanValue() == true)
604 symbol = contents.addElement("symbol").addText(elementsymbol);
605 }
606 }
607 }
608 }
609 else
610 {
611 Ergebniss ergebnisI = (Ergebniss) die.sucheKombination_Feld(projektnummer, grp.getGruppennummer(), grp.getProjekte().getAktuellesQuartal(), feldname.getFeldnummer());
612
613 elementname = ergebnisI.getFeldname();
614 elementtext = feldbeschreibung.getKurzbeschreibung();
615 elementwert = ergebnisI.getStringWert();
616 elementsymbol = feldbeschreibung.getGroessenkennzeichen().trim();
617
618 element = section.addElement("element");
619 name = element.addElement("name").addText(elementname);
620 text = element.addElement("text").addAttribute("align", textalign).addAttribute("style", textstil).addAttribute("weight", textweight).addAttribute("size", "0").addText(elementtext);
621 if (reportline.getWertanzeigen() != null && reportline.getWertanzeigen().booleanValue() == true)
622 {
623 contents = element.addElement("contents").addAttribute("align", contentsalign).addAttribute("position", contentsposition).addAttribute("style", contentsstil).addAttribute("weight", contentsweight).addAttribute("size", "0");
624 value = contents.addElement("value").addText(elementwert);
625
626 if (reportline.getWertkennzeichenanzeigen() != null && reportline.getWertkennzeichenanzeigen().booleanValue() == true)
627 symbol = contents.addElement("symbol").addText(elementsymbol);
628 }
629 }
630 }
631
632 element.addAttribute("linebreak", "true");
633 }
634 }
635 else if (reportline.getWiederholungstyp() != null && reportline.getWiederholungstyp().compareTo("Unternehmen") == 0)
636 {
637 Projektgruppen pg = (Projektgruppen) dipg.sucheGruppennummer(gruppennummer);
638 if (pg.getAktiv().booleanValue() != false && pg.getProjekte().getAktiv().booleanValue() != false && pg.getGruppenname().compareTo("Projektleiter") != 0 && pg.getGruppenname().compareTo("Default") != 0 && pg.getGruppenname().compareTo("Administratorgruppe") != 0)
639 {
640 if (remembersectiontitle != null && sectionchange)
641 {
642 section = page.addElement("section").addAttribute("title", remembersectiontitle).addAttribute("group", gruppennummer.toString()).addAttribute("groupname", projektgruppe.getGruppenname().toString());
643 sectionchange = false;
644 }
645 else if (sectionchange)
646 {
647 section = page.addElement("section").addAttribute("title", "Sektion").addAttribute("group", gruppennummer.toString()).addAttribute("groupname", projektgruppe.getGruppenname().toString());
648 sectionchange = false;
649 }
650 }
651
652 if (reportline.getFeldbedingung() != null && reportline.getFeldbedingungtyp() != null && reportline.getFeldbedingungwert() != null)
653 {
654 ergebnis = (Ergebniss) die.sucheKombination_Feld(projektnummer, gruppennummer, quartal, reportline.getFeldbedingung());
655
656 Collection ergebnisse = die.sucheKombination_Feld(projektnummer, quartal, feldname.getFeldnummer());
657 Iterator ergebnisiterator = ergebnisse.iterator();
658
659 while (ergebnisiterator.hasNext())
660 {
661 Ergebniss test = (Ergebniss) ergebnisiterator.next();
662
663 Projektgruppen testgruppe = (Projektgruppen) dipg.sucheGruppennummer(test.getGruppennummer());
664 if (testgruppe.getAktiv().booleanValue() == false || testgruppe.getProjekte().getAktiv().booleanValue() == false || testgruppe.getGruppenname().compareTo("Projektleiter") == 0 || testgruppe.getGruppenname().compareTo("Default") == 0 || testgruppe.getGruppenname().compareTo("Administratorgruppe") == 0)
665 ergebnisiterator.remove();
666 }
667
668 ergebnisiterator = ergebnisse.iterator();
669
670 while (ergebnisiterator.hasNext())
671 {
672 Ergebniss ergebnisI = (Ergebniss) ergebnisiterator.next();
673
674 Iterator sectioniterator = page.elementIterator("section");
675
676 while (sectioniterator.hasNext())
677 {
678 section = (Element) sectioniterator.next();
679
680 if (section.attribute("group") != null && section.attribute("group").getStringValue().compareTo(ergebnisI.getGruppennummer().toString()) == 0)
681 {
682 break;
683 }
684
685 section = null;
686 }
687
688 if (reportline.getFeldbedingungtyp().compareTo("Double") == 0)
689 {
690 if (((Double) ergebnis.getObjectWert()).compareTo(new Double(reportline.getFeldbedingungwert())) == 0)
691 {
692 elementname = ergebnisI.getFeldname();
693 elementtext = feldbeschreibung.getKurzbeschreibung();
694 elementwert = ergebnisI.getStringWert();
695 elementsymbol = feldbeschreibung.getGroessenkennzeichen().trim();
696
697 Projektgruppen ergebnisIprojektgruppe = (Projektgruppen) dipg.sucheGruppennummer(ergebnisI.getGruppennummer());
698
699 if (section == null && remembersectiontitle != null)
700 {
701 section = page.addElement("section").addAttribute("title", remembersectiontitle).addAttribute("group", ergebnisI.getGruppennummer().toString()).addAttribute("groupname", ergebnisIprojektgruppe.getGruppenname().toString());
702 }
703 else if (section == null && remembersectiontitle == null)
704 {
705 section = page.addElement("section").addAttribute("title", "").addAttribute("group", ergebnisI.getGruppennummer().toString()).addAttribute("groupname", ergebnisIprojektgruppe.getGruppenname().toString());
706 }
707
708 element = section.addElement("element");
709 name = element.addElement("name").addText(elementname);
710 text = element.addElement("text").addAttribute("align", textalign).addAttribute("style", textstil).addAttribute("weight", textweight).addAttribute("size", "0").addText(elementtext);
711 if (reportline.getWertanzeigen() != null && reportline.getWertanzeigen().booleanValue() == true)
712 {
713 contents = element.addElement("contents").addAttribute("align", contentsalign).addAttribute("position", contentsposition).addAttribute("style", contentsstil).addAttribute("weight", contentsweight).addAttribute("size", "0");
714 value = contents.addElement("value").addText(elementwert);
715
716 if (reportline.getWertkennzeichenanzeigen() != null && reportline.getWertkennzeichenanzeigen().booleanValue() == true)
717 symbol = contents.addElement("symbol").addText(elementsymbol);
718 }
719 }
720 }
721 else if (reportline.getFeldbedingungtyp().compareTo("Integer") == 0)
722 {
723 if (((Integer) ergebnis.getObjectWert()).compareTo(new Integer(reportline.getFeldbedingungwert())) >= 0)
724 {
725 elementname = ergebnisI.getFeldname();
726 elementtext = feldbeschreibung.getKurzbeschreibung();
727 elementwert = ergebnisI.getStringWert();
728 elementsymbol = feldbeschreibung.getGroessenkennzeichen().trim();
729
730 Projektgruppen ergebnisIprojektgruppe = (Projektgruppen) dipg.sucheGruppennummer(ergebnisI.getGruppennummer());
731
732 if (section == null && remembersectiontitle != null)
733 {
734 section = page.addElement("section").addAttribute("title", remembersectiontitle).addAttribute("group", ergebnisI.getGruppennummer().toString()).addAttribute("groupname", ergebnisIprojektgruppe.getGruppenname().toString());
735 }
736 else if (section == null && remembersectiontitle == null)
737 {
738 section = page.addElement("section").addAttribute("title", "").addAttribute("group", ergebnisI.getGruppennummer().toString()).addAttribute("groupname", ergebnisIprojektgruppe.getGruppenname().toString());
739 }
740
741 element = section.addElement("element");
742 name = element.addElement("name").addText(elementname);
743 text = element.addElement("text").addAttribute("align", textalign).addAttribute("style", textstil).addAttribute("weight", textweight).addAttribute("size", "0").addText(elementtext);
744 if (reportline.getWertanzeigen() != null && reportline.getWertanzeigen().booleanValue() == true)
745 {
746 contents = element.addElement("contents").addAttribute("align", contentsalign).addAttribute("position", contentsposition).addAttribute("style", contentsstil).addAttribute("weight", contentsweight).addAttribute("size", "0");
747 value = contents.addElement("value").addText(elementwert);
748
749 if (reportline.getWertkennzeichenanzeigen() != null && reportline.getWertkennzeichenanzeigen().booleanValue() == true)
750 symbol = contents.addElement("symbol").addText(elementsymbol);
751 }
752 }
753 }
754 }
755 }
756 else
757 {
758 Collection ergebnisse = die.sucheKombination_Feld(projektnummer, quartal, feldname.getFeldnummer());
759 Iterator ergebnisiterator = ergebnisse.iterator();
760
761 while (ergebnisiterator.hasNext())
762 {
763 Ergebniss test = (Ergebniss) ergebnisiterator.next();
764
765 Projektgruppen testgruppe = (Projektgruppen) dipg.sucheGruppennummer(test.getGruppennummer());
766 if (testgruppe.getAktiv().booleanValue() == false || testgruppe.getProjekte().getAktiv().booleanValue() == false || testgruppe.getGruppenname().compareTo("Projektleiter") == 0 || testgruppe.getGruppenname().compareTo("Default") == 0 || testgruppe.getGruppenname().compareTo("Administratorgruppe") == 0)
767 ergebnisiterator.remove();
768 }
769
770 ergebnisiterator = ergebnisse.iterator();
771
772 while (ergebnisiterator.hasNext())
773 {
774 Ergebniss ergebnisI = (Ergebniss) ergebnisiterator.next();
775
776 Iterator sectioniterator = page.elementIterator("section");
777
778 while (sectioniterator.hasNext())
779 {
780 section = (Element) sectioniterator.next();
781
782 if (section.attribute("group") != null && section.attribute("group").getStringValue().compareTo(ergebnisI.getGruppennummer().toString()) == 0)
783 {
784 break;
785 }
786
787 section = null;
788 }
789
790 elementname = ergebnisI.getFeldname();
791 elementtext = feldbeschreibung.getKurzbeschreibung();
792 elementwert = ergebnisI.getStringWert();
793 elementsymbol = feldbeschreibung.getGroessenkennzeichen().trim();
794
795 Projektgruppen ergebnisIprojektgruppe = (Projektgruppen) dipg.sucheGruppennummer(ergebnisI.getGruppennummer());
796
797 if (section == null && remembersectiontitle != null)
798 {
799 section = page.addElement("section").addAttribute("title", remembersectiontitle).addAttribute("group", ergebnisI.getGruppennummer().toString()).addAttribute("groupname", ergebnisIprojektgruppe.getGruppenname().toString());
800 }
801 else if (section == null && remembersectiontitle == null)
802 {
803 section = page.addElement("section").addAttribute("title", "").addAttribute("group", ergebnisI.getGruppennummer().toString()).addAttribute("groupname", ergebnisIprojektgruppe.getGruppenname().toString());
804 }
805
806 element = section.addElement("element");
807 name = element.addElement("name").addText(elementname);
808 text = element.addElement("text").addAttribute("align", textalign).addAttribute("style", textstil).addAttribute("weight", textweight).addAttribute("size", "0").addText(elementtext);
809 if (reportline.getWertanzeigen() != null && reportline.getWertanzeigen().booleanValue() == true)
810 {
811 contents = element.addElement("contents").addAttribute("align", contentsalign).addAttribute("position", contentsposition).addAttribute("style", contentsstil).addAttribute("weight", contentsweight).addAttribute("size", "0");
812 value = contents.addElement("value").addText(elementwert);
813
814 if (reportline.getWertkennzeichenanzeigen() != null && reportline.getWertkennzeichenanzeigen().booleanValue() == true)
815 symbol = contents.addElement("symbol").addText(elementsymbol);
816 }
817 }
818 }
819 }
820 else if (reportline.getWiederholungstyp() != null && reportline.getWiederholungstyp().compareTo("Beides") == 0)
821 {
822 Projektgruppen pg = (Projektgruppen) dipg.sucheGruppennummer(gruppennummer);
823 if (pg.getAktiv().booleanValue() != false && pg.getProjekte().getAktiv().booleanValue() != false && pg.getGruppenname().compareTo("Projektleiter") != 0 && pg.getGruppenname().compareTo("Default") != 0 && pg.getGruppenname().compareTo("Administratorgruppe") != 0)
824 {
825 if (remembersectiontitle != null && sectionchange)
826 {
827 section = page.addElement("section").addAttribute("title", remembersectiontitle).addAttribute("group", gruppennummer.toString()).addAttribute("groupname", projektgruppe.getGruppenname().toString()).addAttribute("quarter", quartal.toString());
828 sectionchange = false;
829 }
830 else if (sectionchange)
831 {
832 section = page.addElement("section").addAttribute("title", "Sektion").addAttribute("group", gruppennummer.toString()).addAttribute("groupname", projektgruppe.getGruppenname().toString()).addAttribute("quarter", quartal.toString());
833 sectionchange = false;
834 }
835 }
836
837 if (reportline.getFeldbedingung() != null && reportline.getFeldbedingungtyp() != null && reportline.getFeldbedingungwert() != null && reportline.getFeldbedingungstartquatal() != null && reportline.getFeldbedingungendquartal() != null)
838 {
839 for (int quart = reportline.getFeldbedingungstartquatal().intValue(); quart <= reportline.getFeldbedingungendquartal().intValue(); quart++)
840 {
841 ergebnis = (Ergebniss) die.sucheKombination_Feld(projektnummer, gruppennummer, new Integer(quart), reportline.getFeldbedingung());
842
843 Collection ergebnisse = die.sucheKombination_Feld(projektnummer, new Integer(quart), feldname.getFeldnummer());
844 Iterator ergebnisiterator = ergebnisse.iterator();
845
846 while (ergebnisiterator.hasNext())
847 {
848 Ergebniss test = (Ergebniss) ergebnisiterator.next();
849
850 Projektgruppen testgruppe = (Projektgruppen) dipg.sucheGruppennummer(test.getGruppennummer());
851 if (testgruppe.getAktiv().booleanValue() == false || testgruppe.getProjekte().getAktiv().booleanValue() == false || testgruppe.getGruppenname().compareTo("Projektleiter") == 0 || testgruppe.getGruppenname().compareTo("Default") == 0 || testgruppe.getGruppenname().compareTo("Administratorgruppe") == 0)
852 ergebnisiterator.remove();
853 }
854
855 ergebnisiterator = ergebnisse.iterator();
856
857 while (ergebnisiterator.hasNext())
858 {
859 Ergebniss ergebnisI = (Ergebniss) ergebnisiterator.next();
860
861 Iterator sectioniterator = page.elementIterator("section");
862
863 while (sectioniterator.hasNext())
864 {
865 section = (Element) sectioniterator.next();
866
867 if (section.attribute("group") != null && section.attribute("group").getStringValue().compareTo(ergebnisI.getGruppennummer().toString()) == 0 && section.attribute("quarter") != null && section.attribute("quarter").getStringValue().compareTo(ergebnisI.getQuartal().toString()) == 0)
868 {
869 break;
870 }
871
872 section = null;
873 }
874
875 if (reportline.getFeldbedingungtyp().compareTo("Double") == 0)
876 {
877 if (((Double) ergebnis.getObjectWert()).compareTo(new Double(reportline.getFeldbedingungwert())) == 0)
878 {
879 elementname = ergebnisI.getFeldname();
880 elementtext = feldbeschreibung.getKurzbeschreibung();
881 elementwert = ergebnisI.getStringWert();
882 elementsymbol = feldbeschreibung.getGroessenkennzeichen().trim();
883
884 Projektgruppen ergebnisIprojektgruppe = (Projektgruppen) dipg.sucheGruppennummer(ergebnisI.getGruppennummer());
885
886 if (section == null && remembersectiontitle != null)
887 {
888 section = page.addElement("section").addAttribute("title", remembersectiontitle).addAttribute("group", ergebnisI.getGruppennummer().toString()).addAttribute("groupname", ergebnisIprojektgruppe.getGruppenname().toString()).addAttribute("quarter", ergebnisI.getQuartal().toString());
889 }
890 else if (section == null && remembersectiontitle == null)
891 {
892 section = page.addElement("section").addAttribute("title", "").addAttribute("group", ergebnisI.getGruppennummer().toString()).addAttribute("groupname", ergebnisIprojektgruppe.getGruppenname().toString()).addAttribute("quarter", ergebnisI.getQuartal().toString());
893 }
894
895 element = section.addElement("element");
896 name = element.addElement("name").addText(elementname);
897 text = element.addElement("text").addAttribute("align", textalign).addAttribute("style", textstil).addAttribute("weight", textweight).addAttribute("size", "0").addText(elementtext);
898 if (reportline.getWertanzeigen() != null && reportline.getWertanzeigen().booleanValue() == true)
899 {
900 contents = element.addElement("contents").addAttribute("align", contentsalign).addAttribute("position", contentsposition).addAttribute("style", contentsstil).addAttribute("weight", contentsweight).addAttribute("size", "0");
901 value = contents.addElement("value").addText(elementwert);
902
903 if (reportline.getWertkennzeichenanzeigen() != null && reportline.getWertkennzeichenanzeigen().booleanValue() == true)
904 symbol = contents.addElement("symbol").addText(elementsymbol);
905 }
906 }
907 }
908 else if (reportline.getFeldbedingungtyp().compareTo("Integer") == 0)
909 {
910 if (((Integer) ergebnis.getObjectWert()).compareTo(new Integer(reportline.getFeldbedingungwert())) >= 0)
911 {
912 elementname = ergebnisI.getFeldname();
913 elementtext = feldbeschreibung.getKurzbeschreibung();
914 elementwert = ergebnisI.getStringWert();
915 elementsymbol = feldbeschreibung.getGroessenkennzeichen().trim();
916
917 Projektgruppen ergebnisIprojektgruppe = (Projektgruppen) dipg.sucheGruppennummer(ergebnisI.getGruppennummer());
918
919 if (section == null && remembersectiontitle != null)
920 {
921 section = page.addElement("section").addAttribute("title", remembersectiontitle).addAttribute("group", ergebnisI.getGruppennummer().toString()).addAttribute("groupname", ergebnisIprojektgruppe.getGruppenname().toString()).addAttribute("quarter", ergebnisI.getQuartal().toString());
922 }
923 else if (section == null && remembersectiontitle == null)
924 {
925 section = page.addElement("section").addAttribute("title", "").addAttribute("group", ergebnisI.getGruppennummer().toString()).addAttribute("groupname", ergebnisIprojektgruppe.getGruppenname().toString()).addAttribute("quarter", ergebnisI.getQuartal().toString());
926 }
927
928 element = section.addElement("element");
929 name = element.addElement("name").addText(elementname);
930 text = element.addElement("text").addAttribute("align", textalign).addAttribute("style", textstil).addAttribute("weight", textweight).addAttribute("size", "0").addText(elementtext);
931 if (reportline.getWertanzeigen() != null && reportline.getWertanzeigen().booleanValue() == true)
932 {
933 contents = element.addElement("contents").addAttribute("align", contentsalign).addAttribute("position", contentsposition).addAttribute("style", contentsstil).addAttribute("weight", contentsweight).addAttribute("size", "0");
934 value = contents.addElement("value").addText(elementwert);
935
936 if (reportline.getWertkennzeichenanzeigen() != null && reportline.getWertkennzeichenanzeigen().booleanValue() == true)
937 symbol = contents.addElement("symbol").addText(elementsymbol);
938 }
939 }
940 }
941 }
942 }
943 }
944 else
945 {
946 Collection ergebnisse = die.sucheKombination_Feld(projektnummer, quartal, feldname.getFeldnummer());
947 Iterator ergebnisiterator = ergebnisse.iterator();
948
949 while (ergebnisiterator.hasNext())
950 {
951 Ergebniss test = (Ergebniss) ergebnisiterator.next();
952
953 Projektgruppen testgruppe = (Projektgruppen) dipg.sucheGruppennummer(test.getGruppennummer());
954 if (testgruppe.getAktiv().booleanValue() == false || testgruppe.getProjekte().getAktiv().booleanValue() == false || testgruppe.getGruppenname().compareTo("Projektleiter") == 0 || testgruppe.getGruppenname().compareTo("Default") == 0 || testgruppe.getGruppenname().compareTo("Administratorgruppe") == 0)
955 ergebnisiterator.remove();
956 }
957
958 ergebnisiterator = ergebnisse.iterator();
959
960 while (ergebnisiterator.hasNext())
961 {
962 Ergebniss ergebnisI = (Ergebniss) ergebnisiterator.next();
963
964 Iterator sectioniterator = page.elementIterator("section");
965
966 while (sectioniterator.hasNext())
967 {
968 section = (Element) sectioniterator.next();
969
970 if (section.attribute("group") != null && section.attribute("group").getStringValue().compareTo(ergebnisI.getGruppennummer().toString()) == 0 && section.attribute("quarter") != null && section.attribute("quarter").getStringValue().compareTo(ergebnisI.getQuartal().toString()) == 0)
971 {
972 break;
973 }
974
975 section = null;
976 }
977
978 elementname = ergebnisI.getFeldname();
979 elementtext = feldbeschreibung.getKurzbeschreibung();
980 elementwert = ergebnisI.getStringWert();
981 elementsymbol = feldbeschreibung.getGroessenkennzeichen().trim();
982
983 Projektgruppen ergebnisIprojektgruppe = (Projektgruppen) dipg.sucheGruppennummer(ergebnisI.getGruppennummer());
984
985 if (section == null && remembersectiontitle != null)
986 {
987 section = page.addElement("section").addAttribute("title", remembersectiontitle).addAttribute("group", ergebnisI.getGruppennummer().toString()).addAttribute("groupname", ergebnisIprojektgruppe.getGruppenname().toString()).addAttribute("quarter", ergebnisI.getQuartal().toString());
988 }
989 else if (section == null && remembersectiontitle == null)
990 {
991 section = page.addElement("section").addAttribute("title", "").addAttribute("group", ergebnisI.getGruppennummer().toString()).addAttribute("groupname", ergebnisIprojektgruppe.getGruppenname().toString()).addAttribute("quarter", ergebnisI.getQuartal().toString());
992 }
993
994 element = section.addElement("element");
995 name = element.addElement("name").addText(elementname);
996 text = element.addElement("text").addAttribute("align", textalign).addAttribute("style", textstil).addAttribute("weight", textweight).addAttribute("size", "0").addText(elementtext);
997 if (reportline.getWertanzeigen() != null && reportline.getWertanzeigen().booleanValue() == true)
998 {
999 contents = element.addElement("contents").addAttribute("align", contentsalign).addAttribute("position", contentsposition).addAttribute("style", contentsstil).addAttribute("weight", contentsweight).addAttribute("size", "0");
1000 value = contents.addElement("value").addText(elementwert);
1001
1002 if (reportline.getWertkennzeichenanzeigen() != null && reportline.getWertkennzeichenanzeigen().booleanValue() == true)
1003 symbol = contents.addElement("symbol").addText(elementsymbol);
1004 }
1005 }
1006 }
1007 }
1008 }
1009 else
1010 {
1011 if (feldbeschreibung.getBeschreibung() != null && sectionchange)
1012 {
1013 section = page.addElement("section").addAttribute("title", feldbeschreibung.getBeschreibung());
1014 sectionchange = false;
1015 }
1016 else if (sectionchange)
1017 {
1018 section = page.addElement("section").addAttribute("title", "Sektion");
1019 sectionchange = false;
1020 }
1021
1022 element = section.addElement("element");
1023 name = element.addElement("name").addText(elementname);
1024 text = element.addElement("text").addAttribute("align", textalign).addAttribute("style", textstil).addAttribute("weight", textweight).addAttribute("size", "0").addText(elementtext);
1025 if (reportline.getWertanzeigen() != null && reportline.getWertanzeigen().booleanValue() == true)
1026 {
1027 contents = element.addElement("contents").addAttribute("align", contentsalign).addAttribute("position", contentsposition).addAttribute("style", contentsstil).addAttribute("weight", contentsweight).addAttribute("size", "0");
1028 value = contents.addElement("value").addText(elementwert);
1029
1030 if (reportline.getWertkennzeichenanzeigen() != null && reportline.getWertkennzeichenanzeigen().booleanValue() == true)
1031 symbol = contents.addElement("symbol").addText(elementsymbol);
1032 }
1033 }
1034 }
1035 else if (reportline.getText() != null && reportline.getText().compareTo("") != 0)
1036 {
1037 if (log.isDebugEnabled())
1038 {
1039 log.debug(" - T " + reportline.getText());
1040 }
1041
1042 String textalign = "left";
1043 if (reportline.getTextalign() != null)
1044 textalign = reportline.getTextalign();
1045
1046 String textstil = "normal";
1047 if (reportline.getTextstil() != null)
1048 textstil = reportline.getTextstil();
1049
1050 String textweight = "normal";
1051 if (reportline.getTextstil() != null)
1052 textweight = reportline.getTextstil();
1053
1054 if (textstil.compareTo("italic") != 0)
1055 textstil = "normal";
1056
1057 if (textweight.compareTo("bold") != 0)
1058 textweight = "normal";
1059
1060 String remembersectiontitle = section.attributeValue("title");
1061
1062 if (sectionchange)
1063 {
1064 remembersectiontitle = reportline.getText();
1065 }
1066
1067 if (reportline.getWiederholungstyp() != null && reportline.getWiederholungstyp().compareTo("Quartal") == 0)
1068 {
1069 Projektgruppen pg = (Projektgruppen) dipg.sucheGruppennummer(gruppennummer);
1070
1071 if (pg.getAktiv().booleanValue() != false && pg.getProjekte().getAktiv().booleanValue() != false && pg.getGruppenname().compareTo("Projektleiter") != 0 && pg.getGruppenname().compareTo("Default") != 0 && pg.getGruppenname().compareTo("Administratorgruppe") != 0)
1072 {
1073 if (remembersectiontitle != null && sectionchange)
1074 {
1075 section = page.addElement("section").addAttribute("title", remembersectiontitle).addAttribute("quarter", quartal.toString());
1076 sectionchange = false;
1077 }
1078 else if (sectionchange)
1079 {
1080 section = page.addElement("section").addAttribute("title", "Sektion").addAttribute("quarter", quartal.toString());
1081 sectionchange = false;
1082 }
1083 }
1084
1085 for (int quart = reportline.getFeldbedingungstartquatal().intValue(); quart <= reportline.getFeldbedingungendquartal().intValue(); quart++)
1086 {
1087 Iterator sectioniterator = page.elementIterator("section");
1088
1089 while (sectioniterator.hasNext())
1090 {
1091 section = (Element) sectioniterator.next();
1092
1093 if (section.attribute("quarter") != null && section.attribute("quarter").getStringValue().compareTo(quart + "") == 0)
1094 {
1095 break;
1096 }
1097
1098 section = null;
1099 }
1100
1101 if (section == null && remembersectiontitle != null)
1102 {
1103 section = page.addElement("section").addAttribute("title", remembersectiontitle).addAttribute("quarter", quart + "");
1104 }
1105 else if (section == null && remembersectiontitle == null)
1106 {
1107 section = page.addElement("section").addAttribute("title", "").addAttribute("quarter", quart + "");
1108 }
1109
1110 element = section.addElement("element");
1111 name = element.addElement("name").addText(reportline.getText());
1112 text = element.addElement("text").addAttribute("align", textalign).addAttribute("style", textstil).addAttribute("weight", textweight).addAttribute("size", "0").addText(reportline.getText());
1113 }
1114 }
1115 else if (reportline.getWiederholungstyp() != null && reportline.getWiederholungstyp().compareTo("Unternehmen") == 0)
1116 {
1117 Projektgruppen pg = (Projektgruppen) dipg.sucheGruppennummer(gruppennummer);
1118
1119 if (pg.getAktiv().booleanValue() != false && pg.getProjekte().getAktiv().booleanValue() != false && pg.getGruppenname().compareTo("Projektleiter") != 0 && pg.getGruppenname().compareTo("Default") != 0 && pg.getGruppenname().compareTo("Administratorgruppe") != 0)
1120 {
1121 if (remembersectiontitle != null && sectionchange)
1122 {
1123 section = page.addElement("section").addAttribute("title", remembersectiontitle).addAttribute("group", gruppennummer.toString()).addAttribute("groupname", projektgruppe.getGruppenname().toString());
1124 sectionchange = false;
1125 }
1126 else if (sectionchange)
1127 {
1128 section = page.addElement("section").addAttribute("title", "Sektion").addAttribute("group", gruppennummer.toString()).addAttribute("groupname", projektgruppe.getGruppenname().toString());
1129 sectionchange = false;
1130 }
1131 }
1132
1133 Collection projektgruppen = dipg.sucheProjektnummer(projektnummer);
1134 Iterator projektgruppeniterator = projektgruppen.iterator();
1135
1136 while (projektgruppeniterator.hasNext())
1137 {
1138 Projektgruppen testgruppe = (Projektgruppen) projektgruppeniterator.next();
1139
1140 if (testgruppe.getAktiv().booleanValue() == false || testgruppe.getProjekte().getAktiv().booleanValue() == false || testgruppe.getGruppenname().compareTo("Projektleiter") == 0 || testgruppe.getGruppenname().compareTo("Default") == 0 || testgruppe.getGruppenname().compareTo("Administratorgruppe") == 0)
1141 projektgruppeniterator.remove();
1142 }
1143
1144 projektgruppeniterator = projektgruppen.iterator();
1145
1146 while (projektgruppeniterator.hasNext())
1147 {
1148
1149 Projektgruppen projektgruppeTemp = (Projektgruppen) projektgruppeniterator.next();
1150
1151 if (projektgruppeTemp.getAktiv().booleanValue() == true)
1152 {
1153 Iterator sectioniterator = page.elementIterator("section");
1154
1155 while (sectioniterator.hasNext())
1156 {
1157 section = (Element) sectioniterator.next();
1158
1159 if (section.attribute("group") != null && section.attribute("group").getStringValue().compareTo(projektgruppeTemp.getGruppennummer().toString()) == 0)
1160 {
1161 break;
1162 }
1163
1164 section = null;
1165 }
1166
1167 if (section == null && remembersectiontitle != null)
1168 {
1169 section = page.addElement("section").addAttribute("title", remembersectiontitle).addAttribute("group", projektgruppeTemp.getGruppennummer().toString()).addAttribute("groupname", projektgruppeTemp.getGruppenname().toString());
1170 }
1171 else if (section == null && remembersectiontitle == null)
1172 {
1173 section = page.addElement("section").addAttribute("title", "").addAttribute("group", projektgruppeTemp.getGruppennummer().toString()).addAttribute("groupname", projektgruppeTemp.getGruppenname().toString());
1174 }
1175
1176 element = section.addElement("element");
1177 name = element.addElement("name").addText(reportline.getText());
1178 text = element.addElement("text").addAttribute("align", textalign).addAttribute("style", textstil).addAttribute("weight", textweight).addAttribute("size", "0").addText(reportline.getText());
1179 }
1180 }
1181 }
1182 else if (reportline.getWiederholungstyp() != null && reportline.getWiederholungstyp().compareTo("Beides") == 0)
1183 {
1184 Projektgruppen pg = (Projektgruppen) dipg.sucheGruppennummer(gruppennummer);
1185
1186 if (pg.getAktiv().booleanValue() != false && pg.getProjekte().getAktiv().booleanValue() != false && pg.getGruppenname().compareTo("Projektleiter") != 0 && pg.getGruppenname().compareTo("Default") != 0 && pg.getGruppenname().compareTo("Administratorgruppe") != 0)
1187 {
1188 if (remembersectiontitle != null && sectionchange)
1189 {
1190 section = page.addElement("section").addAttribute("title", remembersectiontitle).addAttribute("group", gruppennummer.toString()).addAttribute("groupname", projektgruppe.getGruppenname().toString()).addAttribute("quarter", quartal.toString());
1191 sectionchange = false;
1192 }
1193 else if (sectionchange)
1194 {
1195 section = page.addElement("section").addAttribute("title", "Sektion").addAttribute("group", gruppennummer.toString()).addAttribute("groupname", projektgruppe.getGruppenname().toString()).addAttribute("quarter", quartal.toString());
1196 sectionchange = false;
1197 }
1198 }
1199
1200 Collection projektgruppen = dipg.sucheProjektnummer(projektnummer);
1201 Iterator projektgruppeniterator = projektgruppen.iterator();
1202
1203 while (projektgruppeniterator.hasNext())
1204 {
1205 Projektgruppen testgruppe = (Projektgruppen) projektgruppeniterator.next();
1206
1207 if (testgruppe.getAktiv().booleanValue() == false || testgruppe.getProjekte().getAktiv().booleanValue() == false || testgruppe.getGruppenname().compareTo("Projektleiter") == 0 || testgruppe.getGruppenname().compareTo("Default") == 0 || testgruppe.getGruppenname().compareTo("Administratorgruppe") == 0)
1208 projektgruppeniterator.remove();
1209 }
1210
1211 projektgruppeniterator = projektgruppen.iterator();
1212
1213 while (projektgruppeniterator.hasNext())
1214 {
1215 Projektgruppen projektgruppeTemp = (Projektgruppen) projektgruppeniterator.next();
1216
1217 if (projektgruppeTemp.getAktiv().booleanValue() == true)
1218 {
1219 for (int quart = reportline.getFeldbedingungstartquatal().intValue(); quart <= reportline.getFeldbedingungendquartal().intValue(); quart++)
1220 {
1221 Iterator sectioniterator = page.elementIterator("section");
1222
1223 while (sectioniterator.hasNext())
1224 {
1225 section = (Element) sectioniterator.next();
1226
1227 if (section.attribute("group") != null && section.attribute("group").getStringValue().compareTo(projektgruppeTemp.getGruppennummer().toString()) == 0 && section.attribute("quarter") != null && section.attribute("quarter").getStringValue().compareTo(quart + "") == 0)
1228 {
1229 break;
1230 }
1231
1232 section = null;
1233 }
1234
1235 if (section == null && remembersectiontitle != null)
1236 {
1237 section = page.addElement("section").addAttribute("title", remembersectiontitle).addAttribute("group", projektgruppeTemp.getGruppennummer().toString()).addAttribute("groupname", projektgruppeTemp.getGruppenname().toString()).addAttribute("quarter", quart + "");
1238 }
1239 else if (section == null && remembersectiontitle == null)
1240 {
1241 section = page.addElement("section").addAttribute("title", "").addAttribute("group", projektgruppeTemp.getGruppennummer().toString()).addAttribute("groupname", projektgruppeTemp.getGruppenname().toString()).addAttribute("quarter", quart + "");
1242 }
1243
1244 element = section.addElement("element");
1245 name = element.addElement("name").addText(reportline.getText());
1246 text = element.addElement("text").addAttribute("align", textalign).addAttribute("style", textstil).addAttribute("weight", textweight).addAttribute("size", "0").addText(reportline.getText());
1247 }
1248 }
1249 }
1250 }
1251 else
1252 {
1253 if (sectionchange)
1254 {
1255 section = page.addElement("section").addAttribute("title", reportline.getText());
1256 sectionchange = false;
1257 }
1258
1259 element = section.addElement("element");
1260 name = element.addElement("name").addText(reportline.getText());
1261 text = element.addElement("text").addAttribute("align", textalign).addAttribute("style", textstil).addAttribute("weight", textweight).addAttribute("size", "0").addText(reportline.getText());
1262 }
1263 }
1264
1265 if (reportline.getSektionende() != null && reportline.getSektionende().booleanValue() == true)
1266 {
1267 sectionchange = true;
1268 }
1269
1270 if ((reportline.getSeitenende() != null && reportline.getSeitenende().booleanValue() == true) && reportname.getBezeichnung() != null)
1271 {
1272 page = root.addElement("page").addAttribute("title", reportname.getBezeichnung()).addAttribute("project", reportname.getProjekte().getProjektname()).addAttribute("group", gruppennummer.toString()).addAttribute("groupname", projektgruppe.getGruppenname().toString()).addAttribute("quarter", quartal.toString());
1273 }
1274 else if ((reportline.getSeitenende() != null && reportline.getSeitenende().booleanValue() == true))
1275 {
1276 page = root.addElement("page").addAttribute("title", "Seite").addAttribute("project", reportname.getProjekte().getProjektname()).addAttribute("group", gruppennummer.toString()).addAttribute("groupname", projektgruppe.getGruppenname().toString()).addAttribute("quarter", quartal.toString());
1277 }
1278 }
1279
1280 if (log.isDebugEnabled())
1281 {
1282 log.debug(" Erzeugung XML Dokument abgeschlossen");
1283 }
1284
1285 return document;
1286 }
1287 }