Funkce Doplnění dodatečných údajů slouží k hromadnému doplnění nebo změně hodnot dodatečných údajů u vybraných záznamů kusové zásoby.
Uživatel zadá požadované hodnoty v dialogu funkce a systém následně tyto hodnoty aplikuje na všechny vybrané záznamy.
Funkce umožňuje také určit, zda mají prázdné a nulové hodnoty přepsat hodnoty, které jsou již v jednotlivých záznamech uloženy.
Funkci lze spustit pouze v případě, že je vybrán alespoň jeden záznam kusové zásoby.
Pokud není vybrán žádný záznam, systém zobrazí chybové hlášení:
<blockquote>
Nebyly vybrány žádné záznamy.
</blockquote>
Funkce je navržena jako hromadná, proto se při jejím spuštění nepřebírají hodnoty ze záznamu, na kterém je aktuálně nastaven focus.
Místo toho je vždy vytvořen nový prázdný objekt CDodatecneUdaje, který slouží jako zdrojový objekt pro hodnoty zadané uživatelem.
Po spuštění funkce se zobrazí dialog Doplnění dodatečných údajů.
Dialog obsahuje systémem předdefinované atributy a umožňuje uživateli do pohledu přidat také další atributy.
Hodnoty zadané v dialogu jsou následně použity jako zdroj hodnot pro všechny vybrané záznamy.
Uživatel vybere 20 kusů zásoby a spustí funkci.
V dialogu zadá například:
| Atribut | Hodnota |
|---|---|
| Výrobce | ACME |
| Číslo výrobce | 12345 |
| Poznámka | Kontrola provedena |
| Počet kusů | 10 |
Po potvrzení dialogu budou tyto hodnoty podle pravidel funkce aplikovány na vybraných 20 záznamů.
Systém automaticky zjišťuje atributy, které jsou v dialogu skutečně dostupné v aktuálním pohledu.
Zpracovány jsou atributy podporovaných komponent:
Ostatní typy komponent nejsou touto funkcí podporovány, například:
Do zpracování jsou zahrnuty pouze atributy, které mají definovaný bindingName.
Atributy patřící do skupiny dotahovanaData jsou ze zpracování automaticky vyloučeny.
Dodatečné údaje jsou uloženy v objektu CDodatecneUdaje, který je navázán na záznam CKusZasoba.
U starších záznamů nemusí být tato vazba vytvořena. Pokud systém při zpracování zjistí, že záznam kusové zásoby nemá objekt dodatečných údajů vytvořen, automaticky jej založí.
Současně jsou nastaveny systémové vazební údaje:
typZ = TLS,typZIdpk = IDPK záznamu kusové zásoby.Uživatel tyto hodnoty v rámci této funkce nezadává.
Pro každý vybraný záznam systém postupně zpracuje všechny atributy, které byly zjištěny v aktuálním pohledu.
Hodnota se získá ze zdrojového objektu vytvořeného při spuštění funkce a následně se zapíše do odpovídajícího atributu cílového záznamu.
Rozhodující je nastavení checkboxu:
„Vynulovat nevyplněné atributy“
Checkbox je ve výchozím stavu nezaškrtnutý.
Jeho význam je následující:
Prázdné nebo nulové hodnoty se nepřenášejí do cílového záznamu.
Pokud je tedy cílový atribut již vyplněn, zůstane jeho původní hodnota zachována.
Za nevyplněnou hodnotu jsou v aktuální implementaci považovány:
BigDecimal = 0,Integer = 0,Short = 0,Character,String.Cílový záznam obsahuje:
| Atribut | Původní hodnota |
|---|---|
| Výrobce | ACME |
| Číslo výrobce | 12345 |
| Poznámka | Kontrola provedena |
Uživatel v dialogu zadá:
| Atribut | Nová hodnota |
|---|---|
| Výrobce | ABC |
| Číslo výrobce | 0 |
| Poznámka | prázdná hodnota |
Checkbox není zaškrtnutý.
Výsledek:
| Atribut | Výsledná hodnota |
|---|---|
| Výrobce | ABC |
| Číslo výrobce | 12345 |
| Poznámka | Kontrola provedena |
Hodnota výrobce se přepíše, protože obsahuje hodnotu ABC.
Číslo výrobce zůstane 12345, protože zadaná hodnota 0 je při tomto nastavení ignorována.
Poznámka zůstane Kontrola provedena, protože prázdná hodnota nepřepisuje již existující hodnotu.
Pokud uživatel zaškrtne „Vynulovat nevyplněné atributy“, systém nebude prázdné a nulové hodnoty ignorovat.
Hodnoty zadané ve zdrojovém objektu se zapíší do cílového záznamu včetně hodnot reprezentujících prázdný nebo nulový údaj.
Výchozí stav záznamu:
| Atribut | Původní hodnota |
|---|---|
| Výrobce | ACME |
| Číslo výrobce | 12345 |
| Poznámka | Kontrola provedena |
Uživatel zadá:
| Atribut | Nová hodnota |
|---|---|
| Výrobce | ABC |
| Číslo výrobce | 0 |
| Poznámka | prázdná hodnota |
Checkbox je zaškrtnutý.
Výsledek:
| Atribut | Výsledná hodnota |
|---|---|
| Výrobce | ABC |
| Číslo výrobce | 0 |
| Poznámka | prázdná hodnota |
V tomto režimu tedy může funkce sloužit také k vynulování nebo vyprázdnění již existujících hodnot.
Funkce zpracovává pouze atributy, které jsou součástí aktuálního pohledu a které systém rozpozná jako podporované atributy.
Atributy, které v pohledu nejsou, nejsou funkcí měněny.
Záznam obsahuje:
| Atribut | Původní hodnota |
|---|---|
| Výrobce | ACME |
| Číslo výrobce | 12345 |
| Poznámka | Kontrola |
| Revize | 5 |
V pohledu jsou pouze:
Atribut Revize se do zpracování nezařadí a jeho hodnota 5 zůstane beze změny.
Pokud uživatel vybere více než jeden záznam, systém před zahájením samotného zpracování zobrazí potvrzovací dialog.
Dialog informuje uživatele o počtu záznamů, které budou změněny.
Uživatel vybere 35 záznamů.
Po potvrzení dialogu s údaji se zobrazí upozornění:
<blockquote>
Bude změněno 35 záznamů. Chcete pokračovat?
</blockquote>
Pokud uživatel změnu nepotvrdí, žádný záznam se nezmění.
Pokud změnu potvrdí, systém začne postupně zpracovávat všech 35 vybraných záznamů.
U jediného vybraného záznamu se tento potvrzovací dialog nezobrazuje.
Uživatel chce u 100 kusů zásoby nastavit výrobce a případně odstranit starou hodnotu čísla výrobce.
V pohledu má k dispozici:
Uživatel zadá:
ACME,0,Výsledek:
ACME,Tento režim je vhodný v případě, kdy chce uživatel změnit pouze vyplněné hodnoty a ostatní existující údaje zachovat.
Uživatel zadá stejné hodnoty:
ACME,123,Výsledek:
ACME,0,Tento režim umožňuje kromě doplnění hodnot také vynulovat nebo vyprázdnit stávající hodnoty.
Pokud během zpracování dojde k chybě při nalezení nebo použití odpovídajícího atributu, je zpracování ukončeno a chyba je předána zpět do GUI.
GUI následně zobrazí chybové hlášení uživateli.
Mezi možné technické příčiny patří například:
| Situace | Chování |
|---|---|
| Není vybrán žádný záznam | Funkce se nespustí a zobrazí chybu |
| Je vybrán 1 záznam | Zobrazí se dialog pro zadání hodnot |
| Je vybráno více záznamů | Po zadání hodnot se zobrazí potvrzení hromadné změny |
| Checkbox není zaškrtnutý | Nulové a prázdné hodnoty se u podporovaných typů nepřenášejí |
| Checkbox je zaškrtnutý | Nulové a prázdné hodnoty se přenášejí |
| Atribut není v pohledu | Atribut se nemění |
Atribut dotahovanaData | Atribut je ze zpracování vyloučen |
Starší záznam nemá CDodatecneUdaje | Objekt je automaticky vytvořen |
Checkbox typu Boolean = false | Hodnota se zapíše i při nezaškrtnutém „Vynulovat nevyplněné atributy“ |
| Dialog není potvrzen | Zpracování se neprovede |
| Hromadná změna není potvrzena | Zpracování se neprovede |