*** 请问如何在水晶报表9预览时,指定使用某台打印机打印(VB6+CrystalReport9.0)!

ZQY801105 2003-10-10 12:06:06
请问如何在水晶报表9预览时,指定使用某台打印机打印?(假如本地计算机上按装了若干台打印机!)

小弟在VB.NET中用自带的crystalReport时,在预览界面点击打印时,出现的打印界面是可以选择打印机的,(不知到VS2003中用的CrystalReport是什么版本的??)但是我想用CrystalReport9.0+VB6把俺原来做的程序中的报表升级一下,但是在预览打印时,打印机只有设置为默认的那一台打印机!!!!????为什么不能选择呢??

...全文
179 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
haibodotnet 2003-10-10
  • 打赏
  • 举报
回复
大家一起去这个贴子支持一下!!!
http://expert.csdn.net/Expert/TopicView1.asp?id=2291055
CSDN 开个 Crystal Report 版吧!!!&&&我与水晶报表……
haibodotnet 海波.NET
haibodotnet 2003-10-10
  • 打赏
  • 举报
回复
海波.NET
问题:在WinForm中如何实现水晶报表的打印预览?
——————————————————————————————————————
目录:
一、解决方案:
二、PageSetupDialog 类
三、PrintDialog 成员
四、ReportOptions ReportOptions
五、PrintOptions 类
六、PrintOptions 成员
——————————————————————————————————————
一、解决方案:
1、用 PageSetupDialog 获取页面设置;
PageSetupDialog
表示一个对话框,它允许用户对页面进行设置,包括边距和纸张的方向。
2、使用 ReportDocument.ReportOptions 重新设置水晶报表的页面
3、用 Crystal Report Viewer 重载报表,等效于打印预览。
——————————————————————————————————————
二、PageSetupDialog 类
PageSetupDialog 成员 | System.Windows.Forms 命名空间 | CommonDialog | Margins | PageSettings | PrintDocument | PrinterSettings

要求
命名空间: System.Windows.Forms
平台: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows .NET Server family
程序集: System.Windows.Forms (在 System.Windows.Forms.dll 中)

表示一个对话框,它允许用户对页面进行设置,包括边距和纸张的方向。

有关此类型所有成员的列表,请参阅 PageSetupDialog 成员。

System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.CommonDialog
System.Windows.Forms.PageSetupDialog

备注
PageSetupDialog 对话框对给定 Document 的 PageSettings 和 PrinterSettings 信息进行修改。用户可以启用对话框中的一些部分来控制打印方式、边距以及纸张的方向、大小和来源等,并且显示“帮助”和“网络”按钮。MinMargins 定义用户所能选择的最小边距。

创建 PageSetupDialog 的实例时,读/写属性将被设置为初始值。有关这些值的列表,请参阅 PageSetupDialog 构造函数。
——————————————————————————————————————
三、PrintDialog 成员
PrintDialog 类 | System.Windows.Forms 命名空间 | Visual Studio中的 Windows 应用程序命名空间

PrintDialog 概述

公共属性
AllowPrintToFile 获取或设置一个值,该值指示是否启用“打印到文件”复选框。
AllowSelection 获取或设定一个值,指示是否启用了页码范围选项按钮。
AllowSomePages 获取或设置一个值,该值指示是否启用“页”选项按钮。
Container(从 Component 继承) 获取 IContainer,它包含 Component。
Document 获取或设置一个值,指示用于获取 PrinterSettings 的 PrintDocument。
PrinterSettings 获取或设置该对话框要修改的 PrinterSettings。
PrintToFile 获取或设置一个值,该值指示“打印到文件”复选框是否选中。
ShowHelp 获取或设置一个值,该值指示是否显示“帮助”按钮。
ShowNetwork 获取或设置一个值,该值指示是否显示“网络”按钮。
Site(从 Component 继承) 获取或设置 Component 的 ISite。
——————————————————————————————————————
四、ReportDocument 成员
ReportDocument 类 | CrystalDecisions.CrystalReports.Engine 命名空间

公共实例属性
ReportOptions ReportOptions。获取 ReportOptions 对象
——————————————————————————————————————
五、PrintOptions 类
PrintOptions 成员 | CrystalDecisions.CrystalReports.Engine 命名空间

要求
命名空间:CrystalDecisions.CrystalReports.Engine
平台:Windows 98,Windows NT 4.0,Windows Millennium Edition,Windows 2000
程序集:CrystalDecisions.CrystalReports.Engine

提供用于设置报表打印选项的属性和方法。

有关该类型所有成员的列表,请参见 PrintOptions 成员。

Object
PrintOptions

