Život nábojnice 2.0
in progress
OC
Díky za život nábojnice, pro přebíjení je to hodně důležité.
Akorát se mi bohužel nedaří vymyslet např. možnost rozvážit (už přeformátované a pokrácené) nábojnice do více skupin, ani zaznamenat, zda (a jak) se náboj krimpuje, apod. O sledování počtu vystřelení/přebití nemluvě.
Proto bych rád zkusil navrhnout malinko jiný přístup, který by, myslím, mohl řešit vše, a to za cenu docela malých úprav.
~~~
Každý krok úpravy nábojnice by byl representovaný novým záznamem nábojnice. Ten by obsahoval odkaz na původní a informaci, jak vznikl. Jinak by fungoval přesně stejně, jak záznamy fungují nyní; skoro nikde jinde by se skoro nic nemuselo měnit, a risiko nějakých problémů se starším kódem by bylo prakticky nulové. Viz prosím také níže „Vlastně z hlediska toho, jak se v aplikaci pracuje s nábojnicemi...“, jenž to ilustruje na příkladu.
V DB by stačilo přidat do „nábojnice“ tři nové položky:
- odkaz na rodičovský záznam
- název operace, jež tuto nábojnici vytvořila
- booleovský atribut „konečná“ (obešli bychom se bez něj, pokud by se udělalo vyřazování jako samostatná možnost — což mi přijde implementačně spíš složitější, nicméně to samozřejmě záleží na Tobě :))
~~~
V GUI by bylo úprav jen pár:
- v dlažidici by se vedle „Nákup“ objevilo „Upravit“, což by otevřelo dialog podobný vytvoření nové, ale jednodušší; v něm by byl jen:
- popup „Operace“ s možností vybírat existující a přidávat nové, podobně jako třeba u Aktivit; jedna předdefinovaná by byla „Vyřadit“
- položky „Obrázek“ (výchozí jako v rodiči), „Váha“ (výchozí jako v rodiči), „Aktuálně skladem“ (výchozí 0, maximum počet kusů v rodiči), „Hlídat pod“ (výchozí jako v rodiči) a „Poznámka“ (výchozí prázdná)
Pokud uživatel dá „Vytvořit položku“, pak aplikace
- vytvoří nový záznam (stejně jako po „+ Přidat nábojnice“)
- do odkazu na rodičovskou tam vyplní tu, v níž se kleplo na „Upravit“
- položky z dialogu zapíše, jak jsou zadané
- jinak vše z rodičovské čistě jen překopíruje
- a ještě z rodičovské odečte počet kusů („Aktuálně skladem“) té nové.
Při operaci „Vyřadit“ se navíc nastaví „konečná“, ale pořád uživatel může přidat poznámku nebo fotku, bude-li chtít.
Tyto záznamy odvozených nábojnic by fungovaly přesně stejně, jako ty stávající, a to všude (např. by kterýkoli z nich šel vybrat pro přebíjení/vývoj navážky, byly by nad nimi normální statistky, atd.)
Jediná výjimka by byl záznam „konečná“; ten by neměl možnost „Upravit“, ani by nešel vybrat pro přebíjení. Jeho účelem je co nejjednodušší možnost vyřazení vadných kusů s možností přidat poznámku/fotku. Pokud by ses rozhodl to udělat jako samostatnou nezávislou službu, pak tento atribut samozřejmě nepotřebujeme, a dále by se to zjednodušilo (ale zase za cenu implementace toho samotného vyřazování, což myslím asi by bylo pracnější).
Čistě jen pro pohodlí bych přidal ve skladu pár kosmetických drobností:
- možnost zobrazit jen kořenové nábojnice, asi ideální jako výchozí zobrazení;
- možnost zobrazit pouze všechny odvozené z jednoho vybraného kořene.
Ještě by to chtělo
- v dlaždici odvozené nábojnice zobrazovat „<název kořenové>: <operace>: <poznámka>“
- odvozené nábojnice by vůbec neměly „Nákup“
- v detailu tam, kde je nyní přehled nákupů, by měly zobrazenou cestu od kořene s vypsanými operacemi a poznámkami.
~~~
Konkrétní příklad, dejme tomu, že mám ve skladu jen jeden záznam nábojnice „Lapua“, 1000 ks.
Dám v něm „Upravit“, operace „Vážení“, počet 300, váha 156 gr
Pak v něm dám „Upravit“, operace „Vyřadit“, počet 5, poznámka „Hned při nákupu zdeformované!“ a fotku těch deformit
Znovu v něm dám „Upravit“, operace „Vážení“, počet 200, váha 158 gr.
V tuto chvíli bych měl ve skladu čtyři záznamy:
- „Lapua“, 495 ks
- „Lapua: Vážení: 156 gr“, 300 ks
- „Lapua: konečná: Hned při nákupu zdeformované“, 5 ks
- „Lapua: Vážení: 158 gr“, 200 ks
V posledním z nich dám „Upravit“, operace „Krácení“, počet 50, poznámka „44.65 mm“
Teď mám záznamů pět, s tím, že
- ten „Lapua: Vážení: 158 gr“ už má jen 150 ks
- a objevil se nový „Lapua: Krácení: 44.65 mm“, 50 ks
Zase v tom novém dám „Upravit“, operace „Formování krčku“, počet 10, poznámka „bushing .246“ — opět mi to přidá nový záznam (a „Lapua: Krácení: 44.65 mm“ už bude mít jen 40).
Když si teď otevřu ten nejnovější záznam „Lapua: Formování krčku: bushing .246“ v Detailu, tak tam, kde současné nábojnice mají seznam nákupů (a ty kořenové bez předka by jej měly i nadále), on bude mít tabulku nadřízených až ke kořeni, tedy v tuto chvíli tři řádky, od nejstaršího:
- datum/čas: Lapua
- datum/čas: Vážení: 158 gr
- datum/čas: Krácení: 44.65 mm.
Kterýkoli ze všech pěti záznamů (jen vyjma toho „konečná“) je úplně normální záznam nábojnic; mohu každý z nich vybrat pro přebíjení stejně dobře, jako kterýkoli jiný, normálně upravovat, jsou ve statistikách, atd. Ty novinky tedy (vyjma „konečné“) vůbec nikde jinde nic nijak v celé aplikaci neovlivní a vše funguje stejně jako dosud.
~~~
Vlastně z hlediska toho, jak se v aplikaci pracuje s nábojnicemi (jen vyjma „konečné“) by se to technicky nijak nelišilo od případu, kdy by se v současné versi neměnilo nic, a já bych ty nové záznamy přidával ručně a vše (včetně operace) bych psal do poznámky.
Tedy např. namísto „dám „Upravit“, operace „Vážení“, počet 300, váha 156 gr“ bych
- ručně přidal novou nábojnici přes „+ Přidat nábojnice“
- ručně do ní překopíroval všechny atributy z původní Lapua
- dal jí počet 300 a v původní nábojnici počet adekvátně ručně snížil
- nastavil bych v ní váhu 156 gr
- a do poznámky bych napsal: „upraveno z Lapua, vážením“.
Tak bych to mohl dělal už teď a fungovalo by to provozně skoro stejně. Ovšem aplikace by těmi výše popsanými jednoduchými mechanismy mohla tuhle práci zásadně usnadnit a umožnila by také mnohem snáze si ve výsledcích udržovat přehled. Ale funkčně by se to nijak nelišilo :)
~~~
Přebité náboje by získaly také tlačítko „Upravit“ s velmi podobnou funkčností.
Dejme tomu, že přebiji 5 ks s nábojnicí „Lapua: Formování krčku: bushing .246“, takže mám odpovídající náboj; v něm je odkaz na tu nábojnici, jejíž skladový počet se přebitím snížil na 5 (to vše jsou stávající nezměněné funkčnosti).
Novinka (skoro totožná s úpravami nábojnic popsanými výše) by byla možnost klepnout na „Upravit“. Opět by se otevřel týž jednoduchý dialog, jen jeho Operace by měly vlastní nezávislý seznam možností (opět s možností vybrat z popupu nebo přidat novou), tentokrát namísto „Vyřazení“ by tam standardně byla „Delaborace“.
Zadám tedy např. operaci „Krimpování“, počet 3, poznámku „roll crimp“. A aplikace by pak za mne udělala dvě věci zároveň:
- vytvořila by nový záznam nábojnice „Lapua: Krimpování: roll crimp“, počet 0 (protože je použita v nábojích), rodič „Lapua: Formování krčku: bushing .246“
- a vytvoří i nový záznam náboje, 3 ks, s touto novou nábojnicí.
Ta „delaborace“ by se lišila jen ve dvou drobných detailech:
- nevytvoří nový záznam náboje, jen (přesně stejně jako výše) nábojnice;
- a střelu vrátí do skladu.
Podstatné je, že pořád všechny objekty fungují stejně jako dosud, nemá to vliv na nic jiného nikde jinde v aplikaci — kterýkoli z těchto nábojů mohu stejně dobře upravovat, střílet, testovat, znovu přebíjet (navýším-li počet nábojnic), cokoli.
~~~
Hlavní (ale velmi jednoduchá :)) novinka by pak byla při návratu ze střelnice, kde by mezi „vystříleno“ a „vrátit do trezoru“ přibyl (jen pro ty, kdo přebíjejí) nový sloupec „vrácené nábojnice“. V něm číslo od 0 do „vystříleno“, výchozí stejně jako vystříleno.
Pokud v něm bude >0, pak se zároveň s návratem vytvoří další záznam nábojnice, přesně stejným postupem jako když u záznamu vybírám „Upravit“. Operace se vyplní na „Vystříleno“, rodičem bude nábojnice, jež byla použita v daném náboji. Nic víc.
(No, mohl by tam být ještě odkaz do deníku na konkrétní záznam toho střílení; to by bylo šikovné, pokud by to nebylo moc pracné. Ale smysl by to mělo i bez toho.)
~~~
A to je vlastně celé — pokud něco zásadního nepřehlížím, mělo by to snad být plně funkční, velmi pohodlné provozně, a naprosto flexibilní pro nejrůznější potřeby uživatelů.
Chci vidět, kolikrát byla nábojnice vystřelená? Otevru si její Detail a podívám se, kolikrát v seznamu nadřízených má operaci „Vystříleno“. A kromě toho tam také vidím vše ostatní: kolikrát (pokud vůbec) byla žíhaná, kolikrát a jak byla formátovaná, atd. atd. atd.
Někdo si nechce zaznamenávat úpravy nábojů a vést jen jednoduché jednorázové „Přebití“, jako je tomu nyní? Není to žádný problém a nic se mu tím nijak nezkomplikuje; prostě jen v náboji nepoužije jeho tlačítko „Upravit“. Atd.
(Tedy — ony se určitě při případné implementaci objeví nějaké další potřebné úpravy a vylepšení a problémy k řešení; ale troufnu si tvrdit, že by neměly být ani zásadní, ani rozsáhlé.)
Hmmm... co Ty na to?
Crocodilus CZ
updated the status to
in progress
řešeno e-maily, nová verze je již na produkci.
OC
Crocodilus CZ: ta práce s nábojnicemi je z mého pohledu
naprosto skvělá
, tisíceré díky! Ještě jen musíme dořešit to přebíjení, práci s náboji a vrácení vystřelené nábojnice do skladu, a bude to zcela dokonalé :)Crocodilus CZ
Myslím, že je to realizovatelné a smysl to dává, otázka je jestli by to opravdu někdo používal v této podobě. Čímž nechci říct, že bych současné řešení považoval nutně za lepší..
Nedokážu to posoudit nakolik je to obecně přínosné pro přebíjení dlouhých.
OC
Crocodilus CZ: no, někdo asi jo; zda ale víc uživatelů než jen já, toť otázka... (Mimochodem, máš nějakou zpětnou, kolik uživatelů si zapnulo a použivá to stávající „Sledovat životní cyklus“? Já to nějakou dobu testoval, ale obávám se, že pro mne osobně to přínos nemá žádný :( )
Podobně nedokážu ručit za obecnou přínosnost, resp. za to, že počet uživatelů, jimž by to pomohlo, bude vyšší než 1 :)
Ale spíše bych tipoval, že ano, my střelci z dlouhých jsme blázni — namátkou třeba řešíme to, že opírat střelu o drážky sice může být krátkodobě přesné, ale dlouhodobě to není dobrý nápad, protože ony drážky, mrchy, ustupují, takže bullet skip se mění, a přesnost jde do háje — podrobněji a s odkazy na zdroje např. https://www.okoun.cz/boards/prebijeni?contextId=1072867481#article-1072867481 :)
Každopádně
- pokud by to mělo být nějak enormně pracné a/nebo se spoustou vnesených problémů v interakci se staršími funkčnostmi, zcela jistě to smysl nemá;
- já se ale domnívám (mohu se mýlit, neznaje Tvé API a strukturu aplikace!), že by to naopak spíš mělo být poměrně snadné a problémů by to mělo vnést naprosté minimum (možná dokonce žádné). Pokud se v tomto nepletu, pak bych to vcelku ocenil...