0

问题:

我们(也就是我,一个人)应该实现“用户生成的报告”(最多1个月,月底/新月初展示)。

问题 1:
所谓用户,是指没有任何技术技能的用户,例如 SQL 或 VBA。

问题 2:
技术只是 .NET,所以我不能使用 Java(以及基于 Java 的东西,比如 Jasper)

问题 3:
应该可以导出到 Excel(我的意思是 XLS 或 XLSX,而不是 XML 或 CSV)

问题 4:
数据分组应该是可能的(多组)

问题 5:
数据库是 Microsoft SQL-Server(推测是 2008 R2,但最终可能是 2008 R1 或 2005)

额外的“问题”:
基于 Web,使用 ASP.NET WebForms,但如果无法使用 Web,也可以基于桌面


现在除了那些要求和时间限制的荒谬之外......

一种解决方案是由 SSRS(SQL-Server 报告服务)提供的报告生成器。但是,有一些缺点,我认为这些缺点非常严重:

  1. 创建报表的用户基本上仍然需要了解 SQL(左、右、内、外连接及其后果)。由于用户可能不理解其中的区别,如果他们没有得到或得到错误的结果(例如空列上的内部联接),他们只会责怪我。

  2. 创建报告的用户对数据库/数据结构一无所知(例如软删除、持续日期)。此外,垃圾进垃圾出可能会成为一个问题,包括错误的数据等......

  3. 如果他们要创建一个矩阵,并且要对未舍入的值进行小计求和,则总计的总和不会与小计的总和相匹配,因为报告将在逗号后仅显示 2 位数字(因此将值四舍五入到 2 位)用于小计,但它将根据所有值的总和(未四舍五入)而不是小计的总和(四舍五入)计算总数。同样,他们会为此责备我或数据或报告生成器。

  4. 由于报表生成器不会在添加一个带有连接的附加表后显示结果数,因此用户将无法判断他们是否拥有正确的记录数,这将不可避免地导致错误的结果。再一次,他们会责怪我。

  5. 日期过滤器:需要应用它们,但不一定在 where 中,而是在 join 中。报表生成器不支持。不可能创建这样一份严肃的报告。

  6. 状态:如前所述,我们使用软删除和状态字段为 99 的已删除记录。where 中的过滤状态是危险的,有时必须发生在 join 中。同样,报表生成器不支持这一点,除非您使用原始 SQL,因为用户不会了解 SQL,所以这毫无意义。

  7. 安装报表生成器需要管理员权限,或者客户公司的 IT 部门来安装它。以及适用于相应 ReportBuilder 的相应 .NET 框架,以及适用于相应 Report-Server 的相应 ReportBuilder,因为 SQL-Server 2005 Reporting Service 不适用于 SQL-Server 2008 Reporting Services 的报告,而 SQL 2008 R1 不适用于R2。这也要求所有能够做到这一点的用户都处于某个 SQL-Server 报告服务报告生成器用户角色中,这要求 IT 部门将用户放入适当的活动目录组中,到目前为止,该组从未与任何我们的客户。另外,我不相信 IT 部门知道他们安装了适当的 ReportBuilder,如果他们同意安装的话。


现在我曾经(很久以前)碰巧在 youtube 上查看了 SSAS(SQL-Server 分析服务)的演示文稿。
但是我再也找不到链接了。
但无论如何,我没有任何 SSAS 经验,只有 SSRS。

我认为有可能以这样的方式滥用 SSAS,用户可以通过 Excel 连接到它,并获取数据并或多或少地像他们想要的那样对它们进行汇总。此外,他们将能够看到原始数据。

我可以预先准备一些查询表中的原始数据(我也可以通过数据集使用 reportbuilder)。

有没有人足够了解 SSAS 来告诉我在这段时间内这是否可行?
如果分析服务器和 Excel 版本 (2007/2010) 所需的加载项与所有分析服务器版本兼容,或者从 Excel 2007 访问 2008 R2 或从 Excel 2010 访问 SSAS-2005 时出现问题。

或者我是否一定会遇到 SSAS 比 ReportBuilder 更多的问题?

4

1 回答 1

2

如果您的问题是 SSAS 是否是解决您问题的合理方法,我的回答是肯定的。SSAS 的好处在于,一般而言,数据以业务用户易于理解的方式建模,并且可以在 Excel 中轻松操作以生成各种报表,而无需了解查询语言。对于任何版本的 SSAS,您都可以使用 Excel 版本 2007 或 2010。这不需要加载项 - 提供程序已内置于两个 Excel 版本中。此外,通过将模型放入 SSAS,您实际上可以通过各种工具更容易地访问您的数据 - 如果您愿意,可以使用 Excel 或 SSRS 或各种第 3 方工具。换句话说,与报表生成器相比,您不会限制使用此方法的选项,而是扩展您的选项。

也就是说,使用 SSAS 可能很简单,也可能很困难。这取决于您正在使用的数据类型以及必须添加到模型中的任何计算的复杂性。你是否能在你有空的时间内实现你的目标,这不是我能回答的问题。这实际上取决于您拥有的数据类型和用户需要的报告类型。

我可以为您指出一些资源。我为 TechNet 写了一篇文章作为温和的介绍:http ://technet.microsoft.com/en-us/magazine/ee677579.aspx 。它是为 SSAS 2008 编写的,但原则适用于 SSAS 2005、SSAS 2008、SSAS 2008 R2 和 SSAS 2012。

如果您喜欢视频介绍,请参阅http://channel9.msdn.com/Blogs/rdoherty/Demo-Developing-a-SQL-Server-2008-R2-Analysis-Services-Database开始。您可以在 channel9 上找到很多关于 SSAS 的免费视频资料。只需搜索 SSAS。

于 2012-08-19T05:45:35.203 回答