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

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

Pokaż ostatnich autorów
1 = Przypisywanie nowej wartości seryjnej =
2
3 Przypisanie nowej wartości seryjnej jest możliwe automatycznie (klawisz F6) lub ręcznie.
4
5 **Automatyczne tworzenie:**
6
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.
9
10 **Ręczne tworzenie:**
11
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
18
19 = Podstawowe zasady =
20
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:
24
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)
28
29 = Ustawienia serii =
30
31 **Typ**: Można zdefiniować serie dla następujących najczęściej występujących danych dla związków
32
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
38
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.
41
42 **Regularna przedrostka, końcówka**: wyrażenie regularne, które musi być spełnione, aby wartość była prawidłowa i zapisana:
43
44 np.: /[0-9A-Za-z] kompletna definicja wyrażeń regularnych
45
46 ~: [[http:~~/~~/www.regularnivyrazy.info/regularni-vyrazy-zaklady.html#.VBXGz1dBFyY>>url:http://www.regularnivyrazy.info/regularni-vyrazy-zaklady.html#.VBXGz1dBFyY]]
47
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)
49
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).
51
52 **Wyrównanie**: określa liczbę miejsc, do których zostanie wyrównana część numeryczna wartości porządkującej, np. 10
53
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
55
56 * minimalna wartość serii
57 * maksymalna wartość serii
58
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.
60
61 **Typ generowania** wartości porządkującej: określa, czy zostanie użyty standardowy kod systemu, czy też kod specjalny.
62
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
70
71 **Wyrównaj wyświetlaną wartość**: decyduje, czy wyświetlana wartość jest wyrównywana do określonej liczby zer.
72
73 == Regularne końcówki - przykłady ==
74
75 * Maska - //A1//
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**
78
79 == Mapowanie serii na wartość ==
80
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.
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
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]]