Gruppering av felter
Hvordan gruppere felter i skjema.
På denne siden:
Oppsett
Felter i skjema kan settes opp til å bli del av en gruppe. Dette kan brukes til å f.eks. sette opp dynamikk på en enkelt gruppe av felter, i stedet for på hvert enkelt felt. I tillegg må felter kunnne grupperes for å støtte repeterende grupper i skjema.
En gruppe settes opp i FormLayout.json
, sammen med de andre komponentene i skjemaet. Noen punkter å notere seg:
- Gruppen må ligge før ev. komponenter som skal inngå i gruppen i FormLayout.json.
- En gruppe MÅ ha
type: "group"
satt for at den skal registreres som en gruppe
Eksempel på en (repeterende) gruppe definert i FormLayout.json
som inneholder 4 felter som kan repetere 3 ganger:
En gruppe defineres på følgende måte i FormLayout.json:
{
"id": "<unik-id>",
"type": "group",
"dataModelBindings": {
"group": "<gruppen i datamodellen (kun repeterende grupper)>"
},
"maxCount": <Antall ganger gruppen kan repetere>,
"children": [
"<felt-id>",
"<felt-id>",
...
],
tableHeadings: [
"<felt-id>
],
"textResourceBindings: {
add_button: "tekstressurs.felt"
}
}
Parameter | Påkrevd | Beskrivelse |
---|---|---|
id | Ja | Unik ID, tilsvarer ID på andre komponenter. Må være unik i FormLayout.json-filen. |
type | Ja | MÅ være “group”. Sier at dette er en gruppe. |
dataModelBindings | Nei | MÅ være satt for repeterende grupper, med group -parameteren som i eksempelet over. Skal peke på den repeterende gruppen i datamodellen. |
textResourceBindings | Nei | Kan være satt for repeterende grupper, med add_button -parameteren som i eksemepelt over. Denne bindingen til bli lagt til på knappen. |
maxCount | Ja | Antall ganger en gruppe kan repetere. Settes til 1 om gruppen ikke er repeterende. |
children | Ja | Liste over de feltene som skal inngå i gruppen. Her brukes felt-id fra FormLayout.json |
tableHeadings | Nei | Liste over komponentener som skal inngå som en del av tabbel header feltene. Om ikke spesifisert så vises alle komponentene. |
Repeterende grupper
Grupper i datamodellen inneholder ett eller flere felter. Grupper er definert som repeterende dersom de har maxOccurs > 1
i xsd’en.
En gruppe som er repeterende i datamodellen må også settes opp som repeterende i skjemaet, ellers vil lagring av data feile.
Eksempel
Skjema med noen enkelt-felt, og en repeterende gruppe som:
- inneholder 3 felter
- kan repeteres opp til 3 ganger
- har lagt til egen streng på “legg til” knappen

Skjema med repeterende gruppe
Oppsett i FormLayout.json
fra eksempelet over:
1{
2 "data": {
3 "layout": [
4 {
5 "id": "gruppe-1",
6 "type": "Group",
7 "children": [
8 "ac555386-ac2b-47a0-bb1b-842f8612eddb",
9 "5c079cd4-c80c-44ea-b8b8-18e323267a37"
10 ],
11 "maxCount": 3,
12 "dataModelBindings": {
13 "group": "spesifisering-grp-5836"
14 },
15 "textResourceBindings": {
16 "header": "person"
17 }
18 },
19 {
20 "id": "ac555386-ac2b-47a0-bb1b-842f8612eddb",
21 "type": "Checkboxes",
22 "componentType": 5,
23 "textResourceBindings": {
24 "title": "Avkrysningsboks"
25 },
26 "dataModelBindings": {
27 "simpleBinding": "klage-grp-5805.spesifisering-grp-5836.KlageSpesifisering-datadef-25457.value"
28 },
29 "options": [
30 {
31 "label": "25795.OppgavegiverNavnPreutfyltdatadef25795.Label",
32 "value": "Verdi1"
33 },
34 {
35 "label": "25796.OppgavegiverAdressePreutfyltdatadef25796.Label",
36 "value": "Verdi2"
37 }
38 ],
39 "required": true
40 },
41 {
42 "id": "5c079cd4-c80c-44ea-b8b8-18e323267a37",
43 "type": "AddressComponent",
44 "componentType": 11,
45 "textResourceBindings": {
46 "title": "Adresse"
47 },
48 "dataModelBindings": {
49 "address": "klage-grp-5805.spesifisering-grp-5836.KlageSpesifiseringg-datadef-12345.value"
50 },
51 "simplified": true,
52 "readOnly": false,
53 "required": true
54 }
55 ]
56 }
57}