本帖最后由 phoben 于 2021-7-29 16:18 编辑
一年一度的《活字格低代码应用大赛》又双叒叕来啦!
这次就靠你们了!,我也会继续奉献插件、源码等干货给大家!
一个客户提出的需求,这里给大家分享下实现方法
客户的需求是:当修改表格内的数据,需要实时将有变动的格子标识出来
效果:
动图:
仔细想想,活字格好像并没有这个功能? 该怎么实现呢? 格友们可以先动动脑筋想想!
其实,想实现这个效果并不难,只需要使用单元格条件 + 一小段的JS代码即可以达到目的。
原理:通过JS接口来获取修改值的事件,并储存修改单元格的位置信息,将位置信息储存起来
然后通过“单元格条件格式”来设置一段条件。即可实现实时的改变效果;
具体做法如下:
第一步:
在页面中随便选一个不用的单元格,取名为:changeCell
第二步:
将下方JS放到页面加载命令里
- var change = function(arg,arg2) {
- var info = arg2.CellRanges[0].Row+1 +":"+ arg2.CellRanges[0].Column
- var cell = Forguncy.Page.getCell("changeCell")
- var oldValue = cell.getValue()
- oldValue = oldValue?oldValue +","+ info:info
- cell.setValue(oldValue)
- }
- var page = Forguncy.Page;
- var listview = page.getListView("表格1");
- listview.bind("valueChanged", change)
复制代码
第三步:
设置表格的条件格式,将需要用到这个效果的列都设置好。
条件格式内的公式设置为如下
- =IF(FIND(ROW()&":"&COLUMN(),changeCell)>-1,1,0)
复制代码
然后点击"格式..."按钮,设置你喜欢的样式,我这里就设置红色边框+红色字+浅红色背景色
完成上述这三步以后,就能看到效果
细心的格友会发现,其实每当表格值发生变更,changeCell 这个单元格的内容也会跟着变
从而引发条件格式,让表格样式发生改变,这就是实现此效果的核心
当我们想清空这个标识的时候,怎么办?
对,我们只需要清空changeCell的值即可!
当然,事情没那么简单,客户此时提出第二个需求,这个改变结果,我想在下次打开,或者其他人浏览的时候,也继续存在
也就是说,此次的改变不能只是一次性,而是根据需要长期留存,作为一个重要的标识!
已经做到这个份儿上了,相信格友们知道怎么解决这个问题了。
没错~就是把咱们changeCell的值存起来不就行了?
结合清空还可以随时改变标识位置。
下面是将标识位置信息存到数据库的做法,看下效果:
这里就是全部的教程,如果大家想详细研究,我这里也上传了DEMO工程
大家可以下载学习!
|