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

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

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

You are not logged in.

Announcement

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


#1 2023-12-24 21:16:15

PDFを開く

FMS19とFMP19でWindows環境、ServerはMACMini(Ventura13.1)の構成です。

製品番号のフィールドがあります。
そして製品番号.pdfのファイルをサーバの特定のフォルダの中にいれておきます。
そして、アイコンを押したら、この製品番号.pdfが開いてみえるようにしたいのです。
できるとは思っているのですが、具体的なことがわかりません。よろしくお願いします。

Offline

#2 2023-12-24 21:26:46

himadanee
Guest

Re: PDFを開く

オブジェクトフィールドにファイルを挿入で「参照のみ挿入」すればダブルクリックで開けます。
その「参照」とおなじパスを計算式で指定して「URLを開く」ボタンにしておけば。

実際にはオブジェクトフィールドはいらないわけですが、試しにやってみると
GetContainerAttribute ( テーブル::o;"externalfiles" )
を指定しても開けますね。(計算結果はドライブ名から始まっているので真のURLではないが)

#3 2023-12-25 09:27:03

qb_dp
Member

Re: PDFを開く

Event を送信 でPDFを開くことができます。

ファイルパスの例
D:\!TEMP\テスト.pdf

Event を送信[“odoc”; “aevt”; Quote ( "D:\!TEMP\テスト.pdf" )]

Offline

#4 2023-12-25 18:51:50

Re: PDFを開く

Eventを送信が簡単だと思ったのですが、テストにあたるところが、図番のフィールド内容なわけです。このフィールドの内容を記述するのはどうするのでしょうか

Offline

#5 2023-12-25 20:01:21

Re: PDFを開く

Himadaneeさんの参照と同じパスを計算式で指定というのは、計算式でパス/図番.pdfでつくっておきURLを開くとするのですか。

Offline

#6 2023-12-26 07:17:09

himadanee
Guest

Re: PDFを開く

そうです。オブジェクトフィールド云々というのは「パス/」を取得するための方法の1つです。
共有フォルダのパスがわかってるなら、フィールド作る必要はありません。
フィールドを使うのは連結すればいいだけなので、
"D:\!TEMP\\" & tablename::図番 & ".pdf"
みたいな感じになります。

#7 2023-12-27 15:15:32

Re: PDFを開く

SeverのフォルダAという中に図番.PDFがあるとして。これをスクリプトで開きたいわけです。
図番はフィールドにあるデータです。
どのようなスクリプトになりますか?

Offline

#8 2023-12-27 15:46:20

himadanee
Guest

Re: PDFを開く

「SeverのフォルダA」ではパスがわかりませんから、自力でサーバのパスが書けない人のためにオブジェクトフィールドを使う方法を書いたわけです。
別のファイルかテーブルで構わないので、オブジェクトフィールドを作ってやってみてください。

#9 2023-12-27 20:49:46

Re: PDFを開く

サーバーにあるデータへのパスは、下記となります。このサーバにあるフォルダは変化することはありません。そのフォルダの中にPDFをいれておこうと思ったいます。
\\SERVER\A\図面.pdf

Offline

#10 2023-12-28 07:07:42

himadanee
Guest

Re: PDFを開く

フィールド値を使う計算式の書き方は#6で示しましたが、何が分からないのでしょうか。

#11 2023-12-28 09:14:40

Re: PDFを開く

Event文の指定の中でtablename::図番を指定するのに、直に文字を記入すればよいのでしょうか?
それとも計算式であらかじめフィールドを作っておいたほうがいいのでしょうか?

Offline

#12 2023-12-28 10:18:20

himadanee
Guest

Re: PDFを開く

>Quote ( "D:\!TEMP\テスト.pdf" )
これ自体計算式ですから、フィールドを作る必要はないです。
計算結果がどうなってるか見たければ、フィールドを作ってもいいですけど、データビューアで間に合うかな。

#13 2023-12-28 18:51:51

Re: PDFを開く

うまくいきません。
まず、計算フィールドを作りました。
内容は、"//SERVER01/Documents/111/"  & 図番 & ".pdf" です。
そのフィール内容の実際は
//SERVER01/Documents/111/228-51135.pdf となります
で、この内容をコピーして
スクリプトのEventを送信のファイルにペーストしたら、ちゃんと目的のPDFが開きました。
次に、Event送信の計算の項目にこの計算フィールドを指定しました
そうすると、ファイル//SERVER01/Documents/111/228-51135.pdfが見つからないとなります。
つぎに、Event送信ファイル項目"//SERVER01/Documents/111/"  & 図番 & ".pdf をいれるとこの111のフォルダが開くけれどPDFは開かないです。
また、Filewin://をつけてみましたがお使いのPCにはFlieWinを開けないとでます
なにを間違っているのでしょうか。

