8

我的任务是创建一个动态报告构建器来扩展我们当前的产品,它应该允许我们的用户相对轻松地配置一个有用的报告,从他们输入到系统中的数据中绘制数据。目前我们手动定制这些报告,这个过程涉及开发人员(我)获取报告的要求(字段、总计、百分比等)并将结果发布为一个相对交互式的页面,允许“向下钻取” ' 以获取记录行等中的更多信息。

这些报告并不是非常复杂,但它们涉及的内容足够多,以至于以编程方式生成这些报告似乎是不可能的。我觉得创建一个界面以允许用户自定义报告的外观应该不会太难,尽管它本身就涉及到。我不知所措的是如何创建一个界面,让完全没有“编程”知识的用户能够轻松生成 SQL 查询,从而获取他们需要的信息。

事实上,他们需要能够创建这些查询并访问他们输入数据的内容,而无需知道他们真正在做什么。我觉得要按要求工作,报告的生成必须尽可能与魔法没有区别。用户应该能够从可能的数据集中拖放他/她需要的内容,并神奇地生成报告。

我当然愿意接受挑战,但我真的不知道从哪里开始。一旦我开始行动,解决个别问题将变得“容易”(实际上更像是过程的一部分),但起步一直充满挑战和令人沮丧。如果有人能给我一个搜索的方向,我不怕花时间。感谢您的宝贵时间,我期待一些积极的建议。

4

6 回答 6

5

以前我的任务是这样的。我的建议:不要。除非所需的报告非常基本,并且您的用户不关心报告的外观,否则实施将花费大量时间。随着您指示您的单人团队,请不要。雇用初级开发人员或实习生或其他人来处理这部分工作对您来说(即使从长远来看)会更便宜。

现在,有一些不同的报表设计器。我还没有看到任何完全在网页上工作的东西,而且从非程序员的角度来看,它们都非常糟糕。

现在,有办法解决这个问题。大多数想要这些类型的报告的人都知道如何使用 Microsoft Access。您可以利用他们的知识让他们创建自己的报告。这不是微不足道的,因为您不希望它们只是连接到您的数据库。所以,这是我推荐的:

  1. 生成与 Access 兼容的可下载数据库
  2. 确保下载的数据库“易于”使用。这意味着复制数据和非规范化很多东西
  3. 确保您没有在可下载的数据库中留下任何敏感信息(密码、他们不应该看到的内部信息等)
  4. 最后,确保他们可以以安全的方式下载它并且它是高性能的。您可能需要告诉您的用户可下载的数据库仅每周或每月“同步”一次,因为实时同步它相对昂贵
于 2012-12-28T22:04:13.280 回答
4

看看数据仓库做了什么(例如The Data Warehouse Toolkit)。他们创建了几个非常广泛的基本表,包含大量冗余数据并涵盖数据库的某个方面。

我会创建几个这样广泛的视图,并让用户选择一个视图作为动态报告的基础。然后他们可以选择要显示的列、排序和分组。但是他们不能选择任何额外的表或视图。

当然,一个典型的视图必须真正涵盖有关数据库某个方面的所有内容。假设您有一个Order Items视图。这样的视图将包含所有订单的所有项目,提供数百列,包括:

  • 订单产品 ID、产品名称、正常价格、折扣、支付价格、含价格。运费的相关部分等。
  • 订单 ID、订单日期、交货日期、运费等。
  • 客户ID、客户名称、客户地址等。
  • 每个日期由几列组成:完整日期、一年中的某一天、月份、年份、季度、带有年份的季度等。
  • 每个地址包括完整地址、城市、州、地区、区号等。

这样,动态报告就相当容易使用,因为用户不需要加入任何表格,而是拥有他们需要的所有数据。

于 2012-12-28T22:06:39.740 回答
2

我建议您查看现成的报告组件。例如Microsoft 的 Reporting ServicesTelerikDevExpress或(我应该承认,我们的产品)SharpShooter Reports

于 2012-12-29T09:01:34.320 回答
1

开始环顾四周,有哪些报告工具?那里有什么东西甚至接近他们的期望吗?周围的工具将是通用的,您的案例可能相当具体。您已经知道用户正在寻找的部分答案。您的解决方案应该以这种方式帮助他们。

你用了“魔法”这个词。这应该是一个巨大的警告信号。作为开发人员,我们不做魔术,我们做逻辑。我们可以创造幻觉,我们不能施展魔法。

我会深入研究 Sql Analysis Services 和 Excel。这里有一个演示文稿。这些人也不会魔术,但他们可以做很多事情。

于 2012-12-28T22:20:19.197 回答
1

我们使用 EasyQuery 和 FastReport.NET 的组合。

EasyQuery 允许我们的用户构建动态查询并提取报告和 FastReport 所需的数据 - 用于实际报告生成并将其导出到 Excel 或 PDF。

于 2013-04-30T17:30:22.463 回答
0

看看 zpmsoftware.com。它有一个用于 ASP.NET MVC 的开源报告生成器,并输出到屏幕、excel 和 pdf。适应Webforms没有太多麻烦。由于大多数花哨的东西都在 jquery/javascript 中,因此适应其他服务器环境应该是可行的。

于 2018-07-13T20:29:41.130 回答