Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Mit dem Fragetyp "Plug-In" lassen sich in Formularen Werte aus einem Datapool via Autocomplete-Feld auslesen. Die Daten des gewählten Datapool-Datensatzes können in beliebige Felder geschrieben werden.  

Die Konfiguration muss im Formular-Quellcode gemacht werden.

Feld vom Typ Plugin: 

Image Modified

Struktur der SQL-Abfrage

...

Abfrage

Beispiel

String
baseSQL

<param

name="SQL"

type="String"

value="&quot;SELECT

*

FROM

(SELECT

*

FROM

(SELECT

MAX(CASE

WHEN

'KEY'

=

'id'

THEN

value

END)

AS

'id',

MAX(CASE

WHEN

'KEY'

=

'category'

THEN

value

END)

AS

'category',

MAX(CASE

WHEN

'KEY'

=

'title_&quot;

+

XUI_LANGUAGE

+

&quot;'

THEN

value

END)

AS

'title_&quot;

+

XUI_LANGUAGE

+

&quot;',

MAX(CASE

WHEN

'KEY'

=

'place_&quot;

+

XUI_LANGUAGE

+

&quot;'

THEN

value

END)

AS

'place_&quot;

+

XUI_LANGUAGE

+

&quot;'

FROM

JAX_DATAPOOL

WHERE

(SOURCE_GUID

=

'3e66c961-0f42-48a0-9683-e44a96d831c2')

GROUP

BY

POS)

AS

MATRIX)

AS

MatrixSummary

WHERE

category

=

'SMPLAE_CAT'

${WHERE_APPEND}

order

by

title_&quot;

+

XUI_LANGUAGE

+

&quot;

asc

&quot;"/>

String
searchFunctionConf

<param type="String[]" value="id,category,title_${LANGUAGE},place_${LANGUAGE}"/>

String[]
displayFieldsConf

<param type="String[]" value="title_${LANGUAGE},place_${LANGUAGE}"/>

String[]
updateFieldsConf

<param type="String[]" value="id['xpath':'.';'valueCol':'id'],id['xpath':'f_id'],category['xpath':'.';'valueCol':'category'],category['xpath':'f_category'],id+title_${LANGUAGE}['xpath':'.';'valueCol':'title_${LANGUAGE}'],title_${LANGUAGE}['xpath':'f_title'],id+place_${LANGUAGE}['xpath':'.';'valueCol':'place_${LANGUAGE}'],place_${LANGUAGE}['xpath':'f_place'],"/>

String
seperator

<param type="String" value="&amp;nbsp;-&amp;nbsp;"/>

int
minLength

<param type="int" value="1"/>

boolean
isUseCache

<param type="boolean" value="true"/>

Struktur der SQL-Abfrage - Einsprachig

...

<param name="SQL" type="String" value="&quot;SELECT * FROM (SELECT * FROM (SELECT MAX(CASE WHEN 'KEY' = 'id' THEN value END) AS 'id', MAX(CASE WHEN 'KEY' = 'kategorie' THEN value END) AS 'kategorie', MAX(CASE WHEN 'KEY' = 'datum' THEN value END) AS 'datum', MAX(CASE WHEN 'KEY' = 'datum_technisch' THEN value END) AS 'datum_technisch', MAX(CASE WHEN 'KEY' = 'zeit' THEN value END) AS 'zeit', MAX(CASE WHEN 'KEY' = 'titel' THEN value END) AS 'titel', MAX(CASE WHEN 'KEY' = 'ort' THEN value END) AS 'ort', MAX(CASE WHEN 'KEY' = 'sprache' THEN value END) AS 'sprache', MAX(CASE WHEN 'KEY' = 'kurstag1' THEN value END) AS 'kurstag1', MAX(CASE WHEN 'KEY' = 'kurstag2' THEN value END) AS 'kurstag2' FROM JAX_DATAPOOL WHERE (SOURCE_GUID = '3e66c961-0f42-48a0-9683-e44a96d831c2') GROUP BY POS) AS MATRIX) AS MatrixSummary WHERE sprache = 'Deutsch' ${WHERE_APPEND} order by datum_technisch asc &quot;"/>

...

<param type="String[]" value="id,kategorie,datum,zeit,titel,ort,sprache,kurstag1,kurstag2"/>

...

<param type="String[]" value="datum,titel,ort"/>

...

<param type="String[]" value="id['xpath':'.';'valueCol':'id'],id['xpath':'f_id'],id+kategorie['xpath':'.';'valueCol':'kategorie'],kategorie['xpath':'f_kategorie'],id+datum['xpath':'.';'valueCol':'datum'],datum['xpath':'f_datum'],id+zeit['xpath':'.';'valueCol':'zeit'],zeit['xpath':'f_zeit'],id+titel['xpath':'.';'valueCol':'titel'],titel['xpath':'f_titel'],id+ort['xpath':'.';'valueCol':'ort'],ort['xpath':'f_ort'],id+sprache['xpath':'.';'valueCol':'sprache'],sprache['xpath':'f_sprache'],id+kurstag1['xpath':'.';'valueCol':'kurstag1'],kurstag1['xpath':'f_kurstag1'],id+kurstag2['xpath':'.';'valueCol':'kurstag2'],kurstag2['xpath':'f_kurstag2']"/>

...

<param type="String" value="&amp;nbsp;"/>

...

<param type="int" value="1"/>

...

<param type="boolean" value="true"/>

...

Source definieren (SOURCE_GUID)

Aktuelle Datenquelle aus dem Datapool: 

...

Nicht vergessen die korrekte GUID der Datenquelle einzutragen (GUID-DATENQUELLE).

Image Added

Ausgabe der Datapool-Daten im Formular: 

Als Beispiel ein Anmeldeformular, bei dem die ID des Kurses via Parameter (?kurs=DE202201) übermittelt wird: 

Image Modified

So lassen sich via Datapool auf einer Website Listen publizieren (Bestelllisten für Publikationen oder Veranstaltungslisten). Mit dem Einbinden des Datapools in ein Formular (Anmelde- oder Bestellformular) kann auf die gleichen Daten zurückgegriffen werden. Die Datenpflege passiert einzig im Datapool, es sind keine Anpassungen an den Formular nötig.

Datapool Abfrage in einer Tabelle

Sollen mehrere Datensätze aus einem Datapool ausgewählt werden können (zum Beispiel in einem Bestellformular), kann das Plugin-Feld in die Tabelle integriert werden. Als Zielfelder der Daten ("updateFieldsConf") jeweils die Spaltennummer der Tabelle angeben: "../c2"