如何在不显示“打印预览”的情况下直接打印收据?

时间:2020-10-29 11:10:31

标签: vb.net crystal-reports

这是我的代码:

Dim reportHolding As New CrystalReport1
Dim myDa As New SqlDataAdapter
Dim myDs As New DataSet1

MYCOMMAND.CommandText = "select * from printDatasetView where receiptNumber = '" & 
Trim(receiptNumber_txt.Text) & "'"
MYCOMMAND.CommandType = CommandType.Text
myDa.SelectCommand = MYCOMMAND
myDa.Fill(myDs, "printDatasetView")
reportHolding.SetDataSource(myDs)
reportHolding.SetParameterValue("rno", Trim(receiptNumber_txt.Text))
salesReceipt.CrystalReportViewer1.ReportSource = reportHolding
salesReceipt.ShowDialog()

我想直接将收据发送给打印机,而不显示打印预览对话框。打印完成后,将其关闭并返回到表格。

1 个答案:

答案 0 :(得分:0)

您可以注释掉或删除以下两行代码,因为它们仅用于查看报告。

salesReceipt.CrystalReportViewer1.ReportSource = reportHolding
salesReceipt.ShowDialog()

然后添加以下代码。

reportHolding.PrintToPrinter(1, False, 0, 0)

这将打印到已安装的默认打印机。如果您不熟悉ReportDocument.PrintToPrinter()方法,则它具有4个参数。 第一个参数是整数,它是份数,第二个参数是布尔值,用于确定是否对打印作业进行整理,最后两个参数都是整数,第三个参数是开始的起始页码从第一个开始打印,第四个是结束页码。

如果需要控制所使用的打印机,则可以使用PrintDialog类获取打印机名称,然后将打印机设置为使用以下代码行。该行将被插入到实际打印报告上方的行之前。

reportHolding.PrintOptions.PrinterName = <PrinterName>
相关问题