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