打印发票C#Winforms

时间:2010-12-06 20:46:48

标签: c# printing invoice

我已经在c#中编写了一个应用程序,现在我想以发票的形式打印其内容,如图所示我想只打印一次客户数据,但他要求在他的汽车上执行的工作在datagrid视图中显示应该在发票结尾处以劳动和总劳动的清单形式存在。 有些人建议使用水晶报告,我从未使用它们,所以寻找一个更简单的解决方案 简而言之我们如何从alt text

形式打印所需的值

3 个答案:

答案 0 :(得分:6)

最简单,最快捷的解决方案是使用Visual Basic PowerPack的PrintForm控件(您也可以在C#项目中使用它)。

http://msdn.microsoft.com/en-us/vbasic/bb735936.aspx

只需将控件拖到您的表单然后从代码调用

printForm1.Print();

这将打印表单上的任何内容,因此只需在表单上设计报表然后调用该代码,即可完成。

答案 1 :(得分:3)

上次我需要从C#表单打印几个字段时,我只是使用“Bitmap”和“Graphics”对象创建了一个Bitmap图像,并使用“PrintDocument”来打印它。

通过指定要打印的元素的坐标,可以在代码中完成打印报告的布局。它便宜又脏,但很有效。

答案 2 :(得分:3)

您可以使用本地SSRS报告(.rdlc扩展名)。 “报告”下应该有一个新项目模板用于创建报告。报告使用报告查看器控件显示在Winforms中(该控件也可以在使用WindowsFormsHost的WPF应用程序中使用)。唯一的缺点是必须与您的应用程序一起安装的必需依赖项。 Here is the redistributable package for the 2010 report viewer.

如果需要从浏览器查看报告,则可以轻松地在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();
    }
相关问题