DOBON.NET DOBON.NETプログラミング掲示板過去ログ

CrystalReports印刷実行の際に、レポートにおけるプロパティの変更可能か。

環境/言語:[Windows8、VB2012]
分類:[.NET]

こんにちは。
お世話になります。

Windows8(Proでない方)、VB2012、ダウンロードしてインストールしたCrystalReportsでソフトを開発しております。

以下、質問させてください。

まず、プロジェクトを1つ作り、Formを1つ作ります。
ボタンを2つ作ります。

ボタン1:名称=btnPrint、Text=「印刷」
ボタン2:名称=btnPrintGray、Text=「背景をグレイにして印刷」

CrystalReportsファイルを1つ作ります。
ファイル名は、crpPrint.rptです。
Section3(詳細)の部分に、ツールボックスからテキストオブジェクト(ITextObject)を
1つ、置きます。
名称=txtPrint、Text=「これはテストです。」と設定します。

作りたいプログラムは、ボタン1「印刷」をクリックすると、「これはテストです。」という文字列が、背景色=白で、印刷される(txtPrintのBackColorの初期値は白)。

ボタン2「背景をグレイにして印刷」をクリックすると、「これはテストです。」
という文字列が、背景色=グレイで、印刷される。
と、いうものです。

ボタン1に関しては、以下のコードで印刷出来ます(不要なコード省略)。

Private Sub btnPrint_Click(sender As Object, e As EventArgs) Handles btnPrint.Click
Print()
End Sub

Private Sub Print()
Dim crp As New crpPrint
Try
crp.PrintToPrinter(1, False, 0, 0)
Catch ex As Exception
End Try
End Sub

ボタン2に関しては、下記のようなコードを書き、PrintGrayのプロシージャの中に、crp.txtPrint.BackColor=Grayと記述すると、
「txtPrintはプロジェクト名.crpPrintのメンバーではありません」
とエラーが出てしまいます。

Private Sub btnPrintGray_Click(sender As Object, e As EventArgs) Handles btnPrintGray.Click
PrintGray()
End Sub

Private Sub PrintGray()
Dim crp As New crpPrint
Try
crp.PrintToPrinter(1, False, 0, 0)
Catch ex As Exception
End Try
End Sub

何かよい方法があれば、ご教示頂きたいと思います。
誠にお手数と存じますが、どうぞよろしくお願いします。
お世話になります。

印刷時にレポートのプロパティを変更する方法として、
次のようなコードを見つけました。

(幅の調節)
Dim objtxtPrint As CrystalDecisions.CrystalReports.Engine.TextObject
objtxtPrint = CType(rpDenpyo.ReportDefinition.ReportObjects("txtPrint"), CrystalDecisions.CrystalReports.Engine.TextObject)
objtxtPrint.Width = 1000

このメソッドから、バックカラーの変更が出来ないか、試してみます。
■No31988に返信(けいさんの記事)

お世話になります。

TextObjectの変更可能なプロパティに、BacColorはないようです。

TextObject.Color プロパティ
http://msdn.microsoft.com/ja-jp/library/ms226280(v=vs.80).aspx

objtxtPrint.Color = Color.Grayと記述しても、BackColorは変わりませんでした。

以降、もし何か方法が見つかりましたら、ご報告させて頂きます。

DOBON.NET | プログラミング道 | プログラミング掲示板