GeoGet

Complete geocaching solutions

User Tools

Site Tools


user:skript:stator:modules:stator-customtables

Moduly CustomizedTable, SQLTable

Moduly umožňují vytvářet uživatelsky široce konfigurovatelné seznamy nálezů, případně i jiných dat z databáze GeoGetu. Lze je použít všude tam, kde nestačí standardní moduly Statoru. Seznamu definujeme sloupce i filtr, které řádky má obsahovat. Dokumentace je společná pro moduly CustomizedTable a SQLTable, protože mají společné možnosti, jak definovat sloupce a způsob jejich formátování ve výstupním seznamu.

CustomizedTable

Modul pro vytvoření uživatelsky definovatelného seznamu (většinou seznamu nalezených keší) “klikacím způsobem”. Lze vypsat keše zvolených vlastností nebo ty, kterým jsme si přidělili nějaký tag. Uživatel může:

  • vybírat sloupce (podrobnější popis sloupců je uveden dále)
  • definovat hodnoty, které musí sloupec obsahovat, aby řádky (keše) byly do seznamu zařazeny
  • měnit pořadí sloupců
  • měnit zarovnání výpisu jednotlivých sloupců
  • určit sloupec, podle kterého budou řazené řádky v tabulce a určit směr a způsob řazení

Výběr hodnot

Běžně jsou do seznamu zařazeny všechny řádky získané z databáze. Výběrem hodnot je možné redukovat řádky, které mají být do seznamu vypsány. Je tak možné vytvořit seznam podle tagu FTF jen s řádky, které obsahují skutečné FTF a nikoli třeba STF. Je možné vytvořit seznam keší s terénem větším než 4, menším než 3 apod.

Pokud má být výpis řádků takovýmto způsobem omezen, je třeba vybrat správný operátor pro porovnání a pak zadat správně příslušnou hodnotu.

Implicitně je vybrán operátor cokoliv, což znamená, že hodnota je ignorovaná a vybírají se všechny řádky bez omezení hodnotou. Význam matematických operátorů je jasný, jen je třeba dát pozor na to, zda má být porovnání číselné nebo textové.

Při textovém porovnání musí být hodnota uzavřená v apostrofech ('hodnota'). Například pro výběr jen “individuálních” FTF nálezů použijeme u tagu operátor = a hodnotu 'FTF'.

Pro databázové operátory IN, NOT IN a BETWEEN platí obdoba toho, co bylo napsáno výše. Operátory pracují s více hodnotami a je nutné, aby byly od sebe odděleny čárkou (příklad pro operátor IN: 'FTF','STF').

Operátor LIKE porovnává hodnotu s maskou, která může obsahovat zástupné znaky _ a %. Příkladem může být zápis hodnoty pro zobrazení všech FTF hodnot: '%FTF%'. Budou tedy akceptovány jen hodnoty, které kdekoli obsahují text FTF (např. coFTF). Nebo výraz '%TF%' akceptuje hodnoty coFTF,FTF,STF,TTF,FTFco…. a další všemožné patvary které obsahují 'TF' a něco před a něco za.

Počitatelný sloupec (Counting)

Řada tabulek obsahuje sloupec s počtem (např. počet nalezených keší každého typu). Zaškrtávátko Počitatelný definuje, z kterého sloupce se tyto počty budou brát pro výpočet procent a zobrazení histogramu a pro tyto sloupce musí být sloupec s počtem definován, jinak dojde při výpočtech k havárii modulu - nebude totiž vědět, podle čeho a co má vlastně počítat.

Problémy

Je třeba si přiznat, že ačkoli se modul tváří jako univerzální, není v autorových silách jej tak skutečně udělat. Množství sloupců a variabilita jejich obsahu (zejména tagů) přináší značné potíže při automatickém vybírání dat. Může se tak stát, že automaticky sestavený příkaz pro vybrání dat z databáze nebude pracovat správně nebo dokonce nepůjde vůbec spustit.

