FileMaker の Web ビューアで html ファイルを相対パスで呼び出す
FileMaker の Web ビューアでローカルの html ファイルを呼び出したいことがある。URL は html ファイルの絶対パスを指定すればいい。例えばデスクトップの abc.html というファイルを呼び出すなら以下のように URL を指定する。
file:///Users/[ユーザー名]/Desktop/abc.html
しかし、別のディレクトリにファイルを移動したり、別マシンへ FileMaker ファイルおよび html ファイルを移動したときにまた絶対パスを指定し直さなければいけない。
そういうときは、相対パスで指定するのが鉄則である。でも、その方法に予想以上に苦労したのでメモしておく。
今回は、FileMaker ファイル(ABC.fmp12 とする)と html ファイル(abc.html とする)はどちらもデスクトップ上に置いてあるものとする。つまり両ファイルは同一ディレクトリにある。
***
外部ファイルへの相対パスの記述方法は公式レファレンスに載っている。
ファイルパスの作成
https://fmhelp.filemaker.com/help/18/fmp/ja/index.html#page/FMP_Help/creating-file-paths.html
これを真似て記述しようとしたが以下のいずれでも呼び出せなかった。さらに filemac: で始めた場合は別アプリケーションを開くかというダイアログが出てきてしまう。
file:abc.html
filemac:abc.html
file:///abc.html
file://abc.html
file:/abc.html
file:..///abc.html
file:/..//abc.html
file://../abc.html
file:///..abc.html
html ファイル用に別フォルダを作ってそこに入れて指定し直しても変わらなかった。
つまり公式レファレンスの記述方法は Web ビューアで使えないというわけだ。
こういうときは Get (FilePath) で呼び出した FileMaker ファイルの絶対パスから、FileMaker のファイル名などを除いたりして絶対パスを関数上で計算して作り出すしかない。
トリッキーな点としては、Get (FilePath) で呼び出す絶対パスはシステムドライブ名が入ること。しかし、Web ビューアで指定する URL にはシステムドライブ名が入ると呼び出せない。そのあたりも考慮する必要がある。
また Get (FilePath) は file:/ で始まるが、Web ビューア用の URL は file:/// で始める必要がある。
まとめると以下のようになる。
最終的に欲しい絶対パス:
file:///Users/[ユーザー名]/Desktop/abc.html
Get (FilePath):
file:/[システムドライブ名]/Users/[ユーザー名]/Desktop/ABC.fmp12
Get (SystemDrive):
/[システムドライブ名]/
Get (FileName):
ABC
これらを考慮して、最終的に導き出した URL は以下のようになる。
-5(file: の文字数)と -6(.fmp12 の文字数)は統合して -11 とすればいいが、分かりやすいようにあえて冗長な書き方にした。
参考:
Get(FilePath)
https://fmhelp.filemaker.com/help/18/fmp/en/index.html#page/FMP_Help/get-filepath.html
Get(FileName)
https://fmhelp.filemaker.com/help/18/fmp/en/index.html#page/FMP_Help/get-filename.html
Get(SystemDrive)
https://fmhelp.filemaker.com/help/18/fmp/en/index.html#page/FMP_Help/get-systemdrive.html
Middle
https://fmhelp.filemaker.com/help/18/fmp/ja/index.html#page/FMP_Help/middle.html
この記事が気に入ったらサポートをしてみませんか?