Kod źródłowy Wiki Definice sérií
Ostatnio modyfikowane 2025/11/07 13:15 przez Jan Slezák
Pokaż ostatnich autorów
| author | version | line-number | content |
|---|---|---|---|
| 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]] |