Pokud nejde použít tento modul, bude nutné si sestavit SQL příkaz (nebo někoho požádat, aby to udělal za vás) a použít modul SQLTable. Ten je sice hardcore, ale umožní pokročilým uživatelům skoro všechno…

Řazení

Je možné sice definovat, že sloupec má numerický obsah a podle něj pak řadit, ale již není možné definovat, že sloupec obsahuje datum nebo čas a řadit podle data/času. Řazení podle data nálezu je v pořádku a pracuje pro databázové sloupce s datem. Nepracuje však s tagy protože hodnota tagu je v databázi jako text a textové datum není úplně primitivní převést na číslo, zejména když není jasné, v jakém formátu je datum napsané. Pokud nějaký tag bude obsahovat datum, podle kterého má být seznam řazen, je třeba, aby datum mělo napřed rok, pak měsíc, pak den a použít abecední řazení. Jiná cesta zatím není.

SQLTable

Tento modul je určen pokročilým uživatelů, kterým nestačí připravené moduly a požadují seznam, který není možné sestavit pomocí modulu CustomizedTable. Uživatel si sám vytvoří SQL dotaz, který modul zpracuje do výstupního seznamu. Navíc mohou být součástí SQL dotazu i “pokyny” pro zobrazení získaných informací. Pár ukázkových příkladů SQL dotazů najdete na samostatné stránce včetně nějakého vysvětlení.

V SQL příkazu je možné využít tabulku temp.Stator s některými dopočítanými údaji. Podrobnosti k této tabulce naleznete v dokumentaci pro tvorbu modulů.

Jméno sloupce v SQL

Jméno sloupce může obsahovat různé doplňující či formátovací informace a v tom případě je uzavřeno v uvozovkách. V případě přítomností podobných informací je za jménem sloupce znak = a za ním následují příslušné informace. Pokud je jich více, jejich příznaky jsou odděleny středníkem a na jejich pořadí nezáleží.

Příznaky doplňujících informací

Formátování Left, Right, Center, Hide
Příznak počitatelného sloupce Cnt (určuje sloupec, který bude použit pro výpočet celkového počtu jako základu pro sloupce pojmenované Percent nebo Histogram)
Přínak numerické hodnoty Num
Směr řazení Asc, Desc
Operátory pro výběr řádků podle hodnoty =, >, <, >=, ⇐, <>, IN1), NOT IN2), LIKE3), BETWEEN4)
Příznak nepovinné existence tagu NULL (pokud není tento příznak nastaven, do tabulky budou vybrány jen řádky, které mají nastavenou alespoň nějakou hodnotu tagu, s tímto příznakem budou použity i řádky bez přiřazeného tagu)

Příklad části SQL dotazu s nastavenými příznaky:

  SELECT tag_km.value "Km=Right;Cnt" ...

Sloupce modulů CustomizedTable a SQLTable

Vytváření seznamu je ve Statoru částeně společné pro oba moduly. Sloupce, které najdeme v nastavení CustomizedTable, je možné využít i v modulu SQLTable. Stačí dát poli v SQL dotazu alias se jménem uvedeným níže a výstup bude naformátován podle příkladu. Snadno tak vytvoříme uživateský seznam, která vypadá přesně ve stylu ostatních modulů Statoru.

