Definice struktury kódů, resp. inventárních čísel

Na několika místech systému je možno s výhodou využít automatického předvyplňování kódů, inv. čísel či jiných pořadových čísel podle uživatelem definované struktury. Tj. např. při zadávání nové firmy do adresáře, nové karty do skladu apod. se může automaticky vygenerovat nové číslo kódu o jedna vyšší než je poslední použité v rámci definované struktury.

Pro způsob definice struktury platí pravidla shodná pro celý systém, proto je popíšeme v této kapitole. Využívají se např. pro definici

Struktura kódu se definuje:

Kód resp. inventární číslo (dále jen kód) má následující strukturu: PREFIX-TĚLO-SUFIX

Prefix=AA-, tělo=0002, sufix=/99

Platí:

  • součet délek jednotlivých částí nesmí překročit délku kódu povolenou programem
  • žádná část není povinná (ovšem definice by měla být smysluplná)
Název Popis
Automaticky generovat kód

Je-li zaškrtnuto, kódy se budou generovat automaticky a to dle struktury nastavené dále. Pokud nechcete automatické předvyplňování kódu využívat, odškrtněte. Kódy pak budete zadávat ručně.

Tato volba není k dispozici pro hromadné generování podacích čísel funkcí Podací čísla v agendě Odeslané pošty, jelikož tam nemá význam.

Prefix

Lze chápat jako rozlišovací část kódů, tj. pevně nebo volitelně daný řetězec znaků, kterým kód začíná. Nastavují se pro něj položky:

  • Délka prefixu - počet znaků rozlišovací části
  • Předpis - k dispozici jen, je-li zadaná délka prefixu větší než nula. Alfanumerický řetězec, který se bude předvyplňovat při generování kódu jako prefix. Je-li zadaný řetězec delší než délka prefixu, použije se prvních x znaků zleva. Je-li zadaný řetězec kratší než délka prefixu, doplní se příslušným počtem mezer zprava.
  • Povolit změny - zda může uživatel prefix ve vygenerovaném kódu editovat, či nikoliv. Jsou-li povoleny změny, pak pro editaci generovaného kódu platí:
    • Při vstupu do prefixu tabulátorem nebo dvojklikem myši, ale také jednoduchým kliknutím myši, se aktuální obsah podbarví (vybere). Tj. označí se všechny znaky prefixu včetně mezer doplněných zprava.
    • Zahájením editace (tj. zadáním jakéhokoli znaku) se původní obsah položky vymaže a je tedy možné rovnou zadat nový prefix, aniž by uživatel musel mazat mezery doplněné zprava na příslušnou délku prefixu.

Varianty nastavení objasníme na příkladech:

Příklad 1: Varianta s pevným prefixem

Budeme evidovat např. karty pouze jednoho typu, jejichž kód bude začínat písmennou zkratkou AA- a předpokládáme menší počet skladových položek než deset tisíc, budeme tedy požadovat čtyřmístnou číselnou část.
Zadáme:



Potom při zadání nové karty bude předvyplněn kód AA-0001, u další karty AA-0002 atd. Předvyplněný prefix nebude možné měnit.

Příklad 2: Varianta se zadávaným prefixem

Budeme evidovat karty více typů. Např. AA- a BB-, oboje chceme číslovat v samostatné číselné řadě (potřebujeme dvě číselné řady).
Zadáme:



Při tomto nastavení bude prefix nevyplněn, po jeho zadání se automaticky zaktualizuje "tělo" kódu, tj. předvyplní se o jedničku zvětšené poslední číslo v řadě s daným prefixem. Tedy nechť poslední karty jsou AA-0011, BB-0015. Zadáme-li novou kartu a vyplníme prefix AA-, doplní se automaticky číslo 0012, změníme-li prefix na BB-, zaktualizuje se číslo na 0016 apod.

Pokud by většina karet byla v řadě AA- a jen výjimky byly v řadě BB-, bylo by výhodnější, nenechat předpis prefixu prázdný, ale zadat do něj řetězec "AA-" a v případě potřeby jej při zadání nové karty změnit na BB-. Tedy při zadání nové karty by předvyplňoval např. AA-0012, AA-0013 atd. a pokud byste potřebovali zadat kartu v řadě BB, opravili byste prefix na BB, přičemž se opět zaktualizuje poslední číslo v řadě.

Délka těla

Délkou těla se rozumí počet míst, vyhrazených pro řadu, která se bude pro každou novou firmu nebo kartu zvyšovat. Ve většině případů půjde o číselnou řadu, ale teoreticky lze zadávat i znaky. Tělo kódu tedy nechápe jako číslo, ale jako sekvenci číslic nebo znaků, které se postupně povyšují a to číslice od nuly do devítky, písmena dle abecedy. Objasníme na příkladu:

Příklad 3: Chceme mít tělo jako číselnou řadu třímístnou. Začneme číslovat od jedničky (zleva doplněno nulami na danou délku), tedy tělo bude 001. Další sekvence bude 002, 003, 004, 005, 006, 007, 008, 009, 010, 011,....., 099, 100 atd.

Příklad 4: Začneme číslovat od 0a1. další sekvence bude: 0a2, 0a3, 0a4, 0a5, 0a6, 0a7, 0a8, 0a9, 0b0, 0b1, 0b2, ..., 0b9, 0c0, 0c1 atd.

