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

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

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

You are not logged in.

Announcement

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


#1 2020-12-30 16:06:37

ペンギン
Guest

写真書出しについて

この度はお世話になります。 FM18, Win10です。

商品在庫リストの商品毎に 該当品の画像を1レコードに1枚ずつ貼り付けています。
画像は”phot”という別ファイルからリレーションして表示させています。

この度 商品リストのオファー毎の複数画像をお客様に送る画像をまとめる作業が
うまくいかずご教示お願いしたいと思います。
下記 理想とする手順です。

①商品リストの"オファーA”に入力されたオファ-名 例えば”TH1230”を検索
該当レコード TTL 12LOT 20,000K

②デスクトップ上にフォルダを作成 フォルダ名 "オファーA” + ”レコード数”LOT + "ttl weight"K
                                               例)TH1230 12LOT 20,000K

③商品リストで "weight"をソート 重複していなければ ”枝番”=1
                                  重複していたら ”枝番”=1、 ”枝番”=2 と連番をつけたいです。

④写真とリストの重量に間違いがないか最終確認しながらフォルダに1レコードずつもしくは
まとめてでも構わないのですが作成したフォルダに保存
その際に weight毎の画像名を ”weight"k -"枝番”と表示。
お客様からは JPGをつけないで欲しいとリクエストされています
例) 1000K-1
    1000K-2

何一つうまくいきませんでした。
何卒宜しくお願い致します。

#2 2020-12-31 17:59:07

himadanee
Guest

Re: 写真書出しについて

フィールド構成などがわからないので、スクリプトの例示はできませんが。
何一つ、というなら順番に、まずは手作業でやってみましょう。
①検索ができないのは、なぜですか?

②重複していなくても枝番=1、なら場合分けする必要はないのでは?
「”レコード数”LOT」の意味が分かりません。
検索結果が12レコードある、という風にも取れるし、「該当レコード」を1行書いてるから、「レコード数」というフィールド名?

>お客様からは JPGをつけないで欲しいと
エクスポート時のファイル名は自由につけられます。

#3 2021-01-04 17:47:46

ペンギン
Guest

Re: 写真書出しについて

Himadanee様

この度はお世話になります。
年末にご対応有難うございました。
相談内容が漠然としていて申し訳ございません。
ご返信の内容について
①    の検索は出来ております。すいません。
②    写真枝番ですが ご指摘の通り本来なら重複していなければ場合分けする必要はないのですが
    お客様からの要望で明記するようにしています。自動入力で 1を入力するよう変更しました。
また検索結果のレコード数=「”レコード数”LOT」という意味です。


おおまかに“仕入リスト”という在庫ファイルを説明いたします。

Weight (K)   写真枝番     OfferA    抽出済  PhotoA   ID No.
2700K    1    TH1230    1          画像  12300
2300K         1          TH1230    1          画像  12301
2300K           2          TH1230    1          画像  12302
TTL 3 LOT (3レコ-ド)  7300K

Weight (数字) → 商品重量
写真枝番(数字)→ 自動入力“1” 重複重量がある場合は2,3..と手入力で修正採番しています。
offerA(テキスト)→お客様へのoffer番号
抽出済(数字)→どこまで写真を書き出すしたかわからなくなるので 写真抽出スクリプト“show photoA weight”を実行後は 1 を入力させたつもりです。
PhotoA(オブジェクト)→ 商品の画像です。別ファイル“photo”のフィールド
ID No.(数字)→ 自動入力番号。 別ファイル“photo”とのリレーションで使用しています。

現在の手順です

重量でソート後 重複重量の枝番を変更入力
写真の書出しスクリプト“show photoA weight”を実行
下記、スクリプトの内容です。

IF[not IsEmpty(photoA::ID_Photo) ]  "写真をデスクトップを出力します。続行しますか?"
Get(最終メッセージ選択)=2(OKなら)
変数を設定 名前 $path
               値 "file:" & Get(デスクトップパス) &仕入リスト::Weight  & "k"  &  "-"  & 仕入リスト::写真枝番&
                           Right(photoA::FileName; Length(photoA::FileName) - Position(photoA::FileName;".";1;1)+1)
フィールド内容のエクスポート[photoA::photo; [$path] ;自動的に開く;フォルダを作成:オフ]
フィールド設定[仕入リスト::写真抽出済; Case( 仕入リスト::写真抽出済 = 1 ; 0 ; 1 ) ]


上記のスクリプトは前任者が作成したものを一部修正(画像の名前の部分)してそのまま使用しています。
変数を設定のRight(photoA::FileName; Length(photoA::FileName) - Position(photoA::FileName;".";1;1)+1)は
理解できずにそのまま使用しています。
画像をデスクトップに保存で 自動的に開いた際 名前を付けて保存で Himadanee様がおっしゃっていた
ファイル名を自由に付けれると分かりましが ファイルの種類は変更しようと思いましたが ”JPG” 以外に選択出来ませんでした。
ファイルの種類をなしにすることが 可能かどうか お教えいただけませんでしょうか。

宜しくお願い致します。

#4 2021-01-04 18:47:25

ペンギン
Guest

Re: 写真書出しについて

現状の作業手順の続きです。

