みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
FM19.6をWindowsのパソコンで使っております。
FMのオブジェクトフィールドでPDFの実際の画像を閲覧しています。
PDFの原本ファイルは、このFMと同じ階層にある「PDFフォルダ」に格納しています。
各PDFファイルの参照データを、「レコードのインポート(フォルダ)」にて、FMのオブジェクトフィールドに取り込みました。
このFMとPDFファイルを他のPCでもコピーして使えるように、FMおよびPDFフォルダの両方を、「A」という名のフォルダにまとめております。
で、「A」フォルダのコピーを他のPCに入れてFMを開きましたら、オブジェクトフィールドの値が「ファイルが見つかりません」状態になってしまいました。
仕方なく、コピーした先のPC上で「レコードのインポート(フォルダ)」を行ってやっと自分のPCと見た目同様に再現させております。
他のPCのFMのバージョンも同じ19.6です。
「A」フォルダをどのPCに入れても、そのPC上のFMで、PDFフォルダ内のPDFを変わらずに表示する方法はありますでしょうか。
各PDFファイルの参照データを確認されるとわかると思いますが、相対パスではなく、絶対パスを持っています。
相対パスをどこかに持たせておいて、計算フィールドとして取得するといいのでは。
Offline
Shin様
いつもありがとうございます。
正直、ほとんど理解できていません。
絶対パスゆえにドライブが変われば無効になってしまうことは、おぼろげに理解できます。
相対パスの設定の方法がよくわかっておりません。フォルダのインポートのスクリプトを組むときに、変数かなにかを設定するのでしょうか?
絶対的なファイルパスではなく同じ階層にある「A」フォルダが指定できるパスを設定したスクリプトを組む方法がわかればありがたいです。
そのPDFファイルは、FM以外からはコピーされるだけでしょうか?
それならば、オブジェクトへのインポートを、リンクではなく、ファイル実体の取り込みとして、オブジェクトの保存を暗号化しない外部保存にします。その外部保存フォルダのファイルは、変更しなければ外部からアクセスすることはできます。
Offline
相対パスは、
file:ディレクトリ名/ファイル名で設定できます。
ファイルパスの作成 | Claris Pro および FileMaker Pro ヘルプ
https://help.claris.com/ja/pro-help/con … 1%E3%82%B9
Offline
そのヘルプで「現在のデータベースがローカルに開かれている場合は、相対パスは現在のデータベースの場所から指定されたターゲットファイルへのパスです。」
となってるんですが、現状(FM19.6)ではドキュメントパスになってしまってると思います。
(オブジェクトフィールドを"file:filename.pdf"で設定すると、データベースのフォルダにあるファイルは「見つからない」になって、ドキュメントパスにあれば表示されます)
そのヘルプで「現在のデータベースがローカルに開かれている場合は、相対パスは現在のデータベースの場所から指定されたターゲットファイルへのパスです。」
となってるんですが、現状(FM19.6)ではドキュメントパスになってしまってると思います。
(オブジェクトフィールドを"file:filename.pdf"で設定すると、データベースのフォルダにあるファイルは「見つからない」になって、ドキュメントパスにあれば表示されます)
動作確認してみました。
相対パスでドキュメントフォルダ以外でも問題なく表示されているようです。
Windows 10
FileMaker Pro 19.6.3.302
Offline
うちのはWin10からアップグレードしたWin11なのですが、うちだけの問題かな...
相対パスがデータベースフォルダ基準なら、インポート時に自動計算かインポート後に全置換で
"image:PDF/" & GetContainerAttribute ( オブジェクトフィールド ; "filename" )
にすれば相対パスに置き換えできると思います。
皆さま
いろいろなご助言ありがとうございます。
週末に留守のため、この土日にいろいろ試してみますので少しお時間をください。
当面は、画像インポートを絶対パスで本体そのものをFMに貼り付けて対処してみます。
その結果FMのサイズが相当重くなって他のPCに移すのが難儀になりましたので、画像を別フォルダに入れ、FMに絶対パスインポートのスクリプトを組んで当座をしのいでおります。
[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 566.91 KiB (Peak: 581.64 KiB) ]