找回密码
 立即注册

QQ登录

只需一步,快速开始

Universail
金牌服务用户   /  发表于:2024-4-9 10:57  /   查看:1875  /  回复:7
本帖最后由 Universail 于 2024-4-9 10:58 编辑


上次开会我问的怎么把报表设计的预览结果发布出去,得到的答案是:保存为json,然后再Spreadjs中导入json即可。

上述我试了下,导入json后是报表的设计结果,不是预览结果。

这是报表设计:
image.png993957519.png

这是预览:
image.png657270507.png

Spreadjs中导入后,是这样:

image.png923079223.png

7 个回复

倒序浏览
阿花
注册会员   /  发表于:2024-4-9 11:34:01
沙发
你可以在预览结果模式下导出json,再导入就是预览结果。
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-9 11:36:18
板凳
您好,因为您导出ssjson之前没有将报表切换成“预览”模式,重新导入后,您所看到的和您关闭时看到的肯定是一致的,您要保证用户看到的为预览模式,您可以在导出前就以预览模式导出,或者在导入后用代码切换成预览模式,您可以参考如下学习指南:https://demo.grapecity.com.cn/sp ... /render-mode/purejs
image.png370192260.png
回复 使用道具 举报
Universail
金牌服务用户   /  发表于:2024-4-9 11:50:08
地板
本帖最后由 Universail 于 2024-4-9 11:51 编辑
Richard.Huang 发表于 2024-4-9 11:36
您好,因为您导出ssjson之前没有将报表切换成“预览”模式,重新导入后,您所看到的和您关闭时看到的肯定是 ...



切换到预览模式,确实得到的预期效果。但是这样存在两个问题:

1.无法要求企业用户每次保存的时候,手工切换到预览模式,所以,需要能自动保存为预览模式

2.如果设计了多个报表(多个页签下),如何让所有报表都切换到预览模式?


PS: 关于[size=1em]reportSheet.renderMode('Preview');,reportSheet对象如何获得?


回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-9 13:39:45
5#
Universail 发表于 2024-4-9 11:50
切换到预览模式,确实得到的预期效果。但是这样存在两个问题:

1.无法要求企业用户每次保存的时候 ...

您可以调用这个方法和获取激活的工作表一样获取到报表页:var reportsheet = spread.getActiveSheetTab()
API:https://demo.grapecity.com.cn/sp ... k#getactivesheettab
image.png418652953.png
如果是多个,就调用getSheetTab和getSheetTabCount通过循环设置预览模式即可

回复 使用道具 举报
Universail
金牌服务用户   /  发表于:2024-4-9 14:04:43
6#
Richard.Huang 发表于 2024-4-9 13:39
您可以调用这个方法和获取激活的工作表一样获取到报表页:var reportsheet = spread.getActiveSheetTab() ...

  1.   const workBook = this.designer?.getWorkbook() as GC.Spread.Sheets.Workbook;
  2.         const tabCount = workBook.getSheetTabCount()
  3.         for (let i = 0; i < tabCount; i++) {
  4.           workBook.getSheetTab(i).renderMode('Preview')
  5.         }
  6.         singleInst.master.spread_state = workBook.toJSON();
  7.         singleInst.setEditing();
  8.       }
复制代码
尝试了一下,有报错:

image.png85319518.png
回复 使用道具 举报
Universail
金牌服务用户   /  发表于:2024-4-9 14:08:52
7#
Universail 发表于 2024-4-9 14:04
尝试了一下,有报错:
  1. 找到原因了,存在非ReportSheet的tab,改成下面这种方式就好了
  2. workBook.getSheetTab(i).renderMode?.('Preview')
复制代码

评分

参与人数 1金币 +200 收起 理由
Richard.Huang + 200 很给力!

查看全部评分

回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-9 15:38:34
8#


好的,本帖子的问题解决,这里就先结帖了。后续如果您有新的问题,也欢迎创建新的求助帖。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部