找回密码
 立即注册

QQ登录

只需一步,快速开始

Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:4 天前
31#
本帖最后由 Joestar.Xu 于 2024-11-18 14:05 编辑

您好,未能在本地复现,以下是我的测试代码和演示。

image.png184416197.png

动画 (0).gif267802428.png
回复 使用道具 举报
sunqinhui
初级会员   /  发表于:昨天 09:17
32#
Joestar.Xu 发表于 2024-11-18 14:02
您好,未能在本地复现,以下是我的测试代码和演示。

你好 试过 确实不行 代码上面已截图 是在加载报表的时候直接做的刷新 而且我是有将字段改成中文的 您提供的demo是直接英文字段 是否与这个有关
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:43 秒前
33#
了解了,请参考这段新代码来实现:

  1. let schemaColumns =
  2.   spread.dataManager().tables["表1"].options.schema.columns;
  3. let columns = spread.dataManager().tables["表1"].columns;

  4. let map = {};
  5. for (const key in schemaColumns) {
  6.   if (schemaColumns[key].dataName) {
  7.     map[schemaColumns[key].dataName] = key;
  8.   }
  9. }

  10. spread.dataManager().tables["表1"].columns = null;
  11. spread.dataManager().tables["表1"].options.schema.columns = null;
  12. spread
  13.   .dataManager()
  14.   .tables["表1"].fetch(true)
  15.   .then(() => {
  16.     let option = spread.dataManager().tables["表1"].options;
  17.     for (const key in map) {
  18.       let ifSet = false;
  19.       if (spread.dataManager().tables["表1"].columns[key]) {
  20.         ifSet = true;
  21.       }
  22.       delete option.schema.columns[key];
  23.       delete spread.dataManager().tables["表1"].columns[key];
  24.       if (ifSet) {
  25.         option.schema.columns[map[key]] = schemaColumns[map[key]];
  26.         spread.dataManager().tables["表1"].columns[map[key]] =
  27.           columns[map[key]];
  28.       }
  29.     }
  30.     designer.refresh();
  31.   });
复制代码
回复 使用道具 举报
1234
您需要登录后才可以回帖 登录 | 立即注册
返回顶部