15 | 前端技术应用(二):如何设计一个报表工具?
该思维导图由 AI 生成,仅供参考
报表工具所需要的编译技术
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了如何设计一个报表工具所需要的编译技术、报表设计以及编写所需的语法规则。文章指出报表工具需要面向不同类型的用户,包括程序员和业务级用户,因此需要暴露更多技术细节或提供图形化界面设计。详细介绍了报表工具中的计算字段和支持的函数,以及如何设计报表的XML文件和HTML模板。还提到了DSL(特定领域语言)的应用,以及编写报表所需的语法规则。强调了实现一个简单的报表引擎的重要性,以便实际生成报表。文章深入浅出地介绍了报表工具的设计和实现过程,为读者提供了全面的技术指导。通过示例代码展示了报表引擎的工作原理,包括报表定义的解析、数据源获取、字段计算和报表渲染。同时,强调了编译技术在报表工具中的应用,以及如何结合领域特点形成DSL,赋予用户编程能力。总体而言,本文为读者提供了在某个应用领域应用编译技术的直观了解和启发。
《编译原理之美》,新⼈⾸单¥59
全部留言(10)
- 最新
- 精选
- 风的呢喃,爱的絮语 这个也可以用来做代码自动生成吧,通过一个图形化的界面拖拖拽拽设置下值 自动生成符合文法的业务功能描述文件 解析这个文件生成程序代码
作者回复: 没错的。 通过图形化的界面,进行可视化的编程,实际上是目前发展比较快的一个领域。现在被叫做“低代码开发”或“零代码开发”。我曾经也在这方面做过工作。
2019-12-07211 - hhhh目前在做一个监控报警系统,用户可以自定义规则,例如 request_timeout > 10s | cpu_usage > 2, 需要用到简单的词法分析,语法分析,以及语义分析,从而执行对应的操作。
作者回复: 用户自定义规则。非常好。非常典型的场景。感谢分享!
2020-05-252 - 雲至老师 生成的解析器是怎么样调用的 能在详细说一下吗?
作者回复: 调用的主控逻辑在PlayReport.renderReport中。要编译报表模板中的每个字段(含公式),然后在渲染报表的时候,调用FieldEvaluator进行计算。 FieldEvaluator跟之前的计算器没什么差别,只不过进行的是向量(矢量)计算,一次计算一整列。都是解释执行AST。
2019-09-172 - 神经旷野舞者最近也要学数据库,公司数据很多,客服,产品都要查数据,有什么思路可以让他们自己查的
作者回复: 这需要普通用户(非技术人员)可以使用的那种报表工具。有一些产品是针对这种场景的。 基本思路是:你要设计一个语义层,屏蔽底层的细节,让用户拖拽过来几个数据指标,就能实现查询。你可以用编译技术实现语义层与底层实现之间的翻译。 采用这个思路,你还可以实现低代码或无代码的编程工具,让不怎么懂技术的人也可以做编程。
2020-04-031 - 万木春老师,这节课怎么没有提供相关的源代码?
作者回复: 在lab/report目录下。 https://github.com/RichardGong/PlayWithCompiler/tree/master/lab/report 我在文章末尾加一下链接!
2019-10-061 - 竟舟有时候想和老师道个歉, 向自己道个歉, 从来没认清自己的现状.
作者回复: 啥情况? 从学习中获取乐趣就是了!
2021-08-08 - James Deng老师,我们遇到用户自定义的场景实际还是研发把某些function定义并实现好,然后用户看着去用,但真正的自定义应该是用户自己定义并且实现该function的,这个就要开放用户去编码了?2022-10-26归属地:广东1
- 神经旷野舞者老师那拖拽可视化实现有什么框架吗,对前端也不懂,感觉有点迷茫,这种封装语义拖拽有什么开源推荐码2020-04-171
- 柯察金老师,我请假一下,根据用户已经输入的 sql,自动提示补充,一般怎么做啊,可以给个思路嘛2024-02-12归属地:美国
- 潜龙勿用数据权限也可以用编译技术来实现。数据权限可以表达成一个表达式,比如 city=广州。那么通过解析这个表达式,然后生成对应数据库的条件语句来实现数据权限。2021-07-05