みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FMS19とFMP19でWindows環境、ServerはMACMini(Ventura13.1)の構成です。
製品番号のフィールドがあります。
そして製品番号.pdfのファイルをサーバの特定のフォルダの中にいれておきます。
そして、アイコンを押したら、この製品番号.pdfが開いてみえるようにしたいのです。
できるとは思っているのですが、具体的なことがわかりません。よろしくお願いします。
Offline
オブジェクトフィールドにファイルを挿入で「参照のみ挿入」すればダブルクリックで開けます。
その「参照」とおなじパスを計算式で指定して「URLを開く」ボタンにしておけば。
実際にはオブジェクトフィールドはいらないわけですが、試しにやってみると
GetContainerAttribute ( テーブル::o;"externalfiles" )
を指定しても開けますね。(計算結果はドライブ名から始まっているので真のURLではないが)
Event を送信 でPDFを開くことができます。
ファイルパスの例
D:\!TEMP\テスト.pdf
Event を送信[“odoc”; “aevt”; Quote ( "D:\!TEMP\テスト.pdf" )]
Offline
Eventを送信が簡単だと思ったのですが、テストにあたるところが、図番のフィールド内容なわけです。このフィールドの内容を記述するのはどうするのでしょうか
Offline
Himadaneeさんの参照と同じパスを計算式で指定というのは、計算式でパス/図番.pdfでつくっておきURLを開くとするのですか。
Offline
そうです。オブジェクトフィールド云々というのは「パス/」を取得するための方法の1つです。
共有フォルダのパスがわかってるなら、フィールド作る必要はありません。
フィールドを使うのは連結すればいいだけなので、
"D:\!TEMP\\" & tablename::図番 & ".pdf"
みたいな感じになります。
SeverのフォルダAという中に図番.PDFがあるとして。これをスクリプトで開きたいわけです。
図番はフィールドにあるデータです。
どのようなスクリプトになりますか?
Offline
「SeverのフォルダA」ではパスがわかりませんから、自力でサーバのパスが書けない人のためにオブジェクトフィールドを使う方法を書いたわけです。
別のファイルかテーブルで構わないので、オブジェクトフィールドを作ってやってみてください。
サーバーにあるデータへのパスは、下記となります。このサーバにあるフォルダは変化することはありません。そのフォルダの中にPDFをいれておこうと思ったいます。
\\SERVER\A\図面.pdf
Offline
フィールド値を使う計算式の書き方は#6で示しましたが、何が分からないのでしょうか。
Event文の指定の中でtablename::図番を指定するのに、直に文字を記入すればよいのでしょうか?
それとも計算式であらかじめフィールドを作っておいたほうがいいのでしょうか?
Offline
>Quote ( "D:\!TEMP\テスト.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
Event送信のファイルタイプの部分が計算を選んだり、ファイル項目に計算式を入れた場合。<不明>になります。PDFファイルの拡張子があればファイルタイプにAdobeのReaderになります。
Offline
><不明>になります
それはそういう仕様なので問題ありません。(実行時に計算するまで計算結果がわからないため)
計算フィールドを指定するとうまくいかない、のところが謎ですね。
計算フィールドの計算式を、Event送信の計算式に書いてみたらどうなりますか。「図番」でなく「テーブル名::図番」じゃないかな。
このテーブル名は、受注伝票なのです。 図番を受注伝票::図番 としました。そうすると、なにも反応しなくなりました。
おかしなことに、図番にもどしたら、ファルダが開いていたのですが、なにも反応しなくなりました。
Offline
Event送信で「ファイル」を使うなら、そこはFMのファイルパスを入れることになります。計算式は使えません。今回のケースではフィールド値を使うので、前もって変数に入れておいて、変数を指定することになります。(Filewin:を使うケース、なくても大抵は動く)
「計算」を使うなら、そこはWindowsのコマンドライン(のようなもの)になるので、FMではなくOSパスになります。(Filewin:は使わない。パスの区切りはスラッシュでも動く場合もあるが基本的にはバックスラッシュ。パスにスペースなどがあれば全体を""で囲む)
>そうすると、なにも反応しなくなりました。
>図番にもどしたら、ファルダが開いていたですが、なにも反応しなく
「ファイル」「計算」どっちでやってるんですか?
上記のように、この場合「計算式」の方が変数設定の手間がいりませんが
計算式を設定できてるなら、計算式としては問題がないことになります。(計算式のエラーなら計算式を保存するときエラーになる)
ファイルだと、なにも動きません。計算だとファイルが見つからないとでます。ファイルに計算結果をコピペするとちゃんとPDFが表示されます
Offline
どうにもEventを送信ではうまくいきません。
GetContainerAttribute 関数でPDFを開くことができるのでしょうか
Offline
URLを開くコマンドでやってみようとおもいました。
"\\\SERVER01\Documents/111\228-51135.pdf"でURLを開くで目的のPDFが表示されます。
しかし、これを
"\\\SERVER01\Documents/111\" & 図番 & ".pdf"
とすると、この計算式ははねられます。
Serverの前の¥が3ついるのに気が付きました。
Offline
ひょっとして、図版フィールドが数値フィールドになっていませんか。
Offline
ありがとうございます。テキストフィールドです。計算結果もテキストです。
Offline
Eventを送信で計算式の項目に下記をいれたら、この式は計算できませんとでます。そしてpdfの前のピリオドのところが色がかわります。
"\\\SERVER01\Documents/111\" & 図番 & ".pdf"
\(バックスラッシュ)は2つと3つも試しています。同じです。
つぎにこの計算式の項目にこの計算式のフィールドを指定しました。これは保存できます。
受注伝票::pdf
です。ファイルが見つからないとでます。
Offline
文字列定数内のバックスラッシュはエスケープ文字なので、バックスラッシュ自体を書くときは2つ重ねます。
ただFMは挙動が不親切でエスケープ文字の後ろがエスケープ不要な文字だと計算式を確定した時点で1つに変換してしまうので
¥¥¥¥S
と書いても
¥¥¥S
になってしまいます。
"はエスケープ必要な文字なので
111\"
のところが閉じてません。
おおー。できました。
111\\”としてうごきました。
皆さんたくさんありがとうございました。
Serverの前に¥を三つは気が付いたのですが、最後の¥の前にもいりましたか。
Offline
Pages: 1
[ Generated in 0.015 seconds, 9 queries executed - Memory usage: 566.41 KiB (Peak: 586.95 KiB) ]