Wiki source code of Definice sérií
Last modified by Martin Mahr on 2024/10/21 22:15
Show last authors
author | version | line-number | content |
---|---|---|---|
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]] |