Article: AN0001605Updated:
Systém ObjectGears poskytuje funkci Sequence pro případy, kdy je nutné automaticky generovat hodnotu sloupce pomocí rostoucí řady.
Funkce umožňuje generovat rostoucí číselnou řadu pro konkrétní sloupec třídy (typy sloupců celé číslo nebo krátký a střední text).
Funkci lze využít i pomocí skriptu Sequence.
Nastavení na sloupci
Na sloupci slouží pro nastavení dvě hodnoty:
Povolit sekvence - zaškrtnutím se při zobrazení nového záznamu vygeneruje na sloupci nová hodnota a vloží se do formuláře.
Formát sekvence - pro textové sloupce je možné ještě přidat formátování. Lze nastavit prefix, postfix a počet míst pro vlastní číslo.
Při zobrazení nového formuláře se pokaždé vygeneruje nová hodnota. Pokud uživatel tento formulář neuloží (odejde z něj) nebo jen stránku obnoví, bude tato hodnota zahozena. Při příštím požadavku na hodnotu ze sekvence, bude vygenerována nová hodnota o 1 větší.
Formátování
Základní formát je {#}. Tento text bude nahrazen hodnotou ze sekvence.
Pro zadání prefixu nebo postfixu zadejte jen text před nebo za tento formát:
INC{#}
INC{#}-my
{#}obj
Číselnou hodnotu můžete též formátovat na určitý počet míst. Každá 0 ve formátu odpovídá jedné číslici.
INC{#:000000}
INC{#:000}-my
{#:00-00}obj
Pokud není zadán žádný formát, je vrácena jen nová hodnota.
Formátování vychází z formátovací metody objektu String (String.Format) Microsoft .NET Frameworku. Po nastudování příslušné formátovací funkce můžete použít i jiné typy formátů.
Přerušení nebo nastavení sekvence
Pokud potřebujete dočasně přerušit generování sekvence na sloupci, pak jen v daném sloupci zrušte nastavení Povolit sekvence. Při pozdějším povolení se bude pokračovat v generování od místa, kde se naposledy skončilo.
Někdy je však potřeba vytvořit v sekvenci "díru", tj. přeskočit několik čísel v sekvenci. V tomto případě je třeba je třeba provést úpravu přímo v databázi v tabulce Sequence, kde podle sloupce ColumnClassDefId a ID sloupce s nastavenou sekvencí naleznete příslušný záznam a ten změníte na novou hodnotu (sloupec value v tabulce).