dgrsafe 发表于 2019-9-3 17:58:26

自己创建一个新的连接,利用JQ然后调用PDF下载

本帖最后由 dgrsafe 于 2019-9-3 18:07 编辑

通过点击自定义的button按钮而后获取葡萄城中的另存为PDF按钮

dgrsafe 发表于 2019-9-3 18:00:11

C:\Users\engineer-2\Pictures
C:\Users\engineer-2\Pictures

KearneyKang 发表于 2019-9-3 18:11:05

您好,你具体想实现什么需求,导出PDF在Save as的=方法里是有的,你现在是想自己写一个导出PDF 的方法还是什么别的需求。

dgrsafe 发表于 2019-9-3 18:17:26

KearneyKang 发表于 2019-9-3 18:11
您好,你具体想实现什么需求,导出PDF在Save as的=方法里是有的,你现在是想自己写一个导出PDF 的方法还是 ...

我的需求是,想自己定义一个按钮,能够直接可以调用当前报表对应的PDF下载方法

KearneyKang 发表于 2019-9-3 18:23:43

可以这样实现请参考下面的博客:https://www.grapecity.com.cn/blogs/html5viewer-zidingyicaidanlan

dgrsafe 发表于 2019-9-4 09:37:27

KearneyKang 发表于 2019-9-3 18:23
可以这样实现请参考下面的博客:https://www.grapecity.com.cn/blogs/html5viewer-zidingyicaidanlan

老师,他下面的这串js是不是引用了什么插件,在我的代码里面报错
var viewer = GrapeCity.ActiveReports.Viewer
###############################
Uncaught TypeError: Cannot read property 'ActiveReports' of undefined

dgrsafe 发表于 2019-9-4 10:15:46

KearneyKang 发表于 2019-9-3 18:23
可以这样实现请参考下面的博客:https://www.grapecity.com.cn/blogs/html5viewer-zidingyicaidanlan

可以重新发布一个源码吗,那个源码链接没有用啊

KearneyKang 发表于 2019-9-4 11:58:18

那个源码链接我去看看,不知道我本地有没有,你可以根据那个触发事件去写就行:<script type="text/javascript">$(function () {var paginator = $('#paginator');var viewer = GrapeCity.ActiveReports.Viewer({element: '#viewer',report: {id: "Test.rdlx"},reportService: {url: '/ActiveReports.ReportService.asmx'},//Setting the uiType to CustomuiType: 'custom',documentLoaded: function () {setPaginator();},localeUri: 'Scripts/i18n/Localeuri.txt'});//Creating the function for Printing$('#btnPrint').click(function () {viewer.print();});//Creating the function for Exporting PDF$('#btnExport').click(function () {viewer.export('Pdf', function (uri) {window.open(uri);}, false, {});});//Creating the function for Exporting Word$('#btnWord').click(function () {viewer.export('word', function (uri) {window.open(uri);}, false, {});});//Creating the function for Exporting excel$('#btnExcel').click(function () {viewer.export('Xls', function (uri) {window.open(uri);}, false, {});});//Creating the function for using Paginator control to display report pages and to navigate through themfunction setPaginator() {if (viewer.pageCount > 0) {for (var i = 1; i <= viewer.pageCount; i++) {$('<li data-bind="' + i + '"><a class="js-page" href="javascript:void(0)">' + i + '</a></li>').appendTo(paginator);}paginator.children(":first").addClass('active');paginator.children().click(function () {var self = $(this);viewer.goToPage(self.attr('data-bind'), 0, function () {paginator.children().removeClass('active');self.addClass('active');});});}}});

dgrsafe 发表于 2019-9-4 12:55:10

本帖最后由 dgrsafe 于 2019-9-4 12:57 编辑

KearneyKang 发表于 2019-9-4 11:58
那个源码链接我去看看,不知道我本地有没有,你可以根据那个触发事件去写就行:$(function () {var paginat ...
这个上面的代码我已经试过了,还是无法触发下载。
就是葡萄城的控件和生成出来的PDF文件在我的index页面,然后这个生成结果v iewer数据只能是在当前页面使用该数据。而我要在一个about页面去调用你这个v iewer的数据进行保存,你这个v iewer值是无法外传的,但是传其他的值是没有问题的。

KearneyKang 发表于 2019-9-4 13:56:51

我知道你的意思这是由于你在母版页上调用这个方法,然后找不到对应的Viewer,因为报表导出其实是导出的报表展示的Viewer区域的内容。目前实现导出的自定义的办法就是上面提供的唯一一种办法。
页: [1] 2
查看完整版本: 自己创建一个新的连接,利用JQ然后调用PDF下载