デスクトップに書き出した画像を一つずつ オファー名を付けたフォルダに移動させています。

煩雑な作業なので 最初に 新規ファルダをデスクトップに作成しておきたいのですが ファイルメーカーから
その作業をすることは可能かも教えて頂けますでしょうか。

宜しくお願い致します。。

#5 2021-01-06 18:14:44

himadanee
Guest

Re: 写真書出しについて

変数を設定のRight(photoA::FileName; Length(photoA::FileName) - Position(photoA::FileName;".";1;1)+1)は
理解できずにそのまま使用しています。

これは拡張子(ファイル名の最初のピリオド以後)を取り出す計算式ですね。わからないときは、データビューアで「監視」のとこに計算式を入れてみるといいですよ。
このせいで.JPGがついてるわけですね。
ファイルの種類をなしにする必要は、ありません。

「フォルダを作成:オフ」にしてるのでエクスポート後に移動が必要になってます。オンにして、変数にフォルダ名も入れればいいです。
「自動的に開く」は必要なんですか?

フォルダ名に集計値を使うなら、集計フィールドが必要でしょう。
TTL 3 LOT (3レコ-ド)  7300K
が画面に出てるなら、既に存在すると思いますが。

#6 2021-01-08 16:36:48

ペンギン
Guest

Re: 写真書出しについて

himadanee様

Right関数の意味を ご教示いただいて有難うございます。
折角おしえていただいたデータビューワーは それ自体が分からなくて
まだ試していないのですが お教えいただいた通り 「ファルダを作成」を オフ→オンにすると
何もしなくても拡張子なしのファイルが書き出せました。

・オンにして 変数にファルダ名を入れる。
ファルダ名は 「仕入リスト::OfferA & 仕入リスト::TTLレコード数 &”LOT" &
仕入リスト::sWeight & ”K"」にしたいですが どの箇所にどう設定すればいいか分からないです。

・「自動的に開く」→不要になりました。
再度 上司に確認すると 確認しなくていいので 対象画像を まとめて1つのファルダに
書き出してもらえばいいということになりました。
今迄は写真とリストの重量を最終確認しながら 1レコードずつ書き出したので 対象レコードのphotoを
まとめて書き出すのは 対象レコードを検索後 どのようにスクリプトを変更したらいいのでしょうか?

厚かましい質問で申し訳ございません。
よろしくお願い致します。

#7 2021-01-08 17:38:11

himadanee
Guest

Re: 写真書出しについて

変数を設定、でパスを指定してますから、そこにフォルダの計算式を追加すればいいのですが。
Get(...) & フォルダの計算式 & "/" & ファイル名の計算式

#8 2021-01-13 17:14:37

ペンギン
Guest

Re: 写真書出しについて

himadanee様

ご教示いただいた通り Get(...) & フォルダの計算式 & "/" & ファイル名の計算式で デスクトップに
フォルダ名のついたフォルダ作成が出来ました。
フォルダ内には 拡張子なしのファイルがきちんと書き出せています。
有難うございます。

もう一つ分からない事があるのですが いままで1レコードずつ写真を書き出していましたが
複数のレコードの写真をまとめて書き出すのに対象レコードを検索し確認し下記を実行しましたが
変わらず1レコードしか書き出せませんでした。

レコード/検索条件確定[ダイアログあり:オフ]
If[not IsEmpty(photoA::ID_Photo) ]
If[Get(最終メッセージ選択)=2]
変数を設定[$path; 値: "file:" & Get(デスクトップパス) &仕入リスト::TTLレコード数
&"LOT"  &仕入リスト::sWeight&"K" &"/"&
仕入リスト::Weight  &"k" & "-" &仕入リスト::写真枝番
フィールド内容のエクスポート[photoA:: Photo;「$path」;ディレクトリの作成:オン]

レコード/検索条件確定[ダイアログあり:オフ] で 現在の対象レコードを確定させれるのかと
思っていました。
対象のレコードを書き出すには どのようにすればいいか教えて頂きたいのですが。

重ね重ね身勝手な質問で恐れ入ります。よろしくお願い致します。

#9 2021-01-13 21:11:27

himadanee
Guest

Re: 写真書出しについて

「フィールド内容のエクスポート」は、現在のレコードの1つしかエクスポートしません(レコードのエクスポートとは違う)

レコードへ移動「最初の」
Loop
//処理
レコードへ移動「次の;最後で終了」
End Loop

のように1レコードずつ処理する必要があります。

レコードの確定は、入力したデータを保存するステップですから、この際は使わないかな。

#10 2021-01-19 16:27:47

ペンギン
Guest

Re: 写真書出しについて

Himadanee様

お世話になっております。

お教えいただいた実行文を挿入する箇所を間違えたりで
途中で怖くなってしまい時間がかかってしまいましたが
やっと完成しました。
途中のメッセージも省き お教えいただいた実行分のおかげで
フォルダ保存がデスクトップに正確に早く出来るようになりました。
多いときで 100レコード位の作業がありましたが お陰様で本当に楽になりました。
知識の浅い私でも こんなに複雑な処理が完成出来るように導いて下さり
本当に有難うございました。
お世話になりました。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.004 seconds, 7 queries executed - Memory usage: 550.97 KiB (Peak: 571.51 KiB) ]