Wiki-Quellcode von Quellen
Verstecke letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
![]() |
1.1 | 1 | {{content/}} |
2 | |||
![]() |
7.1 | 3 | {{id name="fig_data_source"/}} |
![]() |
11.1 | 4 | {{figure image="data_source_de.png"}}Konfigurationsoberfläche zum Anlegen von Datenquellen: (1) Liste existierender Datenquellen, (2) Bereich zum Editieren der selektierten Datenquelle, (3) Einstellungspanel der Datenquelle, (4) Servlet-URL der Datenquelle, um auf diese zugreifen zu können.{{/figure}} |
![]() |
7.1 | 5 | |
![]() |
1.1 | 6 | Die Quellen bzw. Datenquellen werden als Text im Format CSV, JSON oder XML hinterlegt und können über den {{designer case="acc"/}} bzw. das Formular verarbeitet werden. |
7 | |||
8 | Um auch im Skriptbereich per Javaskript auf die Datenquellen Zugriff zu haben, werden alle Datenquellen in eine JSON-Struktur umgewandelt und im Objekt {{code}}XFC_METADATA.urls.datasource_[csv|json|xml]{{/code}} zugänglich gemacht. Die Struktur dieser JSON-Struktur für die verschiedenen Datenquellen ist im jeweiligen Abschnitt erläutert. | ||
9 | |||
![]() |
10.1 | 10 | == Anlegen einer Datenquelle == |
![]() |
9.1 | 11 | |
![]() |
14.1 | 12 | Öffnen Sie das Modul "Daten > Quellen" und klicken Sie auf die Schaltfläche "Neu" {{ficon name="plus-circle-outline"/}} in der Kopfzeile der Liste (siehe Punkt 1 in der [[Abbildung>>||anchor="fig_data_source"]]). Daraufhin werden Sie aufgefordert eine leere Datenquelle anzulegen oder diese aus einer Datei zu importieren. Es können drei Typen von Datenquellen angelegt werden: //XML//, //CSV// und //JSON//. |
![]() |
9.1 | 13 | |
![]() |
11.1 | 14 | {{lightbox image="data_source_new_de.png"/}} |
15 | |||
![]() |
14.2 | 16 | === Importieren von Datenquellen aus Dateien === |
17 | |||
18 | |||
19 | |||
![]() |
1.1 | 20 | == CSV == |
21 | |||
22 | Hier können Sie Datensätze im CSV-Format eingeben. | ||
23 | |||
24 | * Wählen Sie unter //Typ// die Option //CSV//. | ||
25 | * Vergeben Sie einen eindeutigen Namen. | ||
26 | * Im Feld //Wert// geben Sie die Daten separiert mit einem Komma ein. | ||
27 | |||
![]() |
7.1 | 28 | {{figure image="datenquelle_csv_8.png"}} |
![]() |
1.1 | 29 | Die JSON-Struktur der CSV-Datenquelle. Auf diese JSON-Struktur kann dann per Javaskript über {{code}}XFC_METADATA.urls.datasource_[csv|json|xml]{{/code}} zugegriffen werden. |
30 | {{/figure}} | ||
31 | |||
32 | === Beispiel für eine CSV-Datenquelle === | ||
33 | |||
34 | {{info}} | ||
35 | Die CSV-Daten werden intern in ein JSON-Objekt umgewandelt, sodass die erste Zeile der //CSV-Datei// immer die Objektnamen für den späteren Zugriff definiert. | ||
36 | {{/info}} | ||
37 | |||
38 | {{code}} | ||
39 | Wert 1.1, Wert 1.2, Wert 1.3, Wert 1.4, ... | ||
40 | {{/code}} | ||
41 | |||
42 | Das Auslesen der Werte im {{designer case="dat"/}} erfolgt über das //Servlet// mit Namen //datenquellecsv//. | ||
43 | |||
44 | === Servlet-Parameter === | ||
45 | |||
46 | {{info}} | ||
47 | **Servlet-URL** | ||
48 | http(s):~/~/<server>/formcycle/datenquellecsv?mandantName=<Mandant-Name>&name=<Datenquellen-Name> | ||
49 | {{/info}} | ||
50 | |||
![]() |
1.3 | 51 | Bei Zugriff aus dem {{designer case="dat"/}} verwenden Sie immer das globale Variablen-Objekt //XFC_METADATA//, siehe hierzu auch [[Globale Designer Variablen>>doc:Main.Formular-Metadaten]]. Beispielsweise kann wie folgt darauf zugegriffen werden: {{code}}XFC_METADATA.urls.datasource_csv{{/code}}. |
![]() |
1.1 | 52 | |
53 | Folgende Parameter sind möglich: | ||
54 | |||
55 | |=Parametername|=Beschreibung|=Erforderlich | ||
56 | |name|Muss dem Namen der CSV-Datenquelle entsprechen.|Ja | ||
57 | |mandantName|Muss dem Namen des Mandanten entsprechen, unter welchen diese Datenquelle erstellt wurde.|Ja, wenn //projektId// nicht gegeben. | ||
58 | |projektId|Muss der ID des Formulars entsprechen. Diese Information kann über {{code}}XFC_METADATA.currentProject.id{{/code}} abgerufen werden.|Ja, wenn //mandantName// nicht gegeben. | ||
59 | |kopfzeile|Gibt eine Komma-separierte Liste der Spaltennamen der CSV-Tabelle an. Ist dieser nicht angegeben, so wird hierfür die erste Zeile der CSV-Tabelle verwendet.|Nein | ||
60 | |spaltenNamen|Gibt eine kommaseparierte Liste der Spalten an, welche Spalten vom //Servlet// mit den entsprechenden Werten zurückgeliefert werden. Hierbei werden je nach Verwendung die Namen der Spalten aus dem Parameter //kopfzeile// oder die Namen der ersten Zeile der //CSV//-Datenquelle erwartet.|Nein | ||
61 | |csvTrennzeichen|Gibt das Trennzeichen zwischen den einzelnen Datenzellen an. Wird dieses nicht gesetzt, wird hier standardmäßig ein Komma {{code}},{{/code}} benutzt.|Nein | ||
62 | |csvQuote|Das Trennzeichen, mit dem die Werte der Zeilen getrennt sind. Wird dieses nicht gesetzt, wird hier standardmäßig ein Anführungszeichen verwendet {{code}}"{{/code}}.| Nein | ||
63 | |||
64 | === Anwendungsbeispiel === | ||
65 | |||
66 | {{figure image="datenquelle_csv_7.png" width="300"}} | ||
67 | Ein Beispiel dafür, wie eine CSV-Datenquelle aussehen kann. Die Spalten werden durch Kommas getrennt. | ||
68 | {{/figure}} | ||
69 | |||
70 | {{code language="csv"}} | ||
71 | anrede,vorname,nachname,plz,ort | ||
72 | Herr,Max,Mustermann,1000,Musterhausen | ||
73 | Frau,Monika,Mustermann,2000,Musterdorf | ||
74 | Frau, Luise,Musterfrau,3000,Musterstadt | ||
75 | |||
76 | {{/code}} | ||
77 | |||
78 | |||
79 | |||
80 | |||
![]() |
1.3 | 81 | Im {{designer case="dat"/}} wird dann folgendes Skript im [[Skriptbereich>>doc:Main.TAB - Script]] verwendet. |
![]() |
1.1 | 82 | |
83 | {{code language="javascript"}} | ||
84 | $.getJSON( XFC_METADATA.urls.datasource_csv + "?name=Demo&mandantName=xima.de", function(json) { | ||
85 | var obj = json.returnValue[0] | ||
86 | |||
87 | $('[name=tfAnrede]').val(obj.anrede) | ||
88 | $('[name=tfVorname]').val(obj.vorname) | ||
89 | $('[name=tfName]').val(obj.nachname) | ||
90 | $('[name=tfPLZ]').val(obj.plz) | ||
91 | $('[name=tfOrt]').val(obj.ort) | ||
92 | }) | ||
93 | {{/code}} | ||
94 | |||
95 | {{lightbox image="datenquelle_csv_4.png" width="300"/}} | ||
96 | |||
97 | Dieses Beispiel als Datenquelle für den {{designer case="acc"/}} [[zum Herunterladen>>attach:beispiel_datenquelle_csv.json||rel="__blank"]]. | ||
98 | |||
99 | === Sonderfall Auswahlelement === | ||
100 | |||
![]() |
4.1 | 101 | {{figure image="data_source_csv_designer_de.png"}} |
![]() |
1.1 | 102 | Die Anbindung einer Datenquelle an eine Auswahlelement erfolgt direkt im {{designer case="dat"/}} |
103 | {{/figure}} | ||
104 | |||
![]() |
1.3 | 105 | Soll die //CSV//-Datenquelle direkt in ein [[Auswahlelement>>doc:Main.Auswahl]] geladen werden, erfolgt dies über die Eigenschaften des Auswahlelements im {{designer case="dat"/}}. |
![]() |
1.1 | 106 | |
![]() |
1.3 | 107 | Der Inhalt der CSV-Datenquelle wird folgendermaßen in einem [[Auswahlelement>>doc:Main.Auswahl]] verarbeitet. |
![]() |
1.1 | 108 | |
109 | {{code}} | ||
110 | sichtbarer wert, übertragener, wert, optionaler wert, optionaler wert, ... | ||
111 | {{/code}} | ||
112 | |||
113 | Werden mehr als der sichtbare und übertragene Wert angegeben, also optionale Werte, so können diese im Javaskript über den folgenden jQuery-Selektor abgerufen werden. | ||
114 | |||
115 | {{code language="javascript"}} | ||
116 | $('[name=sel2]').find('option:selected').attr('col0'); | ||
117 | {{/code}} | ||
118 | |||
119 | Jeder optionale Wert wird am Auswahlelement als Attribut {{code}}col + Index des optionalen Wert{{/code}} gespeichert. Bei z.B. drei optionalen Werten würde es also //col0//, //col1// und //col2// geben. | ||
120 | |||
121 | == XML == | ||
122 | |||
![]() |
1.3 | 123 | Die XML Datenquelle verhält sich analog zur //CSV//-Datenquelle, kann jedoch nicht direkt an ein [[Auswahlelement>>doc:Main.Auswahl]] gebunden werden. |
![]() |
1.1 | 124 | |
125 | {{figure image="datenquelle_xml.png" width="300"}} | ||
126 | Die JSON-Struktur der XML-Datenquelle. Auf diese JSON-Struktur kann dann per Javaskript über {{code}}XFC_METADATA.urls.datasource_[csv|json|xml]{{/code}} zugegriffen werden. | ||
127 | {{/figure}} | ||
128 | |||
129 | === Beispiel für eine XML-Datenquelle === | ||
130 | |||
131 | {{code language="xml"}} | ||
132 | <root> | ||
133 | <person> | ||
134 | <anrede> | ||
135 | Herr | ||
136 | </anrede> | ||
137 | <vorname> | ||
138 | Max | ||
139 | </vorname> | ||
140 | <nachname> | ||
141 | Mustermann | ||
142 | </nachname> | ||
143 | </person> | ||
144 | <person> | ||
145 | <anrede> | ||
146 | Frau | ||
147 | </anrede> | ||
148 | <vorname> | ||
149 | Monika | ||
150 | </vorname> | ||
151 | <nachname> | ||
152 | Musterfrau | ||
153 | </nachname> | ||
154 | </person> | ||
155 | </root> | ||
156 | {{/code}} | ||
157 | |||
158 | |||
159 | === Servlet-Parameter === | ||
160 | |||
161 | {{info}} | ||
162 | **Servlet-URL** | ||
163 | http(s):~/~/<server>/formcycle/datenquellexml?mandantName=<Mandant-Name>&name=<Datenquellen-Name> | ||
164 | {{/info}} | ||
165 | |||
![]() |
1.3 | 166 | Bei Zugriff aus dem {{designer case="dat"/}} verwenden Sie immer das globale Variablen-Objekt //XFC_METADATA//, siehe hierzu auch [[Globale Designer Variablen>>doc:Main.Formular-Metadaten]]. Beispielsweise kann wie folgt darauf zugegriffen werden: {{code language="javascript"}}XFC_METADATA.urls.datasource_xml{{/code}}. |
![]() |
1.1 | 167 | |
168 | Folgende Parameter sind möglich: | ||
169 | |||
170 | |=Parametername|=Beschreibung|=Erforderlich | ||
171 | |mandantName|Muss dem Namen des Mandanten entsprechen, unter welchem diese Datenquelle erstellt wurde.|Ja | ||
172 | |name|Muss dem Namen der CSV-Datenquelle entsprechen.|Ja | ||
173 | |||
174 | == JSON == | ||
175 | |||
![]() |
1.3 | 176 | Die //JSON//-Datenquelle verhält sich analog zur //CSV//-Datenquelle, kann jedoch nicht direkt an ein [[Auswahlelement>>doc:Main.Auswahl]] gebunden werden. |
![]() |
1.1 | 177 | |
178 | {{figure image="datenquelle_json.png" width="300"}} | ||
179 | Die JSON-Struktur der JSON-Datenquelle. Sie ist identisch mit der JSON-Datenquelle. Auf diese JSON-Struktur kann dann per Javaskript über {{code}}XFC_METADATA.urls.datasource_[csv|json|xml]{{/code}} zugegriffen werden. | ||
180 | {{/figure}} | ||
181 | |||
182 | === Beispiel für eine JSON-Datenquelle === | ||
183 | |||
184 | {{code language="json"}} | ||
185 | {"person":[ | ||
186 | { | ||
187 | 'anrede':'Herr', | ||
188 | 'vorname':'Max', | ||
189 | 'nachname':'Mustermann' | ||
190 | }, | ||
191 | { | ||
192 | 'anrede':'Frau', | ||
193 | 'vorname':'Monika', | ||
194 | 'nachname':'Musterfrau' | ||
195 | } | ||
196 | ]} | ||
197 | {{/code}} | ||
198 | |||
199 | === Servlet-Parameter === | ||
200 | |||
201 | {{info}} | ||
202 | **Servlet-URL** | ||
203 | http(s):~/~/<server>/formcycle/datenquellejson?mandantName=<Mandant-Name>&name=<Datenquellen-Name> | ||
204 | {{/info}} | ||
205 | |||
![]() |
1.3 | 206 | Bei Zugriff aus dem {{designer case="dat"/}} verwenden Sie immer das globale Variablenobjekt //XFC_METADATA//, siehe hierzu auch [[Globale Designer Variablen>>doc:Main.Formular-Metadaten]]. Beispielweise kann wie folgt darauf zugegriffen werden: {{code language="javascript"}}XFC_METADATA.urls.datasource_json{{/code}}. |
![]() |
1.1 | 207 | |
208 | Folgende Parameter sind möglich: | ||
209 | |||
210 | |=Parametername|=Beschreibung|=Erforderlich | ||
211 | |mandantName| Muss dem Namen des Mandanten entsprechen, unter welchen diese Datenquelle erstellt wurde.|Ja | ||
212 | |name| Muss dem Namen der CSV-Datenquelle entsprechen.|Ja |