みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
お世話になります。
ファイルメーカー バージョン19.3.2.206
アプリケーション編集はMacBook Proで行っております。
作成したファイルはクラウド環境で使用しております。
クラウドバージョンは2.19.3.201になります。
1つの案件があり、ABC3つのテーブルがあります。
ABC3つのテーブルにそれぞれレイアウトがあります。
1案件に対してAテーブルの商品、Bテーブルの商品、Cテーブルの商品を使用することがあるので、それぞれのレイアウトに飛んで、案件番号で抽出、最終的にはひとつのPDFファイルにまとめています。
変数を設定[$filename ; 値: 案件テーブル::案件名 & ".PDF"]
変数を設定[$folder ; 値 ;Filter(Get (日付) ; "01234567879" ) ]
変数を設定[$filepath ; 値:Get(デスクトップ) & $folder & "/" & $filename
レコードをPDFとして保存。出力ファイルの指定を$filepathにし、フォルダを作成:オンにして、Mac環境では正常に動作しているのですが、Windowsでこのスクリプトを行った時、フォルダは出来るのですが、中が空になっています。
使用するWindowsマシンはバラバラです。個人のPCもあります。
たとえば、Windows使用者には何かひとつ共通の名前のフォルダの作成をお願いして、その中に格納で対応。などは可能なのですが、なにか良い方法がございますでしょうか?
色々調べて、スクリプト作成を試みたのですが、うまくいきません。
何卒、ご教授お願いいたします。
スクリプトデバッガで確認しましたか?
[レコードをPDFとして保存]の直後にエラーが出ていませんか?
Offline
ファイル名が不正なのが一番ありそうかな。案件名にコロンとかスラッシュが入ってるとか。
コロンで試したらびっくり、その手前までをファイル名にした空のファイルができた...
himadaneeさん、Mozさん
ありがとうございます。
スクリプトデバッガで確認しましたがエラーは出ませんでした。
試しに、$filenameを案件名から番号だけのフィールドに変更しましたが、やはりフォルダは空でした。
変数を使用すれば、Windows環境であっても、出力ファイルパスの設定をwin:などにしなくても良いのでしょうか・・・?
引き続き模索してみますが、何卒よろしくお願いいたします。
フォルダーは作れるんですよね。
そのフォルダーのアクセス巻を念のため確認してみてください。
Offline
Shinさん
ありがとうございます。
フォルダーのアクセス権のことでしょうか?
確認したところ、空になるWindowsのフォルダーは読み取り専用にチェックマークが入っております。
読み書きできる権限が付くはずなんですが。
読み取り専用では、ファイルが書き込めませんね。
Offline
書き込めないときってエラー出ないんですかね?
※エラーって言うのはダイアログではなくてエラー番号がデバッガの下のほうに表示されます。
確認できませんか?(環境が用意できずスンマセン)
Offline
コロンで試したらびっくり、その手前までをファイル名にした空のファイルができた...
Get(デスクトップパス) & "test/" & "12:345.pdf"
で、「12」という空のファイルになりました。
このケースでは、エラーは出ませんでした。ファイル名が途中まででも内容がPDFになってればともかく、0バイトのファイルなのにエラーにならないのは、バグとしかいえないですね...
(指定されたパスを「適当に」変換するケースは他のパターン(不完全な相対パスを補完するような)で正常な動作として存在する。)
Win10ではフォルダのアクセス権以外にアプリに許可するかどうかの設定がある(対話処理で指定すれば保存できても、スクリプトの自動保存は拒否される)んですが、最初のアクセス時にメッセージが出たような...まっさらなWin10がないので(というか使用中のPCしかないので設定後再起動とか細かいテストまでしたくない)試せません。
https://support.microsoft.com/ja-jp/win … a688e5c7be
もうWin11も出てるんですね...
フォルダが読み込み専用でできるのが謎ですね。
質問の件とは少し別ですが、
フォルダ名がOSの設定によって不定になる可能性(西暦が2桁とか月が01でなく1になるとか)はあるかな?後の処理が手動なら問題ないですが。
スクリプト内に印刷設定がないと、最後に印刷したときの設定でPDFができてしまうと思いますが、このステップはWindows用のはWindows上でないと作れないと思います。
みなさま
時間が空いてしまい申し訳ございません。
ご返信ありがとうございました。
みなさまのおかげで、特にWindows用にスクリプトを設定しなければいけないわけでも無さそうということは理解できました。
かつ、このスクリプトは調べたサイトのやり方にフォルダ作成がのっており、それを流用させていただきましたが、私の理想の使い方的にはフォルダを作成しなくても問題なかったので、(デスクトップに直接PDFが生成される。でよい)
スクリプトからフォルダを外し、
変数を設定[$filename ; 値: 案件テーブル::案件名 & ".pdf"]
変数を設定[$filepath ; 値:Get(デスクトップパス) & $filename
で、Windows、Macともに案件名のPDFファイルをデスクトップに作成することができました。
まだこのスクリプト自体は試運転中なのですが、
当初の目的の
・3つのテーブルから同じ案件番号の商品を抽出して、ひとつのPDFにまとめる
・案件名のPDFファイル名に自動でなり、デスクトップに生成される
はできました。
今後、フォルダがマストで必要なときにまた壁に当たりそうですが、ひとまず今回は解決できそうです。
皆様、ありがとうございました。
今後とも、何卒よろしくお願いいたします。
[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 530.63 KiB (Peak: 551.54 KiB) ]