みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
ご返信ありがとうございます。
追加元のPDFファイルは常に同じファイルなのですか?違うならそっちが原因の可能性も
追加元のPDFは常に別です。
同名の既存ファイルを削除し、そのレコード単体で新規にPDF保存しても発生します。(別レコード、画像を削除すれば保存可能)
挿入時に埋め込み(参照のみでない)してますか。
画像データはオブジェクトフィールドに埋め込みで保存しています。
外部参照はしていません。
ファイル名は問題ない?
ファイル名は右クリやファイルメニューで手動保存する場合は名称未設定.pdf、スクリプトで保存する場合は特定のファイル名ですが、
その画像ファイルを含まないように別レコードや画像削除した上で保存すればエラーなく保存可能です。
対処方法としては、ペイントで開いて別名保存したものを登録することでPDF保存は出来ました。
しかしながら根本原因として何が考えられるかがまだわかっておりません。
お世話になります。
表題のとおり、画像オブジェクトを含むレコードをPDF出力する際に、特定のレコードに限って、
「ディスク上に作成できませんでした。ファイル名を変更、ディスク上の空き容量を増加、ロックを解除、または他のディスクを使用してください。」のエラーが表示されます。
原因調査に行き詰まりましたので相談させてください。
環境:
Windows10
FileMakerPro19(右クリックやメニューバーのファイル→レコードの保存/送信→PDF、スクリプトの「レコードをPDFとして保存」でも発生)
WebDirectでも確認(WindowsServer2016、FileMakerServer19、Chrome・Edge・Firefox)
同じレイアウトでも、別レコードではPDF保存可能、
またエラー発生したレコードでも、画像オブジェクトを削除すればPDF保存可能でした。
念の為「他のディスク」を試しましたが解決せず。
もともとPDF保存はスクリプトで「既存のPDFに追加」のオプションを指定して実行しており、
スクリプトと右クリックなどでの保存とはファイル名が違うので「ファイル名の変更」も無関係、
他のレコードではエラーが発生せず追加印刷出来ますので「ロック」も無関係と判断します。
画像オブジェクトを削除すればPDF保存可能なので、画像オブジェクトのPDF変換で発生しているエラーであり、
また他のレコードではPDF保存可能なのでそのレコードの画像(jpg)が原因なのではと睨んでいますが、
PDF保存について利用出来ないオブジェクトの条件があるのでしょうか?
ご教示お願いいたします。
ありがとうございます。
「...」を用いた範囲検索や「= *」を用いたあいまい検索のような形では出来ず
スクリプトするしか無いということですね
Windows10
FMPA17
お世話になります。
FileMakerで除外検索をするには、
検索モードで「一致するレコード」を「除外」に設定するか、「検索実行」スクリプトの条件設定で「レコードを対象外に」とする他なく、
範囲検索やあいまい検索のような検索窓でコマンドを使った除外検索は出来ないという認識でよろしいでしょうか。
今作っているものが他社から引き継いだFileMakerアプリでして、
3テーブルのレイアウトのスクリプトのうち、他社作成の印刷スクリプトから「印刷設定」ステップをコピーしたものと、私の方で新しく「印刷設定」を作ったものと混在してしまっていて、
その設定が私の端末上では全て同一に見えてしまうため「印刷範囲が不安定」と私が捉えてしまった形ですね。
他社作成の印刷スクリプトが毎回全体印刷できたので
それを私の作成スクリプト全てにコピペすることで対応できそうです。
現象の謎も解明できたので解決扱いにしたいと思います。
Mozさん、Shinさんありがとうございました。
サンプル作成までしていただきありがとうございます。中身も拝見いたしました
拡大縮小の倍率についてはスクリプトステップで指定した通りに出力されます。
とありますが私のFileMakerProAdvancedでスクリプトワークスペースを開くと、
(縮小する)とついているスクリプトも、ついていないスクリプトも同一の設定をしているように見えます。
しかし実際動かしてみると、(私の状況にちかい「A4より大きい」レイアウトを例にします)
(縮小する)では1ページにまとまって、そのままの場合は2枚に分かれて出力されました。
これはMozさんの環境で設定されたプリンタの倍率設定がデフォルトで反映されていて、
私のFileMakerプリンタ設定には明示されずに同一設定に見える
という理解でよろしいでしょうか?
[印刷設定]のスクリプトステップは配置している旨は#3で記述しました。上手く行っておりません。
「印刷設定」「印刷」「PDFとして保存」のヘルプを参照しましたが印刷範囲に関する記述は見当たりません。
それ以外の設定が影響を与えているわけではないのでしょうか
一定しないのは印刷する毎に変わってしまうのかレイアウト毎に異なるのかそれ以外なのかどれでしょう?
1つのレイアウトに対しタイミング次第で印刷範囲がかわります。
同じ処理をさせる同様のレイアウトが3テーブル分ありますがどのレイアウトでも固定はされません。
同じレイアウトを対象にした「印刷」ステップを持ったスクリプトもありまして、
アプリ上では不定ですが、WebDirect(WindowsServer2012・FilemakerServer6/クライアントはIE11)でその印刷スクリプトを実行すると必ずレイアウト全体で別タブPDF化されます。
WebDirectでアプリ起動時にプレビュー準拠で「レコードをPDF」していたものが、印刷スクリプト実行後にもう一度「レコードPDF」を実行すると全体印刷になっている、という現象を確認しました。(3テーブル中2テーブルで確認。うち1つは最初から全体印刷)
この現象をアプリで試してみたところ「レコードPDF」の範囲はプレビュー準拠のままでした。
上の現象は「直前の印刷設定」によるものだと思うのですがWebDirectで出来てアプリ上で成功していない理由がわかりません。
またスクリプト上でその直前の印刷設定を明示的に設定することは出来ないのでしょうか?
回答ありがとうございます。
「レイアウト設定」の「印刷」タブにある余白設定ですよね?
チェック有にして全て0にしましたが効果ありませんでした。
「ドライバが変わっている」という点で「印刷設定」スクリプトで指定プリンタを変えてみましたがこちらも変わりませんでした。。
レイアウトを「レコードをPDFとして保存」機能でPDF化したいのですが
印刷範囲がレイアウト全体だったり、レイアウトの「プレビュー」で表示される切れた範囲だったり一定しません。
動かしてる限り以上の2択です。
レイアウト全体でPDF化できるよう固定したいのですが
どのように設定すればいいのでしょうか?
「レコードをPDFとして保存」スクリプトのオプション設定で100%や全体表示にしても効きません。
またパート設定の改ページ設定は全て無効にしています。
Windows7 64bit
FileMaker Pro Advanced 16
追記です
https://www.soliantconsulting.com/blog/ … ry-builder
こちらのfmp12ファイルに使うテーブル、レコードをインポート(外部参照でなく)して使用するSQLの実行テストをしていたのですが
こちらもテストをしてるうちに現在7GBぐらいに膨らんでいます(必要テーブルとデータ入れた当初は1GBちょい)
検索結果表示用のテーブルやレイアウトに因るものではなく
索引の貼ってあるフィールドをSQLで大量に取得(想定している条件での最大取得件数は1500件弱*6フィールド)すると起きる現象だといい切れそうです。
原因は「膨大な索引を保存してしまっているから」といった感じでしょうか
現在ExecuteSQL関数を使わずに通常の検索実行から一覧を取得する方法に切り替えています。
「名前をつけて保存->データなしのコピー」ではどうでしょう。
手動のテーブル削除ではGB単位で残りましたが、こちらを試してみたらおよそ4MBまで減りました。
「膨れ上がった容量を削る方法」は「データなしのコピー」でなんとかなりそうです。
手動のテーブル削除+最適化保存をしても数GB残るのですが
データ無しのコピーとどのように違うのでしょう?
追記です
https://fm-aid.com/bbs2/viewtopic.php?id=776の#18、
https://qiita.com/hajisan/items/141fddacb1c360b42090
以上2つのサンプルを組合わせて、縦3*横4の検索結果一覧画面を作っています。
ExecuteSQLで検索したデータを、レイアウトのベースとして使っている検索用テーブルの各フィールドに割りあてて表示しています。
検索用テーブルは表示項目のGetValue計算フィールドとページ番号など一覧表示用のフィールドのみが入っている、起動時は空白データの入った12レコードのテーブルです。
SQLの戻り値は検索用テーブルのグローバル格納フィールドにフィールド設定しています。
>waderさん
Truncateした上で、最適化保存しないと
というのは、例えばcloseの際に「テーブルデータを削除」+最適化保存をするということでしょうか
起動時に新規レコード作成スクリプトでレコードを復活させて運用する形でしょうか?
>qb_dpさん
おそらく「索引データ」が増えているのでしょう。
ユニーク指定の項目以外の索引を「なし」にしてみましたが効果ありませんでした。。
FileMaker Pro 16 Advanced
Windows7 64bit
ExecuteSQLを用いて検索を実行後、
ファイルを閉じるとfmp12ファイルの容量が数十MB~数百MB単位で肥大化していきます。
当初6GBだったファイルが14GBほどまで肥大してしまいました。
SQLで検索対象にしているテーブルのレコード総数は1万5000件を超えます。
JOINしているテーブルも9000件を超えます。
ウインドウを閉じる際に肥大していますが、ウインドウを閉じる際のスクリプトトリガは走らせておりません。
SQLの返り値がClose時に保存されているのかとおもい、SQLの返り値を入れているテーブルを空白化するスクリプトをClose時のトリガに入れてみましたが、
変わらず肥え続けています。
コピーファイルを作って全テーブル、全レイアウトを削除しましたが14GBから6GBも残ってしまいました。
・肥大化を防ぐ方法
・膨れ上がった容量を削る方法
・膨れ上がる原因
以上3点、指南いただけますでしょうか。
Pages: 1
[ Generated in 0.006 seconds, 8 queries executed - Memory usage: 603.91 KiB (Peak: 625.32 KiB) ]