有哪些好的组件和包可用于根据报表定义生成 HTML 报表?我有一个真正可怕的项目,其中每个报告都是一个专用的 aspx 页面,它构建一个非常大的 HTML 字符串,然后将其分配给“reportBody”标签控件。
标准网格不是一个好的解决方案,因为它们不提供分组功能,但我愿意购买对分组、打印和导出友好的网格。仅供参考是我将要研究的一个报告引擎选项。那里还有什么?SSRS 可能不是一个选项,因为 MSSQL 甚至可能不是一个选项。
顺便说一句,这是一个 ASP.NET 网站。
你可以试试ActiveReports.net
您可以使用i-net Clear Reports(以前是 i-net Crystal-Clear)。它有许多不同的输出格式,如 HTML、PDF、Postscript 等。它可以打印,当然它支持分组。它与平台无关。您也可以将它与您的 ASP.NET 一起使用。它支持许多不同的数据库,如 MS SQL、Oracle、MySQL 等。但也可以使用其他数据源。免费且功能齐全的报表设计器非常易于使用。
此外,价格也远低于 Crystal Reports 等其他报告工具。
您仍然可以使用 RDLC 报告,只需在本地模式下构建它们(不需要 SQL SERVER)。我经常从函数调用的结果中提供我的 RDLC 报告数据,而不是让它们与数据库密切相关。
DevExpress ASPxGridView 已被证明是完成这项工作的绝佳工具。
标准网格不是一个好的解决方案,因为它们不提供分组功能
如果你想创建自己的,我可以给你一些建议。首先,您可以在 SQL 中使用 ROLLUP 或 COMPUTE 语句或类似语句创建组并使用网格。
我走了以下路线:报告是数据驱动的,所以我知道哪些列可以分组,哪些列需要计算总计。我使用标准 DataGrid,在 ItemDataBound 事件中,我为任何需要它的列保留一个运行总计,然后检测组列中的更改。当检测到时,我插入一个组总计,重置运行总计并插入一个新的组标题。
I did a quick prototype of this in a day. But by the time you work out all the little details to give the reports all the features they need, and make them look just right, you'll spend quite a bit of time and end up with a small mountain of code.