Kod źródłowy Wiki Definice sérií
Ostatnio modyfikowane 2025/11/07 13:15 przez Jan Slezák
Ukryj ostatnich autorów
| author | version | line-number | content |
|---|---|---|---|
| |
3.1 | 1 | = Przypisywanie nowej wartości seryjnej = |
| |
1.1 | 2 | |
| |
3.1 | 3 | Przypisanie nowej wartości seryjnej jest możliwe automatycznie (klawisz F6) lub ręcznie. |
| |
1.1 | 4 | |
| |
3.1 | 5 | **Automatyczne tworzenie:** |
| |
1.1 | 6 | |
| |
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. | ||
| |
1.1 | 9 | |
| |
3.1 | 10 | **Ręczne tworzenie:** |
| |
1.1 | 11 | |
| |
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 | ||
| |
1.1 | 18 | |
| |
3.1 | 19 | = Podstawowe zasady = |
| |
1.1 | 20 | |
| |
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: | ||
| |
1.1 | 24 | |
| |
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) | ||
| |
1.1 | 28 | |
| |
3.1 | 29 | = Ustawienia serii = |
| |
1.1 | 30 | |
| |
3.1 | 31 | **Typ**: Można zdefiniować serie dla następujących najczęściej występujących danych dla związków |
| |
1.1 | 32 | |
| |
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 | ||
| |
1.1 | 38 | |
| |
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. | ||
| |
1.1 | 41 | |
| |
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: |
| |
1.1 | 43 | |
| |
3.1 | 44 | np.: /[0-9A-Za-z] kompletna definicja wyrażeń regularnych |
| |
1.1 | 45 | |
| |
3.1 | 46 | ~: [[http:~~/~~/www.regularnivyrazy.info/regularni-vyrazy-zaklady.html#.VBXGz1dBFyY>>url:http://www.regularnivyrazy.info/regularni-vyrazy-zaklady.html#.VBXGz1dBFyY]] |
| |
1.1 | 47 | |
| |
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) |
| |
1.1 | 49 | |
| |
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). |
| |
1.1 | 51 | |
| |
3.1 | 52 | **Wyrównanie**: określa liczbę miejsc, do których zostanie wyrównana część numeryczna wartości porządkującej, np. 10 |
| |
1.1 | 53 | |
| |
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 |
| |
1.1 | 55 | |
| |
3.1 | 56 | * minimalna wartość serii |
| 57 | * maksymalna wartość serii | ||
| |
1.1 | 58 | |
| |
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. |
| |
1.1 | 60 | |
| |
3.1 | 61 | **Typ generowania** wartości porządkującej: określa, czy zostanie użyty standardowy kod systemu, czy też kod specjalny. |
| |
1.1 | 62 | |
| |
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 | ||
| |
1.1 | 70 | |
| |
3.1 | 71 | **Wyrównaj wyświetlaną wartość**: decyduje, czy wyświetlana wartość jest wyrównywana do określonej liczby zer. |
| |
1.1 | 72 | |
| |
3.1 | 73 | == Regularne końcówki - przykłady == |
| 74 | |||
| |
1.1 | 75 | * Maska - //A1// |
| |
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** | ||
| |
1.1 | 78 | |
| |
3.1 | 79 | == Mapowanie serii na wartość == |
| |
1.1 | 80 | |
| |
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. |
| |
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. ((( | ||
| |
2.1 | 93 | Na třetí skupinu** (.*)?** pro suffix se namapuje ten zbytek, tzn.** /45**. |
| |
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 | |||
| |
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]] |