Kod źródłowy Wiki Definice sérií

Ostatnio modyfikowane 2025/11/07 13:15 przez Jan Slezák

Ukryj ostatnich autorów
Martin Mahr 3.1 1 = Przypisywanie nowej wartości seryjnej =
Jan Šimeček 1.1 2
Martin Mahr 3.1 3 Przypisanie nowej wartości seryjnej jest możliwe automatycznie (klawisz F6) lub ręcznie.
Jan Šimeček 1.1 4
Martin Mahr 3.1 5 **Automatyczne tworzenie:**
Jan Šimeček 1.1 6
Martin Mahr 3.1 7 * Przypisuje się pierwszą niewykorzystaną wartość z serii.
8 * W zależności od ustawień serii użytkownik może uzupełnić wartość serii o prefiks i sufiks.
Jan Šimeček 1.1 9
Martin Mahr 3.1 10 **Ręczne tworzenie:**
Jan Šimeček 1.1 11
Martin Mahr 3.1 12 * Użytkownik może utworzyć dowolną wartość należącą do dowolnej serii dla danego typu dokumentu.
13 * Zgodnie z ustawieniami serii sprawdzana jest poprawność wartości seryjnych pod kątem duplikatów.
14 * Ręczne tworzenie wartości seryjnych może powodować powstawanie luk.
15 * Jeśli podczas ręcznego tworzenia wartości seryjnej nie można przypisać żadnej serii (patrz mechanizm przypisywania serii do wartości seryjnej), wówczas:
16 ** dla typu serii sygnatura i sygnatura magazynowa zostanie utworzona nieprzypisana wartość seryjna
17 ** dla pozostałych typów serii system nie pozwoli na zapisanie wartości
Jan Šimeček 1.1 18
Martin Mahr 3.1 19 = Podstawowe zasady =
Jan Šimeček 1.1 20
Martin Mahr 3.1 21 Seria musi być unikalna dla każdej biblioteki – nie może istnieć seria, która ma ten sam typ, maskę i rodzaj dokumentu (przecięcie zbiorów) i nie może pokrywać się zakres (wartość minimalna i maksymalna).
22 Seria jest zawsze przypisana do konkretnej biblioteki.
23 Seria to przedział kolejnych wartości określonych danych tomu, które należy:
Jan Šimeček 1.1 24
Martin Mahr 3.1 25 * wygenerować (zaoferować) użytkownikowi jako kolejne w kolejności
26 * sprawdzić pod kątem formy (składni) dane mają pewien przepis, jak mogą być wprowadzone
27 * sprawdzić pod kątem duplikatów (dane nie mogą być zapisane w dwóch lub więcej rekordach)
Jan Šimeček 1.1 28
Martin Mahr 3.1 29 = Ustawienia serii =
Jan Šimeček 1.1 30
Martin Mahr 3.1 31 **Typ**: Można zdefiniować serie dla następujących najczęściej występujących danych dla związków
Jan Šimeček 1.1 32
Martin Mahr 3.1 33 * INCREMENTAL NUMBER – Numer przyrostowy
34 * WRITE_OFF_NUMBER – Numer ubytek
35 * ORDER_NUMBER – Numer zamówienia
36 * SIGNATURE – Sygnatura związku
37 * STORE_MARK – Sygnatura magazynowa
Jan Šimeček 1.1 38
Martin Mahr 3.1 39 **Maska**: Zawiera zawsze znak $ (dolar) reprezentujący zmienną liczbę interwału,
40 oprócz tego może poprzedzać ją grupa znaków jako stała.
Jan Šimeček 1.1 41
Martin Mahr 3.1 42 **Regularna przedrostka, końcówka**: wyrażenie regularne, które musi być spełnione, aby wartość była prawidłowa i zapisana:
Jan Šimeček 1.1 43
Martin Mahr 3.1 44 np.: /[0-9A-Za-z] kompletna definicja wyrażeń regularnych
Jan Šimeček 1.1 45
Martin Mahr 3.1 46 ~: [[http:~~/~~/www.regularnivyrazy.info/regularni-vyrazy-zaklady.html#.VBXGz1dBFyY>>url:http://www.regularnivyrazy.info/regularni-vyrazy-zaklady.html#.VBXGz1dBFyY]]
Jan Šimeček 1.1 47
Martin Mahr 3.1 48 **Domyślny przedrostek, rozszerzenie**: umożliwia wstępne wypełnienie jednocześnie z generowaniem wartości serii (zazwyczaj stosowane w przypadku wartości seryjnych należących do tej samej serii, do których dodawany jest bieżący rok)
Jan Šimeček 1.1 49
Martin Mahr 3.1 50 **Typy dokumentów**, dla których obowiązuje seria (skróty rodzajów dokumentów są oddzielone średnikami. Jeśli nie zostanie wypełnione, obowiązuje dla wszystkich typów dokumentów).
Jan Šimeček 1.1 51
Martin Mahr 3.1 52 **Wyrównanie**: określa liczbę miejsc, do których zostanie wyrównana część numeryczna wartości porządkującej, np. 10
Jan Šimeček 1.1 53
Martin Mahr 3.1 54 **Zakres **- niektóre serie mają tę samą maskę (kod kreskowy), wtedy mogą być podzielone na więcej serii dla różnych rodzajów dokumentów
Jan Šimeček 1.1 55
Martin Mahr 3.1 56 * minimalna wartość serii
57 * maksymalna wartość serii
Jan Šimeček 1.1 58
Martin Mahr 3.1 59 Minimalna wartość generowania: cała liczba dodatnia, która jest używana jako pierwsza przy wywołaniu serii, jeśli w zakresie nie ma już zapisanej wyższej wartości.
Jan Šimeček 1.1 60
Martin Mahr 3.1 61 **Typ generowania** wartości porządkującej: określa, czy zostanie użyty standardowy kod systemu, czy też kod specjalny.
Jan Šimeček 1.1 62
Martin Mahr 3.1 63 * PREFIX_VALUE – maska jest typu Prefiks i Wartość
64 * PREFIX_VALUE_SUFFIX – maska jest typu Prefiks Wartość Sufiks
65 * VALUE_SUFFIX – maska jest typu Wartość i Sufiks
66 * VALUE – maska jest typu Wartość
67 * CUSTOM – kod specjalny, tzn. typ maski jest inny niż w poprzednich standardowych przypadkach
68 * ILS_REQUEST_NUMBER – wnioski MVS
69 * ORDER_NUMBER – numer zamówienia
Jan Šimeček 1.1 70
Martin Mahr 3.1 71 **Wyrównaj wyświetlaną wartość**: decyduje, czy wyświetlana wartość jest wyrównywana do określonej liczby zer.
Jan Šimeček 1.1 72
Martin Mahr 3.1 73 == Regularne końcówki - przykłady ==
74
Jan Šimeček 1.1 75 * Maska - //A1//
Martin Mahr 3.1 76 ** Regularne zakończenie - **[a-z]|/[0-9]{1,4}[a-z~\~\-]{0,1}[0-9]{0,4}[/]{0,1}[IVXLCDM]***
77 *** Wartości zgodne: //A1//**a, **//A1//**/1, **//A1//**/1a, **//A1//**/1995, **//A1//**/1995a, **//A1//**/1995/I, **//A1//**/51, **//A1//**/77-1**
Jan Šimeček 1.1 78
Martin Mahr 3.1 79 == Mapowanie serii na wartość ==
Jan Šimeček 1.1 80
Martin Mahr 3.1 81 |Należy pamiętać, że regulary są bardzo „żarłoczne” od lewej do prawej strony, tzn. starają się zmapować na daną część regulary jak najwięcej znaków, jak to tylko możliwe.
Jan Šimeček 1.1 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. (((
Jan Šimeček 2.1 93 Na třetí skupinu** (.*)?** pro suffix se namapuje ten zbytek, tzn.** /45**.
Jan Šimeček 1.1 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
Martin Mahr 3.1 105
106 1. Mapowanie kombinacji regularnego przedrostka **[^0-9]***, maski **$** i regularnego zakończenia .*
107 11. Wewnętrznie przekształca się to w następujący wzorzec regularny: **([^0-9]*)?(\d+)(.*)?**
108 11. Dla wartości seryjnej **433595 **wykonuje się następujące mapowanie:
109 111. Pierwsza grupa **([^0-9]*)?** dla przedrostka nie jest mapowana, ponieważ na początku znajdują się tylko cyfry.
110 111. Druga grupa **(\d+)** dla samej wartości jest mapowana na cyfry **433595**.
111 111. Trzecia grupa **(.*)?** dla sufiksów nie jest mapowana, ponieważ nie ma tam już nic.
112 11. W przypadku wartości seryjnej **AA1234/45** mapowanie wygląda następująco:
113 111. W pierwszej grupie **([^0-9]*)?** dla przedrostka mapowane jest **AA**.
114 111. W drugiej grupie **(\d+)** dla samej wartości mapowane są cyfry **1234**.
115 111. W trzeciej grupie **(.*)?** dla sufiksów mapowana jest pozostała część, tj. **/45**.
116 1. Mapowanie kombinacji regularnego przedrostka .*****, maski **$** i regularnego sufiks .*****
117 11. Wewnętrznie przekształca się to na następujący regularny wzorzec: **(.*)?(\d+)(.*)?**
118 11. Dla wartości seryjnej **433595 **mapowanie przebiega następująco:
119 111. Do pierwszej grupy **(.*)?** dla przedrostka zostanie przypisana jak największa liczba znaków, aby spełnić warunki kolejnych grup → zostanie przypisane **43359**.
120 111. Do drugiej grupy **(\d+)** dla samej wartości zostanie przypisane tylko **5**.
121 111. Do trzeciej grupy **(.*)?** dla sufiksów nie zostanie przypisane nic, ponieważ nie ma tam już nic.
122
123 = Generowanie wartości do serii =
124
125 * jest to konieczne po utworzeniu serii
126 * procedura została opisana tutaj: [[Stworzenie nowej serii>>doc:uzivatelsky-manual.Pro-spravce.Vytvoreni-nove-serie.WebHome]]