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

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

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

You are not logged in.

Announcement

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


#1 2015-11-11 14:41:42

ところてん
Guest

Eventの送信でペイントを起動し保存したい。

filemaker12 win

にてオブジェクトフィールドをスクリプトにてペイントを起動し絵を描いて
保存するというやり方をやりたいと思っています。

他のサイトのトピックで
OLEのサポート
https://community.filemaker.com/message/498558

というものがあり

Eventの送信で
     "mspaint.exe" &
     Substitute( Get(ファイルパス) ;
     ["file:";""];
     [Get(ファイル名)&".fmp12";""];
     ["/";"¥¥"]
     ) &
     "_Files¥¥訪問記録¥¥" & 訪問記録テーブル::レコードCD&"_フリー記入_*.bmp"

と入れてみたのですが
スクリプトを実行すると
mspaint.exefmnet:¥192.168.1.1・・・・・*.bmpが見つからなかった為、処理を完了できません。
とエラーが出てしまいます。
mspaint.exefmnetの所がおかしいのかなと思っているのですが解決方法が分かりません。
どうぞお知恵をお貸しください。

ちなみに計算でなく、テキストでmspaint.exe
と入力するとペイント事態は起動します。

#2 2015-11-11 16:42:28

scripter
Guest

Re: Eventの送信でペイントを起動し保存したい。

.exe の後に半角スペースが必要です。
その方法は共有ファイルでは使えません。
エクスポートして、編集して、再度挿入、という手順でやらないとだめでしょう。

#3 2015-11-11 16:59:54

ところてん
Guest

Re: Eventの送信でペイントを起動し保存したい。

scripter様

半角スペースを入れると
mspaint.exeが見つからなかった為処置を完了できませんでした。
という表示に変わりました。

宜しければ共有ファイル(サーバ利用)で利用できる
エクスポートして、編集して、再度挿入のやり方を詳しくし得て頂けないでしょうか?



scripter wrote:

.exe の後に半角スペースが必要です。
その方法は共有ファイルでは使えません。
エクスポートして、編集して、再度挿入、という手順でやらないとだめでしょう。

#4 2015-11-13 15:45:31

ところてん
Guest

Re: Eventの送信でペイントを起動し保存したい。

どなたかお知恵をお貸しください。

#5 2015-11-20 10:29:12

ところてん
Guest

Re: Eventの送信でペイントを起動し保存したい。

どなたか、共有ファイルでも利用できる
スクリプトの記述方法を教えていただけないでしょうか?
オブジェクトフィールドをクリック
ペイントが開く
記入後
そのオブジェクトフィールドに保存する

ということをやりたいと思っています。

エクスポートして、編集して、再度挿入、という手順がいまいり理解ができません。

皆さまお忙しいところ大変申し訳ありませんが、どうぞよろしくお願いします。

#6 2015-11-20 11:20:36

Moz
Member

Re: Eventの送信でペイントを起動し保存したい。

[変数を設定]で ドキュメントパスまたはテンポラリパスにオブジェクトフィールドの中のファイルを保存
[フィールド内容のエクスポート]で ↑ の変数にファイルを書き出し、
[Event を送信]で ↑ で書き出したファイルをペイントで開けば良いでしょう。


フィールド内容のエクスポート
https://www.filemaker.com/help/14/fmp/j … 35.60.html

ファイルパスの作成
https://www.filemaker.com/help/14/fmp/j … .8.41.html

BMP 形式の関連付けられたアプリケーションがペイントの場合、
[フィールド内容のエクスポート]のオプションで[ファイルを自動的に開く]をオンにすればペイントで開きます。

Last edited by Moz (2015-11-20 11:21:01)

Offline

#7 2015-11-20 15:39:42

ところてん
Guest

Re: Eventの送信でペイントを起動し保存したい。

Mozさん


変数を設定[$path; 値:get(テンポラリパス)&".png"]
フィールド内容のエクスポート[OLE::イラスト;「$path」;自動的に開く]
Eventを送信[「aevt」;「odoc」;「mspaint.exe」]

と記述しまして、ペイントは開くのですが記述後の
保存(上書き?)が出来ないようです。
Eventに送信の後に?中に?何か記述が必要なのでしょうか?

#8 2015-11-20 16:24:59

Moz
Member

Re: Eventの送信でペイントを起動し保存したい。

Event送信だけではペイントで編集した後に自動でオブジェクトフィールドを更新することはできませんよ。

参考にされた FileMaker Community の方法に従うなら

ペイントで開いて保存したのちに、
カスタムダイアログの次のステップでオブジェクトフィールドに
同じパスから画像を挿入し直せば良いでしょう。

Offline

#9 2015-11-20 17:11:40

ところてん
Guest

Re: Eventの送信でペイントを起動し保存したい。

Mozさん

すみません、一つ一つ確認させてください。

変数を設定[$path; 値:get(テンポラリパス)&".png"]
↑変数を指定する値はget(テンポラリパス)で大丈夫でしょうか?

