SSブログ

FileMakerに入力したファイル名のファイルを開く [FileMaker]

FileMakerでPDFや画像ファイルや文書ファイルを管理したいとき、ファイル名を入力してあればボタンでそのファイルを開くことができます。サンプル名OpenFile.fp7のあるフォルダ内に"フォルダ名"で示すフォルダがあるものとします。このフォルダ内にファイルを入れます。Get(ファイルパス)でOpenFile.fp7のfull pathが得られるので、Get(ファイルパス)とファイル名で開くファイルのパスを合成しています。

[Macの場合]
path1 計算 非保存 Get(ファイルパス)
path2 計算 非保存 Substitute(path1; ["file:/"; ""]; ["/"; ":"]; [Get(ファイル名) & ".fp7";
フォルダ名 & ":" & ファイル名])
[ファイルを開くスクリプト]
AppleScriptを実行
set aFileName to cell "path2" of current record
tell application "Finder"
open file (aFileName as Text)
end tell

[Windowsの場合]
path1 計算(テキスト) 非保存 Get(ファイルパス)
path2 計算(テキスト) 非保存 Substitute(path1; Get(ファイル名) & ".fp7"; フォルダ名 & "/" & ファイル名)
[ファイルを開くスクリプト]
URLを開く[ダイアログなし, 「Path2」]

サンプルファイル 04_OpenFileMac.zip05_OpenFileWin.zipをアップしておきますのでお試しください。

【お詫びと追記 2011/07/19】
上記記事を書いたあとでMacでもWindowsと同様に「URLを開く」でファイルが開くことが分かりましたのでお詫びして訂正します。ただし、MacではGet(ファイルパス)で得られる「file:/」で始まるパスではブラウザが開いてしまいます。そこで「file:/」を「file://」に置き換えるとファイルが開きます。Windowsでは「file:/」でも「file://」でもファイルが開きます。そこで、パスを「file://」で始まるようにするだけでMacでもWindowsでも同じように動作するようになりました。
サンプルファイル 13_OpenFile.zip(zip圧縮)をアップしておきますのでお試しください。
http://www001.upp.so-net.ne.jp/MedFiles/samples.html
nice!(0)  コメント(24)  トラックバック(0) 

nice! 0

コメント 24

小太郎

初めまして。
突然のメールスイマセン。
藁にもすがる思いです。
現在、FMにて作成した情報をフィールド名を利用しPDF保存まではできたのですが、FMからそのPDFを検索し表示することができないでいます・・・イマイチスクリプトの組み方がわからないでいます。
ご教授いただけませんでしょうか?
FMはPro10 Windowsにて作業しております。
by 小太郎 (2013-08-20 17:45) 

kinda

13_OpenFile.zipをダウンロードしてください。解凍するとOpenFileフォルダができます。OpenFiles.fp7は同じ階層にあるfiles_folderの中にあるファイルを開くものです。

「URLを開く」スクリプトを使います。
スクリプト「URLを開く」は、開きたいファイルのパスをオプションに入れると開いてくれます。そこで、開きたいファイルのパスを示す計算式フィールドを作り、オプションに入れます。

開きたいファイルまでのパスを、最終的に以下の形式に整形します。
file://開きたいファイルまでのパス

FMファイル自分自身のパスは、Get(ファイルパス)で求められます。
file://パス/自分自身のファイル名
この自分自身のファイル名を同じ所にあるフォルダ名に変更し、さらにそのフォルダ内に入れてある開きたいファイルのファイル名をつけると完成です。

たとえば、OpenFiles.fp7とfiles_folderを同じ場所に置きます。フィールドfile_nameとfolder_name(グローバル)を作ります。次にファイルまでのパスを計算するフィールドを作ります。
path1(計算フィールド):Get(ファイルパス)
 これでfile://パス/OpenFiles.fp7が得られます。
path2(計算フィールド):path1のOpenFiles.fp7の部分をfolder_name/file_nameに置き換えています。
各レコードのfolder_nameに[files_folder]、file_nameに[Sample1.pdf]と入力しておくと、以下のパスが得られます。
 file://パス/files_folder/Sample1.pdf
このpath2は「URLを開く」スクリプトのオプションに入れてあるので、Sample1.pdfが開くことになります。同様にfile_nameに[サンプル文書.doc]と書いておけばそのファイルが開きます。

