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 | |||
![]() |
15.1 | 18 | Folgende Dateitypen können verwendet werden, um Datenquellen zu importieren: |
![]() |
14.2 | 19 | |
![]() |
15.1 | 20 | * **XML**: //.xml// |
21 | * **CSV**: //.csv//, //.xls//, //.xlsx// | ||
22 | * **JSON**: //.json// | ||
![]() |
14.2 | 23 | |
![]() |
1.1 | 24 | == CSV == |
25 | |||
26 | Hier können Sie Datensätze im CSV-Format eingeben. | ||
27 | |||
28 | * Wählen Sie unter //Typ// die Option //CSV//. | ||
29 | * Vergeben Sie einen eindeutigen Namen. | ||
30 | * Im Feld //Wert// geben Sie die Daten separiert mit einem Komma ein. | ||
31 | |||
![]() |
7.1 | 32 | {{figure image="datenquelle_csv_8.png"}} |
![]() |
1.1 | 33 | 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. |
34 | {{/figure}} | ||
35 | |||
36 | === Beispiel für eine CSV-Datenquelle === | ||
37 | |||
38 | {{info}} | ||
39 | 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. | ||
40 | {{/info}} | ||
41 | |||
42 | {{code}} | ||
43 | Wert 1.1, Wert 1.2, Wert 1.3, Wert 1.4, ... | ||
44 | {{/code}} | ||
45 | |||
46 | Das Auslesen der Werte im {{designer case="dat"/}} erfolgt über das //Servlet// mit Namen //datenquellecsv//. | ||
47 | |||
48 | === Servlet-Parameter === | ||
49 | |||
50 | {{info}} | ||
51 | **Servlet-URL** | ||
52 | http(s):~/~/<server>/formcycle/datenquellecsv?mandantName=<Mandant-Name>&name=<Datenquellen-Name> | ||
53 | {{/info}} | ||
54 | |||
![]() |
1.3 | 55 | 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 | 56 | |
57 | Folgende Parameter sind möglich: | ||
58 | |||
59 | |=Parametername|=Beschreibung|=Erforderlich | ||
60 | |name|Muss dem Namen der CSV-Datenquelle entsprechen.|Ja | ||
61 | |mandantName|Muss dem Namen des Mandanten entsprechen, unter welchen diese Datenquelle erstellt wurde.|Ja, wenn //projektId// nicht gegeben. | ||
62 | |projektId|Muss der ID des Formulars entsprechen. Diese Information kann über {{code}}XFC_METADATA.currentProject.id{{/code}} abgerufen werden.|Ja, wenn //mandantName// nicht gegeben. | ||
63 | |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 | ||
64 | |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 | ||
65 | |csvTrennzeichen|Gibt das Trennzeichen zwischen den einzelnen Datenzellen an. Wird dieses nicht gesetzt, wird hier standardmäßig ein Komma {{code}},{{/code}} benutzt.|Nein | ||
66 | |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 | ||
67 | |||
68 | === Anwendungsbeispiel === | ||
69 | |||
70 | {{figure image="datenquelle_csv_7.png" width="300"}} | ||
71 | Ein Beispiel dafür, wie eine CSV-Datenquelle aussehen kann. Die Spalten werden durch Kommas getrennt. | ||
72 | {{/figure}} | ||
73 | |||
74 | {{code language="csv"}} | ||
75 | anrede,vorname,nachname,plz,ort | ||
76 | Herr,Max,Mustermann,1000,Musterhausen | ||
77 | Frau,Monika,Mustermann,2000,Musterdorf | ||
78 | Frau, Luise,Musterfrau,3000,Musterstadt | ||
79 | |||
80 | {{/code}} | ||
81 | |||
82 | |||
83 | |||
84 | |||
![]() |
1.3 | 85 | Im {{designer case="dat"/}} wird dann folgendes Skript im [[Skriptbereich>>doc:Main.TAB - Script]] verwendet. |
![]() |
1.1 | 86 | |
87 | {{code language="javascript"}} | ||
88 | $.getJSON( XFC_METADATA.urls.datasource_csv + "?name=Demo&mandantName=xima.de", function(json) { | ||
89 | var obj = json.returnValue[0] | ||
90 | |||
91 | $('[name=tfAnrede]').val(obj.anrede) | ||
92 | $('[name=tfVorname]').val(obj.vorname) | ||
93 | $('[name=tfName]').val(obj.nachname) | ||
94 | $('[name=tfPLZ]').val(obj.plz) | ||
95 | $('[name=tfOrt]').val(obj.ort) | ||
96 | }) | ||
97 | {{/code}} | ||
98 | |||
99 | {{lightbox image="datenquelle_csv_4.png" width="300"/}} | ||
100 | |||
101 | Dieses Beispiel als Datenquelle für den {{designer case="acc"/}} [[zum Herunterladen>>attach:beispiel_datenquelle_csv.json||rel="__blank"]]. | ||
102 | |||
103 | === Sonderfall Auswahlelement === | ||
104 | |||
![]() |
4.1 | 105 | {{figure image="data_source_csv_designer_de.png"}} |
![]() |
1.1 | 106 | Die Anbindung einer Datenquelle an eine Auswahlelement erfolgt direkt im {{designer case="dat"/}} |
107 | {{/figure}} | ||
108 | |||
![]() |
1.3 | 109 | 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 | 110 | |
![]() |
1.3 | 111 | Der Inhalt der CSV-Datenquelle wird folgendermaßen in einem [[Auswahlelement>>doc:Main.Auswahl]] verarbeitet. |
![]() |
1.1 | 112 | |
113 | {{code}} | ||
114 | sichtbarer wert, übertragener, wert, optionaler wert, optionaler wert, ... | ||
115 | {{/code}} | ||
116 | |||
117 | 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. | ||
118 | |||
119 | {{code language="javascript"}} | ||
120 | $('[name=sel2]').find('option:selected').attr('col0'); | ||
121 | {{/code}} | ||
122 | |||
123 | 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. | ||
124 | |||
125 | == XML == | ||
126 | |||
![]() |
1.3 | 127 | Die XML Datenquelle verhält sich analog zur //CSV//-Datenquelle, kann jedoch nicht direkt an ein [[Auswahlelement>>doc:Main.Auswahl]] gebunden werden. |
![]() |
1.1 | 128 | |
129 | {{figure image="datenquelle_xml.png" width="300"}} | ||
130 | 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. | ||
131 | {{/figure}} | ||
132 | |||
133 | === Beispiel für eine XML-Datenquelle === | ||
134 | |||
135 | {{code language="xml"}} | ||
136 | <root> | ||
137 | <person> | ||
138 | <anrede> | ||
139 | Herr | ||
140 | </anrede> | ||
141 | <vorname> | ||
142 | Max | ||
143 | </vorname> | ||
144 | <nachname> | ||
145 | Mustermann | ||
146 | </nachname> | ||
147 | </person> | ||
148 | <person> | ||
149 | <anrede> | ||
150 | Frau | ||
151 | </anrede> | ||
152 | <vorname> | ||
153 | Monika | ||
154 | </vorname> | ||
155 | <nachname> | ||
156 | Musterfrau | ||
157 | </nachname> | ||
158 | </person> | ||
159 | </root> | ||
160 | {{/code}} | ||
161 | |||
162 | |||
163 | === Servlet-Parameter === | ||
164 | |||
165 | {{info}} | ||
166 | **Servlet-URL** | ||
167 | http(s):~/~/<server>/formcycle/datenquellexml?mandantName=<Mandant-Name>&name=<Datenquellen-Name> | ||
168 | {{/info}} | ||
169 | |||
![]() |
1.3 | 170 | 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 | 171 | |
172 | Folgende Parameter sind möglich: | ||
173 | |||
174 | |=Parametername|=Beschreibung|=Erforderlich | ||
175 | |mandantName|Muss dem Namen des Mandanten entsprechen, unter welchem diese Datenquelle erstellt wurde.|Ja | ||
176 | |name|Muss dem Namen der CSV-Datenquelle entsprechen.|Ja | ||
177 | |||
178 | == JSON == | ||
179 | |||
![]() |
1.3 | 180 | Die //JSON//-Datenquelle verhält sich analog zur //CSV//-Datenquelle, kann jedoch nicht direkt an ein [[Auswahlelement>>doc:Main.Auswahl]] gebunden werden. |
![]() |
1.1 | 181 | |
182 | {{figure image="datenquelle_json.png" width="300"}} | ||
183 | 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. | ||
184 | {{/figure}} | ||
185 | |||
186 | === Beispiel für eine JSON-Datenquelle === | ||
187 | |||
188 | {{code language="json"}} | ||
189 | {"person":[ | ||
190 | { | ||
191 | 'anrede':'Herr', | ||
192 | 'vorname':'Max', | ||
193 | 'nachname':'Mustermann' | ||
194 | }, | ||
195 | { | ||
196 | 'anrede':'Frau', | ||
197 | 'vorname':'Monika', | ||
198 | 'nachname':'Musterfrau' | ||
199 | } | ||
200 | ]} | ||
201 | {{/code}} | ||
202 | |||
203 | === Servlet-Parameter === | ||
204 | |||
205 | {{info}} | ||
206 | **Servlet-URL** | ||
207 | http(s):~/~/<server>/formcycle/datenquellejson?mandantName=<Mandant-Name>&name=<Datenquellen-Name> | ||
208 | {{/info}} | ||
209 | |||
![]() |
1.3 | 210 | 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 | 211 | |
212 | Folgende Parameter sind möglich: | ||
213 | |||
214 | |=Parametername|=Beschreibung|=Erforderlich | ||
215 | |mandantName| Muss dem Namen des Mandanten entsprechen, unter welchen diese Datenquelle erstellt wurde.|Ja | ||
216 | |name| Muss dem Namen der CSV-Datenquelle entsprechen.|Ja |