フィールド内容のエクスポート[OLE::イラスト;「$path」;自動的に開く]
Eventを送信[「aevt」;「odoc」;「mspaint.exe」]
↑Eventを送信ではテキストを選択してmspaint.exeとしているのですが
このやり方で大丈夫でしょうか?
またペイントで加工したものを上書き保存する際にとりあえず保存する場所は
どこでも良いという事になりますでしょうか?例えばデスクトップ等
※×やペイントの画面で保存ボタンを押した際の保存場所

オブジェクトフィールドに同じパスから画像を挿入しなおせば良いとの事だったのですが
ピクチャの挿入[$path]

を入れてもオブジェクトフィールドは変わらないようです。
考え方が間違っているのでしょうか?

#10 2015-11-20 17:14:05

Moz
Member

Re: Eventの送信でペイントを起動し保存したい。

"上書き保存" ですよ。

Offline

#11 2015-11-24 11:25:19

ところてん
Guest

Re: Eventの送信でペイントを起動し保存したい。

Mozさん

理解が足りず申し訳ありません。
$pathはテンポラリパスに保存されているものを指し
エクスポートでそのパスへOLE::イラストを出力
そのあとEventを送信でMsペイントを起動するはずなのですが
この時点ではすでに挿入されている画像が開かず、真っ白なペイント画面が表示されます。

また最後にピクチャの挿入で$path(テンポラリパス)に保存されている画像を挿入(上書き)するんじゃないかと思っているのですが・・・

すみません、もう少しヒントを頂けないでしょうかTT

#12 2015-11-24 13:03:18

旅人
Member

Re: Eventの送信でペイントを起動し保存したい。

>変数を設定[$path; 値:get(テンポラリパス)&".png"]
ファイル名が必要ですけど。

Offline

#13 2015-11-24 13:30:58

旅人
Member

Re: Eventの送信でペイントを起動し保存したい。

それと、共有環境は分からないけど・・・
最初はテンポラリフォルダでは無くデスクトップにでもフォルダを作って試した方がいいかも。
パスの変数はグローバル変数にして値は"image:"&Get(デスクトップパス)&"フォルダ名/ファイル名.bmp
にして、このパスでフィールド内容のエクスポート。
ペイントで編集後、上書き保存。
元のオブジェクトフィールドに別スクリプトで$$変数指定でピクチャ挿入。
してみては?
外部保存の場合、外部保存されたファイル名を使わないとファイルが増えてしまう?

Offline

#14 2015-11-24 13:43:28

Moz
Member

Re: Eventの送信でペイントを起動し保存したい。

とりあえずのサンプル。
デスクトップに書き出してペイント開く > OK ボタンで同じファイルをピクチャ挿入で更新。

http://xfs.jp/oUAo1

オブジェクトのファイル名使っているとファイルどんどん増えますね(汗)

Offline

#15 2015-11-24 13:49:57

ところてん
Guest

Re: Eventの送信でペイントを起動し保存したい。

旅人さん

ありがとうございます。
下記の様に設定しましたところ
フィールド内容のエクスポートまではいくのですが
ペイントは空(空白?)で起動するようです。

また、上書き保存というのはペイントで編集後の保存先(手動)を
元の場所、今回であればフォルダ名/ファイル名.bmpに上書きして保存すると言った認識で宜しいでしょうか?


旅人 wrote:

それと、共有環境は分からないけど・・・
最初はテンポラリフォルダでは無くデスクトップにでもフォルダを作って試した方がいいかも。
パスの変数はグローバル変数にして値は"image:"&Get(デスクトップパス)&"フォルダ名/ファイル名.bmp
にして、このパスでフィールド内容のエクスポート。
ペイントで編集後、上書き保存。
元のオブジェクトフィールドに別スクリプトで$$変数指定でピクチャ挿入。
してみては?
外部保存の場合、外部保存されたファイル名を使わないとファイルが増えてしまう?

#16 2015-11-24 14:04:23

ところてん
Guest

Re: Eventの送信でペイントを起動し保存したい。

Mozさん

サンプルありがとうございます!

じっくり拝見させて頂きます!

ちょっと気になったのが、これはあらかじめオブジェクトフィールドになにか入っている場合は
動作する様なのですが、空の場合(新規作成)の場合はエラーになるようです。

こちらの対処法も教えて頂けると幸いです。

Moz wrote:

とりあえずのサンプル。
デスクトップに書き出してペイント開く > OK ボタンで同じファイルをピクチャ挿入で更新。

http://xfs.jp/oUAo1

オブジェクトのファイル名使っているとファイルどんどん増えますね(汗)

#17 2015-11-24 14:24:21

Moz
Member

Re: Eventの送信でペイントを起動し保存したい。

元の Web ページの内容が Server でも動作するように直しただけです。

残念ながら私にできるのはここまでです。
すみません。Windows は検証にしか使っていないのでお役に立てません。