Offline

#14 2023-12-28 19:56:46

Re: PDFを開く

Event送信のファイルタイプの部分が計算を選んだり、ファイル項目に計算式を入れた場合。<不明>になります。PDFファイルの拡張子があればファイルタイプにAdobeのReaderになります。

Offline

#15 2023-12-28 21:22:31

himadanee
Guest

Re: PDFを開く

><不明>になります
それはそういう仕様なので問題ありません。(実行時に計算するまで計算結果がわからないため)

計算フィールドを指定するとうまくいかない、のところが謎ですね。
計算フィールドの計算式を、Event送信の計算式に書いてみたらどうなりますか。「図番」でなく「テーブル名::図番」じゃないかな。

#16 2023-12-28 21:59:11

Re: PDFを開く

このテーブル名は、受注伝票なのです。 図番を受注伝票::図番 としました。そうすると、なにも反応しなくなりました。
おかしなことに、図番にもどしたら、ファルダが開いていたのですが、なにも反応しなくなりました。

Offline

#17 2023-12-29 07:26:15

himadanee
Guest

Re: PDFを開く

Event送信で「ファイル」を使うなら、そこはFMのファイルパスを入れることになります。計算式は使えません。今回のケースではフィールド値を使うので、前もって変数に入れておいて、変数を指定することになります。(Filewin:を使うケース、なくても大抵は動く)

「計算」を使うなら、そこはWindowsのコマンドライン(のようなもの)になるので、FMではなくOSパスになります。(Filewin:は使わない。パスの区切りはスラッシュでも動く場合もあるが基本的にはバックスラッシュ。パスにスペースなどがあれば全体を""で囲む)

>そうすると、なにも反応しなくなりました。
>図番にもどしたら、ファルダが開いていたですが、なにも反応しなく
「ファイル」「計算」どっちでやってるんですか?
上記のように、この場合「計算式」の方が変数設定の手間がいりませんが
計算式を設定できてるなら、計算式としては問題がないことになります。(計算式のエラーなら計算式を保存するときエラーになる)

#18 2023-12-29 08:13:19

Re: PDFを開く

ファイルだと、なにも動きません。計算だとファイルが見つからないとでます。ファイルに計算結果をコピペするとちゃんとPDFが表示されます

Offline

#19 2023-12-29 22:25:10

Re: PDFを開く

どうにもEventを送信ではうまくいきません。
GetContainerAttribute 関数でPDFを開くことができるのでしょうか

Offline

#20 2023-12-30 11:06:49

Re: PDFを開く

URLを開くコマンドでやってみようとおもいました。
"\\\SERVER01\Documents/111\228-51135.pdf"でURLを開くで目的のPDFが表示されます。
しかし、これを
"\\\SERVER01\Documents/111\"  & 図番 & ".pdf"
とすると、この計算式ははねられます。
Serverの前の¥が3ついるのに気が付きました。

Offline

#21 2023-12-30 11:25:18

Shin
Member

Re: PDFを開く

ひょっとして、図版フィールドが数値フィールドになっていませんか。

Offline

#22 2023-12-30 12:09:45

Re: PDFを開く

ありがとうございます。テキストフィールドです。計算結果もテキストです。

Offline

#23 2023-12-30 13:37:17

Re: PDFを開く

Eventを送信で計算式の項目に下記をいれたら、この式は計算できませんとでます。そしてpdfの前のピリオドのところが色がかわります。
"\\\SERVER01\Documents/111\"  & 図番 & ".pdf"
\(バックスラッシュ)は2つと3つも試しています。同じです。
つぎにこの計算式の項目にこの計算式のフィールドを指定しました。これは保存できます。
受注伝票::pdf
です。ファイルが見つからないとでます。

Offline

#24 2023-12-30 13:50:11

himadanee
Guest

Re: PDFを開く

文字列定数内のバックスラッシュはエスケープ文字なので、バックスラッシュ自体を書くときは2つ重ねます。
ただFMは挙動が不親切でエスケープ文字の後ろがエスケープ不要な文字だと計算式を確定した時点で1つに変換してしまうので
¥¥¥¥S
と書いても
¥¥¥S
になってしまいます。

"はエスケープ必要な文字なので
111\"
のところが閉じてません。

#25 2023-12-30 14:34:30

Re: PDFを開く

おおー。できました。
111\\”としてうごきました。
皆さんたくさんありがとうございました。
Serverの前に¥を三つは気が付いたのですが、最後の¥の前にもいりましたか。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 8 queries executed - Memory usage: 566.15 KiB (Peak: 586.69 KiB) ]