Přeskočit odkazy

Navigace řízená databází v aplikaci FileMaker (Go)

Školení, kurzy a koučování FileMakeru

Uživatelské rozhraní řízené databází v databázích FileMaker (Go)Navigace je dnes ve většině řešení stále realizována staticky, tj. do rozvržení jsou vložena statická tlačítka s odpovídajícím označením a je jim přiřazeno tlačítko. Tento postup má tu nevýhodu, že při rozšířeních nebo změnách je obvykle nutné přidat nebo odebrat odpovídající tlačítko na několika rozvrženích, a je tedy poměrně náchylný k chybám. Tímto způsobem lze také jen s velkými obtížemi realizovat vícejazyčná řešení. Pomocí navigace řízené databází v řešení FileMaker se lze zmíněným problémům elegantně vyhnout. Taková navigace má tu výhodu, že se na každém layoutu nacházejí vždy stejné navigační prvky a že lze bez problémů realizovat například i vícejazyčnost. Databází řízenou navigaci ve FileMakeru lze v zásadě realizovat různými způsoby. V tomto článku vám ukážu jednoduchý způsob realizace navigace řízené databází v layoutu FileMakeru.Databáze lze implementovat. V závěru článku je uveden databázový soubor, o kterém se hovoří v 7. RP a v 7. Formát FMP12 pro FileMaker 9-11 a FileMaker 12 lze stáhnout zdarma.

Základní úvahy: Co by měla navigace umět?

V první řadě byste si měli uvědomit, jaké jsou cíle, co by měla navigace umět a jak by měla být strukturovaná. Pro svůj ukázkový soubor jsem definoval následující požadavky:

  • Grafická tlačítka menu s vyměnitelnou grafikou
  • Individuální označení každého navigačního tlačítka (volitelně vícejazyčné)
  • Navigace na dvou úrovních
  • Jednoduchá správa navigace pro všechna rozložení
  • Běží bez zásuvného modulu a pod FileMaker Go pro iPad a iPhone

Řešení navigace uvedené v tomto příkladu nefunguje bez úprav, pokud má uživatelské rozhraní běžet v několika oknech, protože aktuální název rozložení je uložen v globálním poli. Tento problém by se dal poměrně snadno vyřešit pomocí správy oken - protože však chci ve svém příkladu ukázat co nejjednodušší navigační řešení, tuto možnost jsem nezapracoval.

Hlavní datová tabulka s globálními poli

Abychom mohli zobrazit grafické prvky a popisky v rozvrženích, musíme vytvořit odpovídající pole v centrálním systému. Tabulka soubor. V našem příkladovém souboru se příslušná pole nacházejí v tabulce <>. Pro grafické prvky se používají pole Media a pro popisky textová pole. Všechna příslušná pole v tabulce <> musí být definována jako globální pole, aby bylo možné obsah polí zobrazit i později v režimu vyhledávání. V řešení byla vytvořena následující globální pole pro grafické prvky navigace:

  • skn_key_active (aktivní tlačítko)
  • skn_key_inactive (neaktivní tlačítko)

Pro označení tlačítek byla vytvořena následující globální pole:

  • txt_z1s1 (Označení navigačního tlačítka, řádek 1, sloupec 1)
  • txt_z1s2 (Označení navigačního tlačítka, řádek 1, sloupec 2)
  • txt_z1s3 (Označení navigačního tlačítka, řádek 1, sloupec 3)
  • txt_z1s4 (Označení navigačního tlačítka, řádek 1, sloupec 4)
  • txt_z1s5 (Označení navigačního tlačítka, řádek 1, sloupec 5)
  • txt_z1s6 (Označení navigačního tlačítka, řádek 1, sloupec 6)
  • txt_z1s7 (Označení navigačního tlačítka, řádek 1, sloupec 7)
  • txt_z1s8 (Označení navigačního tlačítka, řádek 1, sloupec 8)

Pro druhou úroveň (řádek) byla vytvořena pole txt_z2s1 až txt_z2s8. Pro navigaci byla vytvořena pole pro Skript-parametry, které lze přizpůsobit v navigaci. Tato pole jsou zároveň globálními poli v tabulce <>:

  • par_z1s1 (Parametr skriptu pro navigační pole řádek 1, sloupec 1)
  • par_z1s2 (Parametr skriptu pro navigační pole řádek 1, sloupec 2)
  • par_z1s3 (Parametr skriptu pro navigační pole řádek 1, sloupec 3)
  • par_z1s4 (Parametr skriptu pro navigační pole řádek 1, sloupec 4)
  • par_z1s5 (Parametr skriptu pro navigační pole řádek 1, sloupec 5)
  • par_z1s6 (Parametr skriptu pro navigační pole řádek 1, sloupec 6)
  • par_z1s7 (Parametr skriptu pro navigační pole řádek 1, sloupec 7)
  • par_z1s8 (Parametr skriptu pro navigační pole řádek 1, sloupec 8)

Pro druhou úroveň (řádek) byla vytvořena pole par_z2s1 až par_z2s8. Tabulka <> obsahuje také globální pole <>, do kterého se zapisuje aktuální layout, globální klíčové pole <> (obsahuje "1") a některé další grafické prvky pro zobrazení na layoutech FileMakeru.

