5

我是一名进入非软件工作场所的程序员(主要是 C++)。但是,我根本没有太多数据库方面的经验。

TL;DR:如果我们将 Crystal Reports 与仅编写执行 SQL 查询并解析结果的脚本进行比较,那么 CR 是否可以通过 SQL 查询和脚本来完成任何事情?我说的纯粹是提取数据——而不是制作漂亮的文档。


细节:

在我的工作场所,他们有一个流程,您可以运行一堆 Crystal Reports,将日期范围修改为当前月份,手动将每个报表导出到 Excel,删除不需要的行和列,然后剪切并粘贴到摘要中管理人员使用的excel文档。

对我来说,这是非常疯狂和愚蠢的。我想自动化/编写大部分脚本。

所以我有两个选择:

  • 学习 Crystal Reports 并尝试将现有报表修改为更加自动化。
  • 转储 CR 并学习 SQL 并使用处理 CSV 文件或其他内容的脚本以编程方式完成整个工作。

我更愿意学习 SQL,因为它更通用、更有用。但我需要确保我可以获得我需要的数据输出(无需自己编写一百万行代码来重现 CR。)

所以是的,我正在寻找这样的答案,“两者是等价的。您可以在 CR 中执行的任何操作都可以通过脚本和 SQL 轻松完成”或“如果您需要根据参数将记录分组到类别,然后总结他们的一个领域,然后 CR 将比原始代码更容易做到这一点,”将我推向一个或另一个方向。

编辑:一些额外的细节。目前我的水晶报表运行数据库查询,然后水晶做类似的事情,“不显示返回的记录,而是按字段 A 对记录进行分组,然后显示每组中有多少条记录的计数。”

这样的功能很难通过 SQL 编码来重现吗?例如,我不想编写一个 python(或其他)脚本来解析和操作来自纯文本 CSV 的数据。

4

6 回答 6

4

您不能只比较 SQL 和 CR - 它们有不同的用途。SQL(在这种情况下)是数据源,CR 是漂亮的输出格式化程序。对于 excel,您需要数据,而不是格式化输出。Excel 与 SQL 结合可以为您提供所有 CR 选项(动态交叉表报告、图表等),这些选项是您无法直接从 SQL 数据中获得的。顺便说一句,通常需要创建 SQL 视图或过程来克服 CR 限制;从这个角度来看,SQL 比 CR 有更多的选择。

我个人会选择 SQL+Excel 路线。在我们公司,我们只使用没有后处理的 SQL+CR,有时使用 SQL+Excel。我们的客户使用不同的方法。

但正如其他人所说,工具的选择取决于更多的事情。谁必须重新设计报告?谁来维护这些报告?需求多久改变一次?除了采购 Excel 表格之外,CR 报告还有其他用途吗?如果报告不起作用,谁会在晚上醒来?

于 2013-10-04T08:52:46.683 回答
2

实际上,Crystal Reports 可以使用普通 SQL 查询来做一些非常棘手的事情,因为 Crystal Reports 可以在单个公式中访问整个数据集,并且可以在运行时执行操作。

但是,除非您有一些非常复杂的 Crystal Reports,否则我建议您在 Excel 中构建一个工具,可以将信息直接单击到新工作表中。

我这样做了,它让我升职了,不是开玩笑:P

我有一个自定义 Excel 插件,我可以给你代码,基本上是这样做的:

  • 打开时,连接到数据库并下载连接到视图和过程的菜单选项列表
  • 将这些菜单选项添加到 Excel 中的新功能区选项卡中
  • 单击时,运行视图并将整个数据集(格式正确)转储到新工作表中

这样做的好处是您可以更新主菜单列表及其引用的每个视图,而无需对文件进行任何更改或向所有人重新发布任何内容。

于 2013-10-16T17:38:30.533 回答
2

您可以编写 SQL 并将其放入 Crystal Report。两全其美,并且可能比拖放水晶功能更快的性能。报告运行时,您会看到一些响应时间延迟。

于 2013-10-16T17:24:28.187 回答
2

管理视角:在很多情况下,我会说大多数情况下管理不知道 SQL。因此,如果 EgHR 的经理想了解某事的状态,那么他将如何获得该状态?这就是水晶报表的用武之地,使用水晶报表他们不必担心SQL;他们只需输入必填字段并获取数据。

程序员视角:可以通过 SQL 实现简单的数据输出,但考虑需要提取细节和摘要的场景。我同意它可以通过 SQL 完成,但要考虑使用 sql 开发此类输出所需的时间和熟练程度。我敢打赌,与 Crystal 相比,使用 sql 开发这样的输出不会那么容易。所以我会说同时学习 SQL 和 Crystal,您将可以选择适合您要求的工具。

于 2013-10-04T07:51:02.617 回答
0

如果您想创建具有特定布局、徽标等的文档并在其上显示一些数据,Crystal 可能会有所帮助。从 Crystal 报告导出到 excel 并不容易 - 通常有很多空列和行,每个报告都应该调整以避免这种情况。如果您需要从 SQLServer 数据库中导出一些数据以使其表现出色,那么您最好的选择是 SSIS(我猜您有 SQL Server 的许可证)。如果您没有 SSIS 的许可证,或者您正在使用例如 Access 数据库,那么还有一些便宜的工具,它们可以从任何数据库(不仅仅是 SQLServer)中检索数据并将其导出到 excel。我建议你检查一下:http ://www.r-tag.com. 它可以运行 Crystal 报表和 SQL 报表,因此您可以立即开始使用您的 Crystal 报表,并在您有时间的时候开始将它们转换为 SQL 报表。两个报告都可以导出到excel。

于 2013-10-07T17:56:50.890 回答
0

我通过编辑 excel sql, Left(Column_maxLength, 250) 解决了这个问题

于 2016-09-15T13:17:26.220 回答