如何为打印报表编写一个简单的设计器

本文关键字:简单 一个 打印 报表 | 更新日期: 2023-09-27 17:54:33

我目前有几个报告,我从我的表单应用程序打印。然而,仅使用内置的。net打印方法构建打印报表是非常繁琐的。即使只是在几页纸上打印一个简单的表格,加上一点格式化,也是一项需要几个小时的任务(如果它看起来不错的话)。

我需要的是一个所见即所得的设计器的布局,所以我想写一个。它不应该是为最终用户,但对于我作为一个开发人员,它只是要创建布局,报告将看起来像各种安排/字体/图像/格式等,而不必通过试用来做。代码错误(并重新启动应用程序无数次)。

所以我的具体问题是:

  1. 我将使用什么作为编辑和显示报告的画布?一个图像控制/位图,我可以像在打印文件上那样绘制?有没有更好的办法?

  2. 在表单上绘图与在打印页面上绘图是否相当?打印机和屏幕的分辨率有什么不同?

  3. 如何获得真正的所见即所得?我应该获得打印机设置并创建具有相同分辨率的画布吗?还有什么要考虑的吗?

我知道周围有报表设计器,但我认为有时理解你使用的基本工作原理是很好的,对我来说实现它们是最好的方法。

我知道这不是一个答案总是B的特定问题a,但如果是这样的话,我很快就会在谷歌上找到答案。

提前感谢!

如何为打印报表编写一个简单的设计器

我不能说太多关于所见即所得编辑器的设计,但是我已经为我们的开发团队编写了一些自定义的内部报告引擎。

我创建报告的主要方法有两种。第一种是使用PDFsharp(麻省理工学院许可)手动布局页面,这并不适合胆小的人。

第二种是使用Winnovative的HTML to PDF库(不是免费的,但免版税),它使用当前安装的IE版本进行布局并生成PDF。好像他们最近发布了一个叫EVO PDF的新版本,我以前从来没用过。*

对于HTML到PDF的解决方案,它支持JavaScript,因此您可以从JavaScript库(如flot或jqplot)中添加图表。

*我不隶属于Winnovative.

您可能想要节省时间,使用Visual Studio HTML设计器作为您的所见即所得编辑器。

我目前正在做的是使用ASP。NET MVC 3作为一个简单的报表引擎。当使用Visual Studio作为报表设计器时,您可以使用MVC模式来真正分离报表数据源(模型)和呈现(视图)。

从你的应用程序,你可以很容易地调用你的动作与报告可选参数。例如:

http://localhost/Report/Customer/Orders/1

您只需从WebClient的DownloadString方法中获取返回的字符串,就可以生成您的报告了。

使用HTML有一些缺点,主要是很难知道页面何时会中断,但是通过在视图中使用代码,您可以计算重复项目的数量,并添加CSS中断页,并在下一页重新启动表的标题。

你可以实现任何从图形,到表格,你甚至可以生成链接到其他报告。

HTH .

在Windows窗体中打印报表http://msdn.microsoft.com/en-us/library/ms996472.aspx