Věk osob
Napsal: 28 dub 2016 14:00
Osobně mám potlačeny údaje o žijících osobách, proto tento report nemohu sám využít. Ale uvědomil jsem si, že by mohl potěšit tvůrce stránek v TNG, kteří údaje o žijících osobách na svých stránkách uvádějí. Otestoval jsem jej v testovací databázi, proto je barevné podání netypické. POZOR: Report v základní verzi prezentuje údaje o věku všech osob v databázi, bohužel tedy i osob, jejichž údaje by měly spatřit jenom osoby s oprávněním.
Pozorný čtenář si jistě uvědomil, že předností reportu je i možnost výstupní údaje si seřadit podle aktuální potřeby anebo přání uživatelů. V základní verzi je výstup uspořádan sestupně podle dosaženého věku.
V případě, že některé datum je známo pouze jako odhadovaný letopočet, bude výsledný věk osoby uveden jako odhadovaný. Jistou nevýhodu představuje zobrazení let ve sloupci Věk výrazem "y". Pokud naleznete šikovné řešení, přidejte je jako odpověď na toto téma.
Pozor, v níže uvedeném SQL dotazu si nahraďte výraz yourtree v předposledním řádku za skutečný název Vašeho stromu Admin | Stromy správný název je v poli ID číslo.
Inspirací pro tento report mi byla stránka http://tng.community/index.php?/forums/topic/2960-age-report/
Ukázka výstupu:
Aby se zobrazily české názvy v záhlaví je nutný zásah do souboru cust_text.php ve složce languages.
Pozorný čtenář si jistě uvědomil, že předností reportu je i možnost výstupní údaje si seřadit podle aktuální potřeby anebo přání uživatelů. V základní verzi je výstup uspořádan sestupně podle dosaženého věku.
V případě, že některé datum je známo pouze jako odhadovaný letopočet, bude výsledný věk osoby uveden jako odhadovaný. Jistou nevýhodu představuje zobrazení let ve sloupci Věk výrazem "y". Pokud naleznete šikovné řešení, přidejte je jako odpověď na toto téma.
Pozor, v níže uvedeném SQL dotazu si nahraďte výraz yourtree v předposledním řádku za skutečný název Vašeho stromu Admin | Stromy správný název je v poli ID číslo.
SELECT personid, lastname, firstname, birthdate, deathdate,
@ay := year(@adt := if(deathdatetr,replace(deathdatetr,'-00','-01'),curdate())) -
year(@abd := replace(birthdatetr,'-00','-01')) - (mid(@adt,6,5) < mid(@abd,6,5)) as ay,
@am := (mid(@adt,6,5) < mid(@abd,6,5)) * 12 + month(@adt) - month(@abd) - (day(@adt) < day(@abd)) as am, @ad := day(@adt)-day(@abd) + (day(@adt) < day(@abd)) * day(last_day(@adt - interval 1 month)) as ad,
@ca := (birthdatetr!=@abd or(deathdatetr != @adt and not living)) as about,
concat(convert(@ay,char),'y, ',convert(@am,char),'m, ',convert(@ad,char), if(@ca,'d (about)','d')) as Age, living
FROM tng_people where gedcom = 'yourtree' and birthdatetr and (deathdatetr or living)
order by ay desc, am desc, ad desc,lastname, firstname
Inspirací pro tento report mi byla stránka http://tng.community/index.php?/forums/topic/2960-age-report/
Ukázka výstupu:
Aby se zobrazily české názvy v záhlaví je nutný zásah do souboru cust_text.php ve složce languages.