13_OpenFile.zipをいじってみると分かると思いますがどうでしょうか。逆に、どこが分からないのでしょうか?
by kinda (2013-08-20 19:02) 

一平

はじめまして、早速ですが、FileMakerを使い始めたばかり、何ら解らず、サンプルで勉強させて頂こうかと思っております、しかしサンプルファイルの”FileMakerに入力したファイル名のファイルを開く”を解凍し、FM14に変換して実行したのですが、何ら表示されません。何か問題があるのでしょうか?宜しくご指導をお願い申し上げます。
by 一平 (2016-08-22 11:16) 

kinda

〉一平さん
13_OpenFile.zipを回答すると、OpenFileフォルダができます。このファイルはFMP7〜11用ですので、少し修正する必要があります。以下のようにしてください。

1) OpenFileフォルダの中のOpenFiles.fp7をFMP14に変換する。
2) OpenFiles.fmp12ができるので、OpenFileフォルダの中に入れる。
3) 計算式path2ですが、これは開きたいfileの入ったフォルダ名を計算して着けています。このために、path1から自分自身のファイル名を削除してfiles_folderという名前に変換しています。ここが、FileMaker 14では修正の必要がある点です。具体的には4)のようにします。
4) ファイル/管理/データベース..を開き、path2を選択、オプションをクリック。
計算式の中の.fp7を.fmp12に変更します。

Substitute ( path1 ; [ "file:/" ; "file://" ] ; [ Get(ファイル名) & ".fp7" ; folder_name & "/" & file_name ] )
 ↓
Substitute ( path1 ; [ "file:/" ; "file://" ] ; [ Get(ファイル名) & ".fmp12" ; folder_name & "/" & file_name ] )

これで、path2が正しく表示されて、正しく動くようになります。
---------------------------------------------

時間があるとき、FMP12以降用のファイルもアップしときます。
by kinda (2016-08-22 18:37) 

一平

丁寧な説明、本当にありがとうございます。
by 一平 (2016-08-23 06:07) 

一平

お世話になっております。
度々ご迷惑をお掛け致しております。
以前の”FileMakerに入力したファイル名のファイルを開く [FileMaker]”の件ですが、PDFファイルの箇所をMP4の動画ファイルに置換してやったのですが動画が立ち上がりません。他に設定を変更するなど、追加しなければならない事があるのでしょうか?本当に申し訳ありませんが、宜しくお願い申し上げます。
by 一平 (2016-09-05 22:04) 

kinda

〉一平さん
そのMP4ファイルはダブルクリックで立ち上がりますか?もし立ち上がるなら、MP4のファイル名が拡張子まで含めて正しいですか?
たとえばMP4のファイル名をabcdとして、
①abcdをfiles_folderに入れる
②OpenFilesで新規レコードを作成する
③file_nameにabcd.mp4と入力する
④「ファイルを開く」をクリックする
by kinda (2016-09-06 18:17) 

kinda

〉一平さん
システムはMacですかWinですか?mpeg4ファイルは拡張子がmp4だけでなく、m4aだったりm4vだったりする場合があります。Winで拡張子がみえない設定の場合は、拡張子を見えるようにして確認してください。
by kinda (2016-09-06 18:24) 

一平

お世話になっております。
大変申し訳ありません。プログラム既定の箇所Media Player以外の
アプリに変更設定すると、出来ました。
大変遅くなり、ご迷惑をお掛け致しました。
今後共宜しくお願い申し上げます。
by 一平 (2016-09-07 19:22) 

kinda

〉お知らせ
FileMaker Pro 12〜14 (15)用のサンプルファイルをアップロードし、新しいサンプルも追加しました。
http://www001.upp.so-net.ne.jp/MedFiles/samples.html
by kinda (2016-09-09 00:48) 

一平

お世話になっております。
サンプルファイルの用語のカウントとソートの件ですが、例えば”ひな人形”という文字列の場合、”ひな”、”人形”と二つに分かれて検索されますが、これを一つの文字列として検索する場合にはFileMakerのどこの部分をどのように変更すれば良いのでしょうか?
度々初歩的な質問ばかりで申し訳ありませんが、宜しくご教授の程お願い申し上げます。
by 一平 (2017-05-27 10:31) 

kinda

〉一平さん
検索画面で上側メニューの左上に「挿入:」演算子がありあます。
フレーズに一致は"で囲むことが分かります。演算子を変えると、いろいろな検索方法ができます。
by kinda (2017-05-27 11:13) 