备注
通过ReportDocument对象的PrintOptions 属性来检索 PrintOptions 对象。
——————————————————————————————————————
六、PrintOptions 成员
PrintOptions 类 | CrystalDecisions.CrystalReports.Engine 命名空间

公共实例属性
PageContentHeight Int32。获取页面内容的高度。
PageContentWidth Int32。获取页面内容的宽度。
PageMargins PageMargins。获取报表页边距。使用ApplyPageMargins方法应用更改。
PaperOrientation PaperOrientation。获取或设置当前打印机纸张方向。对于默认打印机,返回 DefaultPaperOrientation。
PaperSize PaperSize。获取或设置当前打印机纸张大小。对于默认打印机,返回 DefaultPaperSize。
PaperSource PaperSource。获取或设置当前打印机纸张来源。
PrinterDuplex PrinterDuplex。获取或设置当前打印机双面打印选项。
PrinterName 字符串。获取或设置报表所使用的打印机名称。如果使用默认打印机,则将获取空字符串。一旦完成设置,就可通过单击 Windows 窗体查看器上的摯蛴』鷶按钮打印报表,或使用 PrintToPrinter 方法通过代码来打印报表。

公共实例方法
ApplyPageMargins 应用通过PrintOptions.PageMargins属性设置的更改。

haibodotnet 2003-10-10
  • 打赏
  • 举报
回复
海波.NET
问题:Crystal Report的打印的时候,如何直接打印而不打开打印设置窗口?
——————————————————————————————————————
解决方案:
ReportDocument.PrintToPrinter 方法
ReportDocument 类 | ReportDocument 成员 | CrystalDecisions.CrystalReports.Engine 命名空间
要求
命名空间:CrystalDecisions.CrystalReports.Engine
平台:Windows 98,Windows NT 4.0,Windows Millennium Edition,Windows 2000
程序集:CrystalDecisions.CrystalReports.Engine

使用 PrintOptions.PrinterName 属性将报表的指定页输出到选定的打印机上。如果未选择打印机,则将使用报表中指定的默认打印机。

[Visual Basic]
Public Overridable Sub PrintToPrinter(ByVal nCopies As Integer, ByVal collated As Boolean, ByVal startPageN As Integer, ByVal endPageN As Integer)
[C#]
public virtual void PrintToPrinter (int nCopies , bool collated , int startPageN , int endPageN );
[C++]
public virtual void PrintToPrinter (int nCopies , bool collated , int startPageN , int endPageN );
参数
nCopies
指明要打印的份数。
collated
指明是否逐份打印。
startPageN
指明要打印的第一页。
endPageN
指明要打印的最后一页。
备注
若要打印所有页,请将 startPageN 参数和 endPageN 参数设置为零。

示例
下面的示例设置报表的页边距,选择打印机,并打印报表。

[Visual Basic]
Private Sub PrintReport(ByVal printerName As String)
Dim margins As PageMargins

' 获取 PageMargins 结构并设置
' 报表边距。
margins = Report.PrintOptions.PageMargins
margins.bottomMargin = 350
margins.leftMargin = 350
margins.rightMargin = 350
margins.topMargin = 350
' 应用页边距。
Report.PrintOptions.ApplyPageMargins(margins)

' 选择打印机。
Report.PrintOptions.PrinterName = printerName

' 打印报表。将 startPageN 和 endPageN
'参数设置为 0 表示打印所有页。
Report.PrintToPrinter(1, False, 0, 0)
End Sub
[C#]
private void PrintReport(string printerName)
{
PageMargins margins;

// 获取 PageMargins 结构并设置
//报表的边距。
margins = Report.PrintOptions.PageMargins;
margins.bottomMargin = 350;
margins.leftMargin = 350;
margins.rightMargin = 350;
margins.topMargin = 350;
// 应用页边距。
Report.PrintOptions.ApplyPageMargins(margins);

// 选择打印机。
Report.PrintOptions.PrinterName = printerName;

// 打印报表。将 startPageN 和 endPageN
// 参数设置为 0 表示打印所有页。
Report.PrintToPrinter(1, false,0,0);
}
[C++]
void PrintReport(String* printerName)
{
PageMargins margins;

// 获取 PageMargins 结构并设置
//报表的边距。
margins = Report->PrintOptions->PageMargins;
margins.bottomMargin = 350;
margins.leftMargin = 350;
margins.rightMargin = 350;
margins.topMargin = 350;
// 应用页边距。
Report->PrintOptions->ApplyPageMargins(margins);

// 选择打印机。
Report->PrintOptions->PrinterName = printerName;

// 打印报表。将 startPageN 和 endPageN
// 参数设置为 0 表示打印所有页。
Report->PrintToPrinter(1, false,0,0);
};

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