Tabulka GUI pro ovládání navigace

Všechna rozložení jsou uložena v další tabulce nazvané <> s odpovídajícím označením a parametry. Jako Primární klíč v této tabulce se používá název rozložení. Na rozdíl od tabulky <> nejsou pole v této tabulce vytvořena jako globální pole, ale jako běžná textová a mediální pole. Pro označení byla vytvořena následující pole:

  • txt_z1s1 (Označení navigačního pole, řádek 1, sloupec 1)
  • txt_z1s2 (Označení navigačního pole, řádek 1, sloupec 2)
  • txt_z1s3 (Označení navigačního pole, řádek 1, sloupec 3)
  • txt_z1s4 (Označení navigačního pole, řádek 1, sloupec 4)
  • txt_z1s5 (Označení navigačního pole, řádek 1, sloupec 5)
  • txt_z1s6 (Označení navigačního pole, řádek 1, sloupec 6)
  • txt_z1s7 (Označení navigačního pole, řádek 1, sloupec 7)
  • txt_z1s8 (Označení navigačního pole, řádek 1, sloupec 8)

Pro druhou úroveň nabídky byla vytvořena pole txt_z2s1 až txt_z2s8. Podobně jsou vytvořena pole

  • <> do <> a <> do <> pro parametry skriptu a
  • <> do <> a <> do <>

jako příznak, zda je příslušné pole aktivní nebo ne (obsahuje 1 pro aktivitu a jinak je prázdný). Tabulka <> obsahuje pole <> a globální klíč <>.

Propojení tabulky grafického uživatelského rozhraní s hlavními daty

Dále je třeba propojit tabulku grafického uživatelského rozhraní s hlavními daty. Všimněte si, že na tabulku <> existují dva odkazy:

  • gui (<> = <>)
  • glo_gui (<> = <>)

První odkaz "gui" je nutný pro navigační funkci. Zde globální pole <> obsahuje název aktuálního rozložení a pole <> obsahuje název rozložení v databázi GUI. Druhý odkaz je globální pro zobrazení rozvržení administrace s TO = master data.

Každá datová tabulka v řešení FileMaker musí mít pole <> a musí být prostřednictvím tohoto pole globálně propojena s tabulkou <>. V našem příkladu je to tabulka <>.

Graf GFM_GUI_Relationship

Odpis pro strukturu polí souvisejících s navigací

Jistě si pamatujete, že jsme v tabulce <> vytvořili několik globálních polí, která obsahují grafický prvek a textový popisek pro každé tlačítko. Obsah, který se do těchto polí zapisuje, pochází z tabulky <> pro každé jednotlivé rozložení. Po kliknutí na tlačítko se subskript ts.GUI_Menu Layout postará o přenos dat z tabulky <> do globálních polí tabulky <>.

Prvním krokem je načtení režimu okna, protože databáze musí být v režimu prohlížení, aby bylo možné přenášet data. Prvním krokem je tedy zjištění, v jakém režimu se databáze právě nachází:

Nastavit proměnnou [1TP4Window mode; Hodnota:Get ( Window mode )]
If [windowmode = 1]
   Aktivuje režim posouvání
Konec (if)

Název aktuálně volaného rozvržení se pak zapíše do globálního klíčového pole _sys_Akt_Layout tabulky "std":

