2011-04-30 59 views
3

我目前正在从我的Forms应用程序中打印几个报告。但是,仅使用内置的.NET打印方法构建打印报告非常繁琐。即使只是在一些页面上打印一张简单的表格并进行格式化,也是几个小时的任务(如果它看起来不错)。如何为打印报告编写一个简单的设计器

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

所以我的具体问题:

  1. 什么将我作为该报告的编辑和显示画布使用?我在打印文档上使用的图像控制/位图?有没有更好的办法?

  2. 正在绘制一张可与在印刷页上绘图相媲美的形式吗?分辨率打印机与屏幕有什么不同?

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

我知道身边有报告设计师,但我认为这是很好的,有时要了解你所使用的基本工作原理和实现他们是为我做到这一点的最好办法。

我知道,这不是一个具体问题A到这个问题的答案始终是B,但如果是这样,我会很快发现在谷歌的答案。

在此先感谢!

+0

我知道生根粉水晶,但我想我自己写的设计师。尤其是因为独立于随附的任何许可条款。 – FinalNotriX 2011-04-30 22:22:52

回答

0

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

我主要有两种创建报告的方式。第一个是使用PDFsharp(麻省理工学院许可)手动布局不适合模糊的页面。

第二种是通过Winnovative's HTML to PDF library (not free, but royalty-free)它使用IE的当前安装版本进行布局和吐出PDF。它看起来像他们最近发布了一个名为EVO PDF新版本,我从来没有使用过。*

对于HTML到PDF解决方案,它支持JavaScript,因此您可以在图表中的JavaScript库像flotjqplot增加。

* 我不跟Winnovative无关。

0

你可能想节省时间和使用Visual Studio HTML设计师,你的所见即所得的编辑器。

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

从您的应用程序中,您可以使用报告可选参数轻松调用您的操作。例如:

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

您只需获得来自Web客户端的DownloadString方法返回的字符串,你必须产生报表。

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

您可以实现从图形到表格的任何操作,甚至可以生成与其他报表的链接。

HTH。