Formų panaudojimas informacijos koregavimui

MGAMA Dokumentai

Formos gali būtų naudojamos informacijos koregavimui.

Pagal nutylėjimą šis funkcionalumas neveikia – formos naudojamos tik naujos informacijos įvedimui.

Koregavimo formos turi:

  • Turėti koregavimo požymį (nurodomas formos xml’e: app -> form -> editable = 1)
  • Turi mokėti tiek veikti kaip nauja forma, tiek užsipildyti informaciją kai yra koreguojama (užsipildyti informaciją iš sukurto operacijos)
  • Turi mokėti išsaugoti pakoreguotą informaciją (jei priskirta, reikia papildyti išsaugojimo stored procedūrą) ir nustatyti kaip tai atliekama kuriant naują operaciją bei kaip elgiamasi su tvirtinimo būsenomis.

Formos su koregavimo funkcija XML pavyzdys:

<app>
    <form>
        <caption>{{<!-- form_caption -->}}</caption>
        <editable>1</editable>
        <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>{{<!-- case when actionType='edit' then (select top 1 [value_obj] from #result where [id]='@pareigos') else pareigos_value end -->}}</value>
                <disabled>{{<!-- case when actionType='edit' then 'true' else pareigos_disabled end -->}}</disabled>
            </schema>
        </row>
        ...
    </form>
    <data>
        <pareigos>
        {{(<!--
            select [id], [name] from #pareigos as [list] order by pri_data asc for xml auto,elements 
        -->)}}
        </pareigos>
    </data>
    <on_save>
        <config>
            <id>EDIT_MODE</id>
            <value>NEW</value>
        </config>
        <config>
            <id>BUSENA</id>
            <value>RESET</value>
        </config>
        <params>
            <id>@k42_aprasymas2</id>
            <value>(@pareigos.value)</value>
        </params>
        …
    </on_save>
</app>

Formos XML’e prieinama laikina lentelė #resul, kurioje yra visa informacija kuri buvo pateikta operacijos saugojimo metu:

Stulpelis Aprašymas
[id] Lauko id formoje
[value] Reikšmė arba reikšmės kodas
[value_name] Reikšmės pavadinimas
[value_obj] Reikšmės objektas, kuris naudojamas formoje kaip parenkama reikšmė
[type] Lauko tipas (select, radio ir pan.)
[caption] Lauko pavadinimas
[o] Lauko eilės numeris

Taip pat pasiekiami laukai iš procedūros parametrų, formos aprašymo bei DVS rūšies ir operacijos:

Stulpelis Aprašymas
[user] Vartotojo kodas, kuris pildo ar koreguoja informaciją
[form_id] Formos id
[form_caption] Formos pavadinimas
[actionType] Atliekamas veiksmas: “new” – naujas, “edit” - koreguojama
[vardas_pavarde] Vartotojo vardas iš personalo kortelės
[pareigos_value] Vartotojo pareigų kodas (pirmos iš eilės)
[pareigos_disabled] Jei vartotojo pareigos tik vienos, tuomet šis parametras yra “true”
K41_* Visi K41_RD lentelės laukai (DVS rūšys)
K42_* Visi K42_OD lentelės laukai (DVS operacijos)

Formos išsaugojimo režimas koregavimo metu (on_save -> config):

Parametras Aprašymas
DIT_MODE Koregavimo režimas: EDIT – koreguojamas esamas įrašas, NEW – kuriama nauja DVS operacija
BUSENA Ką daryti su operacijos būsena koregavimo metu: KEEP – palikti kaip yra, RESET – pradėti būsenos tvirtinimą iš naujo

forma_01

forma_02

forma_03