Ještě jsem si uvědomil, že může nastat problém v případě, že vzor naplní uživatel ostrými daty a proto začíná na „zelené louce" - tedy v prázdném sešitu – žádný list neobsahuje data. Nejspíš takový pokus skončí fiaskem.
V tomto okamžiku je to jen o testování už předem připraveného vzoru který nějaká data obsahuje byť s chybami. Aby se začalo v sešitě který je vybaven jen makrem je nutné vědět co se dá dělat. Na tyto informace nebyl správný čas a ani nyní tento čas nenadešel, ale někoho už mohlo napadnout otestovat svá vlastní data. Aby se to povedlo musí se uživatel dozvědět to co může makrem řešit. Musím popsat logiku práce makra kterou sám od sebe podle kódu pozná jen málo lidí.
Makro uvedené v sešitě bylo postaveno jako sklad nástrojárny odkud se půjčují a vrací nástroje. Autor později upřesnil, že se jedná o typický sklad bez návratu vydaných položek. Upravit tuto kostru na typ běžného skladu je velice snadné. Odpadá zhruba 2/3 operací.
Právě proto je možné makro adaptovat na sklady eShopů, příruční nebo i velké sklady všeho druhu, knihovny, výdejny všeho druhu, půjčovny různých „věcí" a mnoho jiných podobných účelů.
LISTY.
Listů může být velice mnoho a na rozdíl od jiných postupů nezáleží na tom jak jsou pojmenované. Lze tedy i „za běhu" přidávat listy s novými sortimenty nástrojů, nebo jen „zboží", či klientů. To dává naprostou volnost uživateli, ale za to se musí zaplatit určitá cena.
Tou cenou je podmínka typu listů která musí být plněna bez výhrad. Zde v poslední verzi „Nástroje sklad_V2" jsou to 3 druhy listů, ale existují 4 viz „Nástroje sklad_V1".
Listy typu A:
Jsou to listy které obsahují položky typu „vydávaný materiál", nebo „půjčované". Makro pozná tyto listy podle toho, že každý takový list má v buňce A1 slovo ARTIKL. Předpokládáme, že jiné listy toto obsahovat nebudou. Zde je to první údaj hlavičky a tak to také ponecháme. Může to být například list importovaný z nějaké databáze, nebo CSV a podobně (při tom pozor na importní filtry, formáty a podobně).
U těchto listů existuje podmínka unikátnosti jednotlivých položek. V žádném listu se nesmí objevit stejná položka. Nezáleží na tom kolik je položek a makro umí přeskočit i prázdné buňky ve vyhledávacím sloupci „A". Sloupce „B" a „C" jsou určeny k záznamům číselných hodnot. Ostatní sloupce jsou ignorovány a proto tam může být cokoliv.
Listy typu B:
Tyto listy obsahují položky typů „klient". Tyto listy jsou specificky načítány podle toho, že v buňce A1 je údaj shodný s názvem listu. Proto například nový list bez tohoto znaku bude identifikován chybně jako list vstupní (typ listu C).
Je to poměrně logické z pohledu programátora. Sem se ukládají chronologické zápisy pod sebe. Každý řádek na rozdíl od vstupního listu obsahuje více sloupců. Princip – jeden záznam – jeden řádek na rozdíl od „Vstupního listu" kde je pro každý záznam vyhrazen jeden sloupec („A"), ale 3 řádky těsně pod sebou.
Při zapisování se vyhledá nejprve list, následně se určí poslední řádek. Pro nový řádek je potřebné zadat „poslední řádek + 1". Proto by teoreticky první zápis přeskočil do druhého řádku. Takže první řádek může obsahovat „hlavičku". Nemá to vliv na pozici zápisu, ale právě proto je to vhodné pro identifikace. Hlavičkou klientských listů je název listu (klient).
Listy typu C:
Jeden list typu „Vstupy". Na rozdíl od typů listů A a B musí být vstup identifikován jako „ostatní". To umožňuje nazvat vstup jakkoliv, ale musí být zaručeno, že nebude možné ho ani náhodou identifikovat jako list A, nebo B. Také proto nemohou existovat dva či více „ostatních" listů.
Záznamy v tomto listu nemají žádnou hlavičku, nezáleží na jejich jménu, ale vlastní data vstupů musí být zadávána třemi řádky těsně pod sebe do sloupce A. Zadávání není řešeno automatem, ale manuálně. Takže když by byl použit automatický vklad do prázdného listu bude nyní vadit hyperlink kterým se makro aktualizace spouští.
První položka záznamu je shodná s listem typu B (klient). Druhá položka je shodná s pojmem položky „Artiklu". V případě, že není položka zavedena, nebo rozpoznána makro provede zápis jen do listu klienta, ale varování o tom, že nebyl proveden zápis do „Artiklu" se neprovádí.
Třetí položkou záznamu je číselná hodnota se kterou se pracuje. V této fázi se pouze inkrementuje položka vydáno – ve sloupcích „C".
U tohoto listu je celkem důležité, aby případné záznamy byly posledním řádkem listu. Když by existovaly záznamy například na řádku 16 a vklad končil na řádku 15, vyskočí u Apache OpenOffice chyba – což se může stávat v budoucnu i v Libre Office a proto je to nesystémové až chybné.
Listy typu D:
Ostatní listy. Tyto listy tvoří výjimku. Musí být vyloučeny pomocí názvu. V sešitě „Nástroje sklad_V1" je to list „SecurityControl", který v této verzi „Nástroje sklad_V2" již není.
POZNÁMKA
To jsou jen základní podmínky úspěšného používání makra. Ve verzi „Nástroje sklad_V1" je vidět náznak mnoha dalších funkcí které nebyly dopracovány. Existují předpoklady pro plně automatizovanou obsluhu a zapojení do informačního systému, nebo možnost flexibilního přizpůsobení všeho možného od počtu položek, jejich vstupní/výstupní uspořádání, operace s vkládanými hodnotami – nemusí to být jen jedno číslo ap.
Editoval neutr (30. 7. 2019 06:41:22)
Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