みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
毎度お世話様です。FMP19&20です。
レコードをPDF化したオブジェクトをそのまま「mytable::pdf」に入れたいですがFMPで可能でしょうか?
やり方が思いつかなかったのでひとまず外部ファイルに出力、そのファイルをフィールドに読み込む
からやってみようと思ったのですが、これすらうまく行きません。
スクリプト上で
印刷用レイアウト選択
保存先は$pdf
$pdfには"filewin:/c:/users/" & $$LoginUserName & "/downloads/" & "xxx.pdf"を設定
「レコードをPDFとして保存」を実行
この時点で正しくdownloadディレクトリにxxx.pdfが出力されています。
このxxx.pdfを「mytable::pdf」にドラッグアンドドロップしてやるとPDFがプリビュー表示できています。
ここでD&Dではなくスクリプトでオブジェクト形式のコンテナフィールド「mytable::pdf」にこのxxx.pdfを入れたいのですが
「mytable::pdf」に移動して「PDFを挿入」($pdf)とやるとerror3
「ファイルを挿入」でターゲットを「mytable::pdf」、ソースを「$pdf」にした場合にerror102
となり、うまく行きません。
テストで$pdfでなく直接xxx.pdfを指定してみても結果が同じでした
明らかにまずい点は見えますでしょうか?
宜しくお願いします
Offline
ヘルプに「ファイルパスを image、imagemac、imagewin、または imagelinux で始めます」
って書いてありますから、filewinでなくimagewinにすればいいのでは。
保存先はGet(テンポラリパス)を使うのがお勧めです。
102は、フィールドが見つかりませんなので
スクリプトを実行しているレイアウト上に、「mytable::pdf」フィールドが表示されてないとかですかね。
filewinでなくimagewinにすればいいのでは。
直接参照ではimagewinを使っていて同じエラーが出ています
Offline
102は、フィールドが見つかりませんなので
スクリプトを実行しているレイアウト上に、「mytable::pdf」フィールドが表示されてないとかですかね。
ドラッグアンドドロップするフィールドが有りますので、表示されています
Offline
「mytable::pdf」がレイアウトに複数ありませんか?
エラー3は、オブジェクトフィールドがインタラクティブでないときにも起こるようですが
「mytable::pdf」がレイアウトに複数ありませんか?
エラー3は、オブジェクトフィールドがインタラクティブでないときにも起こるようですが
PDFイメージを表示している(ドロップして表示できる)フィールド1つを置いているだけです
Offline
実はこの基礎部分はずいぶん前から動いていた部分なんですね。
そこからほぼ手付かずでFMPのバージョンだけが変わっている感じです
Offline
どこまでが「基礎部分」で、どこに手を付けたのですか?
スクリプトを正確に書いてみてください。
バージョンが変わっただけなら、動いてたバージョンはいくつで、今はそのバージョンではテストできないんですか。
レイアウトのベーステーブルはフィールドと同じですか?
こちらの実験では、やっぱりフィールドがインタラクティブでない場合にエラー3、
変数値がfilewin:の場合にエラー100(ファイルが見つからない)
が発生できましたが、imagewin:に変えて問題なく動きました。
ところで元々の質問(直接フィールドへ)は、無理なようですね。
そういえば、同じファイル名を使うと上書きできずにエラーになったりするので、一時保存する場所は、Get(UUID)をファイル名やフォルダ名に使ったりしてました。
すみません、単なる愚痴でした
どこまでが「基礎部分」で、どこに手を付けたのですか?
スクリプトを正確に書いてみてください。
バージョンが変わっただけなら、動いてたバージョンはいくつで、今はそのバージョンではテストできないんですか。
レイアウトもスクリプトもテーブルも何も変わってないのです。で動かなくなっているので色々触り始めた次第。
こちらの実験では、やっぱりフィールドがインタラクティブでない場合にエラー3、
変数値がfilewin:の場合にエラー100(ファイルが見つからない)
が発生できましたが、imagewin:に変えて問題なく動きました。
「フィールドがインタラクティブでない」はレイアウトに同じフィールドがある状態ですか?
mytable::pdfフィールドは1つしか置いてないです
imagewinは直接指定はできないようですね。エラーになります。ローカル変数には設定可能のようですので
もうちょっと詳しく見てみます。
ところで元々の質問(直接フィールドへ)は、無理なようですね。
そういえば、同じファイル名を使うと上書きできずにエラーになったりするので、一時保存する場所は、Get(UUID)をファイル名やフォルダ名に使ったりしてました。
何故この流れが必要になったかというと、基本的にWebViewerでの動作になるからです。
自分の認識ではWebViewerで動かしているアプリにローカルPCのファイルをスクリプトで吸い込むことはできないですよね?
(できるのかな?)
WebViewerでローカルPCのdownloadにPDFを吐く→WebViewerでコンテナフィールドにそれを読み込む
ができるのならそれで我慢できるのですが・・
Offline
WebViewerじゃなくてWebDirectのことでしょうけど、確かにローカルファイルの挿入はユーザ操作が必要になってしまいますね。(「FileMaker WebDirect では [参照のみを保存] および [ソースファイルの指定] オプションはサポートされていません。」)
でしたら、「サーバ上のスクリプト実行」でやることになるのでは。「PDFを挿入」などは使えませんで、代わりに「URLから挿入」でできるはずです。(file プロトコルの場合:「Documents」フォルダまたはテンポラリフォルダ内のファイルのみを参照するサーバーサイドスクリプトで使用できます)
WebViewerじゃなくてWebDirectのことでしょうけど
はい、良く書き間違えます
「サーバ上のスクリプト実行」でやることになるのでは。「PDFを挿入」などは使えませんで、代わりに「URLから挿入」でできるはずです。(file プロトコルの場合:「Documents」フォルダまたはテンポラリフォルダ内のファイルのみを参照するサーバーサイドスクリプトで使用できます)
この辺りも実はあまり良く分かってなくて、実際私の作ったおもちゃを使うユーザーはFileMaker Cloudで使っていて、で私自身もFMCは初めてで良く分かってないんですね。FileMaker ServerとFileMaker Cloudの使い方の違いも分かってない。
FileMakerはVer3から使っておるんですがServer上で動かした経験がほぼ無い訳です。勉強しないといけませんね
Offline
Cloudは契約しないと使えないので私は全く使ったことありません。
Cloudアカウントが必要だったりServerと色々違いはありますが、スクリプトに関してはあんまり違わないかな?一応「互換性」のところで分けて書かれてますね。
「サーバー上のスクリプト実行」はCloudでもサポートされてますね。
とりあえず、PDF保存まではできてるので、URLから挿入で入れられるか試してみては。これはスタンドアロンでもデバッグできます。
しかし、そもそも「PDFを挿入」が動かないのがおかしいですからね...
「フィールドへ移動」でちゃんとインタラクティブのオブジェクトフィールドがアクティブになってますか?(今のところそれ以外にエラー3になる場合というのはわかりません。WebDirectで試してるわけではないですよね?)
「URLから挿入」だとターゲットも指定するステップなのでちょっと動作が違いますし、「PDFを挿入」が動くようになってもWebDirectでは使えないので、この際は意味がないかもしれませんね。
そもそも「PDFを挿入」が動かないのがおかしいですからね...
「フィールドへ移動」でちゃんとインタラクティブのオブジェクトフィールドがアクティブになってますか?(今のところそれ以外にエラー3になる場合というのはわかりません。WebDirectで試してるわけではないですよね?)
他のスレッドで他の方も同じような現象を言っていて、「PDFを挿入」ではなく「ファイルを挿入」にするとうまく動きます。パス指定は同じ変数$pdfで先頭はimagewinにしてあります。
WebDirectでも同じで、PDFを挿入だとエラー3で終わり。ファイルを挿入だとファイル選択ダイアログが出て、手で指定してやるとアップロードできます。
Offline
WebDirectでは「FileMaker WebDirect では [参照のみを保存] および [ソースファイルの指定] オプションはサポートされていません。」から、エラー3が出るのが正常な動きでは。
互換性が「一部」なので、何も指定しなければ動くんだと思います。
「ファイルを挿入」の場合は「[ダイアログオプション] および [ソースファイルの指定] オプションはサポートされていません。」なんですが、指定を無視して動いてるってことですね?
FileMaker WebDirect 一部
FileMaker Server いいえ
FileMaker Cloud いいえ
になっていますね。またどちらも
FileMaker WebDirect では [参照のみを保存] および [ソースファイルの指定] オプションはサポートされていません。
ですから、 では、ファイル指定のダイアログが表示され、実行できます。
> WebDirectでも同じで、PDFを挿入だとエラー3で終わり。
は、ファイルダイアログを設定していたのでは。
、
Offline
[ Generated in 0.006 seconds, 10 queries executed - Memory usage: 557.92 KiB (Peak: 578.46 KiB) ]