PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
22540 06/03/09 10:15:10 RE(2):PB10.0: 帳票発行単体exeで、出力先プリンタの切り替えについて By revolla
22539 06/03/09 08:59:39 RE(1):PB10.0: 帳票発行単体exeで、出力先プリンタの切り替えについて By Hakofugu
22538 06/03/08 20:32:11 PB10.0: 帳票発行単体exeで、出力先プリンタの切り替えについて By revolla

カテゴリ:PowerBuilderの開発環境
日付:2006年03月09日 10:15 発信者:revolla
題名:RE(2):PB10.0: 帳票発行単体exeで、出力先プリンタの切り替えについて

Hakofuguさん、おはようございます。

朝早くから助かります。
毎度程度の低い質問に親切な回答ありがとうございます。
早速色々試していたため、レスが遅くなりましてすみません。

>PB8からはプリンタ制御に関する関数群が追加されましたが、それを使用せず
>レジストリを操作する必要性があるのですか?

>私の場合は、

>PrintGetPrinters()
>PrintGetPrinter()
>PrintSetPrinter()

>を使って帳票の出力先を変更しています。(元に戻すこともやっています)
>このあたりの関数だけでも、そこそこのことは実現できると思います。

いえ、特にレジストリ操作にこだわるつもりはありません。
実は昨日、上記の制御関数を使って記述をしてみたのですが、
上手く動かずにそっちは諦めようかと思っていたんです。

本日、あらためて記述をしてみました。
----------------------------------------------------------------------------
IF is_warehousegroup = \"3AB\" THEN
   //デフォルトプリンタの確認
   ls_getdefaultprinter = PrintGetPrinter ( )
   //INIファイルからの取得
   ls_printer = ProfileString(\"C:\\printer.ini\", \"d_rp_error\",\"3AB\", \"None\")
   //取得したプリンタを出力プリンタに設定
   PrintSetPrinter(ls_printer)
END IF

//帳票出力
this.Print (true)
----------------------------------------------------------------------------

これで制御ができました。
昨日はPrintSetPrinter()の引数(プリンタ名 スプール ポート)をタブ区切りにしてませんでした…。

また質問してしまうんですが、

PrintSetPrinter()で、出力プリンタを変更しても、それがシステムのデフォルトになるわけではないんですよね?
上記、帳票発行後、
PrintSetPrinter(ls_getdefaultprinter)を書く必要はありますでしょうか?

PrintGetPrinter()で取得してくるプリンタは、
システムのデフォルト(通常使うプリンタに設定されているもの)だと思うんですが、
これはPBを起動した状態で変更しても、PrintGetPrinter()で取得できる値は変わらないようです。
これはアプリ的な制約でしょうか?



付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows 2000
DBMS Oracle Net 9
Browser (記載なし)

Server SoftWare

OS Windows Server 2003
DBMS Oracle10G
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.