初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2017-12-04 14:13:04

pon3
Member

大きな画像を更新すると、別ファイルの小さな画像を更新

よろしくお願いします。
FileMaker16です。

商品マスタのオブジェクトフィールドに画像を内包しています。

このたび、閲覧制限したファイルをiPadに入れて、10人ほどに持たせることになりました。
それぞれ通信機能のないiPadでローカルで閲覧し、一週間に一回ファイルを入れ替えて更新します。

閲覧を制限する関係で画像は縮小した小さなもので良いのですが、
画像ファイルを内包しているためファイルは数ギガになり、数十代あるiPadを更新していくのは骨が折れます。

そこで、通常見る大きな画像とiPadで見る小さな画像を分け、それらを別ファイルにすることにしました。
大きな画像を作成または更新すると、リレーションした小さな画像ファイルが自動的に更新されるようにするにはどのようにすればよいでしょうか。
やはりスクリプトになりますでしょうか。

お知恵をお貸し下さい。

Offline

#2 2017-12-04 15:01:46

honda
Member

Re: 大きな画像を更新すると、別ファイルの小さな画像を更新

「小さな画像ファイル」が、FileMakerのサムネイル生成機能を使って問題ない内容であれば、
画像の更新作業を一連のスクリプトとし、その中でサムネイルの更新も自動で行えば目的に適うはずです。

Offline

#3 2017-12-04 16:50:55

pon3
Member

Re: 大きな画像を更新すると、別ファイルの小さな画像を更新

ありがとうございます。

スクリプトトリガで商品マスタの画像が
saveされた時にサムネールを作るようにしたのですがうまくいきません。

テーブル
●画像大
●画像小
を、

テーブル
●商品マスタ

に商品IDでリレーションしています。

商品マスタのレイアウトに画像大テーブルのオブジェクトフィールドを置いて、
直接画像を更新するようにしました。

画像大フィールドのスクリプトトリガでセーブされると、下記のスクリプトを設定しました。

フィールド設定 [ 画像小::photo ; GetThumbnail ( 画像大::photo ; 120 ; 120) ]


基本的なリレーションなどがよくわからず、初歩的な質問かもしれませんが、
どうぞご教授お願い致します。

Offline

#4 2017-12-04 18:49:14

honda
Member

Re: 大きな画像を更新すると、別ファイルの小さな画像を更新

「うまくいきません」がどううまくいかないのかヒントが無いと分かりません。
思った通りの画像が生成されないのか、エラーメッセージが出るのか、スクリプトが途中で停止するのか、等々。
たとえばスクリプトであれば、Get(最終エラー)等を使ってどううまく行かないのか、確認する必要があります。
Advancedのデバッガが使えると楽ですが、通常のProでも、細かく最終エラーを取得してグローバル変数などに追記するなどすれば、
どの箇所で想定外の動きをしているのかは追えます。

それでも案内するなら、トリガのタイミング等で失敗しているか、
リレーションシップで失敗しているか、どちらかの可能性が高いと思います。
トリガなど使わず画像の更新処理をボタンで実行し、画像大の更新まで含めてスクリプトで行い、
そのままサムネイルの生成を行うようにした方が、問題発生のポイントは減ると思います。

Offline

#5 2017-12-05 09:37:54

チポ
Member

Re: 大きな画像を更新すると、別ファイルの小さな画像を更新

> 直接画像を更新するようにしました
この更新が、
ドラッグ&ドロップだと
OnObjectSave
OnObjectModify
が効きませんね。

Offline

#6 2017-12-05 17:44:56

pon3
Member

Re: 大きな画像を更新すると、別ファイルの小さな画像を更新

チポ様

まさに、ドラッグ&ドロップで登録、OnObjectSaveでトリガしています。

色々考えてみたのですが、良い方法がちょっとわかりません。
他にどのような方法がありますでしょうか。

Offline

#7 2017-12-06 09:18:28

チポ
Member

Re: 大きな画像を更新すると、別ファイルの小さな画像を更新

フィールドのトリガでは無理そうですよ。

ボタンを押すなりのもうひと手間か、
レコードを離れるときに OnRecordeCommitで、
位でしょうかね。。

Offline

#8 2017-12-06 15:04:17

honda
Member

Re: 大きな画像を更新すると、別ファイルの小さな画像を更新

Windowsでしか確認してませんが、FileMaker 16はドロップでOnObjectModify発火します。
トリガで呼び出すスクリプトで、レコードの確定と、
できればGetLayoutObjectAttribute()で変更前後のMD5を取っておき比較して、
違っていればサムネイル更新、という流れで行けそうです。

Offline

#9 2017-12-08 14:44:20

pon3
Member

Re: 大きな画像を更新すると、別ファイルの小さな画像を更新

OnObjectModifyを使うとうまくいきました。
ありがとうございました。

Offline

#10 2017-12-08 15:16:32

チポ
Member

Re: 大きな画像を更新すると、別ファイルの小さな画像を更新

そうなんだ、不完全情報でした、
お詫びして取消をお願いいたします-_-

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 10 queries executed - Memory usage: 566.63 KiB (Peak: 571.51 KiB) ]