news 2026/8/7 7:57:33

从零用低代码平台制作数据大屏(智表 + AJ-Report 实战)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零用低代码平台制作数据大屏(智表 + AJ-Report 实战)

本文记录我在公司实际项目中,用智表(SmartExcel 低代码平台)配合 AJ-Report 制作业务数据大屏的完整流程。
包含:数据字典视图搭建、动态数据源配置、大屏组件使用,以及我踩过的几个典型坑和解决办法。
适合刚接触低代码 BI 的同学参考。


一、背景:我们要解决什么问题

公司日常的业务数据(采购、生产、库存、销售)都躺在 SQL Server 里,但业务部门想要一块实时可视化的数据大屏,能随时看到业务动态,而不是天天人工导 Excel。

低代码方案的好处是:不用写前端、不用写接口,在平台上通过「配置数据源 + 拖拽组件」就能拼出大屏。本文用的两个工具:

工具角色说明
智表(SmartExcel)低代码平台 / 数据源底座负责把业务数据库里的表结构、数据暴露成「数据源」
AJ-Report开源 BI 大屏工具负责连接数据源、拖拽图表组件、生成可视化大屏

⚠️ 说明:AJ-Report 本身是开源项目(非金蝶产品),我们公司把它集成在智表环境里一起用,所以文中会交替提到两者。


二、环境准备(前置条件)

开始前确认你有这些东西:

  1. 智表 Excel 客户端(设计器),能登录公司服务器
  2. AJ-Report 访问地址:一般是http://你的服务器IP:端口/index.html#,问公司要
  3. 数据库账号:通常是sa,密码问管理员,或者在「数据中心 - 数据源」里能翻到
  4. 目标数据库:本文示例库名TYX
  5. 数据库是SQL Server(端口默认 1433)

如果 AJ-Report 连数据库报「连接超时」,基本是数据库服务器 1433 端口没对你开放,直接找运维处理,个人电脑上折腾不了。


三、第一步:在智表里搭「数据字典视图」

大屏最终要展示的是业务数据,但我们有几十张表、几百个字段,先用智表把它们的结构整理成一张「数据字典视图」,后续取数会方便很多。

3.1 导出数据字典模板

打开Excel 客户端,进入「系统管理」,右键点击公司的数据字典,选择导出数据字典模板

3.2 建立内部数据源(核心 SQL)

进入「系统管理 → 内部数据源 → 新增 → 通过 SQL 建立」,把下面这段 SQL 粘贴进去。

这段 SQL 的作用是:从智表自己的系统表里,把「每张表有哪些字段、每个字段是什么类型」查出来,拼成一张数据字典。

SELECTT2.tabIDAStabID,T2.tabNameAS表名,T2.sName2AS表别名,T1.fieldIDAS字段ID,T1.fieldNameAS字段名,T1.sName2AS字段别名,CONCAT('tabDIYTable',CAST(T2.tabIDASvarchar(50)))AS数据库表名,CONCAT('F',CAST(T1.fieldIDASvarchar(50)))AS数据库字段名,T3.TypeIDAS类型ID,T3.TypeNameAS数据类型,T3.OriginTypeAS数据库数据类型,T3.iLenAS数据长度FROMtabDIYTableAST2LEFTJOINtabDIYTableFieldAST1ONT1.tabID=T2.tabIDLEFTJOINtabDataTypeAST3ONT3.TypeID=T1.TypeID

3.3 形成数据表

保存后,系统会生成一张内部数据表,起名为数据字典视图

3.4 导入模板并检查相关性

点击「系统管理 → 管理操作」,下拉框选择导入模板,点检查相关性。如果提示「未缺少」,说明依赖关系都齐了,没问题。

3.5 关键一步:设置返回值(很多人卡在这)

如果你填了表名、公式也不报错,但数据就是不出来,八成是没设返回值。

操作:打开模板 →数据表管理 → …主表 → 右击设置返回值,把id设置进去。


再点「创建 SQL」复制出来,后面 AJ-Report 里要用。


我们可以发现这个SQL有问题,from后面没有加表。我们可以检查一下公式。看数据库表名是否对照着。

还有其他问题的话,另一个公式也可看看,是不是对应的。

之后在生成这样就没问题。


四、第二步:登录 AJ-Report 创建大屏

用公司给的地址登录:

http://你的服务器IP:端口/index.html#

填入用户名和密码。

进入后:点击报表设计 → 报表管理 → 新增,填写:

  • 报表名称:随意,比如「生产数据大屏」
  • 报表编码:必须唯一,不能和已有的重复
  • 报表类型:选大屏报表

保存后点更多 → 设计,进入大屏设计器。


五、第三步:配置动态数据源

5.1 连接数据库

在大屏设计器里点数据源,新建连接。数据库一般选SQL Server,账号sa,密码问人要(或在数据中心-数据源里找)。


测试,成功后点确定。

测试通过的条件是:AJ-Report 服务器能访问到数据库服务器的 1433 端口。如果超时,见文末 FAQ。

5.2 配置数据集

点击数据集 → 新增,选择SQL方式,把第 3.5 步复制的 SQL 粘贴进去。数据源选刚才建的,编码保持唯一即可,名称随意。


六、第四步:使用大屏组件

6.1 滚动表格(最常用)

从文本栏拖一个表格组件到工作区,右侧可以设置表头、表体样式。

  • 设置字段时,宽度 100%表示把表格总宽按字段数平分后的单个宽度
  • 点「数据」绑定动态数据源,刷新时间1 秒 = 1000 毫秒(图里 30 秒即半分钟刷新一次)

