单元格链接与钻取
点单元格看明细:四步配好一个钻取,参数值的四种取值方式(文本 / 本格的值 / 取本行字段 / 公式),以及「每行钻下去都一样」这类常见问题的排查。
报表上点一个单元格,弹出这一行对应的明细,这类交互在 Sight 里叫「单元格链接」。除了钻取明细,它还能跳转网页、切换报表参数、给嵌入方发事件。
四步做出第一个钻取
以「点科室名称,看该科室的就诊明细」为例。
- 选中要点击的单元格(显示科室名称的那一格),右侧属性面板切到「链接」,点「添加链接」,选「报表链接」。
- 选钻取目标。明细就放在这张模板里,选「本模板的子报表」;明细是另一张已经做好的报表,选「另一张报表」。
- 把值绑上去。在「参数配置」里填参数名,参数名必须和目标报表声明的参数名完全一致;值一般选「本格的值」。
- 给明细挂过滤条件。到子报表的明细单元格上,把「数据集内容 → 过滤条件」的右值类型设为「参数」,填上刚才那个参数名。
第 3、4 步缺一不可。 只绑参数不挂过滤条件,弹窗会打开、也会分页,看起来完全正常——但每一行钻下去都是同一份全量数据。这是最容易漏、且不会报错的一步。
产品自带一个可直接运行的例子:报表管理 →「特性示例」→ 科室钻取示例。
参数值的四种取值方式
参数值输入框左侧有四个小按钮,决定这个值怎么来。
| 选哪个 | 传出去的是 | 什么时候用 |
|---|---|---|
| 文本 | 你填什么就是什么 | 固定值,例如状态固定传「已完成」 |
| 本格的值 | 这一格显示的内容 | 点谁传谁,最常用 |
| 取本行字段 | 同一行里任意一个字段 | 格子上显示的是名称,要传的是代码 |
| 公式 | 表达式的计算结果 | 要拼接、要取别的格、要用报表参数 |
「取本行字段」解决的是什么问题
报表上通常只显示科室名称,但钻取往往要按科室代码过滤,而代码并没有摆在任何一格上。选「取本行字段」就能直接从这一行的数据里取,不用再专门加一列隐藏格来中转。
下拉里列的是当前单元格绑定的那个数据集的字段。如果这一格自己没绑数据集(比如是文本格),会自动沿用父格的数据集。
一个链接里可以同时传多个参数,各自用不同的取值方式。上面那个内置示例就传了两个:科室名称取自单元格用来显示弹窗标题,科室代码取自本行字段用来过滤明细。
切到「公式」能看到底层写法
前面几档只是把常用写法做成了按钮,切到「公式」档就能看到并继续加工:
| 想要 | 写法 |
|---|---|
| 本格的值 | $$value |
| 本行的某个字段 | $$record.科室代码 |
| 引用某一格 | A4 |
| 报表参数 | $开始日期 |
| 拼起来 | $$record.科室代码 + "-" + $年份 |
字段名里有空格或点号时写成 $$record['科室 代码']。要取另一个数据集里的字段,用 datasetSelect(数据集, 取值字段, 条件字段, 条件值) 回查。
单元格引用要注意两点:名称必须是大写字母加数字(a2 不认);$A2 不是 Excel 那样的绝对引用,$ 会让它变成「报表参数 A2」。
链接类型
| 类型 | 做什么 |
|---|---|
| 报表链接 | 钻取到明细,目标可以是本模板的子报表或另一张报表文件 |
| 网页链接 | 跳到一个网址,可以把单元格的值拼进地址里 |
| 动态参数 | 不跳转,只改变当前报表的参数值让它自己刷新,可做排序、切换口径 |
| 发送事件 | 把点击这件事连同参数抛给外面的系统,报表被嵌进别人的页面时用 |
| JS 脚本 | 前面几种都不够用时自己写脚本 |
| 图表 | 点击后弹出图表,或联动页面上已有的图表 |
同一个单元格可以配多个链接。配了不止一个时,点击单元格会先弹出小菜单让使用者选,菜单上显示的是「链接名称」,所以名字尽量写清楚。
打开方式有三种:新对话框在当前页弹窗打开,看完关掉就回到原位,钻取首选;当前窗口直接跳走,适合"换一张报表看";新窗口另开标签页,适合对照着看。
常见问题
点开了,但每一行看到的数据都一样
九成是只绑了参数、没给明细挂过滤条件。参数确实传过去了,但目标报表没有拿它去筛数据。到子报表的明细单元格上补「过滤条件」,右值类型选「参数」。
点开了,但一行数据都没有
- 参数名和目标报表声明的名字对不上。点「读取目标模板参数」核对,对不上的会标出黄色感叹号。
- 值的取法选错了:想取当前格的值却停在「文本」档,传过去的就是你填的那几个字本身。
- 目标报表的参数类型不对。编码类的参数要声明成文本类型,声明成数值会把
001变成1。
配了参数,目标报表完全没反应
目标报表没有声明这个参数时,它会被直接丢掉,不报错也没有日志。点一次「读取目标模板参数」,未声明的参数名旁边会出现黄色感叹号。
数据集查不到数据时,空格子还能点吗
不能。没有内容的单元格不会挂链接,也不会显示成可点击的样子。
能一直往下钻吗
钻取到本模板子报表时,最多连续钻 3 层,且同一个子报表不能在一条钻取路径上出现两次(否则会绕圈)。弹窗里的报表是只读的,单元格控件不生效。
导出成 Excel/PDF 之后链接还在吗
不在。链接是页面上的交互,导出的文件里只保留数据本身。