MGAMA modulyje "Dokumentai " galima dirbti su sisteminėmis ir su papildomomis formomis.
Papildomos formos aprašomos meniu punkte: "Nustatymai" -> "Dokumentų formos":
Meniu punktą Dokumentų formos mato tik vartotojai, kuriems Rivile GAMA programoje priskirtas 9 lygis.
Apie naujos formos sukūrimą aprašyta: Naujos formos sukūrimas ir koregavimas.
Formuojamo šablono taisyklės:
<app></app>
Šablone išskiriamos trys šakos:
Formos atvaizdavimui informacija talpinama tarp žymų "form":
<form>...</form>
Formos sąrašų užpildymui informacija talpinama tarp žymų "data":
<data>...</data>
Formos saugojimo metu sudėtinių reikšmių generavimui informacija talpinama tarp žymų "on_save":
<on_save>...</on_save>
Pavyzdys:
<app>
<form>...</form>
<data>...</data>
<on_save>...</on_save>
</app>
Formos aprašymo principai:
Eilutėje negalima nurodyti daugiau nei dviejų elementų. Mobilioje versijoje bus atvaizduojama po vieną elementą eilutėje.
<app>
<form>
<caption>{{<!-- formos pavadinimas -->}}</caption>
<row>
<schema>...</schema>
<schema>...</schema>
</row>
<row>...</row>
<row>...</row>
</form>
...
</app>
Elementas | Aprašymas |
---|---|
text | laisvai vedamas tekstinis laukas. Galima apriboti leidžiamų vesti simbolių skaičių. |
textarea | laisvai vedamas tekstinis laukas, turintis savybę rows, nurodančią, kiek eilučių bus vizualiai matoma vartotojui. Galima apriboti leidžiamų vesti simbolių skaičių. |
number | skaitinis laukas. Galima nurodyti leidžiamų vesti simbolių po kablelio skaičių. Galima nurodyti didžiausią ir mažiausią leidžiamas reikšmes. |
select | sąrašinis laukas. |
checkbox | žymimasis kvadratinis laukelis. Vartotojui pažymėjus, laukelyje atsiranda varnelė. Lauko reikšmė yra true arba false. |
radio | grupė elementų atvaizduojamų kaip maži apskritimai ir vartotojui leidžiama pasirinkti tik vieną reikšmę iš grupės. |
date | įvedamas arba pasirenkamas iš kalendoriaus datos laukas. |
daterange | įvedamas arba pasirenkamas iš kalendoriaus datų intervalo laukas. |
label | vartotojui rodomas kaip informacinis laukas. Nekoreguojamas. |
Savybė | Aprašymas | Galimos reikšmės | Naudojama elementams |
---|---|---|---|
type (privalomas) | Elemento tipas | text, textarea, number, select, checkbox, radio, date, dateRange, label. | visiems |
id | Elemento id. Bus atiduodamas rezultate. | visiems | |
caption | Elemento pavadinimas - bus matomas vartotojui. | visiems | |
value | Elemento numatytoji reikšmė. | visiems | |
disabled | Jeigu reikšmė true, laukas formoje nebus koreguojamas. | true, false | visiems |
width | 1 - jei eilutėje elementas turi užimti visą ilgį.2 - jei eilutėje elementas turi užimti 50% ilgio. | 1,2 | visiems |
data | Duomenys reikalingi elementui. | select, radio | |
rows | Elemento aukštis - rodomų eilučių skaičius. | textarea | |
decimal | Galimų simbolių skaičius po kablelio. | number | |
required | Nurodžius reikšmę true nebus leidžiama išsaugoti formos, jei laukas neužpildytas | true, false | visiems |
min | Mažiausia galima reikšmė, kai type = number. Mažiausias leistinas simbolių skaičius, kai type = text arba textarea. Anksčiausia leistina data, kai type = date arba daterange. |
number, text, textarea, date, daterange | |
max | Didžiausia galima reikšmė, kai type = number. Didžiausias leistinas simbolių skaičius, kai type = text arba textarea. Vėliausia leistina data, kai type = date arba daterange. |
number, text, textarea, date, daterange |
Elementų savybė "data" gali būti aprašoma dviem būdais:
<data>context:app.data.vietoves</data>
naudojant raktažodį “sp” - kai elemento reikšmės bus generuojamos dinamiškai naudojant procedūrą. Aprašant reikia nurodyti procedūros pavadinimą, kuri generuos reikalingą sąrašą. Sintaksė - po raktažodžio dedamas dvitaškis ir nurodomas procedūros pavadinimas. Tarpai nenaudojami.
<data>sp:RGI_MGAMA_FORM_GET_SS_PAREIGOS</data>
Procedūros, kuri bus naudojama sąrašo generavimui pavadinimo pradžia būtinai “RGI_MGAMA_FORM_GET_”
. Procedūros rezultato elementai privalo turėti stulpelius - id ir name.
Formos sąrašų aprašymo principai:
<app>
...
<data>
<padaliniai>
<list>
<id>1</id>
<name>Administracija</name>
</list>
<list>
<id>2</id>
<name>IT skyrius</name>
</list>
</padaliniai>
</data>
</app>
Esant poreikiui formos išsaugojimo metu sugeneruoti sudėtines reikšmes, tai galima aprašyti šakoje tarp žymų "on_save".
Aprašymo principai:
<app>
...
<on_save>
<params>
<id>@k42_pav</id>
<value>(@k42_aprasymas1.value_name) (@k42_aprasymas3.value)</value>
</params>
</on_save>
</app>
Pavyzdyje pateiktas sisteminės formos "Prašymas dėl nuotolinio darbo " šablonas.
<app>
<form>
<!-- MGAMA_SS_F02 - Prašymas dėl nuotolinio darbo -->
<caption>{{<!-- form_caption -->}}</caption>
<row>
<schema>
<type>label</type>
<id>vardas_pavarde</id>
<caption_lt>Vardas Pavardė</caption_lt>
<caption_en>Full name</caption_en>
<width>2</width>
<value>{{<!-- vardas_pavarde -->}}</value>
</schema>
<schema>
<type>select</type>
<id>@pareigos</id>
<caption_lt>Pareigos</caption_lt>
<caption_en>Job position</caption_en>
<required>true</required>
<width>2</width>
<data>context:app.data.pareigos</data>
<value>{{<!-- pareigos_value -->}}</value>
<disabled>{{<!-- pareigos_disabled -->}}</disabled>
</schema>
</row>
<row>
<schema>
<type>radio</type>
<id>@k42_aprasymas1</id>
<caption_lt>Vietos tipas</caption_lt>
<caption_en>Location type</caption_en>
<required>{{<!-- case when isnull(K41_APRASYMAS1,'')+isnull(K41_APRASYMAS2,'')+isnull(K41_APRASYMAS3,'')+isnull(K41_APRASYMAS4,'')<>'' then 'true' else 'false' end -->}}</required>
<width>2</width>
<data>context:app.data.tipas</data>
</schema>
</row>
<row>
<schema>
<type>text</type>
<id>@k42_aprasymas2</id>
<caption_lt>Vietos pavadinimas / adresas</caption_lt>
<caption_en>Location name / address</caption_en>
<required>true</required>
</schema>
</row>
<row>
<schema>
<type>dateRange</type>
<id>@k42_aprasymas3</id>
<caption>Laikotarpis</caption>
<width>2</width>
<required>true</required>
<min>{{ left(convert(varchar(23),dateadd(day,3,getdate()),120),10) }}</min>
</schema>
</row>
<row>
<schema>
<type>number</type>
<id>@nuo_val</id>
<caption>Nuo (val.)</caption>
<width>2</width>
<required>true</required>
<min>0</min>
<max>23</max>
<value>8</value>
</schema>
<schema>
<type>number</type>
<id>@iki_val</id>
<caption>Iki (val.)</caption>
<width>2</width>
<required>true</required>
<min>0</min>
<max>23</max>
<value>17</value>
</schema>
</row>
<row>
<schema>
<type>textArea</type>
<id>@k42_aprasymas4</id>
<caption_lt>Priežastis</caption_lt>
<caption_en>Reason</caption_en>
<rows>5</rows>
<required>true</required>
</schema>
</row>
<row>
<schema>
<type>label</type>
<id>komentarai</id>
<caption_lt>Pastaba</caption_lt>
<caption_en>Note</caption_en>
<value>{{ rtrim(cast(K41_PASTABOS as varchar(max))) }}</value>
</schema>
</row>
</form>
<data>
<pareigos>
{{(<!--
select [id], [name] from #pareigos as [list] order by pri_data asc for xml auto,elements
-->)}}
</pareigos>
<tipas>
{{(<!-- select '<list><id>1</id><name>'+dbo.RGI_F_XML_ENCODE(rtrim(K41_APRASYMAS1))+'</name></list>' where isnull(K41_APRASYMAS1,'')<>'' -->)}}
{{(<!-- select '<list><id>2</id><name>'+dbo.RGI_F_XML_ENCODE(rtrim(K41_APRASYMAS2))+'</name></list>' where isnull(K41_APRASYMAS2,'')<>'' -->)}}
{{(<!-- select '<list><id>3</id><name>'+dbo.RGI_F_XML_ENCODE(rtrim(K41_APRASYMAS3))+'</name></list>' where isnull(K41_APRASYMAS3,'')<>'' -->)}}
{{(<!-- select '<list><id>4</id><name>'+dbo.RGI_F_XML_ENCODE(rtrim(K41_APRASYMAS4))+'</name></list>' where isnull(K41_APRASYMAS4,'')<>'' -->)}}
</tipas>
</data>
<on_save>
<params>
<id>@k42_pav</id>
<value>(@k42_aprasymas1.value_name) (@k42_aprasymas3.value) (@nuo_val.value):00-(@iki_val.value):00</value>
</params>
</on_save>
</app>