海波.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);
};