
Jsou vyžadovány dva bezplatné pluginy
Popsané řešení využívá funkce bezplatného zásuvného modulu Base Elements, který běží pod softwarem FileMaker 11 a 12. Zásuvný modul Base Elements lze zdarma stáhnout z webových stránek výrobce Goya Pty Ltd. Staženo a je k dispozici ke stažení pro Mac OS X a Windows ve 32bitové nebo 64bitové verzi.
Dialogový zásuvný modul, který je rovněž k dispozici zdarma, je vyžadován pro pole pro výběr souborů. Zásuvný modul dialogu podporuje širokou škálu dialogů a vstupních možností, je k dispozici pro Mac OS X a Windows a lze jej použít pro ke stažení zde stát se.
Užitečné vlastní funkce
Pro usnadnění práce s cestami obsahuje ukázkové řešení celkem sedm vlastních funkcí. Ty lze zobrazit pomocí aplikace FileMaker Pro Advanced a jsou k dispozici také jako použitelné funkce v aplikaci FileMaker Pro. Dvě vlastní funkce, které používáme v praxi, se nazývají
PathPluginToFM ( Path ) - převede nativní systémovou cestu na cestu FileMakeru. Funkce je k dispozici v klientech Windows a Mac.
PathFMToPlugin ( Path ) - převede cestu FileMakeru na nativní systémovou cestu. Funkce je k dispozici v klientech pro Windows a Mac a lze ji použít například pro dialogový doplněk, který je rovněž k dispozici zdarma, k zadání cesty v poli pro výběr souborů.
Dalších pět vlastních funkcí jsou podfunkce a jsou interně používány dvěma zmíněnými vlastními funkcemi.
Nastavení cesty k paměti
Náš ukázkový soubor obsahuje celkem tři tabulky: Aktualizační funkce, Tabulka 1 a tabulku 2. Příkladový soubor simuluje řešení FileMaker, v němž lze prostřednictvím exportu a importu aktualizovat několik tabulek. Aby FileMaker věděl, kam mají být databáze uloženy, musí být nejprve nastavena cesta k uložení. To se provede pomocí tlačítka [...] před polem pro cestu, které obsahuje následující údaje Skript volá "sf.path selection". Tento skript vyvolá pouze pole pro výběr souboru pomocí dialogového zásuvného modulu:
Nastavit proměnnou [$pfad; Hodnota:Dialog_SelectFolderDialog (""; "Zvolte systémovou cestu...";
PathFMToPlugin (Get(DocumentPath)))]
Vybraná cesta se přenese do Variabilní $path byla napsána. V tomto příkladu byl jako výchozí cesta zadán adresář dokumentu aktuálního uživatele (kde by měl začít dialog výběru). Protože zásuvný modul dialogu přijímá nativní cesty, a nikoli cesty FileMakeru, cesta Get(DocumentPath) je převedena na nativní cestu pomocí funkce PathFMToPlugin (). Pokud uživatel zadá cestu a klikne na tlačítko [Vybrat] se cesta nastaví pomocí funkce
Nastavení hodnoty pole [Update function::File path; $path]
v terénu <> byla napsána. To znamená, že řešení má nyní platnou cestu k souboru, do kterého lze zapsat databáze pro aktualizaci.
Export všech tabulek do externích databází
Vzhledem k tomu, že řešení má nyní platnou cestu pro export, lze nyní exportovat všechny tabulky do externích databází. Datová tabulka se exportuje pomocí čtyř řádků skriptu:
Nastavit proměnnou [$path; Hodnota:PathPluginToFM (Aktualizace funkce::Cesta k souboru) & "/Update function.fmp12]
Tento příkaz zapíše cestu k souboru kompatibilnímu se systémem FileMaker uloženou v tabulce funkce Update do proměnné $path.
Přejděte na Rozložení ["Funkce aktualizace" (Funkce aktualizace)]
Přepnutí na rozvržení, ze kterého se mají exportovat datové záznamy.
Zobrazit všechny datové záznamy
Protože se při exportu mají exportovat všechny datové záznamy, vyvolá tento příkaz všechny datové záznamy v cílové tabulce. U speciálních exportů lze v tomto okamžiku provést i jiný výběr datových záznamů.
Export datových záznamů [Bez dialogového okna; "$path"; Unicode (UTF-16)]
Tento příkaz exportuje datové záznamy z tabulky volaného rozložení do externího souboru zadaného v $path. V našem příkladu byl jako formát souboru zadán FileMaker (.fmp12). V tomto okamžiku je důležité zadat také pořadí polí, ve kterém se mají data exportovat:
Tyto čtyři příkazy se nyní jednoduše opakují pro každou tabulku v databázi. V každém případě se název souboru pro proměnnou $pathRozložení, které se má vyvolat, a pořadí polí pro export se přizpůsobí pro každou tabulku.
Skript pro kompletní export dat obsahuje na konci čtyři výše popsané příkazové řádky pro každou tabulku, která má být exportována v rámci aktualizační funkce.
Spuštění exportu dat pro importní skript
Ve svém řešení byste nyní měli jednou spustit skript pro export dat - nejen pro testovací účely, ale také potřebujete exportované soubory, abyste mohli vytvořit skript pro import. Pokud je váš exportní skript bezchybný, měly by se nyní všechny soubory nacházet ve vybraném adresáři.
Automatický import všech exportovaných databází
Posledním krokem je automatický import dat z exportovaných databází zpět do řešení. Vzorové řešení obsahuje skript "ts.Update_Import", který má následující strukturu:
Nastavit proměnnou [$update path; hodnota:Update function::File path]
Tímto příkazem se hodnota zadaná do pole <> cesta uložená v proměnné Cesta k $update je napsáno. Toto přiřazení je třeba v tomto skriptu provést pouze jednou. Všechny další příkazy se opakují tak často, jak často se mají importovat tabulky.
Nastavit proměnnou [$pfad; Hodnota:PathPluginToFM ($updatepfad) & "/Updatefunktion.fmp12"]
Proměnná $path tento příkaz slouží ke změně Cesta k $update a název souboru exportované databáze a celá věc se převede na platnou cestu FileMakeru pomocí funkce "PathPluginToFM".
Přejděte na Rozložení ["Funkce aktualizace" (Funkce aktualizace)]
Přepnutí na rozvržení, do kterého se mají importovat datové záznamy.
Zobrazit všechny datové záznamy Smazat všechny datové záznamy [Bez dialogového okna]
Pokud jsou v tabulce ještě staré datové záznamy, jsou před importem pomocí těchto dvou příkazů z tabulky dat odstraněny.
Import datových záznamů [Bez dialogového okna; "$pfad"; Add; Mac Roman]
Tento příkaz importuje datové záznamy do tabulky volaného rozložení (zde: "Aktualizační funkce").
Trik se sekvencí polí
Při vývoji tohoto skriptu však nelze příkaz pro import jednoduše zapsat tímto způsobem, protože pokud byla jako název souboru zadána proměnná, nelze definovat pořadí polí pro import. Z tohoto důvodu je třeba nejprve jako název souboru zadat také databázový soubor exportovaný v předchozím kroku. To provedete poklepáním na příkaz [Import datových záznamů...] a klikněte na tlačítko [Přidat soubor...]. Nyní vyberte příslušný databázový soubor exportovaný v předchozím kroku:
Po uzavření dialogu s [OK] potvrzeno, můžete nyní přejít na [Zadejte pořadí importu] zadat pořadí polí, ve kterém se mají databáze importovat.
Pod [Zdroj] zobrazí se tabulka dat dříve exportované databáze. Ve vyskakovacím menu vyberte [Cíl] Vyberte příslušnou cílovou tabulku, do které se mají importovat data z externí datové tabulky, a v případě potřeby upravte pořadí polí. Po kliknutí na [OK] zadat, zda se mají provádět automatické vstupní volby, a kliknout na tlačítko [Import]uložit možnosti importu.
Nyní znovu klikněte na [Soubor...] pod Zadejte zdroj dat nebo dvakrát klikněte na příkaz skriptu Import datových záznamů. Nyní odstraňte řádek file:Dateiname.fmp12tak, aby ve vstupním poli pod seznamem cest bylo pouze $path stojany.
Chcete-li automaticky importovat další tabulky, opakujte postup pro každou datovou tabulku. Na konci bude importní skript vypadat jako naše ukázkové řešení:
Tím je funkce automatického přenosu dat pro aktualizace dokončena. V ukázkovém řešení byly dva skripty přiřazeny dvěma tlačítkům [Aktualizace: Export] a [Aktualizace: Import] je umístěn. Tlačítkem [Cesta k aplikaci FileMaker] ukazuje, jak Vlastní funkce PathPluginToFM (cesta) převede systémovou cestu na cestu FileMakeru.
Stáhnout ukázkový soubor pro FileMaker 12
Jak přenést skripty ze vzorového souboru do řešení
Skripty lze snadno přenášet z jednoho řešení FileMakeru do druhého prostřednictvím schránky. Stačí otevřít dialogové okno Správa skriptůVyberte požadovaný skript myší a zkopírujte jej do schránky pomocí nabídky [Úpravy - Kopírovat] nebo kombinace kláves [Ctrl/Cmd-C]. Poté otevřete stejný dialog v cílovém řešení a jednoduše znovu vložte dříve zkopírovaný skript pomocí příkazu nabídky [Úpravy - Vložit].
Přenos tabulek ze vzorového souboru do řešení
Tabulky lze do stávajícího řešení vložit několika způsoby. Nejjednodušší je importovat tabulku pomocí tlačítka [Importovat...] v dialogu Správa databáze. Všechny tabulky, které mají být importovány ze zdrojového řešení, lze poté vybrat v následném dialogu. Tento způsob je proto vhodný zejména v případě, že se má importovat více tabulek najednou. Pokud se má importovat pouze jedna tabulka, lze to provést také prostřednictvím schránky jako skript. Má-li být tabulka importována spolu s daty, lze to provést příkazem [Soubor > Importovat záznamy > Soubor]. V dialogovém okně pro import je cílová tabulka Nová tabulka musí být zadán.
Přenos seznamů hodnot ze vzorového souboru do řešení
Seznamy hodnot lze snadno importovat z jednoho řešení FileMakeru do druhého prostřednictvím schránky. Stačí otevřít dialog v nabídce [Soubor/Soubor > Správa > Seznamy hodnot], vybrat požadovaný seznam hodnot a kliknout na tlačítko [Importovat]. Seznam hodnot myší a zkopírujte seznam hodnot do schránky pomocí nabídky [Úpravy - Kopírovat] nebo kombinace kláves [Ctrl/Cmd-C]. Poté otevřete stejný dialog v cílovém řešení a vložte dříve zkopírovaný seznam hodnot pomocí příkazu nabídky [Úpravy - Vložit].
Jak přenést vlastní funkce z příkladového souboru do řešení
Klikněte na tlačítko [Importovat] v dialogu [Soubor > Správa > Vlastní funkce...] a poté vyberte vzorový soubor. V následujícím dialogu vyberte požadované vlastní funkce a dialog potvrďte. Upozorňujeme, že tato funkce je k dispozici pouze v aplikaci FileMaker Pro Advanced, nikoli však v aplikaci FileMaker Pro.

Markus Schall vyvíjí od roku 1994 databáze, rozhraní a podnikové aplikace na míru založené na Claris FileMaker. Je partnerem společnosti Claris, držitelem ocenění FMM Award 2011 a vývojářem aplikace Software ERP gFM-Business. Je také autorem knih a zakladatelem organizace M. Schall Publishers.








Ahoj Markusi,
Nebylo by jednodušší oddělit formu, obsah a funkci? Takto lze všechny soubory kromě obsahové DB snadno nahradit libovolným programem pro aktualizaci instalace. Skript s právy správce by mohl manipulovat i s poli v obsahové DB.
Vyzkoušel jsem také výše uvedenou variantu. Pak byste mohli uložit pouze jednu tabulku na DB!
Dnes bych to naprogramoval takto:
1. DB pro funkce
2. Rozložení DB
3. Struktura DB/Relas
4. Obsah DB
Je to jasné a velmi snadno se to aktualizuje.
Ahoj Felixi,
Struktura, ve které je databáze vytvořena, je na vás. Tento článek pouze ukazuje, jak lze najednou importovat datový obsah tabulek.
S pozdravem!