- PR -

Crystal Reportsによる印刷プレビューと印刷指示ダイアログの用紙の相違について(ユーザー指定用

投稿者投稿内容
ume
会議室デビュー日: 2005/08/22
投稿数: 12
投稿日時: 2006-03-13 18:56
いつも拝見させて頂き、大変参考になっております。

今回、自身では解決に至らない問題が発生した為、掲示板に投稿させて頂きました。
お忙しい中、申し訳御座いませんが、皆様のお知恵を拝借させて頂ければ幸いです。

1.前提条件
(1)クライアント
OS:Windows XP(SP2)
(2)DBサーバー
OS:Windows Server2003(SP1)
DB:Oracle9i
(3)APサーバー
OS:Windows Server2003(SP1)

使用言語 :VB.NET
DBミドルウェア:ODP.NET
帳票ツール :Crystal Reports11(SP1)


2.現象
  今回、前提条件で記載したような環境にてC/Sのシステム開発を行なっております。

  発生した現象は、CrystalReportVieweから出力するプレビュー画面の用紙設定と
 前述のプレビュー画面から印刷ボタン押下時に出力される印刷指示ダイアログの用紙設定
 が異なると言った内容です。
 (当事象はユーザー指定用紙サイズを使用した場合にのみ発生します。)

  具体的には下記のような手順でPGを作成しました。

 @ユーザー指定用紙の作成
 「スタート」→「プリンタとFAX」→「ファイル」→「サーバーのプロパティ」にて
 「新しい用紙を作成する」→「ヤードポンド法」にチェックを入れ、「10x6 インチ」の
 用紙を作成。

 A帳票デザイン
  CrystalReports標準の帳票デザインツールにて、編集中の帳票を右クリック「ページ設定」
 「プリンタ」ボタンを押下し、印刷先のプリンタを指定。
  また、用紙サイズは先程作成したユーザー定義用紙(10x6 インチ)を選択。

 Bコーディング
  帳票オブジェクトの「PrinterName」に対象のプリンタ名をセット。
  また「PaperSize」には「DeviceCapabilities」(API関数)にて取得した
  用紙番号(呼び方が正しいか不明です)をセット。
  (ユーザー定義用紙は端末毎に用紙番号が異なる為、APIを使用し用紙番号を
  取得、設定する必要があるようです。)

3.試した事
 @「通常使うプリンタ」に連帳用プリンタを指定、用紙サイズに10x6 インチを指定後、プレビューを実施。
  →(結果)
   プレビュー   :プリンタは「連帳用プリンタ」、用紙サイズは「10x6 インチ」(思惑通り)
           の結果が出力された。
   印刷指示画面 :プリンタは「連帳用プリンタ」が指定されたが、用紙サイズが
          「Letter」となっていた。

 APrintToPrinterメソッドによる印刷を実施。
  →(結果)「通常使うプリンタ」に連帳用プリンタを指定し、用紙サイズも設定した後であ
   れば「連帳用プリンタ」に用紙サイズ「10x6 インチ」の結果が出力された(思惑通り)。
   (独自の印刷指示ダイアログを作成しPrintToPrinterを使用して印刷処理を行う
    方法も考えましたが、諸事情により断念しております。)

以上が、現状となります。
「3.試した事」の「@」で用紙サイズが「Letter」ではなく「10x6 インチ」になる事が理想ですが、何か良い手段が御座いましたら、ご教授頂ければ幸いです。

長文となってしまい、申し訳御座いませんが、何卒よろしくお願い申しあげます。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-13 19:06
引用:

umeさんの書き込み (2006-03-13 18:56) より:

印刷指示画面 :プリンタは「連帳用プリンタ」が指定されたが、用紙サイズが
       「Letter」となっていた。


印刷指示画面とは、ReportViewer コントロールの [印刷設定] で表示されるダイアログのことでしょうか?
だとすれば、無理だと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-13 19:38
あ、ユーザー定義の用紙ではなく別の用紙でも試されました?
今試してみましたら、プリンタによって結果が区々...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ume
会議室デビュー日: 2005/08/22
投稿数: 12
投稿日時: 2006-03-14 09:12

じゃんぬねっと様

早速のご回答有難う御座います。


引用:
--------------------------------------------------------------------------------


じゃんぬねっとさんの書き込み (2006-03-13 19:06) より:

印刷指示画面とは、ReportViewer コントロールの [印刷設定] で表示されるダイアログのことでしょうか?
だとすれば、無理だと思います。

--------------------------------------------------------------------------------

抽象的な表現で申し訳御座いません。

ここで言う「印刷指示画面」とは「CrystalReportViewer」コントロールの
「ShowPrintButton」プロパティを「True」にした場合に、表示される
ボタンを押下し、出力されるダイアログを指しております。


引用:
--------------------------------------------------------------------------------


じゃんぬねっとさんの書き込み (2006-03-13 19:38) より:

あ、ユーザー定義の用紙ではなく別の用紙でも試されました?
今試してみましたら、プリンタによって結果が区々...

--------------------------------------------------------------------------------

じゃんぬねっと様の書き込みを受けまして、他の用紙サイズの再確認を行っていた所、
1点法則のような物を発見致しました。

どうやら「CrystalDecisions.[Shared].PaperSize」列挙体に登録されている用紙
サイズについては問題無く出力可能のようですが、ここに登録されていない用紙サイズ
は「Letter」となるようです。


以上、よろしくお願い申し上げます。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-14 09:39
# 半角カナを全角カナに変換して引用させて頂いております。

引用:

umeさんの書き込み (2006-03-14 09:12) より:

抽象的な表現で申し訳御座いません。
ここで言う「印刷指示画面」とは「CrystalReportViewer」コントロールの
「ShowPrintButton」プロパティを「True」にした場合に、
表示されるボタンを押下し、出力されるダイアログを指しております。


でしたら、私の言っているものと同じものです。

引用:

どうやら「CrystalDecisions.[Shared].PaperSize」列挙体に登録されている用紙
サイズについては問題無く出力可能のようですが、ここに登録されていない用紙サイズ
は「Letter」となるようです。


やはり、最初の結論は揺るぎませんね。

引用:

引用: --------------------------------------------------------------


引用は [quote][/quote]で括ると良いですよ。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ume
会議室デビュー日: 2005/08/22
投稿数: 12
投稿日時: 2006-03-14 10:36

じゃんぬねっと様

ご回答有難う御座います。

引用:

でしたら、私の言っているものと同じものです。



すみません。私が勘違いしていました^^;
認識が合っていて、安心致しました。


引用:

やはり、最初の結論は揺るぎませんね。



有難う御座います。大変参考になりました。


引用の件、早速活用しました^^
有難う御座います。
(掲示板の利用方法を読み返して見ます。。。)


今回、帳票ツールに「CrystalReport」を選択しました
(.NET標準である事、値段、情報量の多さ等の理由から)が、
問題ばかり上がります^^;
特に連帳やサーマルプリンタによる帳票の出力にはあまり対応していないようですね。。。

次回の開発では他の帳票ツールを選択してみます。

じゃんぬねっと様、お忙しい所、お付き合い頂き本当に有難う御座いました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-14 10:41
引用:

umeさんの書き込み (2006-03-14 10:36) より:

すみません。私が勘違いしていました^^;
認識が合っていて、安心致しました。


すみません、私も ShowPrintButton に対応しているボタンと表現すべきでした。

引用:

今回、帳票ツールに「CrystalReport」を選択しました
(.NET標準である事、値段、情報量の多さ等の理由から)が、問題ばかり上がります^^;
特に連帳やサーマルプリンタによる帳票の出力にはあまり対応していないようですね。。。


私の場合は、CrystalReportViewer を生かしたかったので、
ShowPrintButton を false にし、似せた自作のボタンを埋め込みました。
そのボタンを選択すると自作の印刷ダイアログを表示するという対応です。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ume
会議室デビュー日: 2005/08/22
投稿数: 12
投稿日時: 2006-03-14 11:15
じゃんぬねっと様
ご返答有難う御座います。

引用:

すみません、私も ShowPrintButton に対応しているボタンと表現すべきでした。



とんでもないです^^;
少し考えれば判る事でしたw


引用:

私の場合は、CrystalReportViewer を生かしたかったので、
ShowPrintButton を false にし、似せた自作のボタンを埋め込みました。
そのボタンを選択すると自作の印刷ダイアログを表示するという対応です。



おっしゃる通りです。
私も上記と同様の手法で対応致します。
(自前の印刷ダイアログを作る工数が懸念材料でしたが、
幸い、印刷ダイアログのサンプルをBusiness Objects社が
提供してくださったのでw)

スキルアップ/キャリアアップ(JOB@IT)