みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
FMS17とFMP17でWindows環境、ServerはMACMini(10.14.6)の構成です。
JPEG画像をオブジェクトフィールドに貼り付けるのですが、サーバの写真を置いてあるフォルダになかに、データの図番と同じ名前で保存しています。
この写真フィールドにサーバにある写真を貼り付けたいわけです。
計算式でサーバにある図番名の写真を貼り付けるにはどうしたらいいでしょうか?
スクリプトを作ってやろうとしましたが、これも図番名の指定がうまくいきません。
もうひとつ、データ容量を軽くするために「オブジェクトデータを外部に保存」か「ファイルの参照データのみ保存」かどちらを使うのがよいのでしょうか?
Offline
計算フィールドで対応できます。パスは以下のヘルプを参照して計算式を作りましょう。(17でも一緒です)
ファイルパスの作成
気を付ける点は接頭辞は file ではなく image を利用すること、計算結果をオブジェクトにすることです。
例)image:hogehoge.jpg
※各クライアントPCからそのパスへアクセスできない場合は表示できません。
「サーバーの Mac mini では開けます」だけではダメです。
参照と外部保存ではデータベース自体のサイズはどちらもあまり変わりません。
・参照は元のファイルを触らなくていいので追加のストレージを必要としません。
(ただし各クライアントからアクセスできるようにサーバー/クライアント共に設定する必要があります)
・外部保存は元のファイルをオブジェクトフォルダにコピーするので、その分の容量は必要です。
(ただし各クライアントからアクセスできるように設定しなくても良いです)
Last edited by Moz (2021-07-20 10:12:46)
Offline
参照のみ保存、はdeprecated(非推奨)になってます。
https://support.claris.com/s/article/De … uage=en_US
だけどFM19でも特に変化はない?
日本語での同じ項目
FileMaker 17 - 廃止される機能およびオペレーティングシステム
各バージョンに於ける変遷はこちら
FileMaker - 廃止予定の機能およびオペレーティングシステム
18から表現が簡素化したというか指し示す内容が変わった感じですね。
Offline
ありがとうございます。
ファイルの参照ですと、fmnet:/server01/Pictures/P12345.jpg のようになると思います。
写真だとimage:はどのように記述されるのですか?
server01は、ネットワークにあるNASです。
Offline
ファイルの参照で「fmnet:」は利用できません。
それは FileMaker ネットワークで共有されたデータベースファイルの場合です。
NAS上の「hogehoge」フォルダの画像の場合の例
「imagemac:/hogehoge/hogehoge.png」
目的のファイルをピクチャ挿入で参照のみ保存して、GetAsText ( フィールド ) でパスが取得できます。
それを参考にするのが早いでしょう。
Offline
NASとして、「server01」があり、その中にフォルダ「Pictures」あり、その中に「12345.jpg」の写真をおきました。
このとき
imagemac:/server01/pictures/12345.jpg
と計算式をいれました。結果は「オブジェクト」を指定しています。
しかし、「指定されたフィールドがみつかりません」とでます
Offline
前のスレッドでも書きましたが、書かれた内容をしっかり読んで理解して試して下さい。
#3 の例の通りNASの名前をパスに含んでいません。
いきなり計算フィールドで試すのではなく
オブジェクトフィールドを作成して[挿入]-「ピクチャ...」から
またはオブジェクトフィールド上で右クリックして「ピクチャを挿入」からその画像ファイルを挿入して下さい。
データビューアまたは計算フィールドで GetAsText ( フィールド名 ) でパスが取得できますからそのパスを参考にするのが確実です。
Offline
MacはサーバだけでWindows環境だからimagewin:でないとだめでは。(image:の方が無難?でもそれでMacでも表示されるかどうかは微妙)
パスはテキストなので計算式では””で囲みます。「パスの指定」のダイアログとは書き方が違います。
クライアントに依存ですね。「imagemac:」で表示は確認しています。
Windows クライアントが混在するなら書き分けが必要です。相対パスでも双方異なりますし。
しかし、「指定されたフィールドがみつかりません」とでます
確かに計算式がそもそも通っていませんね。
正直なところ素直に外部保存にするのをおすすめします。
失礼ながらパス関係に弱いですよね......。ちょっとしたことで見えなくなりそう。
Last edited by Moz (2021-07-21 07:12:27)
Offline
Mac/Windows 混在環境でNAS内のimages/hoge.jpg を表示したいときの例
Windows 各クライアントマシンでは、当該NASにL:というドライブレターを振ってあるとする。
Mac では、当該NASをshare という名前でマウントしてあるとする。
imagewin:/L:/images/hoge.jpg
imagemac:/share/images/hoge.jpg
このスレ、最初から丁寧に読んでないので、誤解があったらすみませんけど、
Get ( SystemPlatform )をとって、OSを判断して、それぞれ割り振っても良いけど、
まずは、結果が上記のようなテキスト(Windows用とMac用で複数行になってもOK)になるような計算式を作って、計算結果をオブジェクトにしてやれば、どっちのOSからも見えます。
どっちかからしか見えないなら、見えない方の記述が間違ってるわけで…。
環境は、MACminiのファイルメーカーサーバがあるだけで、あとは、すべてWindows環境です。ほかにMACはありません。
NASの名称がパスに含まれていないとのことですが、「server01」はNasの名前です。
オブジェクトフィールドに右クリックで写真をはめ込むことはもちろんやっています。
このはめ込んだ写真のパスはどうすればわかるのでしょうか?
NASは、マウントはしていないのですが、マウントしておく必要があるのでしょうか?
Offline
パスにはNASの名前を含む必要はないということです。
NASの名称が含まれていないからダメだとは言っていません。私の言い方が悪かったですね。
クライアントが Windows ならば「imagemac:」の話はすべて該当しませんので忘れて下さい。
Windows なら bison さんが書かれているようにドライブレターを振って同じパスにするか
filewin://hogenas名/hogeフォルダ名/hogeファイル名.jpg
のようにします。詳細は #2 で紹介したヘルプを読んで下さい。
このはめ込んだ写真のパスはどうすればわかるのでしょうか?
それを行うように #6 と #8 に確認の手順を書いていますよ。ちゃんと読んで下さい。
しつこいようですが Windows の FileMaker Pro から見ようとしているなら「imagewin:」を使います。
※ Windows の場合は計算フィールドで参照パスにしているとアイコン表示になるかも知れません。
これもしつこいようですが一切合切の面倒を FileMaker がやってくれる外部保存をおすすめしますよ。
Offline
あ、そういえば#3で「FM19でも特に変化はない?」って書きましたけど、もうFM19v3はピクチャの挿入時に「参照のみ」だと「インタラクティブ」に設定したオブジェクトフィールドは動作しなくなってますね。Edgeに変わった副作用で、バグだったと思うけど。「イメージ」なら表示されます。
FM17でもはっきりdeprecatedになってるので、「参照のみ」を新たに使うのは、よほどの覚悟がない限り無謀かな。
画像だけ入れるフィールドなら「イメージ」にしておけば関係ないですが...
> オブジェクトフィールドに右クリックで写真をはめ込むことはもちろんやっています。
> このはめ込んだ写真のパスはどうすればわかるのでしょうか?
#8の Moz さんのアドバイスの
> データビューアまたは計算フィールドで GetAsText ( フィールド名 ) でパスが取得できますからそのパスを参考にするのが確実です。
が答えです。
> NASは、マウントはしていないのですが、マウントしておく必要があるのでしょうか?
もうね、マウントの意味が分かってるのか分かってないのか分からないので、
「そのクライアントマシンからその画像が見える状態であればそれでOK」と理解して下さい。
あと、MAC じゃなくて Mac ね。"MACアドレス" とかのときなら "MAC" ですけど。
こういうところ「どっちでも良くない」ですよ。
例えば…
> NASとして、「server01」があり、その中にフォルダ「Pictures」あり、その中に「12345.jpg」の写真をおきました。
> このとき
> imagemac:/server01/pictures/12345.jpg
>と計算式をいれました。結果は「オブジェクト」を指定しています。
> しかし、「指定されたフィールドがみつかりません」とでます
と書いていらっしゃいますが…
(imagemac の部分が実は Windows しかないということで正解は imagewin にすること…だったようですが)
フォルダの名前を Pictures と言いながら、パス内では pictures と書いてますよね。
こういうとこから大切にしないといつまでたっても同じようなことで同じように悩みます。
老婆心ながら。
埋め込んだ写真のパスを見るフィールドを追加しました。 GetAsText ( フィールド名 ) でパスの表示をしました。
この写真フィールドを外部に保存にするとパスはその格納場所になります。
写真フィールドを外部に保存しないと、単なるファイル名(12345.jpg)となります。
参照データのみにしたらパスは、imagewin://server01/Pictures/12345.jpg でした。
で、写真フィールドを計算式にして、このパスをいれましたが、フィールドがみつかりません」とでます。
どこが、間違っていますでしょうか?
Offline
ごめんなさい。大文字、小文字のええかげんさ。気を付けます。
Offline
何度も繰り返しますが書かれていることをちゃんと読んで下さい。
#9 で himadanee さんが書いて下さっています。
文字列なので "" で囲んで下さい。
「フィールドが見つかりません」というのは計算式が通らないのではないですか?
Offline
> 参照データのみにしたらパスは、imagewin://server01/Pictures/12345.jpg でした。
> で、写真フィールドを計算式にして、このパスをいれましたが、フィールドがみつかりません」とでます。
imagewin://server01/Pictures/12345.jpg
という文字列を作る計算式になっていないようですね。
フィールド設定で、 [写真フィールド] という名前の計算フィールドの
[計算「写真フィールド」を指定] というウインドウで、
imagewin://server01/Pictures/12345.jpg
と入力して、OKで閉じようとすると、「フィールドがみつかりません」とでるのでしょうか?
「フィールドがみつかりません」とでるのは、「そんな名前のフィールドはない」という意味です。
計算式の中には
関数、及び関数の引数か演算子(+-*/など)、フィールド名、「ダブルクォーテーションで囲まれたテキスト」
だけです。
himadanee さんや Moz さんが仰っているように
よくあるミスは、テキストをダブルコーテーションで括ることをわすれていた…というケースです。
それでもよく分からないなら、上述の計算式のウインドウ(ダイアログ)の中にどういう計算式を書いたかを教えて下さい。
そうでした。””でくくりました。
これでフィールドがみつかりません」はでなくなりました。
ただ、この写真フィールドは、「見つからないファイル:12345.jpg」と表示されて実際の写真はでてきません。
パスは、「imagewin://server01/pictures/12345.jpg」です。
Offline
以下、過剰に冗長に説明してみますね。
> パスは、「imagewin://server01/pictures/12345.jpg」です。
(また Pictures がpictures になってるのでどっちか分かりませんけど、まあ、Pictures の方が正しいとします。)
計算式ダイヤログに
"imagewin://server01/Pictures/12345.jpg"
と書いてOKで閉じたけど、エラーの内容が変わった(「見つからないファイル:12345.jpg」)だけで写真は表示されないわけですね。
理由はそのエラーのテキスト通り「そんな場所(パス)にそんなファイルは存在しない」ということです。
ファイルの存在するフォルダへのパス("imagewin://server01/Pictures/")が正しいなら、
"12345.jpg" の部分が正しいファイル名に変われば表示されそうですね。
正しいファイル名はおそらく、お使いのどこかのフィールドに入っているような気がします。w
仮に、[画像] というテーブルの [ファイル] というフィールドに、正しいファイル名が入っていたとしますと式は…
"imagewin://server01/Pictures/" & 画像::ファイル
ですね。
ちなみに、データビューアは使ったことがありますか?
[ツール] > [データビューア] で表示出来ます。
データビューアの [監視]タブで(ウインドウ下部の)プラスアイコンをクリックして、
[式] のエリアに式を入力すると、([式]のエリアの下の)[結果]のエリアに結果が表示されます。
※ [自動的に評価する] というチェックボックスがオンの場合
以下のURLの操作動画を参考に、結果を確認しながら、式のエリアで式を入力して試して下さい。
https://c.bison.jp/v1uYwyOl
うまく求める結果になったときの式をコピーして、
フィールド設定の当該画像フィールドの計算式にペーストしてみればいけそうですね。
ありがとうございます。できました。
なにが間違っていたのかよくわからないのです。
パスにいれている文字列が間違っているのだと思い、いろいろ試しました。なにかが間違っていたのでしょうね。
フィールドはオブジェクトの写真フィールドと計算式の写真2フィールドを作っています。そして、オブジェクトフィールド(写真)のパスを見るためにGetAsText ( 写真 ) をつくってあります。
まず大文字、小文字ですが、私は通常大文字は使いません。
しかし、このパスを見るGetAsTextの項目は「server01」が「SERVER01」に「12345.jpg」が「12345.JPG」にと変わっています。
大文字、小文字の違いの問題があるのかと思い、大文字に変えたり、小文字に変えたりあれやこれやとやっているときに文字列をなにか間違えたのかもしれません。
成功してから、大文字、小文字についてしらべました。
「imagewin」の部分は小文字でないとだめでした。ただそのあとのフォルダ、ファイル名は大文字でも小文字でもOKでした。
これで期待通りの動きが得られました。しかしこれはファイルの参照データの表示になるわけですね。この参照データは将来使えなくなるとありますね。将来参照データでは見えなくなってしまうのもこまりますねー。
スクリプトで外部保存できるように考えてみようと思います。
Offline
ファイル名の大小文字は、Windowsでは相当以前から区別しません。(大文字や小文字として設定すれば、その通りに保存はできるが、Aとaは同じとみなされて同じ場所に別物として両方同時に保存することはできない)
Macではフォーマット時の形式によります。別の質問でジャーナル形式とか書いてましたので、区別しない形式でフォーマットしているのでは。
「server01」が「SERVER01」に「12345.jpg」が「12345.JPG」にと変わっています
は、Windowsからのアクセスなので、どこかのタイミングで自動的に大文字に統一されてるのではないかな。
「この参照データは将来使えなくなるとあります」
廃止予定なのは、「オブジェクトフィールドのオプション: “ファイルの参照データのみ保存”」なので、計算フィールドは関係ないと思いますが...
ありがとうございます。
いままでは、テスト的に図番をそのままいれていました。これでうまくいきました。
”imagewin://server01/picture/12345.jpg”
この「12345」は、フィールド図番に格納されているものです。
図番&".jpg”で「12345.jpg」のようにできるわけですが、これを計算式にいれるとエラーなります。
”imagewin://server01/picture/図番&”.jpg””
どのように記述すれば、フィールドの中身.jpg となるのでしょうか?
Offline
エラーになるというのは具体的には?計算式が通らないということですか?
もう少し具体的かつ FileMaker の言葉で書いて下さい。
計算式の書き方が分からないのでしょうか?
「図番」フィールドの中身を入れたいならば
”imagewin://server01/picture/" & テーブル名::図番 & ”.jpg”
です。
" がふたつあったりと単純な入力ミスが多いように思います。
落ち着いて入力しましょう。
Offline
[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 587.66 KiB (Peak: 624.56 KiB) ]