Nastavení hodnoty pole [std::_sys_Akt_Layout; Get ( LayoutName )

Všechna globální pole v tabulce "std", která jsou relevantní pro navigaci, jsou pak vyplněna hodnotami. To se týká všech osmi tlačítek v prvním a druhém řádku v tabulce Navigační panel:

Mediální pole pro tlačítka nabídky:

Nastavení hodnoty pole [std::nav_z1s1;
If(IstLeer(gui::txt_z1s1); "";
Pokud(
IstLeer(gui::akt_z1s1); std::iPad_taste_inaktiv;
std::iPad_button_active)]

Řádek 1, sloupec 1, 1 až 8 v každém případě s ohledem na to, zda je položka nabídky aktivní, nebo ne.

Štítky pro tlačítka nabídky:

Nastavení hodnoty pole [std::txt_z1s1; gui::txt_z1s1]

Řádek 1, sloupec 1, vždy 1 až 8

Parametry skriptu pro tlačítka nabídky:

Nastavení hodnoty pole [std::par_z1s1; gui::par_z1s1]

Řádek 1, sloupec 1, vždy 1 až 8

V posledním kroku se skript vrátí k poslednímu dotazu v režimu vyhledávání, pokud by byl skript zrušen příkazem Režim vyhledávání byly volány z.

lay.navigation: Centrální skript pro navigaci

Skript "lay.Navigation" je ústředním skriptem pro navigaci ve všech rozloženích. V naší malé ukázkové databázi jsme zde zatím použili pouze "normální" rozvržení obrazovky, ale stejný princip lze samozřejmě použít například i u rozvržení seznamu nebo tisku. Parametrem skriptu použitým v tomto skriptu je parametr skriptu určený pro rozvržení, na které se dotazujeme v prvním řádku.

If [Get(ScriptParameter) = "Parametry skriptu ze správy rozložení"]
   Otevřít soubor ["GFM_GUI"]
   Přejděte na rozvržení ["Název rozvržení"]
   Spusťte skript ["ts.GUI_Menu Layout"]
   Obnovit okno [Smazat výsledky spojení v mezipaměti]
Konec (if)

Zobrazení navigace v rozvržení aplikace FileMaker

V rozvržení FileMaker lze nyní navigaci integrovat vždy stejným způsobem do každého rozvržení, protože se skládá výhradně z polí tabulky "std", jejíž globální pole jsou k dispozici všude a lze je zobrazit i v režimu vyhledávání.

Označování polí GFM_GUI_Field

Texty zobrazené v navigaci odpovídají textům zadaným v rozvržení "Správa - Navigace" pro příslušné rozvržení:

GFM_GUI_Administration_Navigation

Rozložení ukazuje Portál do tabulky "gui", ve které je uloženo každé rozložení s přidruženými položkami nabídky, označením a parametry skriptu. Má-li být přidáno nové rozložení, stačí kliknout na tlačítko [+], aby se zkopíroval přibližně odpovídající datový záznam, a poté kopii přizpůsobit. Tlačítko [-] lze použít k odstranění rozvržení z navigace.

GFM_GUI_Administration_Graphics

Všechny grafické prvky zobrazené na této obrazovce jsou globální pole z tabulky "std". Tabulka byla obohacena o některá další pole, například různá barevná pozadí sloupců, která lze použít v portálech.

Veškerou grafiku uživatelského rozhraní lze přizpůsobit v nabídce "Správa - Grafika". V ukázkovém souboru jsou grafiky uloženy jako upravitelné soubory Fireworks PNG, některé s gradientními cestami. Kliknutím pravým tlačítkem myši lze obsah jednotlivých polí médií nahradit novým obsahem.

Vstupní maska pro příkladovou tabulku

GFM_GUI_Data_Input

Vzorový soubor obsahuje vzorovou tabulku a vzorový portál, který je zobrazen v navigaci v části [Data - Vstup]. Ukázkový portál obsahuje tlačítka a pozadí sloupce z tabulky [std] pro ilustrační účely. Pozadí sloupců uložená v tabulce [std] lze také použít k realizaci podmíněného formátování portálů pomocí pole vzorců cílového typu "Média".

Další vývoj modelu kotevní bóje

Příkladový soubor, který si můžete stáhnout na konci tohoto článku, byl částečně optimalizován pro použití s modelem kotevní bóje. Pro samotnou navigaci však nemohl být důsledně implementován, protože vztah "std" musí mít vždy stejné jméno. Příkladné tabulky dat a portálů však byly implementovány podle modelu kotevní bóje, takže zbývající část dat lze bez problémů realizovat i v tomto modelu.

Implementace dalších funkcí

Na základě vzorového souboru lze poměrně snadno integrovat další funkce. Hotový systém by například mohl obsahovat rozvržení pro všechny systémy, tj. Mac, Windows, iPad a iPhone, a díky možnosti skinování přecházet na rozvržení, která odpovídají systému vizuálně i velikostí. Navigaci lze také v několika krocích realizovat v několika jazycích, což umožňuje libovolný počet překladů. Bylo by také myslitelné mít například funkci, která si pamatuje poslední podkategorii vyvolanou z každé hlavní kategorie a při skoku zpět do první hlavní kategorie nepřejde na rozložení definované v databázi souborů GUI, ale na rozložení naposledy vyvolané uživatelem v této hlavní kategorii. Pokud máte nějaké další nápady, neváhejte zanechat komentář :-)

Stáhnout ukázkové řešení FileMaker GFM_GUI

Níže si můžete stáhnout ukázkový soubor "GFM_GUI", který je vysvětlen v tomto článku. Formát 7. RP pro FileMaker 7-11 a ve formátu FMP12 pro FileMaker 12 zdarma. Chcete-li zahájit stahování, doporučte nás na Facebooku, Google+ nebo Twitteru.

Informace o souboru: Archiv ZIP (697 kB)
Obsahuje: GFM_GUI.fp7 (1,6 MB), GFM_GUI.fmp12 (2,5 MB)

Stáhnout ukázkový soubor FileMakeru

Zanechat komentář

  1. Ahoj Markusi,
    Vaše navigační řešení zní zajímavě; rád bych si stáhl ukázkový soubor:
    - registrovaná na FB
    - Kliknuto jako
    - Stahování se nespustí :(

    Můžete mi dále pomoci?

    pozdrav
    ccp

  2. ... omlouvám se, prosím, vezměte to zpět ... to fungovalo v jiném prohlížeči ... děkuji moc za vaši snahu a přeji hezký den

Sdílet tuto stránku:

Software ERP je stejně flexibilní jako vaše společnost.
Rádi vám poradíme.

Přizpůsobitelný software ERP pro Mac, Windows a iOS.

Nacházíte se zde: Masarykova univerzita Lidé se mohou těšit na další informace: FileMaker (Go) s navigací řízenou databází