JménoImplicitní zarovnáníVýznamPříklad naformátování obsahu sloupce ve výstupní tabulce
IDleftidentifikační kód keše (zobrazeno jako kód s odkazem na listing keše)GC14WV8
Typelefttyp keše (textově) Traditional Cache
Type iconcenterikona typu keše
Type icon, textlefttyp keše - ikona a text Traditional Cache
Nameleftnázev kešeTerezka
Sizeleftvelikost schránky (textově)Small
Size iconcenterikona velikosti schránky
Size icon, textleftvelikost schránky - ikona a text Small
Size as numleftvelikost schránky (číselně)1
Difficultycenterobtížnost keše (číselně)1.5
Difficulty iconcenterikona obtížnosti keše
Difficulty icon, textleftobtížnost keše - ikona a číslo 1.5
Terraincenterterénní obtížnost (číselně)4
Terrain iconcenterikona terénní obtížnosti
Terrain icon, textleftterénní obtížnost - ikona a číslo 4
Statusleftstav kešeDisable
Status iconcenterikona stavu keše
Status icon, textleftstav keše - ikona a text Disable
Authorleftautor keše (údaj uvedený v listingu)Pitris, adopted by D@ewo
DateCreatecenterdatum založení keše4.8.2007
Coordinatesleftsouřadnice keše
v SELECTu je potřeba vybrat obě části souřadnic, spojit je do jediné textové hodnoty a jako oddělovač dát středník:
SELECT (x||“;”||y) “Coordinates” FROM geocache…
N50°5.207' E014°25.065'
Countryleftzemě, ve které keš ležíCzech Republic
Country flagcentervlajka země
Country flag, textleftzemě - vlajka a název Czech Republic
Stateleftprvní úroveň správního členění (stát USA, kraj ČR, vojvodství Polska, …)Hlavní město Praha
Cache infoleftinformace o keši (ikona typu, kód, název a vlajka země) GC14WV8 - Terezka 
Distancerightvzdálenost ke keši od domácích souřadnic (v jednotkách uvedených v konfiguraci Statoru)69,94
Directionrightazimut ke keši od domácích souřadnic157°
Direction iconcenterikona směru ke keši od domácích souřadnic
Found datecenterdatum nálezu14.12.2013
Found timecenterčas nálezu
v SELECTu je potřeba hodnotu pojmenovat:
SELECT dtfound “Found time” FROM geocache…
16:25
Found DateTimecenterdatum a čas nálezu
v SELECTu je potřeba přepočítat obě hodnoty následovně:
SELECT dtfound*10000+dtfoundtime “Found DateTime” FROM geocache…
14.12.2013 16:25
Order by findsrightpořadí nálezu3126
Order rowrightpořadové číslo řádku v tabulce2
Date of last foundcenterdatum posledního nálezu na keši25.8.2014
Milestonerightpořadí nálezu3126
Milestone, intervalrightpočet dní od předchozího milníku128
Countrightpočet nálezů21
Percentrightpodíl počtu nálezů v %
(zdrojová hodnota je absolutní počet nálezů, který se přepočte na podíl z celku)
4.52
Histogramsloupec histogramu počtu nálezů
(zdrojová hodnota je absolutní počet nálezů, který se přepočte na podíl z celku)
Percent explicitrightpodíl počtu nálezů v %
(zdrojová hodnota je přímo podíl nálezů v procentech)
4.52
Histogram explicitsloupec histogramu počtu nálezů
(zdrojová hodnota je přímo podíl nálezů v procentech)

(1.2.2.9) První buňka (sloupec) na řádku může mít v obou seznamech zvláštní význam. Pokud obsah prvního sloupce na kterémkoli řádku bude na začátku obsahovat text #_highlight_#, pak celý řádek seznamu bude zvýrazněn a do sloupce seznamu bude vypsán obsah bez tohoto textu.

Nadpisy sloupců lze definovat v souboru ColumnNames[_XX].ini.

Dokumentace modulů Statoru