Pokud změníte za běhu délku těla kódu, systém to chápe jako novou řadu a začne číslovat od začátku, resp. od posledního čísla (řetězce) v řadě se stejnou délkou těla.

Tip pro vás: Takže např. máte tělo třímístné a jste u čísla 999. Prodloužíte tedy tělo na čtyři místa. Poté systém nenabízí 1000, ale čísluje od posledního čísla v řadě se stejnou délkou těla, tedy např. 0001. Lze ale pochopitelně nabízené číslo změnit na 1000 a další čísla již budou 1001, 1002 atd.

Pozor!!! V takovém případě je třeba počítat s tím, že se záznamy při řazení dle kódu budou řadit jinak, než v pořadí, v němž byly zadány. Příklad: Autom. předvyp. kód sklad. karty má délku 4. Tj. karty jsou číslovány od 0000 do 9999. Ale karet už je víc jak 10 000 karet a je třeba délku kódu rozšířit. Po rozšíření kódu na 5 se karta s kódem 10000 nezařadí nakonec (aby tomu tak nebylo, kód 9999 by se musel opravit na 09999), ale zařadí se za kartu s kódem 1000.

Výše zmíněný problém lze řešit servisně doplněním kódu existujících záznamů na požadovanou délku pomocí jednoduchého SQL update, což si můžete objednat u servisní sítě dodavatele.

Pro editaci délky těla kódu platí:
- Při vstupu do pole pro délku těla kódu tabulátorem nebo dvojklikem myši, ale také jednoduchým kliknutím myši, se aktuální obsah podbarví (vybere).
- Zahájením editace (tj. zadáním jakéhokoli znaku) se původní obsah položky vymaže.

Sufix

Pevně nebo volitelně daný řetězec znaků, kterým kód končí. Zadávané položky:

  • Délka sufixu - jako u prefixu
  • Předpis - jako u prefixu
  • Povolit změny
  • Zohlednit při generování

Platí pro něj stejná pravidla jako pro prefix. Navíc je pouze položka Zohlednit při generování, která říká, zda je sufix podstatný pro číselnou řadu, či zda se čísluje bez ohledu na zadaný sufix. Objasníme na příkladech:

Příklad 5: Mějme předpis kódu dle Příkladu 2. Dále nechť sufix má délku=3, předpis: /99, je možné jej měnit a nemá se zohledňovat při generování. Pak mějme poslední zadanou kartu s kódem AA-0012/99. Nově zadaná karta bude mít předvyplněn kód AA-0013/99. Pokud změníme sufix na /00, číslo v řadě se nezmění a karta bude mít po uložení kód AA-0013/00. Další nová karta by pak měla číslo 0014, tedy předvyplněn kód AA-0014/99 atd.

Příklad 6: Mějme předpis kódu dle Příkladu 5, ale sufix se má zohledňovat při generování kódu. Nově zadaná karta bude mít předvyplněn kód AA-0013/99. Pokud změníme sufix na /00, číslo v řadě se zaktualizuje a karta bude mít kód např. AA-0001/00. Další nová karta se sufixem /99 by pak měla číslo 0014, karta se sufixem /00 by měla číslo 0002 atd.

Náhled Zobrazí příklad kódu vygenerovaného dle zadané struktury.

Funkce na dohledání záznamu s posledním existujícím kódem v řadě dané zadanou definicí struktury kódu

Má-li uživatel v agendě nastaveno automatické předvyplňování kódů, inventárních čísel či jiných pořadových čísel podle uživatelem definované struktury kódu a potřebuje-li najít záznam, který obsahuje poslední systémem vygenerovaný kód, může využít funkci pro nalezení posledního existujícího kódu v řadě dané nastavením automatického generování kódů pro danou agendu. Tuto funkci lze vyvolat, stojí-li v editačním režimu v záložce Detail příslušné agendy kurzor na položce, jejíž obsah se předvyplňuje pomocí automatického generování kódu (tj. např. na položce Kód, Inventární číslo, Osobní číslo, Název sér.čísla/šarže apod.), pomocí kombinace kláves Ctrl+Shift+P. Funkce vyhledá záznam s posledním existujícím kódem v řadě a zobrazí jej spolu s názvem a v případě skrytého záznamu i s informací o tom, že je záznam skrytý. V agendě Adresář firem navíc zobrazí také kód a název následovnické firmy, pokud je záznam s nalezeným posledním kódem firmy předchůdcem nějaké jiné firmy. Funkce není k dispozici v agendě Odeslaná pošta.

Příklad: V agendě Adresář firem se předvyplňuje kód firmy na základě automatického generování kódů ve tvaru K-0001. V adresáři jsou zadány záznamy s kódem K-0001 až K-0156. Uživatel zadává nový záznam do adresáře a do položky Kód se předvyplní K-0306 místo očekávaného kódu k-0157. Po vyvolání funkce na dohledání záznamu s posledním existujícím kódem v řadě dané zadanou definicí struktury kódu se objeví následující informace:
- Záznam s posledním kódem v řadě: Kód: K-0305, Název: GHJ s.r.o., Záznam je skrytý.
Čili uživatel snadno získá informaci o záznamu s kódem, z něhož systém vychází při automatickém generování kódu. Pak může uživatel nestandardní kód opravit, aby systém nadále generoval kódy v souvislé řadě.

Zmíněnou funkci nelze využít v Adresáři vyvolaném z kas pokladního/restauračního prodeje. Viz popis u funkce Přidat novou firmu.