找回密码
 立即注册

QQ登录

只需一步,快速开始

afr2022

初级会员

23

主题

111

帖子

412

积分

初级会员

积分
412
afr2022
初级会员   /  发表于:2022-6-10 14:51  /   查看:5236  /  回复:25
10金币
本帖最后由 afr2022 于 2022-6-10 14:53 编辑

我想在透视表中点击某个单元格之后,获取当前的位置(rowindex,columnindex)并记录下来,方便焦点丢失之后重新回到这个位置。

25 个回复

正序浏览
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2022-6-16 11:27:26
26#
实在不好意思哈
透视表是活字格里的组件,但是这个控制它数据源刷新的需求确实目前还不支持,如果硬要使用代码的话,我们也不是很懂啊,您可以在我们的项目需求或者产品需求板块发帖求助,或者给产品提需求
回复 使用道具 举报
afr2022
初级会员   /  发表于:2022-6-16 10:23:56
25#
Lay.Li 发表于 2022-6-16 10:18
大佬,我们这个是活字格专区哈,您要是问活字格的一些问题,这边还能给您解答,代码我们是在是不会啊,
...

这个就是活字格里面的问题呀  我再去别的问问吧
回复 使用道具 举报
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2022-6-16 10:18:56
24#
大佬,我们这个是活字格专区哈,您要是问活字格的一些问题,这边还能给您解答,代码我们是在是不会啊
可以看看有没有其他擅长代码的大佬能帮您解决这个问题
回复 使用道具 举报
afr2022
初级会员   /  发表于:2022-6-16 08:53:59
23#
Lay.Li 发表于 2022-6-15 17:36
大佬,代码这方面我是真的不擅长啊
感觉有可能是页面加载时透视表还没有加载完毕,这个对象就没有取到 ...

哈哈,这个我也试过了 一样找不到setActiveSheetIndex()这个函数,那有没有能交流的开发兄弟呢,我这些问题活字格直接做不到就只能靠自己的代码开发了
回复 使用道具 举报
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2022-6-15 17:36:38
22#
大佬,代码这方面我是真的不擅长啊
感觉有可能是页面加载时透视表还没有加载完毕,这个对象就没有取到,所以就没有找到这个方法。您看能不能使用配合页面加载ready方法来使用一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
afr2022
初级会员   /  发表于:2022-6-15 15:50:49
21#
Lay.Li 发表于 2022-6-14 17:36
您好,这个我就不清楚了
我问问开发同事哈,有结果了及时给您回复

,请问为什么我在页面加载命令中执行这段js会报第一个图中的错误呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2022-6-14 17:36:48
20#
您好,这个我就不清楚了
我问问开发同事哈,有结果了及时给您回复
回复 使用道具 举报
afr2022
初级会员   /  发表于:2022-6-14 16:28:02
19#
Lay.Li 发表于 2022-6-14 15:16
您好,您可以在执行时打开f12看看这个代码有没有执行,或者是有没有什么报错之类的。如果您上边测试这个函 ...

代码执行的时候没有抱错

  1. var page  =  Forguncy.Page
  2. var pivot = page.getCell("pivot")
  3. var spread =pivot._pageCell.cellType._spread;

  4. /*spread.getActiveSheet().setActiveCell(
  5. window.localStorage.getItem("row")
  6. ,win
  7. dow.localStorage.getItem("col"))*/

  8. /*
  9. spread.setActiveSheetIndex(0);
  10. if(spread.getActiveSheetIndex()===0&&window.localStorage.getItem("row")!==9){
  11. setTimeout(()=>{
  12. spread.getActiveSheet().scroll(window.localStorage.getItem("row").slice(0,window.localStorage.getItem("row").length-1)*20,0)
  13. }, 100)
  14. }*/


  15. while(spread.getActiveSheet() ==null||spread.getActiveSheet() == undefined||spread.getActiveSheet() == {}) {
  16. alert(spread.getSheetCount())
  17. setTimeout(()=>{},100)
  18. }
  19. spread.setActiveSheetIndex(0);
  20. spread.getActiveSheet().scroll(window.localStorage.getItem("row").slice(0,window.localStorage.getItem("row").length-1)*20,0)
复制代码


上边的代码中,我注释的部分可以实现记录之前的焦点并回到滚动条大概的位置,但是考虑到机器本身的加载速度,我不知道透视表是否能在一秒钟内刷新完毕,所以就用了下面的方法,用while来判断透视表是否加载完毕,但是在条件上遇到了一点问题,我不知道怎么样才能够获取透视表的状态来判断它是否加载完毕,请问有相关的API可以进行参考的吗?
回复 使用道具 举报
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2022-6-14 15:16:54
18#
您好,您可以在执行时打开f12看看这个代码有没有执行,或者是有没有什么报错之类的。如果您上边测试这个函数是可以使用的话,那应该就是参数或者其他的什么问题了,不过代码这方面我们也不是很擅长
可以看看有没有其他大佬有什么好的见解
回复 使用道具 举报
afr2022
初级会员   /  发表于:2022-6-14 12:12:46
17#
Lay.Li 发表于 2022-6-14 11:15
您好,如果这个文档中没有那就是没有了,不过既然您已经获取到了透视表所选单元格的横纵坐标,那应该可以通 ...

理论上可行,但是我实际操作之后 还是回到了(0,0)位置 没有执行
  1. var row = window.localStorage.getItem("row")
  2. if (row != null) {
  3.     spread.getActiveSheet().scroll(row.slice(0,row.length-1)*20,0)
  4. }
复制代码

这段代码
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部