首页 文章

Crystal Reports与SQL查询

提问于
浏览
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的数据 .

6 回答

  • 0

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

    我个人会选择SQL Excel路由 . 在我们公司,我们只使用SQL CR而不进行后处理,有时使用SQL Excel . 我们的客户使用不同的方法 .

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

  • 2

    管理能力:在很多我会说大多数情况下管理不了解SQL . 因此,如果E.g.HR的经理想要了解某事情,那么他将如何获得这种状态?这是Crystal报告的图片,使用水晶报告他们不必担心SQL;他们只需输入必填字段并获取数据 .

    程序员观点:简单的数据输出可以通过SQL实现,但考虑一个需要提取细节和摘要的场景 . 我同意它可以通过SQL完成,但考虑使用sql开发此类输出所需的时间和熟练程度的开销 . 我敢打赌,与水晶相比,使用sql开发这样的输出并不容易 . 所以我会说学习SQL和水晶,你会选择工具来申请你的要求 .

  • 2

    您可以编写SQL并将其放入Crystal Report中 . 这两个世界中最好的,可能比拖放Crystal功能更快的性能 . 报告运行时,您会看到一些响应时间延迟 .

  • 3

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

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

    我这样做了,它让我得到了晋升,而不是开玩笑:P

    我有一个习惯Excel Addin我可以给你代码,基本上这样做:

    • 打开时,连接到数据库并下载连接到视图和过程的菜单选项列表

    • 将这些菜单选项添加到Excel中的新功能区选项卡中

    • 单击一个时,运行视图并将整个数据集(格式正确)转储到新工作表中

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

  • 0

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

  • 2

    我修改了这个通过编辑excel sql,左(Column_maxLength,250)这解决了我的问题在我的情况下,即使我读了左250字符就够了

相关问题