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

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

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

You are not logged in.

Announcement

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


#1 2014-03-10 21:25:59

なめこ
Guest

対象レコードの画像の一括エクスポート

<FM12アドバンス Win7>

質問です。
レコードを絞り込んでオブジェクトファイル内の画像を指定の場所に
一括でエクスポートしたいのですが何か良い方法ありますでしょうか?
オブジェクトファイル内の画像は外部保存となっています。

<やりたい事>
①2000レコード中の1000レコードを対象
②1レコードにオブジェクトフィールドが3つあって、3つの画像を指定のフィールドに保存
③次のレコードに移動して②に戻る

ループの仕方は以下のようにして

レコード/検索条件/ページへ移動[最初の]
Loop
スクリプト実行[★ここのスクリプト]
レコード/検索条件/ページへ移動[次の; 最後まできたら終了]
End Loop

★の部分のスクリプトを
フィールド内容のエクスポート とし、オブジェクトファイルを選択していますが、
これだと保存先を選択して[保存]のボタンを押さないと次に進まないので、何回も保存をクリックしなければいけません。

何か他に良い方法はございますでしょうか?
ありましたら、教えて下さい。

#2 2014-03-11 01:06:26

Hiro
Member

Re: 対象レコードの画像の一括エクスポート

外部保存画像のエクスポート、って詰まる所、外部画像の外部コピー操作と同じことでは?
なら、「cmd /c copy /b 元ファイル 先ファイル」とかを「Eventを送信」でも良い筈。

なお、ご質問の「フィールド内容のエクスポート」の自動化は、出力パスを変数に格納して
その変数を出力先に指定すれば出来ます。

Offline

#3 2014-03-11 12:28:19

なまこ
Guest

Re: 対象レコードの画像の一括エクスポート

元ファイルの場所を調べるのが面倒なので、フィールド内容のエクスポートの方がいいでしょう。
変数を設定[$パス;"filewin:/c:\指定の場所\" & RightValues(Substitute(GetAsText(オブジェクト);"/";¶);1)]
で$パスを指定。ファイル名の取得はGetValueが必要だったかも。

#4 2014-03-11 12:57:20

Traveller
Guest

Re: 対象レコードの画像の一括エクスポート

画像がbmpだったらファイル名が.jpgになってしまうかも?

#5 2014-03-11 13:05:15

なめこ
Guest

Re: 対象レコードの画像の一括エクスポート

Hiroさん返信ありがとうございます。

お教え頂いたのと cmd で検索した今までの質問履歴を見てみましたが、
いまいち解りません。
現在はC:直下に「画像」というフォルダを作って、

レコード/検索条件/ページへ移動[最初の]
Loop
変数を設定 [$name; 値:画像フィールドA]
Eventを送信[「aevt」;「pdoc」;"cmd /c copy /b $name C:\画像"]
レコード/検索条件/ページへ移動[次の; 最後まできたら終了]
End Loop

としてみましたが、エラーは出ず、スクリプトも動きますが、選択レコードの画像が
[C:画像]フォルダには出てきませんでした。

計算式が足りないのでしょうか?

Hiro wrote:

なお、ご質問の「フィールド内容のエクスポート」の自動化は、出力パスを変数に格納して
その変数を出力先に指定すれば出来ます。

上記の部分につきましても詳しくお教え頂けましたらお願いします。

#6 2014-03-11 13:19:41

なめこ
Guest

Re: 対象レコードの画像の一括エクスポート

なまこさん Travellerさんありがとうございます。
画像はjpgなので、jpgで書き出されて問題ありません。

色々なやり方があるのですね。
なまこさんのやり方だと

レコード/検索条件/ページへ移動[最初の]
Loop
変数を設定 [$パス; "filewin:/c:\画像\" & RightValues(Substitute(GetAsText(画像フィールドA);"/";¶);1)"]

レコード/検索条件/ページへ移動[次の; 最後まできたら終了]
End Loop

としましたが、この$パスとGetValueをどのように使ったらいいでしょうか?

宜しくお願い致します。

#7 2014-03-11 13:31:32

なまこ
Guest

Re: 対象レコードの画像の一括エクスポート

スラッシュが逆になってました。
"filewin:/c:/画像/"
変数値に画像のファイル名が入ってるか確認してください。
エクスポートでパスの指定に変数名を入れます。

#8 2014-03-11 13:47:16

なめこ
Guest

Re: 対象レコードの画像の一括エクスポート

なまこさん

出来ました!最終的な計算式を今後検索される方のために記載しておきます。

【選択レコードの画像を指定の場所に出力するスクリプト】

フォルダを用意します(ここではC:直下に「画像」という名前で作りました)

--------------------------------------------
レコード/検索条件/ページへ移動[最初の]
Loop
変数を設定 [$パス1; "filewin:/c:/画像/" & RightValues(Substitute(GetAsText(画像フィールドA);"/";¶);1)"]
フィールド内容のエクスポート[画像フィールドA ; 「$パス1」]
変数を設定 [$パス2; "filewin:/c:/画像/" & RightValues(Substitute(GetAsText(画像フィールドB);"/";¶);1)"]
フィールド内容のエクスポート[画像フィールドB ; 「$パス2」]
変数を設定 [$パス3; "filewin:/c:/画像/" & RightValues(Substitute(GetAsText(画像フィールドC);"/";¶);1)"]
フィールド内容のエクスポート[画像フィールドC ; 「$パス3」]
レコード/検索条件/ページへ移動[次の; 最後まできたら終了]
End Loop
--------------------------------------------

これで全レコードや選択レコードの画像フィールドA,B,Cが「画像」フォルダにボタン1回で吐き出されるようになりました。

みなさんありがとうございました!

#9 2014-09-17 14:13:19

さむ
Guest

Re: 対象レコードの画像の一括エクスポート

上記の場合で写真有りの商品を検索しながら一括エクスポート出来ますでしょうか?
例:商品が10個有り写真が最大5枚登録できるが3枚の商品や2枚の商品がある場合に
写真1がある分から5枚ある分まで上記のスクリプトに加えて検索条件を入れて検索しな
がらある分の写真を全部をエクスポ-トしたいのですが検索時に3枚目の写真が
無い場合にエラーが出たりするのですがそれをスルーして進める方法を教えて下さい。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.010 seconds, 10 queries executed - Memory usage: 520.39 KiB (Peak: 524.93 KiB) ]