题
我已经在C#写了一个应用程序,现在我想以发票的形式打印其内容,如图所示,我只想打印一次codumer数据,但是他要求在DataGrid视图中显示在他的汽车上执行的工作,应该在此处发票结束时,劳动和总劳动的名单形式。有人建议使用水晶报告我从未使用过它们
解决方案
最简单,最快的解决方案是使用Visual Basic PowerPack的PrintForm控件(您也可以在C#项目中使用它)。
http://msdn.microsoft.com/en-us/vbasic/bb735936.aspx
只需将控件拖到您的表单,然后从代码调用
printForm1.Print();
这将打印表单上的所有内容,因此只需在表单上设计您的报告,然后调用该代码,然后就完成了。
其他提示
上次我需要从C#表单打印一些字段时,我只是使用“ bitmap”和“ Graphics”对象创建了一个位图映像,然后使用“ PrintDocument”来打印它。
打印报告的布局是通过指定要打印元素的坐标来完成的。它便宜又脏,但是有效。
您可以使用本地SSRS报告(.RDLC扩展名)。 “报告”下应该有一个新项目模板来创建报告。该报告使用报告查看器控件在Winforms中显示(该控件也可以在WPF应用程序中使用WindowsFormshost使用)。唯一的缺点是您的应用程序必须安装的所需依赖项。 这是2010年报告查看器的可重新分布软件包。
如果需要/何时需要从浏览器查看,则可以轻松地在SSRS实例中托管报告。查看器还可以渲染在SSRS实例中托管的本地报告。
有很多指南在线使用报告查看器,具体取决于用于填充报告的数据源。以下示例是使用通用列表作为数据源。新的ReportDataSource系列中的“标签”必须与报告定义中数据集的名称相同。通用对象的属性还必须匹配数据集的列名。
public ReportViewer(IEnumerable<UnprocessedLabel> labels)
{
InitializeComponent();
var reportViewer = new Microsoft.Reporting.WinForms.ReportViewer { ProcessingMode = ProcessingMode.Local };
reportViewer.LocalReport.ReportPath = System.IO.Path.GetDirectoryName(Application.ResourceAssembly.Location) + "\\UnprocessedPalletLabel.rdlc";
var ds = new ReportDataSource("labels", labels);
reportViewer.LocalReport.DataSources.Add(ds);
reportViewer.RefreshReport();
}