第一个复杂报表

简介 #

“复杂报表"是 SmartChart 内置的类 Excel 报表功能,支持直接将数据库查询结果填入表格单元格,并保留表格样式。适合财务报表、统计汇总表等需要明细数据展示的场景。

新建仪表盘 #

  • 在开发模式下,滑动“开发管理” ->“仪表盘”-> “新增Dashboard”
  • 填写相应信息后点击“保存”
  • 点击进入仪表盘开发, 点击右方的编辑进行开发界面

新建Excel场景 #

  • 点击右下角的SC图标,再点击左上角的设定
  • 进入设定后,选择Excel模板

输入图片说明

数据集编辑 #

  • 点开“数据集”
  • 输入以下SQL后,点击“保存并刷新”, 关闭数据集编辑界面
select H1 as 英雄名称, sum(qty) as 英雄1出场数 from smartdemo2
group by H1 order by sum(qty) desc;
select count(1) as 总出场数 from smartdemo2

多条 SQL 用 ; 分隔,在报表中分别对应 df0df1 两个数据集

报表页面开发 #

  • 和excel一样, 编辑相应表格
  • 点击"数据集图标”(再次点击隐藏), 显示数据集字段名, 选中单元格, 单击字段名填入

输入图片说明

  • 点击"获取数据", 可对真实数据调整样式

输入图片说明

  • 点击"保存"

输入图片说明

  • 点击"预览", 可查看最终效果

输入图片说明

导入EXCEL/WPS开发的模板 #

你也可直接导入excel或wps开发好的模板, 点击左下方的上传即可

关于自动填充方式 #

单元格占位符语法 #

在表格单元格中输入以下格式的占位符,系统将在渲染时自动替换为实际数据:

#df编号.字段名         → 按列方向向下填充(默认)
#df0.英雄名称__       → 按行方向向右填充(末尾加 __)
#df0.英雄名称!        → 自动继承单元格字段标识的格式(末尾加 !)
#df0.英雄名称!__      → 同时修改填充方向+继承格式

填充方向 #

默认的填充方向, 是按列方向向下填充 如果需要按行方向向右填充, 可在单元格字段标识后面加上__, 如下:

#df0.英雄名称__

格式填充 #

默认不会填充格式, 采用单元格自身的格式 如果需要自动采用"单元格字段标识"的格式, 可在单元格字段标识后面加上!, 如下:

#df0.英雄名称!

格式填充在数据预览不会生效, 仅在报表预览及用户模式下生效

如果需要同时修改填充方向, 可标识如下:

#df0.英雄名称!__

一、功能概述 #

SmartChart Excel 支持:

功能 说明
数据展示 通过 #df 占位符绑定数据集字段,自动填充数据
数据填报 通过 #input.字段名 占位符,让用户填写数据并提交
模板保存 开发者设计的表格布局(带占位符)可保存为模板
Excel 导入/导出 支持导入已有 Excel 文件,或导出为 xlsx/csv

二、核心概念 #

模式 B:option.view — 显示风格 #

控制 LuckySheet 的界面显示:

含义
true 纯净查看模式:隐藏工具栏、sheet栏、统计栏
false 完整编辑模式:显示所有工具栏

模式 C:option.dev_mode — 数据加载模式 #

含义
true 开发模式:保留 #df/#input 占位符,从存储的 table_data 加载
false 自由模式:从 dataset 自动生成所有单元格数据

三、占位符语法 #

3.1 #df — 数据字段绑定 #

#df0.字段名        — 纵向填充(默认)
#df0.字段名__      — 横向填充
#df0.字段名!       — 复制源单元格格式
#df0.字段名:N      — 最多填充 N 行

示例

// 纵向填充 city 字段,最多 10 行
#df0.city:10

// 横向填充 name 字段
#df0.name__

// 纵向填充,并复制格式
#df0.salary!

3.2 #input — 用户填报输入框 #

#input.字段名        — 填写单元格,提交时以字段名为 key

示例

#input.username   // 用户填写后提交数据 { username: "用户输入的值" }
#input.email      // 用户填写后提交数据 { email: "用户输入的值" }

七、工具栏按钮 #

根据访问模式动态显示不同按钮:

按钮 图标 开发者 普通用户
导入 Excel 📂 -
刷新数据 🔄 -
数据字段 📋 -
保存 💾 -
提交填报 📤 - ✓ (有 #input 时)
重置填报 🔄 - ✓ (有 #input 时)
导出 📥

7.1 提交按钮功能 #

当表格中存在 #input 单元格且用户为查看模式时,工具栏会自动显示提交填报按钮。

八、典型调用示例 #

8.1 开发模式(填报模板设计) #

let dataset = __dataset__;
let options = {
    view: true,        // 纯净显示
    dev_mode: true,   // 开发模式
    allowEdit: true,  // 允许编辑
};
ds_excel_upload('__name__', dataset, options);

8.2 用户模式(数据展示+填报) #

let dataset = __dataset__;
let options = {
    view: true,        // 纯净显示
    dev_mode: true,   // 保留 #df/#input 占位符
    allowEdit: true,  // 允许用户填写 #input
    submitId: 1,      // 提交按钮使用的 ID(可选,默认 1)
};
ds_excel_upload('__name__', dataset, options);

8.3 纯展示模式 #

let dataset = __dataset__;
let options = {
    view: true,        // 纯净显示
    dev_mode: true,   // 开发模式
    allowEdit: false, // 只读
};
ds_excel_upload('__name__', dataset, options);