FileMaker の Web ビューアで html ファイルを相対パスで呼び出す

環境:macOS Catalina Version 10.15.6(英語環境)、FileMaker Pro 18

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 は以下のようになる。

"file:///" & Middle ( Get (FilePath) ; 6 + Length ( Get ( SystemDrive ) ) ; Length ( Get (FilePath) ) - 5 - Length ( Get ( SystemDrive ) ) - Length ( Get ( FileName) ) - 6 ) & "abc.html”

-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


この記事が気に入ったらサポートをしてみませんか?