找回密码
 立即注册

QQ登录

只需一步,快速开始

sunqinhui
初级会员   /  发表于:2024-10-24 14:02:31
21#
Joestar.Xu 发表于 2024-10-14 17:32
您好,请在17.1.7版本中执行以下代码来实现这个需求:

你好 目前版本是17.1.1 是否能使用上述方法
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-10-24 14:18:37
22#
您好,我这边测试了一下,17.1.1中可以使用,但仍然建议您在17.1.7中使用。
回复 使用道具 举报
sunqinhui
初级会员   /  发表于:2024-10-29 14:06:29
23#
Joestar.Xu 发表于 2024-10-14 17:32
您好,请在17.1.7版本中执行以下代码来实现这个需求:

image.png277107848.png 这个“Table1”是如何获取的 我的reportSheet中是有多张表的。

还有就是 以上代码是有效果的 但是有一个问题 我的报表数据源字段 是将英文一个一个设置成中文 通过运行以上代码 就又全部变成英文了 这个不是我想要的 我只想刷新掉后端没有返回的字段即可 其他不变
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-10-29 17:35:37
24#
1、直接遍历对象即可:

image.png159551390.png

2、需要和您确认一下,您说的将英文一个一个设置成中文,是说修改了列的标题吗?

image.png187165526.png
回复 使用道具 举报
sunqinhui
初级会员   /  发表于:2024-10-30 11:50:46
25#
Joestar.Xu 发表于 2024-10-29 17:35
1、直接遍历对象即可:

image.png796821594.png

修改了这两处地方,还是说修改错了地方?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-10-30 17:41:59
26#
您好,这一部分信息存储在columns中。

由于之前的代码需要将columns中的信息清除,所以您需要将这部分信息取出然后等fetch完毕后再重新设置进去。
回复 使用道具 举报
sunqinhui
初级会员   /  发表于:2024-10-31 16:38:10
27#
Joestar.Xu 发表于 2024-10-30 17:41
您好,这一部分信息存储在columns中。

由于之前的代码需要将columns中的信息清除,所以您需要将这部分信 ...

那该怎么做呢, 请提供完整的解决办法吧,能否一次性告知
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-11-1 13:57:10
28#
您好,如果您需要具体的代码,我们这边需要时间整理一下,后续有进展我会在本帖中回复您。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-11-7 11:18:17
29#
您好,这边调研了一下,您可以参考以下代码来实现:

  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.       delete option.schema.columns[key];
  19.       delete spread.dataManager().tables["表1"].columns[key];
  20.       option.schema.columns[map[key]] = schemaColumns[map[key]];
  21.       spread.dataManager().tables["表1"].columns[map[key]] =
  22.         columns[map[key]];
  23.     }
  24.     designer.refresh();
  25.   });
复制代码


具体的测试方法如下:

1、读取数据源
2、修改某列的映射列名
3、修改数据源,删除某一列
4、执行上述代码
5、删除列的字段消失,修改了映射列名的列依然存在且映射列名仍生效
回复 使用道具 举报
sunqinhui
初级会员   /  发表于:4 天前
30#
本帖最后由 sunqinhui 于 2024-11-18 10:09 编辑
Joestar.Xu 发表于 2024-11-7 11:18
您好,这边调研了一下,您可以参考以下代码来实现:

你好,找一个数据源做了测试 没有用
代码如下:
image.png187135314.png


还存在着没有的字段
image.png804676818.png
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部