找回密码
 立即注册

QQ登录

只需一步,快速开始

dev_wjx

初级会员

44

主题

118

帖子

426

积分

初级会员

积分
426
dev_wjx
初级会员   /  发表于:2024-4-26 18:02  /   查看:3245  /  回复:4
10金币
本帖最后由 Richard.Huang 于 2024-5-16 15:21 编辑

产品:SpreadJS
版本:V15
调研编号:SJS-24028  

  1. spread.bind(GC.Spread.Sheets.Events.ActiveSheetChanged, function (e, args) {
  2.   let sheet = spread.getSheetFromName(args.newSheet.name() + "");
  3.   if (!suspendMap[sheet.name()]) {
  4.     sheet.suspendCalcService();
  5.     suspendMap[sheet.name()] = true;
  6.     console.log("计算挂起" + sheet.name());
  7.   }
  8. });
  9. spread.bind(GC.Spread.Sheets.Events.CellChanged, function (e, info) {
  10.   let sheet = spread.getActiveSheet();
  11.   if (suspendMap[sheet.name()]) {
  12.     sheet.resumeCalcService();
  13.     sheet.resumeCalcService(true);

  14.     suspendMap[sheet.name()] = false;
  15.     console.log("计算恢复" + sheet.name());
  16.   }
  17. });
复制代码

这个方案也不行

sunlogin_20240426174754.zip

771.85 KB, 下载次数: 1776

4 个回复

倒序浏览
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-28 15:57:57
沙发
本帖最后由 Richard.Huang 于 2024-4-29 11:58 编辑

您好,您在帖子中所描述的现象我在本地进行了重现,至于该现象的原因我们还需要进行进一步的调研定位。后续有相关调研进展我会第一时间在本贴中进行跟进。调研编号:SJS-24028
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-5-8 16:53:21
板凳
最新调研进展:经过调研,这主要是我们的设计所致,首先,一旦将工作表添加到工作簿中,所有工作表、工作簿和所有其他计算模块将共享一个计算服务。这意味着,主贴中的代码中,您无法按工作表级别来暂停计算服务,一旦调用sheet1.suspendCalcService(),则意味着全局(工作簿实例级别)计算服务将被暂停。您恢复的suspendCalcService的次数应该等于resumeCalcService服务的次数,然后计算服务才能生效。

因此,能否告知我们,您具体的需求是什么,为什么需要在切换工作簿时去挂起计算服务呢
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-5-14 17:30:58
地板
您好,请问楼主通过上面我的描述,您的的问题是否清晰,如果仍然存在疑问,欢迎继续跟帖询问
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-5-22 14:28:08
5#
您好,由于您长时间未回帖,本贴就先作结帖处理了,后续如果有其他新的问题,欢迎继续发新帖询问
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部