AR16 web设计器如何使用JS在打开的时候自动加载地址栏的传递的报表
AR16 web设计器如何使用JS在打开的时候自动加载地址栏的传递的报表。之前AR15可以通过reportInfo传递报表名称加载,AR16好像变了,没有reportInfo对象。
var designerOptions = GrapeCity.ActiveReports.WebDesigner.createDesignerOptions();
designerOptions.server.url = 'api';
designerOptions.reportInfo ='报表名称';
AR16的index.cshtml文件
<script>
var viewer = null;
var designer = GrapeCity.ActiveReports.Designer.create('#ar-web-designer', {
rpx: { enabled: true },
appBar: { openButton: { visible: true } },
documents: { fileView: { visible: @(Context.Request.Query["fileView"].Equals("true").ToString().ToLower()) } },
data: { dataSets: { canModify: true }, dataSources: { canModify: true } },
preview: {
openViewer: (options) => {
console.log(options);
if (viewer) {
viewer.openReport(options.documentInfo.id);
return;
}
viewer = GrapeCity.ActiveReports.JSViewer.create({
element: '#' + options.element,
renderFormat: 'svg',
reportService: {
url: 'api/reporting',
},
reportID: options.documentInfo.id,
settings: {
zoomType: 'FitPage',
},
});
}
}
});
</script>
您的需求应该是设计器打开的时候,默认打开一个报表吧,我上面说的那个,应该是在16的时候也可以用的。
AR16后,确实创建报表主要推荐使用create创建,这样子自己做一个option对象,就可以创建,比之前简单,所以新的写法确实是create的。
新写法可以参考这个帖子
https://gcdn.grapecity.com.cn/showtopic-164040-1-1.html
但是老版本的写法我们也是延续的,那种也是可以用的。下面是我的一个demo。您可以参考一下:
【新提醒】Web端在线设计器项目实际分享 - ActiveReports专区 - 专题教程 - 葡萄城开发者社区https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=144262&extra=page%3D1 您好,这块有一点修改,现在打开报表是多了一层结构传递ID即可:
designerOptions.reportInfo.id = "AcmeStore.rdlx"
也就是这样。其他的基本没有变化,也可以沿用
Felix.Li 发表于 2024-1-29 13:39
您好,这块有一点修改,现在打开报表是多了一层结构传递ID即可:
designerOptions.reportInfo.id = "Acme ...
AR15是这样designerOptions.reportInfo = '@reportId' ? { id: '@reportId' } : null;
AR16这种方式不太行好像没这个对象
目前的解决方法是在报表创建完后再调用打开报表的api方法
.then(s => {
if ('@reportId') {
s.documents.openById(decodeURIComponent('@reportId'), { platform: 'rdlx', type: 'report' }).then(() => {
console.log('An existing report "decodeURIComponent(@reportId)" is opened.');
});
}
});
想问问AR16有没有像AR15一样可以设置一个属性就能打开报表的方法
您可以参考我的这个回复。
不过理论是您console的时候,其实这个就应该能输出出来的。
如果没有,我怀疑是您没有升级JS。
在更新时,除了Nuget,前端的JS和CSS都要更新的。都可以在NPM上下载。
"@grapecity/ar-viewer": "16.4.1",
"@grapecity/ar-designer": "16.4.1",
您说的方法适合AR15,AR16不行,我是在GitHub - activereports/WebSamples16: Samples for ActiveReports Web Components上下的项目,package.json已经是您说的版本,
您参考一下AR16的这里的有一个documentInfo 的id,您试一下这个:
https://developer.mescius.com/activereportsnet/docs/versions/v16/online/web-designer-plugins-api.html?highlight=documentinfo%2C
使用方式,可以参考一下这里的designer里面的使用:
https://github.com/activereports/WebSamples16/blob/main/WebDesignerSamples/WebDesigner_MVC/Views/Design/Index.cshtml
您好,您的问题解决了么?
页:
[1]
2