我正在使用 C# 开发基于 Windows 的应用程序,并在 Visual Studio 2005 中内置了 Crystal Report。CrystalReportViewer 是显示报告的工具。
我发现,我的水晶报表没有从系统打印机获取任何信息。在开发过程中,无论我在水晶报表中为系统打印机保存了什么打印信息(设计 --> 打印机设置),根据这一点,我在这里面临两种情况 -
- 如果它在运行时激活该打印机,它就会正确显示该信息。之后,如果我从控制面板更改系统打印机首选项,那么我的水晶报表就不会反映这些更改。它检测到该打印机,但打印首选项会显示,就像开发期间水晶报表中提到的那样。
- 其次,如果它在运行时没有激活该打印机(比如说当时我的机器上有一些其他打印机处于活动状态),那么它会检测打印机,但打印首选项会在水晶报告中显示“无打印机”设置。
记事本、Word 等每个应用程序都能正确检测系统打印机首选项。如果我在系统打印机首选项中进行更改,那么记事本、Word 等应用程序也会正确反映这些更改。因此,我的问题是为什么 crystal report 没有反映我们在运行时对系统打印机首选项所做的更改?任何建议或提示都将不胜感激。我也尝试过这个代码:
bl.PrintOptions.PaperSize = PaperSize.DefaultPaperSize;
bl-->引用我的水晶报告对象。
但是,没有财富。
- - - - 回复 - - - -
我的默认打印机是 OKI MICROLINE 321 TURBO,纸张尺寸为 Fanfold 15x12 英寸(牵引式进纸)。我在基于 Windows 的应用程序中使用了 Visual Studio 2005 内置的水晶报表。在创建报告时,我在报告的设计->打印机设置对话框中选择了 OKI 打印机和 Fanfold 15x12 英寸(牵引式进纸)。报告显示正常。
生成报告后,当我单击报告中的打印按钮时,打印对话框照常出现。在打印对话框中,默认打印机是 OKI,正如预期的那样。它正确显示纸张尺寸为 Fanfold 15x12。
但是,问题是,即使我在运行时从控制面板更改系统默认打印机(例如 A4)的纸张尺寸,它仍将纸张尺寸保持为 Fanfold 15x12。
答案1
尝试“文件”->“页面设置”,然后启用“无打印机”复选框,这对我有帮助
http://support.cyriouswiki.com/Crystal+Report+Ignores+Printer+Setting