一平

早速ご返事ありがとうございます。
もっと勉強しなければいけないのですが、用語集の検索画面の上、メニューバーの挿入?
検索モードにして、右上の挿入:?
もし、”データ処理 書式データ”の場合は演算子はどれに該当するのでしょうか?
ご面倒をお掛け致します。よろしくお願いします。
by 一平 (2017-05-27 11:52) 

kinda

〉一平さん
たいへん失礼しました。FileMakerのバージョンが11以下の場合を説明しました。FileMaker 12以上の場合は、説明が違っていました。検索モードにして、検索を実行するフィールドにカーソルを置いてcontrol-クリックすると(Macの場合)、演算子がでてきますのでどれかを使用してください。Windowsでも同じと思います。
by kinda (2017-05-27 13:44) 

一平

何度もすみません。
何度やっても上手く行きません。
例えば”ひな人形”と入力しても”ひな” ”人形”と二つに分かれてしまします。
素人判断ですが、スクリプトを修正する必要があるように思いますが?
面倒をお掛け致しますが、宜しくお願い申し上げます。
by 一平 (2017-05-27 15:01) 

kinda

〉一平さん
申し訳ありません。質問の内容をよく理解しておりませんでした。上に書いたのは、一般的な検索の仕方でした。サンプルファイルは一般的な検索ではありません。ちょっと検討してみます。
by kinda (2017-05-27 22:57) 

kinda

〉一平さん
原因は分かりました。サンプル用語集では、MiddleWordsで検索後を選択しています。これだと文字種が変わるごとに1語となるため、ひな人形は2語になってしまってました。まだ解決してません。
by kinda (2017-05-27 23:34) 

一平

お忙しい中ご面倒をお掛致しております。
宜しくお願い申し上げます。
by 一平 (2017-05-28 07:01) 

一平

お世話になっております。
検索の件ですが、カウントスクリプトの箇所で、MiddleWordsのところを
GetValue(Subsiture…のコマンドでやってみようと思います。
本当にお忙しい所ありがとうございました。
今後共宜しくお願い申し上げます。
by 一平 (2017-05-28 19:28) 

kinda

〉一平さん
できました。以下のようにスクリプトを変更してください。

スクリプト「前処置」
スクリプトの最後に以下を付け加える(全角スペースは半角スペースに置き換える)
Substitute ( 用語集::findwords ; " " ; " " )

スクリプト「検索語カウント」
・変数を設定 $find_n の値を以下のように変更する
PatternCount ( Substitute ( Trim ( 用語集::findwords ) & "¶" ; " " ; "¶" ) ; "¶" )
・Loopの中身を以下のように変更する
フィールドを名前で設定のところ、上段は同じ、下段を変更
上段;GetFieldName ( Evaluate ( "find" & $number ) )
下段;GetValue ( Substitute ( Trim ( 用語集::findwords ) & "¶" ; " " ; "¶" ) ; $number )


by kinda (2017-05-30 08:28) 

一平

kinda様

お世話になっております。
大変ご面倒をお掛け致し、本当に申し訳ございません、
有難う御座いました。

by 一平 (2017-06-04 15:36) 

ハンソン

お世話になります。
記事を拝見して自分でpdfを開いてみました。
ただ、ファイルの格納先が別のPCの共有フォルダーです。
同じようにやってみたところ、ファイルが保存されているフォルダーまでは開くのですが、ファイルそのものは開いてくれません。拡張子は『.pdf』と入れています。どのようにすればファイルまで開くでしょうか。お知恵をお貸しください。よろしくお願いいたします。
by ハンソン (2018-02-03 04:58) 

kinda

〉ハンソンさん
このサンプルはローカルPC上にあるファイルを開くものです。FileMaker社はWindowsの共有フォルダにあるファイルを開くことを勧めていません。ファイルの破損を生じる可能性があります。

FileMakerによって共有ファイルを開く場合は、FileMaker共有機能を使うか、またはFileMaker Serverを使って下さい。前者の場合、hostとなるPCとguestとなるPCにそれぞれFileMakerライセンスが必要です。共有ファイルのパスをみて、そのパスを開くように設定すれば良いように思います。
by kinda (2018-02-03 23:18) 

ハンソン

ご返答ありがとうございます。
ホストと同じPCにデータを移行してやってみます。
ありがとうございました!
by ハンソン (2018-02-09 03:23) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0