找回密码
 立即注册

QQ登录

只需一步,快速开始

zhanglibing
注册会员   /  发表于:2023-9-26 08:51:21
11#
我调用了自定义的refresh后,就会出现打开的报表和选中的报表不一致问题,是要如何让实现才能正常呢
回复 使用道具 举报
zhanglibing
注册会员   /  发表于:2023-9-26 09:10:21
12#
打开是原生的,不是自定义的,只是把  "打开报表" 字样改成了 "打开"
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2023-9-26 12:26:14
13#
那大概就知道什么原因了。我看您的代码是每次重新刷新整个页面,所有的标签都是重置的,但是我们内部代码不是通过class去判断的谁选中的。而是维护了一个被选中的表示,然后打开报表是将这个被标识的打开。
咱们会有问题是因为我们标识的还是原来的报表,即使页面css改了,但是标识没有改,所以打开的还是以前的。
如果是这个原因的话,可能打开也要重新写了,但是也有办法。您将原来的打开直接换掉,换成自己的,然后新的绑定事件执行以下操作:
1.关闭文件页面
2.打开新的报表

关闭文件页面比较简单,只要执行返回按钮就可以:
  1. document.getElementsByClassName("gc-btn gc-btn--block gc-btn--with-icon gc-btn--accent gc-size-sm")[0].click()
复制代码


2.打开新的报表也还可以,咱们可以通过className获取到谁被选中了
也就是class中包含:ard-file-view-card--selected的,然后获取它的child,拿到对应的报表id。
然后通过以下代码去打开新的报表:
  1. var api = GrapeCity.ActiveReports.Designer.apiOf('ar-web-designer');
  2. api.documents.openById('1.rdlx', { platform: 'rdlx', type: 'report', subType: 'cpl'}).then(() => { console.log('An existing report "MyReport.rdlx" is opened.'); });
复制代码
上面通过openById,去用id打开一个新的报表,后缀一般都是rdlx就可以。
回复 使用道具 举报
zhanglibing
注册会员   /  发表于:2023-9-27 17:05:01
14#
我们就需要rpx ,rdlx我们暂时不需要,api.documents.openById这个api貌似不会有打开报表的效果
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2023-9-27 18:20:23
15#
如果是RPX,就是把上面的那个第一个对象改成如下:

  1.   type: {
  2.       platform: "rpx",  //创建区域报表
  3.       type: "report"
  4.     }
复制代码
就可以,然后正常传***.rpx 即可。
但是我们现在不推荐使用区域报表了,现在开发也已经不在更新了。如果可以,后续的推荐开始更新rdlx。谢谢
回复 使用道具 举报
zhanglibing
注册会员   /  发表于:2023-9-28 14:05:57
16#
openById只是会执行,

本帖子中包含更多资源

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

x
回复 使用道具 举报
zhanglibing
注册会员   /  发表于:2023-9-28 14:07:30
17#
如何我选中执行openById 后打开打开这个界面呢

本帖子中包含更多资源

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

x
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2023-9-28 15:03:12
18#
您可以参考一下我上面说的那个代码,去手动调用返回按钮:


本帖子中包含更多资源

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

x
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部