phoben 发表于 2021-6-25 13:16:31

分享高级技巧,表格值改变,同步进行标识!还可以长期留存!

本帖最后由 phoben 于 2021-7-29 16:18 编辑

一年一度的《活字格低代码应用大赛》又双叒叕来啦!
这次就靠你们了!,我也会继续奉献插件、源码等干货给大家!




一个客户提出的需求,这里给大家分享下实现方法

客户的需求是:当修改表格内的数据,需要实时将有变动的格子标识出来

效果:


动图:


仔细想想,活字格好像并没有这个功能? 该怎么实现呢? 格友们可以先动动脑筋想想!





其实,想实现这个效果并不难,只需要使用单元格条件 + 一小段的JS代码即可以达到目的。

原理:通过JS接口来获取修改值的事件,并储存修改单元格的位置信息,将位置信息储存起来
然后通过“单元格条件格式”来设置一段条件。即可实现实时的改变效果;
具体做法如下:

第一步:
在页面中随便选一个不用的单元格,取名为:changeCell


第二步:
将下方JS放到页面加载命令里
var change = function(arg,arg2) {
var info = arg2.CellRanges.Row+1 +":"+ arg2.CellRanges.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工程
大家可以下载学习!





天朝四周处 发表于 2021-6-25 13:23:26

好,顶一个

lovert 发表于 2021-6-25 13:37:57

很多时候就是换个思路问题就会迎刃而解

Aa金砂 发表于 2021-6-26 15:41:38

看不懂 还要金币

储钱罐儿 发表于 2021-6-26 20:19:56

V587:)好思路

随风 发表于 2021-6-27 15:30:41

全是30金币,也没有个批发价,隔壁都29了,{:4_86:}

白菜贝贝 发表于 2021-6-28 09:09:13

学习了,简单易懂,感谢楼主:hjyzw:

遇见未知的自己 发表于 2021-6-28 11:57:13

感谢大神,学习了

储钱罐儿 发表于 2021-6-30 18:15:27

很实用的功能,点赞!

qq8009 发表于 2021-7-1 20:14:00

喜大普奔,原来还有这个思路 ,我之前跟胡老板探讨的时候,我是想到用两个表格做对比
页: [1] 2 3
查看完整版本: 分享高级技巧,表格值改变,同步进行标识!还可以长期留存!