请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

gnip

中级会员

111

主题

282

帖子

871

积分

中级会员

积分
871

[处理中] 报表无法设置tag

gnip
中级会员   /  发表于:2024-9-4 19:02  /   查看:92  /  回复:5
本帖最后由 gnip 于 2024-9-4 19:16 编辑

如图所示,我给每个模板单元格设置tag,因为tag相当于单元格的一个配置字段,可以给用户存很多除开文本以外的数据类型,这样的话大大提高了自定义配置的灵活性, image.png47251891.png ,但是实际预览的时候,只有第一行才有tag,数据扩展出来的其他行单元格就没有,目前想要在拖动字段进去的时候,通过 image.png484667052.png ,这个方法添加一些我自己业务上的配置项,但是实际上却不行 image.png887428588.png image.png142149046.png image.png311429137.png ,我想问这咋获取到tag呢,因为tag很重要,很多单元格的信息都存这里的,在预览的时候希望获取到这个tag,然后根据tag信息做自己的业务处理,tag拿不到,但是getTemplateCell能拿到模板单元格的信息,或则tag实在取不到,还有没有替换方案呢,希望给单元格设置自己额外想要加的属性,这些属性是除开模板单元格字段属性之外的。
image.png850811157.png
image.png127163695.png
image.png864950561.png

5 个回复

倒序浏览
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:5 天前
沙发
您好,问题收到,调研下回复您。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:5 天前
板凳
您好,您是在templateSheet中设置了tag  ,然后在预览模式下,点击任意一个单元格 ,获取此单元格在templateSheet的模板单元格中保存的tag吗?

如果是此需求:
您可以按照下面的代码进行设置,先设置setTag
image.png784948119.png
然后获取tag
  1. document.querySelector(".btn1").addEventListener("click", () => {
  2.             const reportSheet = spread.getActiveSheetTab()
  3.             const templateSheet = reportSheet.getTemplate()
  4.             var activeCellRow = reportSheet.getSheet().getActiveRowIndex();
  5.             var activeCellColumn = reportSheet.getSheet().getActiveColumnIndex();


  6.             const designTemplateCell1 = reportSheet.getTemplateCell(activeCellRow, activeCellColumn)

  7.             let usedRange = templateSheet.getUsedRange(GC.Spread.Sheets.UsedRangeType.all)
  8.             const {row,col,rowCount,colCount} = usedRange
  9.             for(let r = row;r<row+rowCount;r++){
  10.                 for(let c = col;c<col+colCount;c++){
  11.                     let templateCell = templateSheet.getTemplateCell(r,c);
  12.                     if(templateCell && templateCell.binding==designTemplateCell1.binding){
  13.                             console.log(templateSheet.getTag(r,c))
  14.                     }
  15.                 }
  16.             }

  17.         })
复制代码
结果如下:
image.png628961486.png
image.png558475951.png

附件如下: tag.html (5.93 KB, 下载次数: 2)
回复 使用道具 举报
gnip
中级会员   /  发表于:5 天前
地板
本帖最后由 gnip 于 2024-9-5 15:30 编辑
Ellia.Duan 发表于 2024-9-5 12:36
您好,您是在templateSheet中设置了tag  ,然后在预览模式下,点击任意一个单元格 ,获取此单元格在templat ...

您好,在报表预览绑定编辑事件,然后获取tag,只有第一行能获取到,复现文件已上传 image.png680080871.png ,然后吧原来代码改成这样也是获取不到的 image.png168252562.png ,我感觉这样其实也是没问题的呀,我估计报表预览底层没有做tag跟随数据进行扩展

tag (1).zip

2.36 KB, 下载次数: 1

回复 使用道具 举报
gnip
中级会员   /  发表于:5 天前
5#
gnip 发表于 2024-9-5 15:08
您好,在报表预览绑定编辑事件,然后获取tag,只有第一行能获取到,复现文件已上传,然后吧原来代码改成 ...

注释那里就算获取到了,会有个bug,如果后面单元格跟前面绑定的是一个字段,这里就会能匹配到前面的那个单元格而不是真正后面那个单元格的tag,同理下,多个地方拖的一个字段都会出现这个问题
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:5 天前
6#
本帖最后由 Ellia.Duan 于 2024-9-5 16:58 编辑

您好,如您提到的,tag没有随数据进行扩展。
目前的方案如楼上提到的,遍历模板单元格,判断与预览中活动单元格的binding以及alias是否一致,如果一致,则返回模板单元格的tag。


同时,您的需求收到,移到需求版块。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部