<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://superxhosting.de/wiki/index.php?action=history&amp;feed=atom&amp;title=Aufbau_eines_SuperX-Moduls</id>
	<title>Aufbau eines SuperX-Moduls - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://superxhosting.de/wiki/index.php?action=history&amp;feed=atom&amp;title=Aufbau_eines_SuperX-Moduls"/>
	<link rel="alternate" type="text/html" href="https://superxhosting.de/wiki/index.php?title=Aufbau_eines_SuperX-Moduls&amp;action=history"/>
	<updated>2026-09-17T16:55:04Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in SuperX</subtitle>
	<generator>MediaWiki 1.39.11</generator>
	<entry>
		<id>https://superxhosting.de/wiki/index.php?title=Aufbau_eines_SuperX-Moduls&amp;diff=16554&amp;oldid=prev</id>
		<title>Danielq: /* Gestaltung der Formulare */</title>
		<link rel="alternate" type="text/html" href="https://superxhosting.de/wiki/index.php?title=Aufbau_eines_SuperX-Moduls&amp;diff=16554&amp;oldid=prev"/>
		<updated>2026-09-03T09:14:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Gestaltung der Formulare&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 3. September 2026, 09:14 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l335&quot;&gt;Zeile 335:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 335:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; Auswahl aus Schlüsseltabelle&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; Auswahl aus Schlüsseltabelle&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: Wenn Inhalte zur Auswahl aus einer verknüften Schlüsseltabelle angezeigt werden sollen, müssen folgende Bedingungen erfüllt sein:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: Wenn Inhalte zur Auswahl aus einer verknüften Schlüsseltabelle angezeigt werden sollen, müssen folgende Bedingungen erfüllt sein:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Die Beziehung ist als  &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;&lt;/del&gt;data-integrity&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt;  &amp;lt;&lt;/del&gt;relation&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt; &lt;/del&gt;eingetragen.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Die Beziehung ist als  data-integrity&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-&lt;/ins&gt;relation eingetragen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* in der Relation ist unter &amp;#039;&amp;#039;&amp;#039;visibleFields=&amp;quot;...&amp;quot;&amp;#039;&amp;#039;&amp;#039; das Feld eingetragen, dessen Inhalt an der Oberfläche erscheinen soll.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* in der Relation ist unter &amp;#039;&amp;#039;&amp;#039;visibleFields=&amp;quot;...&amp;quot;&amp;#039;&amp;#039;&amp;#039; das Feld eingetragen, dessen Inhalt an der Oberfläche erscheinen soll.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Spaltenbeschriftung&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Spaltenbeschriftung&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:Wenn nicht der Spaltennahme aus der Tabelle angezeigt werden soll, sondern eine sprechendere Bezeichnung muss:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:Wenn nicht der Spaltennahme aus der Tabelle angezeigt werden soll, sondern eine sprechendere Bezeichnung muss &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bei description&lt;/ins&gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:* unter &lt;/del&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nowiki&lt;/del&gt;&amp;gt; &amp;lt;database&amp;gt; &amp;lt;table&amp;gt; &amp;lt;columns&amp;gt; &amp;lt;column name=&amp;quot;...&amp;quot; &amp;#039;&amp;#039;&amp;#039;description= &amp;quot;...&amp;quot;&amp;#039;&amp;#039;&amp;#039; &amp;gt;&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nowiki&lt;/del&gt;&amp;gt; die entsprechende Bezeichnung eingetragen werden.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source lang=&amp;quot;xml&amp;quot;&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;&amp;lt;database&amp;gt; &amp;lt;table&amp;gt; &amp;lt;columns&amp;gt; &amp;lt;column name=&amp;quot;...&amp;quot; &amp;#039;&amp;#039;&amp;#039;description= &amp;quot;...&amp;quot;&amp;#039;&amp;#039;&amp;#039; &amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;die entsprechende Bezeichnung eingetragen werden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Formular in Maske einbinden&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Formular in Maske einbinden&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:Wenn durch eintragen von &amp;quot;nextedit&amp;quot; bereits ein Verweis auf das (funktionierende) Formular erstellt wurde, es aber nicht gefunden wird, muss:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:Wenn durch eintragen von &amp;quot;nextedit&amp;quot; bereits ein Verweis auf das (funktionierende) Formular erstellt wurde, es aber nicht gefunden wird, muss:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* zunächst die jsp Seite unter superx&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\&lt;/del&gt;edit&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\&lt;/del&gt;MODULE generiert werden&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* zunächst die jsp Seite unter superx&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/&lt;/ins&gt;edit&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/&lt;/ins&gt;MODULE generiert werden&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Danielq</name></author>
	</entry>
	<entry>
		<id>https://superxhosting.de/wiki/index.php?title=Aufbau_eines_SuperX-Moduls&amp;diff=16553&amp;oldid=prev</id>
		<title>Danielq: /* Test der Formulare */</title>
		<link rel="alternate" type="text/html" href="https://superxhosting.de/wiki/index.php?title=Aufbau_eines_SuperX-Moduls&amp;diff=16553&amp;oldid=prev"/>
		<updated>2026-09-03T09:12:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Test der Formulare&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 3. September 2026, 09:12 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l322&quot;&gt;Zeile 322:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 322:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Test der Formulare===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Test der Formulare===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Formulare werden in der Modul-XML-Datei definiert (s.o.). Die JSP-Seiten werden dann generiert, indem man das [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Skriptbasierte Datenbank- und Modulinstallation - HISinOne-BI&lt;/del&gt;#&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Module-Scripts-Create mit Ant&lt;/del&gt;]] ausführt.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Formulare werden in der Modul-XML-Datei definiert (s.o.). Die JSP-Seiten werden dann generiert, indem man das [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Kernmodul_Shellscripte&lt;/ins&gt;#&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;module_scripts_create.x|Modulscripte generieren&lt;/ins&gt;]] ausführt.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Danach muss man einen Modulupgrade ausführen, damit die Formulare in der Datenbank gespeichert werden. Und dann kann man die Formulare testen, indem man im Menü Administration-&amp;gt; &amp;quot;Tabelle suchen&amp;quot;-&amp;gt; Bearbeiten anklickt.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Danach muss man einen Modulupgrade ausführen, damit die Formulare in der Datenbank gespeichert werden. Und dann kann man die Formulare testen, indem man im Menü Administration-&amp;gt; &amp;quot;Tabelle suchen&amp;quot;-&amp;gt; Bearbeiten anklickt.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Danielq</name></author>
	</entry>
	<entry>
		<id>https://superxhosting.de/wiki/index.php?title=Aufbau_eines_SuperX-Moduls&amp;diff=16552&amp;oldid=prev</id>
		<title>Danielq: Die Seite wurde neu angelegt: „ =Einleitung= Dieser Artikel beschreibt den Aufbau eines Moduls in SuperX. Es wird erläutert welche Dateien ein Modul umfasst, wo sie abgelegt und wie sie aufgebaut sind.   == Begriffsklärung == * Installation: SuperX stellt eine Menge von Modulen zur Verfügung, die je nach Bedarf einzeln installiert werden können. Eine Installation ist einmal bei der Installation der HISinOne-BI notwendig. * Upgrade: Ein Upgrade eines Moduls ist notwendig, wenn eine…“</title>
		<link rel="alternate" type="text/html" href="https://superxhosting.de/wiki/index.php?title=Aufbau_eines_SuperX-Moduls&amp;diff=16552&amp;oldid=prev"/>
		<updated>2026-09-03T09:10:43Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „ =Einleitung= Dieser Artikel beschreibt den Aufbau eines Moduls in SuperX. Es wird erläutert welche Dateien ein Modul umfasst, wo sie abgelegt und wie sie aufgebaut sind.   == Begriffsklärung == * Installation: SuperX stellt eine Menge von Modulen zur Verfügung, die je nach Bedarf einzeln installiert werden können. Eine Installation ist einmal bei der Installation der HISinOne-BI notwendig. * Upgrade: Ein Upgrade eines Moduls ist notwendig, wenn eine…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
=Einleitung=&lt;br /&gt;
Dieser Artikel beschreibt den Aufbau eines Moduls in SuperX. Es wird erläutert welche Dateien ein Modul umfasst, wo sie abgelegt und wie sie aufgebaut sind. &lt;br /&gt;
&lt;br /&gt;
== Begriffsklärung ==&lt;br /&gt;
* Installation: SuperX stellt eine Menge von Modulen zur Verfügung, die je nach Bedarf einzeln installiert werden können. Eine Installation ist einmal bei der Installation der HISinOne-BI notwendig.&lt;br /&gt;
* Upgrade: Ein Upgrade eines Moduls ist notwendig, wenn eine Neue Version oder ein Patch vorhanden ist und die BI-Komponente technisch auf den aktuellen Stand gebracht werden soll. Ein Upgrade ist bei jeder neuen Version, jedem Release, jedem ServicePack und jedem Patch notwendig.&lt;br /&gt;
* Update: Ein Update eines Moduls sorgt dafür, dass aktuelle Daten aus dem Quellsystem in die BI überführt werden. Ein Update wird jede Nacht automatisiert durchgeführt.&lt;br /&gt;
* Laderoutine: Eine Laderoutine führt ein Update durch.&lt;br /&gt;
* In HISinOne-BI wird ein Modul als &amp;quot;BI-Komponente&amp;quot; bezeichnet&lt;br /&gt;
&lt;br /&gt;
= Modul-XML-Datei =&lt;br /&gt;
Es existiert zu jedem Modul eine zentrale Datei:&lt;br /&gt;
 superx/WEB-INF/conf/edustore/db/module/&amp;lt;&amp;lt;modulname&amp;gt;&amp;gt;/conf/&amp;lt;&amp;lt;modulname&amp;gt;&amp;gt;.xml&lt;br /&gt;
Diese Datei enthält das Datenmodell. Aus ihr werden mit XSLT alle Skripte erzeugt, die für die Installation, Deinstallation, das Upgrade und die Laderoutine (Update) einer Komponente benötigt werden. Das XML-Format hat den Vorteil, dass die Skripte dynamisch für PostgreSQL und Informix erzeugt werden können, und dass die Skripte vereinheitlicht werden. Aus dieser Datei werden die Skripte erzeugt, die das Modul jeweils für Postgres und Informix installieren / updaten /aktualisieren / überprüfen und entfernen.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis| Die Modul-Dateien sind sehr groß und daher unübersichtlich. In Eclipse hilft die View &amp;#039;&amp;#039;Outline&amp;#039;&amp;#039; den Überblick zu behalten.}}&lt;br /&gt;
Grundsätzlich ist wichtig, dass zwischen Groß- und Kleinschreibung bei Tabellen- und Feldnamen unterschieden wird, d.h. &amp;quot;Gang&amp;quot; ist nicht gleich &amp;quot;gang&amp;quot;. Außerdem sind zusätzliche Leerzeichen eine häufige Fehlerquelle.&lt;br /&gt;
&lt;br /&gt;
== Aufbau ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;module&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;database&amp;gt;&amp;lt;/database&amp;gt;&lt;br /&gt;
	&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&lt;br /&gt;
    &amp;lt;uninstall-step&amp;gt;&amp;lt;/uninstall-step&amp;gt;&lt;br /&gt;
    &amp;lt;upgrade&amp;gt;&amp;lt;/upgrade&amp;gt;&lt;br /&gt;
    &amp;lt;etl&amp;gt;&amp;lt;/etl&amp;gt;&lt;br /&gt;
    &amp;lt;olap-system&amp;gt;&amp;lt;/olap-system&amp;gt;&lt;br /&gt;
    &amp;lt;dbforms&amp;gt;&amp;lt;/dbforms&amp;gt;&lt;br /&gt;
&amp;lt;/module&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Attribute des XML-tag &amp;lt;tt&amp;gt;&amp;lt;modul&amp;gt;&amp;lt;/tt&amp;gt; sind wie folgt:&lt;br /&gt;
* name:&lt;br /&gt;
* version:&lt;br /&gt;
* sachgebiet_id:&lt;br /&gt;
* systeminfo_id:&lt;br /&gt;
* system:&lt;br /&gt;
* thema:&lt;br /&gt;
* thema_parent:&lt;br /&gt;
&lt;br /&gt;
==Unterbereich database==&lt;br /&gt;
In diesem Unterbereich werden die Tabellen, Views, Themen und Masken integriert.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;database&amp;gt;&lt;br /&gt;
   &amp;lt;sachgebiet&amp;gt;&amp;lt;/sachgebiet&amp;gt;&lt;br /&gt;
   &amp;lt;table&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;table&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
   &amp;lt;views&amp;gt;&amp;lt;/views&amp;gt;&lt;br /&gt;
   &amp;lt;functions&amp;gt;&amp;lt;/functions&amp;gt;&lt;br /&gt;
   &amp;lt;themen&amp;gt;&amp;lt;/themen&amp;gt;&lt;br /&gt;
   &amp;lt;masken&amp;gt;&amp;lt;/masken&amp;gt;&lt;br /&gt;
   &amp;lt;data-integrity&amp;gt;&amp;lt;/data-integrity&amp;gt;&lt;br /&gt;
&amp;lt;/database&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Attribute des XML-tag &amp;lt;tt&amp;gt;&amp;lt;database&amp;gt;&amp;lt;/tt&amp;gt; sind wie folgt:&lt;br /&gt;
* name:&lt;br /&gt;
* version:&lt;br /&gt;
* system:&lt;br /&gt;
&lt;br /&gt;
===Tabellen===&lt;br /&gt;
Dies ist der Kernbereich.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;columns&amp;gt;&lt;br /&gt;
      &amp;lt;column&amp;gt;&amp;lt;/column&amp;gt;&lt;br /&gt;
      ...      &lt;br /&gt;
      &amp;lt;column&amp;gt;&amp;lt;/column&amp;gt;&lt;br /&gt;
   &amp;lt;/columns&amp;gt;&lt;br /&gt;
   &amp;lt;primaryKeys&amp;gt;&amp;lt;/primaryKeys&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Attribute des XML-tag &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;table&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; sind wie folgt:&lt;br /&gt;
* name: Tabellenname&lt;br /&gt;
* caption: Beschreibung&lt;br /&gt;
* version: Version der Tabelle&lt;br /&gt;
* thema: Das Thema, dem die Tabelle zugeordnet werden kann.&lt;br /&gt;
* typ: Art der Tabelle&lt;br /&gt;
* datenquelle:&lt;br /&gt;
&lt;br /&gt;
Art der Tabelle: &lt;br /&gt;
Per Konvention folgen die meisten Tabellen einem gewissen Schema, darin erfüllen sie eine bestimmte Funktion und sind an der Namensgebung zu erkennen. Beispielhafte Tabellen:&lt;br /&gt;
*Stagingtabelle: zum Sammeln von Daten, die ins Vorsystem geladen wurden&lt;br /&gt;
**Beispielname: tabelle_neu.sql&lt;br /&gt;
*Datentabelle: zur Datenhaltung&lt;br /&gt;
**Beispielname: tabelle.sql&lt;br /&gt;
*Aggregationstabelle: gehören zur Präsentationsschicht, für Berichte&lt;br /&gt;
**Beispielname: tabelle_aggr.sql&lt;br /&gt;
*Cubetabelle: bauen normalerweise auf Aggregationstabellen auf und überführen diese in eine numerische Verschlüsselung, für OLAP&lt;br /&gt;
**Beispielname: tabelle_cube.sql&lt;br /&gt;
*Dimensionstabelle: für Datenblätter, (OLAP)&lt;br /&gt;
**Beispielname: tabelle_cif.sql&lt;br /&gt;
:::tabelle_cifx.sql&lt;br /&gt;
:::dim_bp_tabelle_apnr&lt;br /&gt;
&lt;br /&gt;
Das Element &amp;lt;tt&amp;gt;&amp;lt;description&amp;gt;&amp;lt;/tt&amp;gt; bietet die Möglichkeit eine ausführlichere Beschreibung der Tabelle zu hinterlassen. &amp;lt;br&amp;gt;&lt;br /&gt;
In dem Element &amp;lt;tt&amp;gt;&amp;lt;columns&amp;gt;&amp;lt;/tt&amp;gt; werden die Spalten der Tabelle definiert. Die Attribute des XML-tag &amp;lt;tt&amp;gt;&amp;lt;column&amp;gt;&amp;lt;/tt&amp;gt; sind wie folgt:&lt;br /&gt;
* name: Name der Spalte&lt;br /&gt;
* type: Datentyp&lt;br /&gt;
* size: größe des Datentyps&lt;br /&gt;
* notnull: ob das Feld leergelassen werden darf&lt;br /&gt;
* description: Beschreibung der Spalte (wird in den jsp-Seiten der BI angezeigt)&lt;br /&gt;
* currentlyUsed: Wenn false, wird die Spalte in Datenblatt-Berichten nicht angezeigt.&lt;br /&gt;
* comment: Hier kann noch ein zusätzlicher Kommentar rein (erscheint in der Datenbankdokumentation)&lt;br /&gt;
&lt;br /&gt;
Im Element &amp;quot;primaryKeys&amp;quot; werden die Primärschlüssel der Tabelle eingetragen. Hier gilt folgende Syntax:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;rs&amp;gt;&lt;br /&gt;
   &amp;lt;row&amp;gt;&lt;br /&gt;
      &amp;lt;fld name=&amp;quot;table_cat&amp;quot;&amp;gt;superx&amp;lt;/fld&amp;gt;&lt;br /&gt;
      &amp;lt;fld name=&amp;quot;table_schem&amp;quot;&amp;gt;superx&amp;lt;/fld&amp;gt;&lt;br /&gt;
      &amp;lt;fld name=&amp;quot;table_name&amp;quot;&amp;gt;gang_stg_astat&amp;lt;/fld&amp;gt;&lt;br /&gt;
      &amp;lt;fld name=&amp;quot;column_name&amp;quot;&amp;gt;tid&amp;lt;/fld&amp;gt;&lt;br /&gt;
      &amp;lt;fld name=&amp;quot;key_seq&amp;quot;&amp;gt;1&amp;lt;/fld&amp;gt;&lt;br /&gt;
      &amp;lt;fld name=&amp;quot;pk_name&amp;quot;&amp;gt;gang_stg_stat_tid&amp;lt;/fld&amp;gt;&lt;br /&gt;
   &amp;lt;/row&amp;gt;&lt;br /&gt;
&amp;lt;/rs&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Die Elemente &amp;quot;fld name&amp;quot; müssen hier von &amp;quot;rs&amp;quot; und &amp;quot;row&amp;quot; umschlossen werden. Für einen Weiteren &amp;quot;primaryKey&amp;quot; wird ein neues Element &amp;quot;row&amp;quot; in dem selben &amp;quot;rs&amp;quot; geschrieben.&lt;br /&gt;
Zur Beschreibung:&lt;br /&gt;
* table_cat: Databasenamen&lt;br /&gt;
* table_schem: Databasename&lt;br /&gt;
* table_name: Tabellenname in dem der Primarykey steht&lt;br /&gt;
* column_name: Spaltenname vom Primarykey&lt;br /&gt;
* key_seq: Der wievielte Primarykey ist dies von der Tabelle?&lt;br /&gt;
* pk_name: Name vom Primarykey, üblicherweise &amp;lt;&amp;lt;Tabellenname&amp;gt;&amp;gt;_&amp;lt;&amp;lt;Spaltenname&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Beispiel &amp;lt;nowiki&amp;gt;&amp;lt;table&amp;gt;&amp;lt;/nowiki&amp;gt; ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table name=&amp;quot;gang_stg_astat&amp;quot; caption=&amp;quot;Studienfächer (amtlich) zu Lehreinheiten&amp;quot; version=&amp;quot;0.1&amp;quot; 	thema=&amp;quot;Studiengänge&amp;quot; typ=&amp;quot;Schlüsseltabelle&amp;quot; datenquelle=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;description&amp;gt;Zuordnung amtlicher Studienfächer einer Hochschule zu internen 	Lehreinheiten.&amp;lt;/description&amp;gt;&lt;br /&gt;
 &amp;lt;columns&amp;gt;&lt;br /&gt;
  &amp;lt;column name=&amp;quot;tid&amp;quot; type=&amp;quot;SERIAL&amp;quot; size=&amp;quot;4&amp;quot; default=&amp;quot;&amp;quot; notnull=&amp;quot;true&amp;quot; description=&amp;quot;Laufnummer&amp;quot; 	isKey=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;column name=&amp;quot;lehreinheit&amp;quot; type=&amp;quot;CHAR&amp;quot; size=&amp;quot;10&amp;quot; notnull=&amp;quot;false&amp;quot; 	description=&amp;quot;Lehreinheit&amp;quot;&amp;gt;&amp;lt;comment&amp;gt;(hochschulinterner Schlüssel)&amp;lt;/comment&amp;gt;&amp;lt;/column&amp;gt;&lt;br /&gt;
  &amp;lt;column name=&amp;quot;beschreibung&amp;quot; type=&amp;quot;CHAR&amp;quot; size=&amp;quot;150&amp;quot; notnull=&amp;quot;false&amp;quot; description=&amp;quot;Bezeichnung des 	Studienfachs&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;column name=&amp;quot;astat&amp;quot; type=&amp;quot;CHAR&amp;quot; size=&amp;quot;3&amp;quot; notnull=&amp;quot;false&amp;quot; description=&amp;quot;Externer Schlüssel&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;column name=&amp;quot;studienbereich&amp;quot; type=&amp;quot;CHAR&amp;quot; size=&amp;quot;10&amp;quot; notnull=&amp;quot;false&amp;quot; description=&amp;quot;Schlüssel 	Studienbereich&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;column name=&amp;quot;aktiv&amp;quot; type=&amp;quot;SMALLINT&amp;quot; notnull=&amp;quot;false&amp;quot; description=&amp;quot;Aktiv&amp;quot;&amp;gt;&amp;lt;comment&amp;gt;Nur aktive Stati 	(1) werden im Studiengangsbaum angezeigt&amp;lt;/comment&amp;gt;&amp;lt;/column&amp;gt;&lt;br /&gt;
  &amp;lt;column name=&amp;quot;bund_key&amp;quot; type=&amp;quot;CHAR&amp;quot; size=&amp;quot;10&amp;quot; notnull=&amp;quot;false&amp;quot; description=&amp;quot;Bundesschlüssel 	Lehreinheit&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;column name=&amp;quot;datenquelle&amp;quot; type=&amp;quot;INTEGER&amp;quot; size=&amp;quot;4&amp;quot; default=&amp;quot;1&amp;quot; notnull=&amp;quot;false&amp;quot; 	description=&amp;quot;Datenquelle für diesen Datensatz&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;column name=&amp;quot;erzeugt_am&amp;quot; type=&amp;quot;DATE&amp;quot; size=&amp;quot;4&amp;quot; default=&amp;quot;today()&amp;quot; notnull=&amp;quot;false&amp;quot; 	description=&amp;quot;Datum der Erzeugung des Datensatzes&amp;quot; currentlyUsed=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;column name=&amp;quot;geaendert_am&amp;quot; type=&amp;quot;DATE&amp;quot; size=&amp;quot;4&amp;quot; default=&amp;quot;&amp;quot; notnull=&amp;quot;false&amp;quot; description=&amp;quot;Datum der 	letzten Änderung des Datensatzes&amp;quot; currentlyUsed=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;column name=&amp;quot;geaendert_von_id&amp;quot; type=&amp;quot;INTEGER&amp;quot; size=&amp;quot;4&amp;quot; default=&amp;quot;&amp;quot; notnull=&amp;quot;false&amp;quot; 	description=&amp;quot;UserID des Ändernden&amp;quot; currentlyUsed=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;column name=&amp;quot;erzeugt_von_id&amp;quot; type=&amp;quot;INTEGER&amp;quot; size=&amp;quot;4&amp;quot; default=&amp;quot;&amp;quot; notnull=&amp;quot;false&amp;quot; 	description=&amp;quot;UserID des Erzeugers&amp;quot; currentlyUsed=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/columns&amp;gt;&lt;br /&gt;
 &amp;lt;primaryKeys&amp;gt;&lt;br /&gt;
  &amp;lt;rs&amp;gt;&lt;br /&gt;
   &amp;lt;row&amp;gt;&lt;br /&gt;
    &amp;lt;fld name=&amp;quot;table_cat&amp;quot;&amp;gt;superx&amp;lt;/fld&amp;gt;&lt;br /&gt;
    &amp;lt;fld name=&amp;quot;table_schem&amp;quot;&amp;gt;superx&amp;lt;/fld&amp;gt;&lt;br /&gt;
    &amp;lt;fld name=&amp;quot;table_name&amp;quot;&amp;gt;gang_stg_astat&amp;lt;/fld&amp;gt;&lt;br /&gt;
    &amp;lt;fld name=&amp;quot;column_name&amp;quot;&amp;gt;tid&amp;lt;/fld&amp;gt;&lt;br /&gt;
    &amp;lt;fld name=&amp;quot;key_seq&amp;quot;&amp;gt;1&amp;lt;/fld&amp;gt;&lt;br /&gt;
    &amp;lt;fld name=&amp;quot;pk_name&amp;quot;&amp;gt;gang_stg_stat_tid&amp;lt;/fld&amp;gt;&lt;br /&gt;
   &amp;lt;/row&amp;gt;&lt;br /&gt;
  &amp;lt;/rs&amp;gt;&lt;br /&gt;
 &amp;lt;/primaryKeys&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Views===&lt;br /&gt;
Für die Views wird wie bei den Tabellen eine bestimmte Syntax verfolgt. Diese erläutere ich an dem Beispiel der gang_k_sb:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;view name=&amp;quot;gang_k_sb&amp;quot; version=&amp;quot;0.1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;View Studienbereiche (Landesschlüssel)&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;columns&amp;gt;&lt;br /&gt;
      &amp;lt;column name=&amp;quot;apnr&amp;quot; type =&amp;quot;char&amp;quot; size =&amp;quot;2&amp;quot; default =&amp;quot;&amp;quot; notnull =&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;column name=&amp;quot;kurz&amp;quot; type =&amp;quot;VARCHAR&amp;quot; size =&amp;quot;150&amp;quot; default =&amp;quot;&amp;quot; notnull =&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;column name=&amp;quot;druck&amp;quot; type =&amp;quot;VARCHAR&amp;quot; size =&amp;quot;255&amp;quot; default =&amp;quot;&amp;quot; notnull =&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;column name=&amp;quot;lang_1&amp;quot; type =&amp;quot;VARCHAR&amp;quot; size =&amp;quot;255&amp;quot; default =&amp;quot;&amp;quot; notnull =&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;column name=&amp;quot;astat&amp;quot; type =&amp;quot;SMALLINT&amp;quot; size =&amp;quot;2&amp;quot; default =&amp;quot;&amp;quot; notnull =&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;/columns&amp;gt;&lt;br /&gt;
&amp;lt;sql dbsystem=&amp;quot;&amp;quot;&amp;gt;&amp;lt;![CDATA[SELECT apnr,kurz,druck ,lang_1,astat FROM gang_cifx where key=3 ]]&amp;gt;&amp;lt;/sql&amp;gt;&lt;br /&gt;
&amp;lt;/view&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Vorgehensweise ähnelt hier der der Tabellen. In &amp;quot;view&amp;quot; wird der Name und die Version des Views eingetragen und in &amp;quot;description&amp;quot; die Beschreibung. In &amp;quot;columns&amp;quot; wird für jede Spalte ein &amp;quot;column&amp;quot; Element angelegt mit den entsprechenden Eigenschaften, wie &amp;quot;name&amp;quot;, &amp;quot;type&amp;quot;, &amp;quot;size&amp;quot; ... . In &amp;quot;sql&amp;quot; wird dann der select des Views eingetragen. Die Besonderheit hier ist das &amp;quot;CDATA&amp;quot;. Durch diesen Befehl wird der eingeschlossene Text nicht von XSLT ausgewertet, sondern direkt übergeben.&lt;br /&gt;
&lt;br /&gt;
===Themen===&lt;br /&gt;
Hier handelt es sich um die Überschriften im Themenbaum, z.B. &amp;quot;Auswertungen zu Studiengängen&amp;quot;. Im Attribut Parent wird das übergeordnete Element definiert.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;thema name=&amp;quot;Auswertungen zu Studiengängen&amp;quot; parent=&amp;quot;Studiengänge&amp;quot;&amp;gt;Abfragen zur Akkreditierung&amp;lt;/thema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Masken===&lt;br /&gt;
Hier werden die Masken bzw. Berichte des Moduls definiert. Diese Definitionen werden z.B. genutzt, um die Masken zu installieren oder zu entladen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;maske tid=&amp;quot;25240&amp;quot; name=&amp;quot;Zulassung&amp;quot; thema=&amp;quot;Auswertungen zu Studiengängen&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;src&amp;gt;&amp;lt;path&amp;gt;$GANG_PFAD/masken&amp;lt;/path&amp;gt;&amp;lt;author&amp;gt;D. Quathamer&amp;lt;/author&amp;gt;&amp;lt;lastChange&amp;gt;23.5.2007&amp;lt;/lastChange&amp;gt;&amp;lt;dbsystem&amp;gt;INFORMIX&amp;lt;/dbsystem&amp;gt;&amp;lt;/src&amp;gt;&lt;br /&gt;
   &amp;lt;src&amp;gt;&amp;lt;path&amp;gt;$GANG_PFAD/masken&amp;lt;/path&amp;gt;&amp;lt;author&amp;gt;D. Quathamer&amp;lt;/author&amp;gt;&amp;lt;lastChange&amp;gt;23.5.2007&amp;lt;/lastChange&amp;gt;&amp;lt;dbsystem&amp;gt;POSTGRES&amp;lt;/dbsystem&amp;gt;&amp;lt;/src&amp;gt;&lt;br /&gt;
&amp;lt;/maske&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Data-integrity===&lt;br /&gt;
In der Data-integrity werden die Verknüpfungen der Tabellen eingetragen. Dies ist einmal für die &amp;lt;&amp;lt;Modul&amp;gt;&amp;gt;.html wichtig, da dann die Verknüpfungen auch als Link zu der entsprechenden Tabelle erscheinen und damit in SuperX in den entsprechenden Tabellen nicht nur eine Nummer, sondern auch ein aussagekräftiger Text steht. &lt;br /&gt;
In meinem Beispiel verknüpfe ich die Tabellen gang_k_lehr_hs mit der gang_stg_astat. Auch die Reihenfolge spielt hier eine wichtige Rolle. Die erste Tabelle ist die, in der der entsprechende Inhalt und der Schlüssel in einer Spalte stehen. Die zweite Tabelle enthält nur den Schlüssel. Daher wird in der &amp;lt;&amp;lt;Modul&amp;gt;&amp;gt;.xml in der Zweiten Tabelle der entsprechende Fremdschlüssel eingetragen.&lt;br /&gt;
In visibleFields wird die entsprechende Spalte eingetragen, die ausgegeben werden soll. Mit zwei Pipes &amp;quot;||&amp;quot; können auch mehrere Spalten miteinander verbunden werden, wenn z.B. der Key und der Text ausgegeben werden soll.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--gang_stg_astat --&amp;gt;&lt;br /&gt;
&amp;lt;relation from=&amp;quot;gang_k_lehr_hs&amp;quot; to=&amp;quot;gang_stg_astat&amp;quot; delete=&amp;quot;FALSE&amp;quot; displayType=&amp;quot;select&amp;quot; visibleFields=&amp;quot;key_apnr || trim(drucktext)&amp;quot; format=&amp;quot;%s&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;relation-column from=&amp;quot;key_apnr&amp;quot; to=&amp;quot;lehreinheit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/relation&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Beschreibung &amp;quot;relation&amp;quot;:&lt;br /&gt;
*from: Tabelle mit Schlüssel und zugehörigen Text&lt;br /&gt;
*to: Tabelle nur mit Schlüssel&lt;br /&gt;
*delete:&lt;br /&gt;
*displayType:&lt;br /&gt;
*visibleFields: Welche Spalten angezeigt werden sollen (z.B. in dbforms FK-Bezizehungen)&lt;br /&gt;
*format: Format der Anzeige&lt;br /&gt;
&lt;br /&gt;
Zur Beschreibung &amp;quot;relation-column&amp;quot;:&lt;br /&gt;
*from: Key-Spalte der ersten Tabelle&lt;br /&gt;
*to: Key-Spalte der zweiten Tabelle&lt;br /&gt;
&lt;br /&gt;
== Unterbereiche install, uninstall, ETL und upgrade==&lt;br /&gt;
Hier werden Aktionen und Ladeschritte bei der jeweiligen Aktion eines Moduls definiert. Das Hauptaugenmark liegt hier auf &amp;quot;nativeaction&amp;quot; und &amp;quot;loadtable&amp;quot;. Eine &amp;quot;nativeaction wäre z.B.:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;nativeaction sql=&amp;quot;&amp;quot; scriptfile=&amp;quot;$GANG_PFAD/conf/gang_tabellen_fuellen.sql&amp;quot; &lt;br /&gt;
	database=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier wird der Inhalt der SQL Datei genommen und ausgeführt. Es ist auch möglich einen SQL Befehl direkt in das Attribut &amp;quot;sql&amp;quot; zu schreiben. Falls erforderlich, kann auch noch als Bedingung die Datenbank angegeben werden (z.B. POSTGRES oder INFORMIX), für die diese &amp;quot;nativeaction&amp;quot; gedacht ist.&lt;br /&gt;
Für &amp;quot;loadtable&amp;quot; ist folgendes Beispiel:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;loadtable refresh=&amp;quot;false&amp;quot; delimiter=&amp;quot;^&amp;quot; header=&amp;quot;false&amp;quot; tabname=&amp;quot;gang_cifx&amp;quot;&amp;gt;&amp;lt;file path=&amp;quot;$GANG_PFAD/schluesseltabellen/gang_cifx.unl&amp;quot;/&amp;gt;&amp;lt;/loadtable&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Hier wird der Inhalt einer Tabelle in eine Datei abgespeichert. &amp;quot;delimiter&amp;quot; steht für Feldtrenner, &amp;quot;header&amp;quot;, ob die Spaltenüberschrift übernommen werden soll und &amp;quot;tabname&amp;quot; für den Tabellennamen. in &amp;quot;file&amp;quot; in dem Attribut &amp;quot;path&amp;quot; wird der Pfad mit Dateinamen angegeben, wo der Inhalt abgespeichert werden soll.&lt;br /&gt;
===Spezialität bei ETL===&lt;br /&gt;
In dem ETL Modul sind 6 Stufen eingebaut. Zu beachten ist hier auch, wenn eine Stufe nicht richtig verarbeitet wird, bricht das SKript komplett ab.&lt;br /&gt;
Zu den einzelnen Stufen:&lt;br /&gt;
;Unload: Hier werden die Daten aus dem Vorsystem entladen.&lt;br /&gt;
;Load: Hier werden die Daten in das Datawarehouse geladen.&lt;br /&gt;
;Trans: Hier wird die Transformation durchgeführt. D.h. es wird eine Schlüsselharmonisierung durchgeführt.&lt;br /&gt;
;Aggregation: Hier werden die Hilfstabellen gefüllt.&lt;br /&gt;
;System: Hier wird das Datum aktualisiert, welches die Aktualität angibt.&lt;br /&gt;
;Test: Hier findet die Prüfroutine statt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==dbforms==&lt;br /&gt;
In der Modul-XML werden auch die Vorlagen für die DBforms gemacht. Dabei wird mit XSLT aus der abstrakten Beschreibung des Formulars eine funktionstüchtige JSP-Seite erzeugt. Hier werde ich nur auf die wichtigsten Felder eingehen.&lt;br /&gt;
===Erläuterung der XML-Elemente===&lt;br /&gt;
;Tabellenname:Als erstes sollte der Tabellenname eingetragen werden. Dieser wird hier an mehreren Stellen benötigt. (Bei: &amp;quot;table&amp;quot;, &amp;quot;path&amp;quot;, &amp;quot;customfield&amp;quot;,  ..)&lt;br /&gt;
;path:Zu beachten ist, dass der Tabellenname sowie das Modul in den Pfad (&amp;quot;path&amp;quot;) Angaben auch richtig eingetragen wird.&lt;br /&gt;
;name , caption:Im ersten Block wird meist in den Feldern &amp;quot;name&amp;quot; und &amp;quot;caption&amp;quot; dasselbe eingetragen und zwar eine kurze aber aussagekräftige Bezeichnung der Tabelle. Diese kann auch in dem zweiten Block übernommen werden. Dort gibt es genau dieselben Felder.&lt;br /&gt;
;descpription: Eine ausführlichere Beschreibung der Tabelle wird in das Feld &amp;quot;description&amp;quot; geschrieben. Diese Beschreibung sollte aber auch nicht länger sein als ein normaler Satz.&lt;br /&gt;
; field-selection / customfield :Wenn man &amp;lt;nowiki&amp;gt;&amp;lt;field-selection complete=&amp;quot;true&amp;quot; /&amp;gt;&amp;lt;/nowiki&amp;gt; wählt, dann werden automatisch alle Felder der Tabelle im Formular angezeigt. Wenn Sie nur einige Felder anzeigen wollen, nutzen Sie das Element &amp;lt;nowiki&amp;gt;&amp;lt;customfield&amp;gt;&amp;lt;/nowiki&amp;gt;. Außerdem kann man mit customfield spezielle Layoutanweisungen kombinieren, z.B. Feldgröße.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form name=&amp;quot;Studienfächer (amtlich) zu Lehreinheiten (Liste)&amp;quot;&lt;br /&gt;
 table=&amp;quot;gang_stg_astat&amp;quot;&lt;br /&gt;
 path=&amp;quot;/edit/gang/gang_stg_astat_list.jsp&amp;quot;&lt;br /&gt;
 followUp=&amp;quot;&amp;quot;&lt;br /&gt;
 caption=&amp;quot;Studienfächer (amtlich) zu Lehreinheiten (Liste)&amp;quot;&lt;br /&gt;
 orderBy=&amp;quot;astat&amp;quot;&lt;br /&gt;
 gotoHt=&amp;quot;&amp;quot;&lt;br /&gt;
 helpfile=&amp;quot;&amp;quot;&lt;br /&gt;
 maxRows=&amp;quot;*&amp;quot;&lt;br /&gt;
 mode=&amp;quot;update_insert&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;description&amp;gt;Zuordnung amtlicher Studienfächer einer Hochschule zu internen Lehreinheiten.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;filters&amp;gt;&lt;br /&gt;
&amp;lt;/filters&amp;gt;&lt;br /&gt;
&amp;lt;field-selection  complete=&amp;quot;false&amp;quot;  /&amp;gt;&lt;br /&gt;
&amp;lt;customfield name=&amp;quot;tid&amp;quot; nullFieldValue=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;customfield name=&amp;quot;astat&amp;quot; type=&amp;quot;label&amp;quot; nullFieldValue=&amp;quot;&amp;quot; visibleSize=&amp;quot;10&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;customfield type=&amp;quot;link&amp;quot; name=&amp;quot;Details&amp;quot; path=&amp;quot;/superx/edit/gang/gang_stg_astat_edit.jsp&amp;quot; linkid=&amp;quot;tid&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;form name=&amp;quot;Studienfächer (amtlich) zu Lehreinheiten&amp;quot;&lt;br /&gt;
 table=&amp;quot;gang_stg_astat&amp;quot;&lt;br /&gt;
 path=&amp;quot;/edit/gang/gang_stg_astat_edit.jsp&amp;quot;&lt;br /&gt;
 followUp=&amp;quot;&amp;quot;&lt;br /&gt;
 caption=&amp;quot;Studienfächer (amtlich) zu Lehreinheiten bearbeiten&amp;quot;&lt;br /&gt;
 orderBy=&amp;quot;astat&amp;quot;&lt;br /&gt;
 gotoHt=&amp;quot;tid&amp;quot;&lt;br /&gt;
 helpfile=&amp;quot;&amp;quot;&lt;br /&gt;
 maxRows=&amp;quot;1&amp;quot;&lt;br /&gt;
 mode=&amp;quot;full&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;description&amp;gt;Zuordnung amtlicher Studienfächer einer Hochschule zu internen Lehreinheiten.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;filters&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/filters&amp;gt;&lt;br /&gt;
&amp;lt;field-selection  complete=&amp;quot;false&amp;quot;  /&amp;gt;&lt;br /&gt;
&amp;lt;customfield name=&amp;quot;tid&amp;quot; nullFieldValue=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;customfield name=&amp;quot;lehreinheit&amp;quot; nullFieldValue=&amp;quot;&amp;quot; visibleSize=&amp;quot;10&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;customfield name=&amp;quot;beschreibung&amp;quot; nullFieldValue=&amp;quot;&amp;quot; visibleSize=&amp;quot;30&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;customfield name=&amp;quot;astat&amp;quot; nullFieldValue=&amp;quot;&amp;quot; visibleSize=&amp;quot;100&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;customfield name=&amp;quot;studienbereich&amp;quot; nullFieldValue=&amp;quot;&amp;quot; visibleSize=&amp;quot;30&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;customfield name=&amp;quot;aktiv&amp;quot; nullFieldValue=&amp;quot;&amp;quot; visibleSize=&amp;quot;10&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;customfield name=&amp;quot;bund_key&amp;quot; nullFieldValue=&amp;quot;&amp;quot; visibleSize=&amp;quot;30&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;customfield name=&amp;quot;Datensatzstatus&amp;quot; type=&amp;quot;include&amp;quot; path=&amp;quot;/edit/gang/datensatzstatus.inc&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Optionen für die Merkmale:&lt;br /&gt;
#mode&lt;br /&gt;
#* full&lt;br /&gt;
#* update_insert&lt;br /&gt;
#* update&lt;br /&gt;
#* insert&lt;br /&gt;
#* ...&lt;br /&gt;
#type&lt;br /&gt;
#*include&lt;br /&gt;
#*link&lt;br /&gt;
#*lable (Nur Bezeichnung)&lt;br /&gt;
#* ...&lt;br /&gt;
#filters&lt;br /&gt;
#* Beispiel: in gang.xml:  form name=&amp;quot;zuordnung&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;filters&amp;gt;&lt;br /&gt;
&amp;lt;filter mandatory=&amp;quot;true&amp;quot; type=&amp;quot;equals&amp;quot;&amp;gt;tid&amp;lt;/filter&amp;gt;&lt;br /&gt;
&amp;lt;/filters&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test der Formulare===&lt;br /&gt;
Die Formulare werden in der Modul-XML-Datei definiert (s.o.). Die JSP-Seiten werden dann generiert, indem man das [[Skriptbasierte Datenbank- und Modulinstallation - HISinOne-BI#Module-Scripts-Create mit Ant]] ausführt. &lt;br /&gt;
Danach muss man einen Modulupgrade ausführen, damit die Formulare in der Datenbank gespeichert werden. Und dann kann man die Formulare testen, indem man im Menü Administration-&amp;gt; &amp;quot;Tabelle suchen&amp;quot;-&amp;gt; Bearbeiten anklickt. &lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bearbeitungsformulare auch im Themenbaum anzeigen wollen, müssen Sie eine Suchmaske vorschalten, in der &lt;br /&gt;
*die Datensätze gefiltert werden können&lt;br /&gt;
*über einen&amp;#039; &amp;#039;&amp;#039;Bearbeiten&amp;#039;&amp;#039;&amp;#039; Button [[Bild:Pencil.gif]](Spaltenname &amp;quot;nextedit&amp;quot;) zugänglich gemacht werden.&lt;br /&gt;
&lt;br /&gt;
Sie z.B. die Maske &amp;quot;Tabelle suchen&amp;quot;, diese ist ein gutes, einfaches Beispiel für eine Kombination aus Suchformular und Bearbeitungsformular.&lt;br /&gt;
&lt;br /&gt;
=== Gestaltung der Formulare ===&lt;br /&gt;
&lt;br /&gt;
; Auswahl aus Schlüsseltabelle&lt;br /&gt;
: Wenn Inhalte zur Auswahl aus einer verknüften Schlüsseltabelle angezeigt werden sollen, müssen folgende Bedingungen erfüllt sein:&lt;br /&gt;
:* Die Beziehung ist als  &amp;lt;data-integrity&amp;gt;  &amp;lt;relation&amp;gt; eingetragen.&lt;br /&gt;
:* in der Relation ist unter &amp;#039;&amp;#039;&amp;#039;visibleFields=&amp;quot;...&amp;quot;&amp;#039;&amp;#039;&amp;#039; das Feld eingetragen, dessen Inhalt an der Oberfläche erscheinen soll.&lt;br /&gt;
&lt;br /&gt;
;Spaltenbeschriftung&lt;br /&gt;
:Wenn nicht der Spaltennahme aus der Tabelle angezeigt werden soll, sondern eine sprechendere Bezeichnung muss:&lt;br /&gt;
:* unter &amp;lt;nowiki&amp;gt; &amp;lt;database&amp;gt; &amp;lt;table&amp;gt; &amp;lt;columns&amp;gt; &amp;lt;column name=&amp;quot;...&amp;quot; &amp;#039;&amp;#039;&amp;#039;description= &amp;quot;...&amp;quot;&amp;#039;&amp;#039;&amp;#039; &amp;gt;&amp;lt;/nowiki&amp;gt; die entsprechende Bezeichnung eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
;Formular in Maske einbinden&lt;br /&gt;
:Wenn durch eintragen von &amp;quot;nextedit&amp;quot; bereits ein Verweis auf das (funktionierende) Formular erstellt wurde, es aber nicht gefunden wird, muss:&lt;br /&gt;
:* zunächst die jsp Seite unter superx\edit\MODULE generiert werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://entwicklerhandbuch.superx-projekt.de/ Entwicklungshandbücher von SuperX]&lt;/div&gt;</summary>
		<author><name>Danielq</name></author>
	</entry>
</feed>