9 返信 最新の回答 日時: Mar 5, 2015 11:55 PM ユーザー:keinos

    FM13のファイル共有でスクリプト内の印刷設定が反映されない

    keinos

      タイトル

      FM13のファイル共有でスクリプト内の印刷設定が反映されない

      フォーラムに投稿

      Filemakerネットワークで共有されたファイルで、用紙の印刷設定を施したスクリプトが共有先(クライアント側)に反映されません。

      ■環境情報
      ・共有元: Filemaker13 Pro Advanced, Windows8.1 (64bit)
      ・共有先: Filemaker13 Pro, Windows7(64bit), Windows8.1(64bit)
      ・共有方法:Filemakerネットワーク
      ・プリンタ機種: Canon LBP9510C (複合機+LANカード付をネットワークプリンタとして。共有プリンタでない) 
      ・プリンタドライバ登録名: Canon LBP9510C (全PC統一。ポートはスタンダードTCP/IP)

      共有元のFM13 Adv上にてファイルを「Filemakerネットワーク」で共有し、3台のクライアントのFM13 Proから共有ファイルを開いてアクセスしています。(アクセス権はかけていません)

      同じレイアウトでも、チェック用など用途により用紙サイズを変えて印刷するため、用紙の向きと変倍(拡大・縮小)の設定をしたスクリプトを用意しています。(「A4縦→A3縦」「A3横→A4横」「A4横→A4横_両面」といったスクリプト名

      印刷をするボタンのスクリプトに各々用途に合わせてこれらを読み込んでいます。

      問題は、印刷を実行すると、共有元では動くのですが、クライアント側からは用紙の変倍指定が解除され等倍で出てしまいます。用紙の向きは反映されるので、印刷設定のスクリプトは読み込まれていると思われます。

      今まではFilemaker Pro 11をサーバ替りに、インスタントWEBでクライアントから入力してもらい、印刷はサーバ本体から出力していました。
      FMの保守の更新を機に、FM11→FM13へ環境を移行したのですが、FM13にはインスタントWEBがないため、各クライアント用にFM13Proを用意する予算が付いたのはいいのですが、今回の現象が発覚しました。

      「各クライアント毎、印刷時に用紙設定で都度変更」という解決策はみとめられないため、困っています。

      FM11時代から、ドライバなどのアップデートがあるたびにスクリプト内の印刷設定が飛んでしまうなどの現象があったため、印刷設定はスクリプト化しておいて、それを呼びこむ事で安定化を図っていたのですが、共有ファイルでのこのような現象の場合、何か解決法はないでしょうか。

       

       

       

        • 1. Re: FM13のファイル共有でスクリプト内の印刷設定が反映されない
          Shin

          > 印刷設定はスクリプト化しておいて、それを呼びこむ

          これは、具体的にはどのようになっていますか。そのスクリプトは、別のファイルに置いてあるのでしょうか。

          また、印刷設定と印刷のスクリプトは、理由はよくわかりませんが、一体と考えた方が良いです。両方に同じ設定をしておかないと、用紙などの設定がおかしくなります。

          • 2. Re: FM13のファイル共有でスクリプト内の印刷設定が反映されない
            keinos

            >Shin様

            いつもお名前を拝見しております。お返事いただけて恐縮です。

            >> 印刷設定はスクリプト化しておいて、それを呼びこむ
            > これは、具体的にはどのようになっていますか。そのスクリプトは、別のファイルに置いてあるのでしょうか。

            説明不足で失礼いたしました。

            「印刷設定はスクリプト化しておいて」というのは、下記の(1)になり、「それを呼びこむ」というのは、下記の(2)の最後から2行目になります。
            この2つのスクリプトは同一ファイル内にあります。

            やっていることはいたって普通だと思うのですが、、、ファイルを共有している場合で何か注意点はありますでしょうか。

            (1) スクリプト名:「印刷設定_A3横→A4横

                   
            • エラー処理[オン]
            •      
            • # 用紙サイズ:A3, 印刷サイズ:A4, 向き:横, 普通紙, トレイ1, 片面 
            •      
            • 印刷設定[記憶する; ダイアログなし] → ここに用紙の向き、サイズ、変倍、両面などを設定

             

            (2) スクリプト名:「印刷実行_工事経費_明細書」 → これをボタンに割り当て

                   
            • エラー処理[オン]
            •      
            • レコード/検索条件確定[]
            •      
            • # 集計条件読み込み
            •      
            • レイアウト切り替え[「管理_設定用グローバルフィールド一覧」(管理_設定用グローバルフィールド)]
            •      
            • 変数を設定[$集計年度; 値:管理_設定用グローバルフィールド一覧::集計条件_年度G]
            •      
            • 変数を設定[$集計年; 値:管理_設定用グローバルフィールド一覧::集計条件_年G]
            •      
            • 変数を設定[$集計月; 値:管理_設定用グローバルフィールド一覧::集計条件_月G]
            •      
            • 変数を設定[$得意先範囲_自; 値:管理_設定用グローバルフィールド一覧::集計条件_工事経費_得意先範囲_自G]
            •      
            • 変数を設定[$得意先範囲_至; 値:管理_設定用グローバルフィールド一覧::集計条件_工事経費_得意先範囲_至G]
            •      
            • # 集計実行
            •      
            • レイアウト切り替え[「工事経費_明細書」(工事経費TB)]
            •      
            • フィールド設定[工事経費TB::集計年; $集計年]
            •      
            • フィールド設定[工事経費TB::集計月; $集計月]
            •      
            • レコード/検索条件確定[]
            •      
            • # 得意先で絞り込み
            •      
            • 検索モードに切り替え[]
            •      
            • 検索実行[記憶する]
            •      
            • レコードのソート[記憶する; ダイアログなし]
            •      
            • レコード/検索条件/ページへ移動 [最後の]
            •      
            • 表示方法の切り替え[リスト形式]
            •      
            • # 印刷準備
            •      
            • スクリプト実行[「印刷設定_A3横→A4横」]  → 上記(1)のスクリプト
            •      
            • プレビューモードに切り替え[]

             

            • 3. Re: FM13のファイル共有でスクリプト内の印刷設定が反映されない
              Shin

              スクリプト2で印刷のステップが見えませんが、どのように印刷されていますか。

              また、最後のプレビューモードでは、設定通りに見えているはずですが、それは全端末で想定通りになっていますか。

              確認していただきたいのですが、共有元とクライアント側で、Get ( プリンタ名 ) で得られる文字列は、一致していますか。

              • 4. Re: FM13のファイル共有でスクリプト内の印刷設定が反映されない
                keinos

                > スクリプト2で印刷のステップが見えませんが、どのように印刷されていますか。

                はい、このケースでは印刷ステップは入れていません。
                ボタンを押して、集計後、プレビューで総合計などを確認したのち、印刷ボタンで印刷実行という流れです。

                >全端末で想定通りになっていますか。

                はい、全端末でプレビュー自体は想定通りで、レイアウト枠に収まっています。
                この時、印刷設定でプリンタのプロパティを開き、変倍を確認&変更してもらえれば助かるのですが、これは却下されています。

                >確認していただきたいのですが、共有元とクライアント側で、Get ( プリンタ名 ) で得られる文字列は、一致していますか。

                なるほど、なるほど! ただいま環境下にいないため、確認できしだいご報告いたします。

                 

                 

                • 5. Re: FM13のファイル共有でスクリプト内の印刷設定が反映されない
                  keinos

                  >Shinさま
                  >確認していただきたいのですが、共有元とクライアント側で、Get ( プリンタ名 ) で得られる文字列は、一致していますか。

                  上記、確認いたしました。 結論から申しますと、異なっていました!

                  ・共有元マシン  : LBP9510C,winspool,Ne01:
                  ・共有先マシン1 : LBP9510C,winspool,Ne02:
                  ・共有先マシン2 : LBP9510C,winspool,Ne04:
                  ・共有先マシン3 : LBP9510C,winspool,Ne02:

                  同じプリンタ名でも、上記の"NExx:"の箇所が異なっていました。恐らくネットワークプリンタのポート番号だと思われます。

                  社内に、同メーカーのネットワークプリンタが複数あり、パソコンの導入時期もバラバラ、プリンタドライバの追加も都度なので、プリンタドライバが作成された順にポート番号が振られたのではと思われます。

                  プリンタを追加した順番が影響するとは盲点でした。 ありがとうございます。

                  これを統一して印刷テストする工程を検討中ですが、結果が分かり次第ご報告いたします。
                  (裏紙用、両面用と同一プリンタのコピーを作成して、印刷設定は変えずにプリンタを切り替えて運用している古いアプリがあるので、悩んでしまいます、、、)

                   

                  • 6. Re: FM13のファイル共有でスクリプト内の印刷設定が反映されない
                    keinos

                    >Shinさま
                    >これを統一して印刷テストする工程を検討中ですが、結果が分かり次第ご報告いたします。

                    上記の結果をご報告いたします。結論から申しますと、残念ながら「Get( プリンタ名 )」の文字列を一致させてもNGでした。

                    スクリプト内の用紙設定をサーバ(FMAdvance)側で設定した用紙変倍の設定は、クライアント(FMPro)側で呼び出しても用紙サイズのみが反映され、変倍指定は解除されていました。(サーバ側を再度設定を見ると反映されています)

                    反対に、クライアント側でスクリプトを開き、印刷設定を行った場合、今度はサーバ側で開くと変倍設定は解除されていました。

                    印象としては、FMのスクリプトに保存されるのがプリンタ名と用紙サイズのみで、スクリプトを保存する際になにかしらのIDが振られ、プリンタドライバ固有の設定は保存を行ったマシンのローカルに保存され、そのIDと紐付けされるイメージでした。
                    そのため、別マシンでスクリプトを開いても、該当するIDの設定ファイルがないため、スクリプトが保持するプリンタ名と用紙サイズのみが反映されるのではないかと感じます。

                    プリンタ名の統一方法としては、各パソコン上でプリンタの追加を"NeXX:"値が"Ne05:"になるまで作成し、"Ne05:"になったものをFM側でデフォルトプリンタとして選択しました。

                    ・共有元マシン   : FM_LBP9510C,winspool,Ne05:
                    ・共有先マシン1 : FM_LBP9510C,winspool,Ne05:
                    ・共有先マシン2 : FM_LBP9510C,winspool,Ne05:
                    ・共有先マシン3 : FM_LBP9510C,winspool,Ne05:

                    また、プリンタポートもプリンタが作成されるごとに追加されるので、"192.168.1.254_3"のポートに統一しました。

                    こうなると、クライアント毎にCase文などで分岐させて、各々の設定を各々のマシンで行う以外ないのでしょうか。

                    今後心配なのは、ネットワークに限らずノートパソコンにプリンタがUSB接続されるケースです。つまり、ポート毎にプリンタが作成されるため、それらのNeXX:値も変わり、同様の現象が発生する可能性があります。

                    通常であればUSBポートに挿すプリンタは固定が多いと思うのですが、現場の場合、メモリスティックを指していたり、設置位置の問題から、別のポートに挿す事が想定されます。

                    特に現場の場合、社内程にはサポートが出来ないため、より安定して印刷される必要があるため、今後、作ったFMファイルが現場でも使われるようになると怖いです。

                    DOSベースでガチガチに固めたアプリを長年使っていたため機能は少なくても堅牢に作られていたので、同等以上を求められるなか、「同等」が網羅できないのが心苦しいです。

                     

                     

                     

                     

                     

                    • 7. Re: FM13のファイル共有でスクリプト内の印刷設定が反映されない
                      user14047

                      「myFMbutler PrinterSwitch」
                      http://myfmbutler.com/index.lasso?p=367

                      「Change Printer」
                      http://www.productivecomputing.com/change-printer

                      など、プラグインの導入を視野にいれてみるのも一つの手かと思います。

                      • 8. Re: FM13のファイル共有でスクリプト内の印刷設定が反映されない
                        Shin

                        残念な結果ですね。FM13でネットワークプリンタを通常使っていませんので、それ以上はわかりません。ただ、もう一つ確かめていただきたいのですが、FMでデフォルトに設定してもあまり意味が無い様で、最初の1項目目(FM_LBP9510C)が一致してるドライバを探し、最初に見つかった最初の物を使っている様な雰囲気なのです。試しに、Ne05 以外のドライバーを削除したらどう動くか、お試しいただきたいのです。

                        それがだめなら、簡単な対処としては、「FMプリン」https://sites.google.com/site/scriptmakerms/fmprin が良いと思います。印刷設定をxmlの形でファイル内に保存できるため、うまく使うと、スクリプトの中で印刷設定を自由に変更でき、その目的には使えるツールです。

                        単なるプリンタ変更では恐らく対応できかねると思います。

                        • 9. Re: FM13のファイル共有でスクリプト内の印刷設定が反映されない
                          keinos

                          >Shin様

                          昨年は大変お世話になりました。

                          FMネットワーク上でファイル共有された、各クライアントからのネットワークプリンタへの印刷で、用紙の変倍指定や両面が全クライアントに適用・反映されない件ですが、その後の結果をご報告いたします。

                          最終的に取った対策としては、変倍指定・両面をスクリプト内の印刷設定で行わずに「A4用レイアウト、A3用レイアウト、、、」と、等倍のフォームを全て作成するという、抜本的というか力技を取りました。

                          両面に関しては、どうしても技術的にも予算的にも無理ということでなんとか了承を得ました。

                          まず、「FMプリン」も試したのですが、残念なことにNGでした。

                          これは、「FMプリン」自体が用紙指定変倍を持っていなかったためで、同等の事はスクリプトでも出来ました。
                          (FM13だからかもしれません。また、xmlのフォーマットを見ても変倍の情報も無いようでした)

                          他にも試した事といえば、印刷時のスクリプト内でユーザー情報を取得し、Case文でユーザー毎に印刷設定を持たせる事を試しました。

                          この方法でバッチリ動いたのですが、問題は、各クライアントの環境ごとに個別に印刷設定を行い一旦記憶させる必要があり、特にユーザーが増えた場合には、スクリプトもCASE文の分岐を追加しないといけないなどの修正が発生する事です。

                          長い目でみると保守も合理的でないので、この方法は断念しました。 ただ、この方法も1つの解決策とは思います。

                          今回の動きは、恐らく、「用紙サイズ・向き・給紙トレイ」までは、全プリンタ・ドライバ共通で、用紙指定変倍や両面などはドライバ依存の機能として扱われるからなのかな、と思います。

                          当面Macの導入はないため、CANONのプリンタのデベロッパーに申し込んで、プラグインもチャレンジしようかとも思いましたが、どうやら来年度にOKIのプリンタに全面入れ替えになるようなので断念しました。

                          「印刷用のフォームは、出したい用紙サイズのものを用意する(作る)」という、横着せず急がば回れを肝に銘じたいと思います。

                          お時間いただき、ありがとうございました。