Wiki source code of Definice sérií

Last modified by Martin Mahr on 2024/10/21 22:15

Show last authors
1 = Přidělování nové sériové hodnoty =
2
3 Přidělit novou sériovou hodnotu je možné automaticky (klávesa F6), nebo ručně.
4
5 **Automatické vytváření:**
6
7 * Přiřadí se první nepoužitá hodnota ze série,
8 * Dle nastavení série uživatel může doplnit sériovou hodnotu o //prefix// a //suffix.//
9
10 **Ruční vytváření:**
11
12 * Uživatel může vytvořit libovolnou hodnotu spadající do libovolné série pro daný typ dokumentu.
13 * Podle nastavení série se validuje duplicita sériových hodnot.
14 * Ručním vytvořením sériové hodnoty mohou vznikat mezery.
15 * (((
16 Pokud při ručním vytvoření sériové hodnoty není možné přiřadit žádnou sérii (viz mechanizmus přiřazování sérií k sériové hodnotě), tak:
17
18 * pro typ série signatura a skladová signatura se vytvoří nepřiřazená sériová hodnota
19 * pro ostatní typy sérií systém neumožní hodnotu uložit
20 )))
21
22 = Základní pravidla =
23
24 Série musí být unikátní pro každou knihovnu - nesmí existovat série, která má stejný typ, masku a druh dokumentu (průnik množin) a nesmí se překrývat rozsah (minimální a maximální hodnota).
25 Série je vždy přiřazená ke konkrétní knihovně.
26 Série je interval posloupných hodnot určitého údaje Svazku, který je vhodné:
27
28 * generovat (nabízet) uživateli další v pořadí
29 * kontrolovat tvar (syntax) údaj má jakýsi předpis jak může být zadán
30 * kontrolovat na duplicitu (údaj nesmí být uložen u dvou či více záznamů)
31
32 = Nastavení sérií =
33
34 **Typ:** Lze definovat série pro tyto nejběžnější údaje pro Svazky
35
36 * INCREMENTAL NUMBER - Přírůstkové číslo
37 * WRITE_OFF_NUMBER - Úbytkové číslo
38 * ORDER_NUMBER - Číslo objednávky
39 * SIGNATURE - Signatura svazku
40 * STORE_MARK - Skladová signatura
41
42 **Maska: **Obsahuje vždy znak $ (dolar) reprezentující proměnné číslo intervalu,
43 kromě něj pak může předcházet skupina znaků jako konstanta**.**
44
45 **Regulární předpona, koncovka : **regulární výraz, který musí platit, aby byla hodnota validní a uložená:
46
47 např: /[0-9A-Za-z] kompletní definice regulárních výrazů : [[http:~~/~~/www.regularnivyrazy.info/regularni-vyrazy-zaklady.html#.VBXGz1dBFyY>>url:http://www.regularnivyrazy.info/regularni-vyrazy-zaklady.html#.VBXGz1dBFyY]]
48
49 **Defaultní předpona, přípona:  **umožňuje předvyplnit současně s generováním hodnoty série (typicky se používá pro sériové hodnoty patřící do stejné série, ke kterým se přidává aktuální rok)
50 \\**Typy dokumentu**, pro které série platí (zkratky druhů dokumentu jsou odděleny středníky. Pokud není vyplněno, platí pro všechny typy dokumentu.)
51
52 **Zarovnání** : určuje počet míst na které bude v řadící hodnotě číselná část zarovnávána např. 10
53
54 **Rozsah** - některé série mají stejnou masku (čárový kód), pak může být rozdělena do více sérií pro různé druhy dokumentu
55
56 * minimální hodnota série
57 * maximální hodnota série
58
59 **Minimální hodnota na generování** : celé kladné číslo které je jako první použito při vyvolání série, pokud v rozsahu neexistuje již uložené vyšší.
60
61 **Typ generování řadící hodnoty** : Určuje zda se použije standardní kód systému nebo je použit kód speciální.
62
63 * PREFIX_VALUE - maska je typu Předpona a Hodnota
64 * PREFIX_VALUE_SUFFIX - maska je typu Předpona Hodnota Přípona
65 * VALUE_SUFFIX - maska je typu Hodnota a Přípona
66 * VALUE - maska je typu Hodnota
67 * CUSTOM - speciální kód tzn. typ masky je jiný než předchozích standardních případech
68 * ILS_REQUEST_NUMBER - MVS žádanky
69 * ORDER_NUMBER - Číslo objednávky
70
71 **Zarovnat zobrazovanou hodnotu** : rozhoduje, jestli je zobrazovaná hodnota hodnota zarovnávána na určitý počet nul.
72
73 == Regulární koncovka - příklady ==
74
75 * Maska - //A1//
76 ** Regulární koncovka - **[a-z]|/[0-9]{1,4}[a-z~\~\-]{0,1}[0-9]{0,4}[/]{0,1}[IVXLCDM]***
77 *** Vyhovující hodnoty: //A1//**a, **//A1//**/1, **//A1//**/1a, **//A1//**/1995, **//A1//**/1995a, **//A1//**/1995/I, **//A1//**/51, **//A1//**/77-1**
78
79 == Mapování série na hodnotu ==
80
81 |Je potřeba mít na paměti, že reguláry jsou zleva doprava velmi "žravé", tzn. snaží se na danou část reguláru namapovat co nejvíc znaků je to možné.
82
83 1. Mapování kombinace regulární předpony **[^0-9]***, masky **$** a regulární koncovky **.***
84 11. Vnitřně se převede na následující regulár: **([^0-9]*)?(\d+)(.*)?**
85 11. Pro sériovou hodnotu **433595** se pak provede tohle mapování:
86 111. Na první skupinu **([^0-9]*)?** pro prefix se nenamapuje nic, protože jsou za začátku jen čísla.
87 111. Na druhou skupinu **(\d+) **pro samotnou hodnotu se namapují číslice **433595**.
88 111. Na třetí skupinu **(.*)?** pro suffix se už nenamapuje zase nic, protože tam už nic není.
89 11. Pro sériovou hodnotu **AA1234/45** se to pak namapuje takto:
90 111. Na první skupinu **([^0-9]*)?** pro prefix se namapuje **AA**.
91 111. Na druhou skupinu **(\d+) **pro samotnou hodnotu se namapují číslice **1234**.
92 111. (((
93 Na třetí skupinu** (.*)?** pro suffix se namapuje ten zbytek, tzn.** /45**.
94
95
96 )))
97 1. Mapování kombinace regulární předpony **.***, masky **$** a regulární koncovky **.***
98 11. Vnitřně se převede na následující regulár: **(.*)?(\d+)(.*)?**
99 11. Pro sériovou hodnotu **433595** se pak provede tohle mapování:
100 111. Na první skupinu **(.*)?** pro prefix se pokusí namapovat co nejvíc znaků je možné, aby přesto byly splněny podmínky dalších skupin → namapuje **43359**.
101 111. Na druhou skupinu **(\d+) **pro samotnou hodnotu se namapuje pouze **5**.
102 111. Na třetí skupinu **(.*)?** pro suffix se už nenamapuje zase nic, protože tam už nic není.
103
104 = Generování hodnot do sérií =
105
106 * je potřeba po vytvoření série
107 * postup je popsán zde: [[Vytvoření nové série>>doc:uzivatelsky-manual.Pro-spravce.Vytvoreni-nove-serie.WebHome]]