找回密码
 立即注册

QQ登录

只需一步,快速开始

前端小菜鸟

初级会员

25

主题

90

帖子

273

积分

初级会员

积分
273
前端小菜鸟
初级会员   /  发表于:2021-8-18 13:47  /   查看:2939  /  回复:9
1金币
我有一张表格,其中相邻两列含有函数公式,函数的校验条件基本一致,只是针对的判断数据不一样。
目前现象:第二列的函数公式会影响我的数据绑定,

1、sheet.setFormula(i, 4, '=IF(K' + (i + 1) + '=TRUE,IF(I' + (i + 1) + '<>"",I' + (i + 1) + ',G' + (i + 1) + '*' + this.periodDays + '),IF(K' + (i + 1) + '=1,IF(I' + (i + 1) + '<>"",I' + (i + 1) + ',G' + (i + 1) + '*' + this.periodDays + '),"")');
2、sheet.setFormula(i, 5, '=IF(K' + (i + 1) + '=TRUE,IF(J' + (i + 1) + '<>"",J' + (i + 1) + ',H' + (i + 1) + '*' + this.periodDays + '),IF(K' + (i + 1) + '=1,IF(J' + (i + 1) + '<>"",J' + (i + 1) + ',H' + (i + 1) + '*' + this.periodDays + '),"")');

首次执行sheet.setDataSource(res.data.list);没问题
再次执行sheet.setDataSource(res.data.list);时,会将res.data.list 中的code字段部分数据置空,导致前端页面显示部分code没有值
再执行都,会全部置空。

(只有第一个函数公式时没问题,一旦加入第二个函数公式就出现问题)


最佳答案

查看完整内容

自己解决了。 不在只读上费劲了,使用EditStarting双击事件来模仿只读,阻止双击事件就可以了

9 个回复

倒序浏览
最佳答案
最佳答案
前端小菜鸟
初级会员   /  发表于:2021-8-18 13:47:35
来自 9#
自己解决了。
不在只读上费劲了,使用EditStarting双击事件来模仿只读,阻止双击事件就可以了

评分

参与人数 1金币 +500 收起 理由
Lynn.Dou + 500 感谢分享解决方案

查看全部评分

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-18 14:43:46
2#
您好,
从您描述的内容中无法直接复现此问题,
为了更快的解决此问题,请直接提供能复现此问题的demo,这边在代码基础上调研下原因。
附件为demo模版,您可以在模版上添加自己的代码。

模板.zip

2.75 MB, 下载次数: 143

回复 使用道具 举报
前端小菜鸟
初级会员   /  发表于:2021-8-18 16:14:20
3#
问题被项目经理解决,
sheet.setDataSource(res.data.list,true);

增加第二个参数 true


呵呵了
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-18 16:59:23
4#
问题解决了就好,那本帖就先结贴了,有问题欢迎另开新帖。
setDataSource API可以参考下:
https://demo.grapecity.com.cn/sp ... .html#setDataSource
回复 使用道具 举报
前端小菜鸟
初级会员   /  发表于:2021-8-20 11:13:10
5#
Lynn.Dou 发表于 2021-8-18 16:59
问题解决了就好,那本帖就先结贴了,有问题欢迎另开新帖。
setDataSource API可以参考下:
https ...

您好,我为setDataSource增加参数后,导致我表格只读设置失效应该怎么办
回复 使用道具 举报
前端小菜鸟
初级会员   /  发表于:2021-8-20 11:15:11
6#
Lynn.Dou 发表于 2021-8-18 16:59
问题解决了就好,那本帖就先结贴了,有问题欢迎另开新帖。
setDataSource API可以参考下:
https ...

sheet.setDataSource(res.data.list,true);

sheet.setStyle(-1, -1, styleCanEdit, GC.Spread.Sheets.SheetArea.viewport); sheet.setStyle(-1, 0, styleNoCanEdit, GC.Spread.Sheets.SheetArea.viewport);
sheet.setStyle(-1, 2, styleNoCanEdit, GC.Spread.Sheets.SheetArea.viewport);

设置的字段全都可以编辑了
这个重置参数到底怎么用呢
这些代码都写在init方法中的
回复 使用道具 举报
前端小菜鸟
初级会员   /  发表于:2021-8-20 11:29:37
7#
Lynn.Dou 发表于 2021-8-18 16:59
问题解决了就好,那本帖就先结贴了,有问题欢迎另开新帖。
setDataSource API可以参考下:
https ...

”为true时,已重置表单;若为false则为重置。“  这句话该怎么理解
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-20 14:01:39
8#
setDataSource第二个参数的具体作用需进一步调研具体,待有结果在本贴回复您。
另,您描述中的问题这边未能复现,
为了更快的解决此问题,请提供可直接复现您问题的demo(包括前面提到的公式问题),
这边在代码基础上调研下原因。
附件为demo模板,您可以demo基础上添加自己的代码。

模板.zip

2.75 MB, 下载次数: 160

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-23 12:15:50
10#
问题解决了就好,感谢您分享解决方案,给您送上金币奖励。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部