这是我的代码:
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()
我想直接将收据发送给打印机,而不显示打印预览对话框。打印完成后,将其关闭并返回到表格。
答案 0 :(得分:0)
您可以注释掉或删除以下两行代码,因为它们仅用于查看报告。
salesReceipt.CrystalReportViewer1.ReportSource = reportHolding
salesReceipt.ShowDialog()
然后添加以下代码。
reportHolding.PrintToPrinter(1, False, 0, 0)
这将打印到已安装的默认打印机。如果您不熟悉ReportDocument.PrintToPrinter()方法,则它具有4个参数。 第一个参数是整数,它是份数,第二个参数是布尔值,用于确定是否对打印作业进行整理,最后两个参数都是整数,第三个参数是开始的起始页码从第一个开始打印,第四个是结束页码。
如果需要控制所使用的打印机,则可以使用PrintDialog类获取打印机名称,然后将打印机设置为使用以下代码行。该行将被插入到实际打印报告上方的行之前。
reportHolding.PrintOptions.PrinterName = <PrinterName>