PageDateDescriptionTags
Modul Badges 2016/01/06 19:01 stator Modul Badges FIXME doplnit popis samotného modulu Dokumentace modulů Statoru stator stator_modul ,
Modul BookmarkComposer 2015/12/09 09:56 stator Modul BookmarkComposer FIXME doplnit popis modulu Použití tohoto modulu závisí na správném otagování keší. Je možné postupovat ručně nebo si pro budou… ,
Modul CalcBG 2019/07/10 16:35 stator Modul CalcBG Popis modulu Výpočetní modul, který vyhodnocuje informace o získaných odznacích pro modul Badges. Je použit automaticky, ale obsahuje i… ,
Modul CalcGSAPI 2019/06/05 14:32 stator Modul CalcGSAPI Popis modulu Výpočetní modul, který vyhodnocuje informace z GSAPI. Je použit automaticky. Jeden suvenýr do textu Modul kromě vytvo… ,
Modul CalcMain 2019/06/05 14:33 stator Modul CalcMain Popis modulu Hlavní výpočetní modul Statoru. Používají ho další moduly, jako Badges, Numbers a FTFPodium a mnoho dalších. Pokud je jaký… ,
Modul CalcTrackable 2015/12/29 22:07 stator Modul CalcTrackable Popis modulu FIXME Modul využívá dat stažených pomocí GeoJarry, která “přechroustá” a předá k dalšímu použití. Seznam globálníc… ,
Modul CwgList 2015/12/30 08:18 stator Modul CwgList Modul je určen pro zobrazování CWG (ale i SQ, vizitky a další typy) a data načítá z pluginu CwgList. Parametry modulu Základní funkce a… ,
Modul MapPinboard 2016/03/01 00:07 stator Modul MapPinboard Modul pro puntíkování nálezů do mapy. Nahrazuje původní modul MapCzDot a má mnohem širší možnosti nastavení. Především výběr území, k… ,
Modul MyOwnLife 2016/02/18 00:00 stator Modul MyOwnLife FIXME Parametry modulu * TagXTF obsahuje jméno kategorie tagu (implicitně OnMyCache???), do které uživatel zadává nicky FTFkařů na … ,
Modul Numbers 2017/04/24 21:26 stator Modul Numbers Popis modulu FIXME Modul vytváří tabulku se zajímavými čísly rozdělenou do několika tématických částí. Pokud nemáte v částil s Logy uv… ,
Modul SetFilter 2016/05/18 08:47 stator Modul SetFilter Popis modulu Běžně moduly do svého výstupu používají všechny nalezené keše. Pomocí modulu SetFilter1.4.1.12, je možné zadat podmínku a… ,
Modul SQLTable - příklady SQL dotazů 2016/02/18 11:08 stator Modul SQLTable - příklady SQL dotazů Protože modul je docela komplikovaný a jeho možnosti opravdu široké, ukážeme jeho možnosti na několika příkladech.… ,
Moduly CustomizedTable, SQLTable 2018/04/03 09:51 stator Moduly CustomizedTable, SQLTable Moduly umožňují vytvářet uživatelsky široce konfigurovatelné seznamy nálezů, případně i jiných dat z databáze GeoGetu.… ,
Stator - moduly pro generování statistik 2019/06/13 20:32 stator Stator - moduly pro generování statistik Na této stránce je základní seznam všech modulů pro plugin Stator a jejich stručný popis. Naprostá většina mod… , , , , ,
1)
výsledek je v seznamu hodnot oddělených čárkou např.: 'A', 'B', 'C'.
2)
výsledek není v seznamu hodnot oddělených čárkou např.: 1, 2, 3.
3)
Výsledek se podobá výrazu v uvozovkách např. '%test%' takže výsledek může být např Atest, TEST, test, Test1…. Symboly '%' určují volitelnou/různou část hledaného řetězce. Pokud tam není žádný symbol '%' vpodstatě se LIKE degraduje na '=' s tím, že ignoruje velikost písmen. Ještě v LIKE může být použit symbol '_' jako zástupný symbol jednoho znaku např.: '_est' bude dávat slova test, Test, Lest… ale už tam nemůže být výsledek iTest. Symboly '%' a '_' se dají kombinovat.
4)
výsledek je v rozmezí dvou zadaných hodnot např 1, 10 je 1 až 10
user/skript/stator/modules/stator-customtables.txt · Last modified: 2018/04/03 09:51 by drakmrak