【发布时间】:2019-03-22 15:13:20
【问题描述】:
我正在为我的朋友创建一个简单的发票管理系统。用户可以创建发票并在需要时打印。我目前正忙于打印发票部分。这是一种 B2B 商业模式,需要一次打印 100 张发票。我使用 MS RDLC 创建了报告。将其链接到报表查看器。下面是我的应用程序的用户界面
我想做的事 我想自动化报表查看器的内置打印功能(红色箭头),但在按下打印按钮(黄色箭头)时没有选择打印机对话框。
到处都有很多代码示例。我已经阅读了 MS 的演练,但无法完全理解。
我的尝试 尝试使用 PrintDocument() 打印报告查看器,但呈现空白页。无法理解如何将报表查看器分配给 PrintDocument 对象。
Dim printDoc As New PrintDocument()
Dim ps As New PrinterSettings()
printDoc.PrinterSettings.PrinterName = ps.PrinterName 'Default Printer Name
printDoc.Print() 'How to assign the Reportviewer1 to printdoc?
============更新============
我在搜索网页时尝试了以下类。
那我这样称呼它。
Dim autoprintme As AutoPrintCls = New AutoPrintCls(ReportViewer1.LocalReport)
autoprintme.Print()
它通过我的默认打印机工作和打印,但页面设置搞砸了。谁能指点我的写作方向?
我的页面设置
Hight:14.8cm Width:21cm
============更新 2============
我已经弄清楚了,由于错误的边距值页面设置搞砸了。
我在课堂上改变了这个
"<DeviceInfo><OutputFormat>emf</OutputFormat>
<StartPage>0</StartPage>
<EndPage>0</EndPage>
<MarginTop>{0}</MarginTop>
<MarginLeft>{1}</MarginLeft>
<MarginRight>{2}</MarginRight>
<MarginBottom>{3}</MarginBottom>
<PageHeight>{4}</PageHeight>
<PageWidth>{5}</PageWidth>
</DeviceInfo>", "0in","0in","0in","0in", ToInches(585),
ToInches(827))
但都是硬编码,如何将按钮点击事件中的高度、宽度和边距值传递给类?
【问题讨论】:
-
我已经用一个半有效的解决方案更新了我的问题
-
页面设置“混乱”是什么意思?
-
我已经更新了我的问题,请参阅更新 2
-
您需要根据可以从 LocalReport.GetDefaultPageSettings() 获得的页面设置来设置页边距。检查我的示例中的“export()”方法。
-
我明白你想做什么,但我想知道我怎样才能像这样传递我自己的变量.. Dim hight As Double = 585 Dim width As Double = 827 Dim autoprintme As AutoPrintCls = New AutoPrintCls (ReportViewer1.LocalReport, 高度. 宽度)
标签: c# vb.net rdlc reportviewer