対策的なアイデア
・真っ白な BMP を用意しておいて1レコードテーブルのオブジェクトフィールドに格納
現在のレコードのオブジェクトが空ならその画像を書き出してペイント起動。

※ダミーに用意した画像のサイズになるのでそれ以上を望む場合はよく分かりません。

健闘を祈ります。

Offline

#18 2015-11-24 16:00:16

旅人
Member

Re: Eventの送信でペイントを起動し保存したい。

元々入っている画像はどのようにして入れたものなのですか。
新規に登録する画像もどのようにして入れるのですか。
ファイル名フィールドは無いのですか。

Offline

#19 2015-11-25 17:00:11

ところてん
Guest

Re: Eventの送信でペイントを起動し保存したい。

Mozさん

対策的なアイデア利用させて頂きます!
ありがとうございました。

旅人さん

元々入っているファイルはテスト環境だった為ドラッグ&ドラッグで挿入していました。
Mozさんの案で対処しようかと考えています。
ファイル名フィールドというのがどのようなものなのかが分かりません。


うまく設定できそうだったので、次はオブジェクトフィールドの外部保存を試そうとしたところ
ファイル「?」を開くことができません。(見つかりません)と表示されるようになってしまいました。

最初の変数の設定を変更しなければいけないと思うのですが
$$path ; 値:"file:"&get(デスクトップパス)&getastext(テーブル::オブジェクト)

$$path ; 値:"fmnet:"&get(テンポラリパス)&getastext(テーブル::オブジェクト)

としたのですが、うまく動きません。
どこを変更すれば宜しいでしょうか?

#20 2015-11-25 17:10:14

旅人
Member

Re: Eventの送信でペイントを起動し保存したい。

外部保存オブジェクトフィールドはgetastext(テーブル::オブジェクト)
でファイル名を取れませんよ。

Offline

#21 2015-11-25 17:18:15

旅人
Member

Re: Eventの送信でペイントを起動し保存したい。

ファイル名が無いとフィールド内容エクスポート出来ません。
外部保存ではないフィールドにドラグするとgetastext(オブジェクト)でファイル名
が得られます。
getastext(外部保存用オブジェクトフィールド)の計算フィールドを作って、結果を
テキストにすると、どのようになっているのか分かります。
bmpだとjpegに変換されたものも入っているはず。たしか。

Offline

#22 2015-11-25 18:05:37

旅人
Member

Re: Eventの送信でペイントを起動し保存したい。

Macで試してみたら外部保存オブジェクトのGetAsTextは1行目が
remote:ファイル名.bmp
となってますね。
$$path ; 値:"file:"&get(デスクトップパス)&getastext(テーブル::オブジェクト)

$$path ; 値:"file:"&get(デスクトップパス)&GetValue(Substitute(GetAsText(オブジェクト);"remote:";"");1)
にする、とかで何とかなりませんか。(Server関連はワカリマセン)

Offline

#23 2015-11-26 10:02:14

ところてん
Guest

Re: Eventの送信でペイントを起動し保存したい。

旅人さん

仰る通り、bmpで出力するとjpegも生成されるようなので(というかbmpではファイルが大きすぎるので(汗)
gif形式に変更しました^^
GetAsTextで確認するとremote:ファイル名.gifとなっています。
$$path ; 値:"file:"&get(デスクトップパス)&GetValue(Substitute(GetAsText(オブジェクト);"remote:";"");1)に変更して
フィールド内容のエクスポートをすると、クライアント(操作しているパソコン)のデスクトップにファイル名.gifが作成されるのは確認できたのですが
Eventの送信でペイントを起動すると空白になってしまうようです。

すみません、もう少しお付き合いお願い致します。



旅人 wrote:

Macで試してみたら外部保存オブジェクトのGetAsTextは1行目が
remote:ファイル名.bmp
となってますね。
$$path ; 値:"file:"&get(デスクトップパス)&getastext(テーブル::オブジェクト)

$$path ; 値:"file:"&get(デスクトップパス)&GetValue(Substitute(GetAsText(オブジェクト);"remote:";"");1)
にする、とかで何とかなりませんか。(Server関連はワカリマセン)

#24 2015-11-26 10:04:24

ところてん
Guest

Re: Eventの送信でペイントを起動し保存したい。

あああ!

出来ました!Eventの送信の所の変数の記述が打ち間違えておりました・・・

とりあえず報告まで。

また確認したら書き込みさせて頂きます。。

#25 2015-11-26 11:36:57

旅人
Member

Re: Eventの送信でペイントを起動し保存したい。

エクスポートしたものは「自動で開く」になってましたけど
画像ファイルを開くデフォルトアプリはペイントではないのですか。
自動で開いたあとEvent送信でペイントを開いたらどうなるのか
分からないですけど。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.019 seconds, 7 queries executed - Memory usage: 581.42 KiB (Peak: 618.33 KiB) ]