绑定后如果数据框没出现,去「配置」里编辑,名字随便取,但 Key 值必须和上面数据集返回的 Key 对应,这样才能正确映射字段。

6.2 大屏背景与图片

点大屏空白处,可以设置背景颜色,也能插入图片。注意图片格式必须是 png(其他格式可能不显示)。整体刷新可以设 1800 秒(30 分钟)。

6.3 其他组件

平台还提供边框、地图、饼图、折线图等组件,直接拖拽即可,效果如下:


七、常见问题与排坑(FAQ)

这部分是我实际踩过的坑,建议重点看。

Q1:报"SQL 执行结果的字段数量必须跟当前内部数据表的项目数量一致"

原因:你的 SQL 查出来多少列,对应的内部数据表就必须有多少个字段,两边必须完全对齐。

解决:数一下内部数据表(如「数据字典视图」)的字段数,把 SQL 的 SELECT 列数改到一致。

Q2:报"列名 ‘tabID’ 无效"(原始出错信息来自某条取数公式)

原因:公式里引用的字段名tabID,但你的 SQL 里已经把它改名成表单ID(或别的)。

解决:SQL 返回的字段名 和 公式里引用的字段名必须完全一致。把公式里的tabID改成实际的列名即可。

口诀:SQL 列名 = 内部数据表字段名 = 公式引用名,三者统一就不报错。

Q3:填了表名、不报错,但数据不出来

原因:模板的「返回值」没设置,导致上游查不到tabID/表单ID,下游字段查询自然为空。

解决:见 3.5 节,去「数据表管理 → 主表 → 设置返回值」,把id设进去。

Q4:AJ-Report 连数据库超时

原因:数据库服务器 1433 端口没对 AJ-Report 服务器开放(常见于内网隔离)。

解决:个人无法处理,把报错发给运维,让他放行 1433 端口,或确认真实端口号(不一定是 1433)。


八、总结

整个流程串起来就是:

业务数据库(SQL Server) ↓ 智表内部数据源(SQL) 暴露成「数据字典视图」 ↓ 导出/导入模板,设置返回值 AJ-Report 动态数据源(连接SQL Server) ↓ 数据集(SQL) 大屏组件(表格/图表/地图) → 可视化大屏

低代码做大屏的核心难点不在"拖组件",而在数据源和字段映射——只要 SQL 列名、内部表字段名、公式引用名三处对得上,剩下的就是拖拽和美化了。

希望这篇能帮你少走弯路。有问题欢迎评论区交流。


附录:完整数据字典 SQL(可直接用)

SELECTT2.tabIDAStabID,T2.tabNameAS表名,T2.sName2AS表别名,T1.fieldIDAS字段ID,T1.fieldNameAS字段名,T1.sName2AS字段别名,CONCAT('tabDIYTable',CAST(T2.tabIDASvarchar(50)))AS数据库表名,CONCAT('F',CAST(T1.fieldIDASvarchar(50)))AS数据库字段名,T3.TypeIDAS类型ID,T3.TypeNameAS数据类型,T3.OriginTypeAS数据库数据类型,T3.iLenAS数据长度FROMtabDIYTableAST2LEFTJOINtabDIYTableFieldAST1ONT1.tabID=T2.tabIDLEFTJOINtabDataTypeAST3ONT3.TypeID=T1.TypeID
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 7:55:06

金融图片合规审核系统实战:从架构设计到模型迭代的完整指南

1. 项目概述:金融合规审核的“火眼金睛” 在金融行业干了十几年,我见过太多因为一张图引发的“血案”。一张看似普通的营销海报,可能因为字体版权问题被索赔;一张客户上传的身份证照片,可能因为清晰度不够导致后续业务…

作者头像 李华
网站建设 2026/8/7 7:53:48

【Agent】Claude Code CLI 接入阿里 Token Plan 保姆级教程

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。 【Agent】Claude Code CLI 接入阿里 Toke…

作者头像 李华
网站建设 2026/8/7 7:51:36

AI Agent上下文管理:从OpenClaw痛点解析到Hermes动态分层策略实战

1. 项目概述:当Session管理成为AI Agent的瓶颈 最近在折腾几个开源的AI Agent框架,特别是OpenClaw和Hermes Agent,一个绕不开的痛点就是“上下文管理”,或者说,更具体点,是 Session管理 。这听起来像是个…

作者头像 李华
网站建设 2026/8/7 7:50:35

【中科蓝讯】从两次偶发死机,理解 com 区和 bank 区

刚接触中科蓝讯 SDK 时,我经常看到函数前面有 AT(.com_text.xxx)。一开始我只知道照着原有代码写,却不明白它为什么在这里。后来看了资料和工程里的写法,我才认识到:SDK 把代码分区域存放,不同区域的运行方式不一样。 …

作者头像 李华
网站建设 2026/8/7 7:50:06

AI Agent邮件自动化实战:从语义理解到私有化部署的完整指南

1. 项目概述:当AI Agent开始处理你的邮件最近几个月,AI Agent(智能体)这个概念在圈子里火得不行。从能自动写代码的Devin,到能帮你规划旅行的各种AI助手,大家似乎都在讨论一个未来:让AI像人一样…

作者头像 李华
网站建设 2026/8/7 7:49:28

C++游戏开发实战:从状态机到组件化架构的SFML项目构建

1. 项目概述:从零到一,用C和SFML构建你的第一个游戏世界 如果你对C充满好奇,同时又对游戏开发抱有热情,那么“C游戏编程入门”这个系列就是为你量身打造的。这不是一本枯燥的语法教科书,而是一张通往亲手创造游戏世界的…

作者头像 李华