From version < 8.1 >
edited by nlo
on 09.05.2019, 16:58
To version < 14.3
edited by gru
on 05.05.2020, 12:42
<
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.nlo
1 +XWiki.gru
Content
... ... @@ -1,37 +1,94 @@
1 1  {{content/}}
2 2  
3 3  {{id name="fig_data_source"/}}
4 -{{figure image="data_source_en.png" }}
5 -Configuration screen for creating data sources: (1) list of existing data sources, (2) area for editing the selected data source, (3) settings panel of the data source, (4) servlet URL for accessing the data source.
6 -{{/figure}}
4 +{{figure image="data_source_en.png"}}Configuration screen for creating data sources: (1) list of existing data sources, (2) area for editing the selected data source, (3) settings panel of the data source, (4) servlet URL for accessing the data source.{{/figure}}
7 7  
8 8  The sources or rather data sources are lodged as text in the format CSV, JSON or XML and can be worked up through the {{designer/}}/the form.
9 -To have an access to data sources in the script area via javascript too, all data sources are converted into a JSON structure and customized in the object {{code}}XFC_METADATA.urls.datasource_[csv|json|xml]{{/code}}. The structure of this JSON structure for the different data sources is expounded in the respective section.
7 +To have an access to data sources in the script area via javascript too, all data sources are converted into a JSON structure and customized in the object {{code language="none"}}XFC_METADATA.urls.datasource_[csv|json|xml]{{/code}}. The structure of this JSON structure for the different data sources is expounded in the respective section.
10 10  
11 -== CSV ==
9 +{{info}}
10 +**Servlet URL**
11 +The servlet URL of a data source will be displayed on the configuration screen (see point 4 in [[figure>>||anchor="fig_data_source"]]) and is provided in the JS object {{code language="none"}}XFC_METADATA.urls.datasource_[csv|json|xml]{{/code}}.
12 +{{/info}}
12 12  
13 -Here you can insert data sets in the CSV format.
14 +== Creating a data source ==
14 14  
15 -* Choose the option //CSV// under //type//.
16 -* Assign an explicit name.
17 -* Insert the data sperated with a comma in the arrey //value//.
16 +Open the module "Data > Sources" and click the button "New" {{ficon name="plus-circle-outline"/}} in the header of the list (see point 1 in [[figure>>||anchor="fig_data_source"]]). After that you will be prompted to either create an empty data source or import one from a file. Three types of data sources can be created: //XML//, //CSV// und //JSON//.
18 18  
19 -{{figure image="datenquelle_csv_8.png" width="300"}}
20 -The JSON structure of the CSV data source. To this JSON structure can only be accessed via {{code}}XFC_METADATA.urls.datasource_[csv|json|xml]{{/code}}.
18 +{{lightbox image="data_source_new_en.png" title="Data sources can be imported or created from scratch."/}}
19 +
20 +Every data source needs:
21 +
22 +* a unique name (in the settings panel: see point 3 in [[figure>>||anchor="fig_data_source"]])
23 +* the actual data in the editing area (see point 2 in [[figure>>||anchor="fig_data_source"]])
24 +
25 +=== Import of data sources from files ===
26 +
27 +The following Data types can be used to import data sources:
28 +
29 +* **XML**: //.xml//
30 +* **CSV**: //.csv//, //.xls//, //.xlsx// (Excel)
31 +* **JSON**: //.json//
32 +
33 +{{id name="data_source_import_csv"/}}
34 +__CSV data sources__
35 +
36 +CSV data sources can be imported from different file types:
37 +
38 +* //.csv//
39 +Opens up a dialog for configuring the import:
40 +** **Delimiter**: Determines which symbol is used in the file for separating data fields/ colunms (typically: comma).
41 +** **Text qualifier**: Determines the text qualifier. This symbol is used to support special characters inside data fields (e.g. comma in numbers with decimal places).
42 +** **Start at line**: Determines where to start importing the data source from.
43 +** **Ignore empty lines**: When activated ignores empty lines during import.
44 +
45 +{{lightbox image="data_source_import_csv_en.png" title="Import dialog for CSV files"/}}
46 +
47 +* //.xls//, //.xlsx//
48 +Opens up a dialog for configuring the import:
49 +** **Sheets to import**: Determines which worksheets/tables should be imported from the file.
50 +
51 +{{lightbox image="data_source_import_excel_en.png" title="Importdialog für Excel-Dateien"/}}
52 +
53 +__Drag&Drop__
54 +
55 +Data sources can be imported by Drag&Drop as well. If a file is being dropped over the list (green area) than a new data source of the corresponding type will be created (for Excel files: one data source per worksheet will be created). If a file is being dropped over an existing data source than it will be updated. Changes will only take effect after the "Save" {{icon name="save"/}} button is clicked.
56 +
57 +== CSV ==
58 +
59 +{{figure image="data_source_csv_servlet_json_comparison.png"}}
60 +The JSON structure of a CSV data source. This JSON structure can be accessed through JavaScript via {{code language="none"}}XFC_METADATA.urls.datasource_csv{{/code}}. (1) On the left there is the JSON structure of the data source with out using the first row as a header. Instead the headers are of the form: {{code language="none"}}colX{{/code}}. (2) On the right there is the data source where the first row is being used as the header.
21 21  {{/figure}}
22 22  
23 -=== Example for a CSV data source ===
63 +CSV data sources can be viewed in a source code view or in a table view. The view can be switched by clicking the appropriate button {{ficon name="table-large"/}}/{{icon name="code"/}} beneath the editing area.
24 24  
25 -{{info}}
26 -The CSV data are converted to a JSON object internally, so that the first line of the //CSV data// always defines the object names for the later access.
27 -{{/info}}
65 +//Source code view of a CSV data source//: ([[CSV file format>>https://en.wikipedia.org/wiki/Comma-separated_values||target="_blank"]])
66 +{{lightbox image="data_source_csv_source.png" title="Source code view of a CSV data source"/}}
67 +//Table view of a CSV data source//:
68 +{{lightbox image="data_source_csv_table.png" title="Table view of a CSV data source"/}}
28 28  
29 -{{code}}
30 -Value 1.1, value 1.2, value 1.3, value 1.4, ...
31 -{{/code}}
70 +=== Editing CSV tables ===
32 32  
33 -The readout of the values in the {{designer/}} ensues through the //servlet// with the namen //datenquellecsv//.
72 +There is a row of buttons beneath the editing area for editing the CSV data table:
34 34  
74 +* {{ficon name="plus-circle"/}} **Insert**: Inserts new rows or columns relative to the selected cell.
75 +* {{ficon name="trash-alt2"/}} **Remove**: Removes the selected row(s) or column(s) or empties the selected cell.
76 +* {{icon name="upload"/}} **Import**: Opens up the [[dialog for importing CSV data sources>>||anchor="data_source_import_csv"]].
77 +* {{icon name="code"/}} **Source code view**: Switches to source code view.
78 +
79 +=== Header of CSV data sources ===
80 +
81 +There is an additional option for CSV data sources in the data source settings. The option **First row is header** determines how the values of the data sources are being accessed via its servlet ({{code language="none"}}XFC_METADATA.urls.datasource_csv{{/code}}):
82 +
83 +* **Activated**:
84 +The cells of the first row will be used as {{code language="none"}}keys{{/code}} for accessing the values of the respective columns (see [[example>>||anchor="data_source_csv_example"]]).
85 +* **Deactivated**:
86 +The {{code language="none"}}keys{{/code}} for accessing the values of individual data fields/ rows are enumerated, starting with {{code language="none"}}0{{/code}}. These keys have the following form: {{code language="none"}}colX{{/code}} where {{code language="none"}}X{{/code}} stands for the column index.
87 +
88 +{{lightbox image="data_source_csv_settings_en.png" title="The option **first row is header** determines how the values of CSV data sources are accessed with its servlet"/}}
89 +
90 +CSV data sources can be accessed in the {{designer case="dat"/}} via its servlet: {{code language="none"}}XFC_METADATA.urls.datasource_csv{{/code}}.
91 +
35 35  === Servlet parameters ===
36 36  
37 37  {{info}}
... ... @@ -39,56 +39,54 @@
39 39  http(s):~/~/<server>/formcycle/datenquellecsv?mandantName=<Mandant-Name>&name=<Datenquellen-Name>
40 40  {{/info}}
41 41  
42 -At an access of the {{designer/}} always use the global variables object //XFC_METADATA//, see also [[global designer variables>>doc:Formcycle.FormDesigner.CodingPanel.ScriptTab.FormMetadata]]. For example it can be accessed as follows: {{code}}XFC_METADATA.urls.datasource_csv{{/code}}.
99 +Bei Zugriff aus dem {{designer case="dat"/}} verwenden Sie immer das globale Variablen-Objekt //XFC_METADATA//, siehe hierzu auch [[Globale Designer Variablen>>https://jsdocs.formcycle.eu/jsdocs/de/modules/_formcycle_v6_de_d_.html#xfc_metadata||target="_blank"]]. Beispielsweise kann wie folgt darauf zugegriffen werden: {{code language="none"}}XFC_METADATA.urls.datasource_csv{{/code}}.
43 43  
101 +Always use the global variables object {{code language="none"}}XFC_METADATA{{/code}} when accessing data sources from the {{designer/}}, see also [[global designer variables>>doc:Formcycle.FormDesigner.CodingPanel.ScriptTab.FormMetadata]]. The servlet URK can be accessed as follows: {{code language="none"}}XFC_METADATA.urls.datasource_csv{{/code}}.
102 +
44 44  The following parameters are possible:
45 45  
46 46  |=name of the parameter|=description|=necessary
47 47  |name|Must match the name of the CSV data source.|Yes
48 48  |mandantName|Must match the name of the client under which the data source was created.|Yes, if //projektId// is not given.
49 -|projektId|Must match the ID of the form. These information can be recalled via {{code}}XFC_METADATA.currentProject.id{{/code}}.|Yes, if //mandantName// is not given.
108 +|projektId|Must match the ID of the form. These information can be recalled via {{code language="none"}}XFC_METADATA.currentProject.id{{/code}}.|Yes, if //mandantName// is not given.
50 50  |kopfzeile|Indicates a comma seperated list with column name of the CSV table. If this is not given, the first line of the CSV is used.|No
51 51  |spaltenNamen|Indicates a comma seperated list of the column, which columns are redelivered of the //servlet// with the corresponding value. At this, according to using, the names of the columns of the parameter //headline// or the name of the first line of the //CSV// databaseHierbei are expected.|No
52 -|csvTrennzeichen|Indicates the seperator between the single data cells. If this is not set, a comma {{code}},{{/code}} is used by default.|No
53 -|csvQuote|The seperator with which the values of the lines are seperated. If this is not set, a inverted comma {{code}}"{{/code}} is used by default.| No
111 +|csvTrennzeichen|Indicates the seperator between the single data cells. If this is not set, a comma {{code language="none"}},{{/code}} is used by default.|No
112 +|csvQuote|The seperator with which the values of the lines are seperated. If this is not set, a inverted comma {{code language="none"}}"{{/code}} is used by default.| No
54 54  
55 55  === Application example ===
56 56  
57 -{{figure image="087En.png" width="300"}}
58 -An example of how a CSV datasource can look. The columns are seperated through commas.
59 -{{/figure}}
116 +A CSV data source with the option activated: **First row is header**. It has the following content:
60 60  
61 61  {{code language="csv"}}
62 -title,first name,last name,plz,location
119 +title,firstName,lastName,zip,city
63 63  Herr,Max,Mustermann,1000,Musterhausen
64 64  Frau,Monika,Mustermann,2000,Musterdorf
65 65  Frau, Luise,Musterfrau,3000,Musterstadt
123 +
66 66  {{/code}}
67 67  
126 +In the {{designer/}} the following script is used in the [[script area>>doc:Formcycle.FormDesigner.CodingPanel.ScriptTab.WebHome]] for pre-filling form fields:
68 68  
69 -
70 -
71 -In the {{designer/}} the following script is used in the [[script area>>doc:Formcycle.FormDesigner.CodingPanel.ScriptTab.WebHome]].
72 -
73 73  {{code language="javascript"}}
74 74  $.getJSON( XFC_METADATA.urls.datasource_csv + "?name=Demo&mandantName=xima.de", function(json) {
75 - var obj = json.returnValue[0]
130 + var obj = json.returnValue[0];
76 76  
77 - $('[name=tfAnrede]').val(obj.anrede)
78 - $('[name=tfVorname]').val(obj.vorname)
79 - $('[name=tfName]').val(obj.nachname)
80 - $('[name=tfPLZ]').val(obj.plz)
81 - $('[name=tfOrt]').val(obj.ort)
82 - })
132 + $('[name=tfTitle]').val(obj.title);
133 + $('[name=tfFirstName]').val(obj.firstName);
134 + $('[name=tfLastName]').val(obj.lastName);
135 + $('[name=tfZIP]').val(obj.zip);
136 + $('[name=tfCity]').val(obj.city);
137 + });
83 83  {{/code}}
84 84  
85 -{{figure image="088En.png" width="300"/}}
140 +{{lightbox image="data_source_csv_designer_script_en.png"/}}
86 86  
87 -This example as a data source for the {{designer/}} [[for downloading>>attach:beispiel_datenquelle_csv.json||rel="__blank"]].
142 +This form example is provided as a [[download>>attach:CSV-Demo_en.json||rel="__blank"]].
88 88  
89 89  === Exeption selection element ===
90 90  
91 -{{figure image="data_source_csv_designer_de.png"}}
146 +{{figure image="data_source_csv_designer_en.png"}}
92 92  The connection of a data source to a selection element takes place directly in the {{designer/}}
93 93  {{/figure}}
94 94  
... ... @@ -96,24 +96,28 @@
96 96  
97 97  The content of the CSV data source is processed in a [[selection element>>doc:Formcycle.FormDesigner.FormElements.Selection]].
98 98  
99 -{{code}}
100 -visible value, assigned value, optional value, optional valuesichtbarer wert, ...
154 +{{code language="none"}}
155 +visible value, assigned value, optional value, optional value, ...
101 101  {{/code}}
102 102  
103 -If more than the visible and the assigned value are indicated, so optional values, the can be invoked in JavaScript through the following jQuery selector.
158 +Columns of the data source are use as follows for [[selection elements>>doc:Formcycle.FormDesigner.FormElements.Selection]]:
159 +{{code language="none"}}col + column index{{/code}}.
104 104  
161 +If a data source has more than two columns than it contains optional values. These optional values can be accessed with JavaScript via the following jQuery selector:
162 +
105 105  {{code language="javascript"}}
106 -$('[name=sel2]').find('option:selected').attr('col0');
164 +$('[name=sel2]').find('option:selected').attr('col2');
107 107  {{/code}}
108 108  
109 -Every optional value is stored to the selection element as attribute {{code}}col + index of the optional value{{/code}}. At e.g. three optional values, there would be //col0//, //col1// and //col2//.
167 +Optinal values start at column index 2.
168 +If the first row is marked as a header than it will be ignored for selection elements.
110 110  
111 111  == XML ==
112 112  
113 113  The XML data source acts analogously to the //CSV// data source, but cannot be bound to a [[selection element>>doc:Formcycle.FormDesigner.FormElements.Selection]].
114 114  
115 -{{figure image="datenquelle_xml.png" width="300"}}
116 -The JSON structure of the XML data source. To this JSON structure can than be accessed to {{code}}XFC_METADATA.urls.datasource_[csv|json|xml]{{/code}} via Javascript.
174 +{{figure image="data_source_xml_servlet_json.png" width="300"}}
175 +The JSON structure of the XML data source. To this JSON structure can than be accessed to {{code language="none"}}XFC_METADATA.urls.datasource_xml{{/code}} via Javascript.
117 117  {{/figure}}
118 118  
119 119  === Example for an XML data source ===
... ... @@ -165,8 +165,8 @@
165 165  
166 166  The //JSON// data source acts analogously to the //CSV// data source, but cannot be bound to a [[selection element>>doc:Formcycle.FormDesigner.FormElements.Selection]] directly.
167 167  
168 -{{figure image="datenquelle_json.png" width="300"}}
169 -The JSON structure of the JSON data source. It is identically equal to the JSON data source. This JSON structure can be accessed via Javascript through {{code}}XFC_METADATA.urls.datasource_[csv|json|xml]{{/code}}.
227 +{{figure image="data_source_json_servlet_json.png"}}
228 +The JSON structure of the JSON data source. It is identically equal to the JSON data source. This JSON structure can be accessed via Javascript through {{code language="none"}}XFC_METADATA.urls.datasource_json{{/code}}.
170 170  {{/figure}}
171 171  
172 172  === Example for a JSON data source ===
... ... @@ -173,16 +173,16 @@
173 173  
174 174  {{code language="json"}}
175 175  {"person":[
176 - {
177 - 'anrede':'Herr',
178 - 'vorname':'Max',
179 - 'nachname':'Mustermann'
180 - },
181 - {
182 - 'anrede':'Frau',
183 - 'vorname':'Monika',
184 - 'nachname':'Musterfrau'
185 - }
235 + {
236 + "anrede":"Herr",
237 + "vorname":"Max",
238 + "nachname":"Mustermann"
239 + },
240 + {
241 + "anrede":"Frau",
242 + "vorname":"Monika",
243 + "nachname":"Musterfrau"
244 + }
186 186  ]}
187 187  {{/code}}
188 188  
Copyright 2000-2024