wu8829 发表于 2016-11-22 19:42:21

第一次使用HTML5View

工程师:
      我之前的所有报表都是通过FlashViewer呈现的,今天第一次尝试将FlashViewer逐步替换为HTML5View。按照教程一步一步操作,但是总是失败,提示“报表不可用”



烦请告知问题出在哪里?附件为报表文件。

Lenka.Guo 发表于 2016-11-23 10:48:17

1. 首先一个页面先去除FlashViewer,因为FlashViewer可能内部包含js文件,与HTML5Viewer的js版本不一致发生冲突。

2. 检查报表路径是否正确。

3. 确css,fonts ,把html5viewer本地示例中的css文件夹和fonts文件夹,Scripts文件夹都拷贝到您的工程中。<link href="css/theme-cosmo.css" rel="stylesheet">
    <link href="css/site.css" rel="stylesheet">
    <link href="css/GrapeCity.ActiveReports.Viewer.Html.css" rel="stylesheet">




<script src="Scripts/jquery-1.10.2.js"></script>
    <script src="Scripts/bootstrap-3.0.0.js"></script>
    <script src="Scripts/knockout-2.3.0.js"></script>
    <script src="Scripts/GrapeCity.ActiveReports.Viewer.Html.js"></script>







wu8829 发表于 2016-11-23 10:51:24

小篮子,你有没有下载我的附件测试呢?

Lenka.Guo 发表于 2016-11-23 10:56:19

wu8829 发表于 2016-11-23 10:51
小篮子,你有没有下载我的附件测试呢?

下载了,您的一个页面,是缺少了很多文件哦。

wu8829 发表于 2016-11-23 19:45:54

通过多种测试发现原因所在,但有如下几个问题需要解决:

【View.aspx 为HTML5View所在页面,WorkAttendance_Report.rdlx为报表文件。此两个文件位于同一目录下。】

1、所有的教程中,都是在HTML文件中设置HTML5View,但我的是aspx文件。如果我按照教程中的script写,例如:
    <script type="text/javascript">
    $(function () {
   var viewer = GrapeCity.ActiveReports.Viewer(
      {
            element: '#viewer',
            report: {
                id: 'WorkAttendance_Report.rdlx',
                parameters:[
                  {
                        name: 'Work_User',
                        value:'吴超'
                  },
                  {
                        name: 'Work_Month',
                        value:'10'
                  }
                ]
            },
            selectedReportIndex: 0,
            reportService: {
                url: '/ActiveReports.ReportService.asmx'
            },
            uiType: 'desktop',
            documentLoaded: function reportLoaded() {
                console.log(viewer.pageCount);
            },
            reportLoaded: function (reportInfo) {
                console.log(reportInfo.parameters);

            },
            error: function (error) {
                console.log("error");
            }
      });
    });
    </script>

报表无法呈现,会报下图错误:



期初不知道是哪里的问题,通过几次测试时报表引用路径的问题,但不知如何表述,所以目前暂时改为电脑绝对路径,如下:

$(function () {
   var viewer = GrapeCity.ActiveReports.Viewer(
      {
            element: '#viewer',
            report: {
                id: 'F:\\云同步文件\\MyProgram\\ERP_2013\\ERP_2013\\RunSheet\\WorkAttendance_Report.rdlx',
                parameters:[
                  {
                        name: 'Work_User',
                        value:'吴超'
                  },
                  {
                        name: 'Work_Month',
                        value:'10'
                  }
                ]
            },
            selectedReportIndex: 0,
            reportService: {
                url: '/ActiveReports.ReportService.asmx'
            },
            uiType: 'desktop',
            documentLoaded: function reportLoaded() {
                console.log(viewer.pageCount);
            },
            reportLoaded: function (reportInfo) {
                console.log(reportInfo.parameters);

            },
            error: function (error) {
                console.log("error");
            }
      });
    });


至此,报表可以正常预览。

2、报表虽然可以正常预览,但与报表本质的设计有区别,如图:


预览时,却是:



可以很明显看出:表标题无法完全正常显示,不知是何原因,点击打印按钮后,出现的预览又正常:




wu8829 发表于 2016-11-23 19:47:37

简而言之,需要解决两个问题:
1、aspx页面中,报表文件路径引用问题;
2、报表呈现有差异

wu8829 发表于 2016-11-23 19:51:08

到目前为止,我还没发现HTML5View比FlashView的好处,感觉没多大差别,而且还要引用一大堆css、js

Lenka.Guo 发表于 2016-11-24 11:07:21

wu8829 发表于 2016-11-23 19:47
简而言之,需要解决两个问题:
1、aspx页面中,报表文件路径引用问题;
2、报表呈现有差异

您好
1. 将报表放在与页面同意目录下, 然后把id 直接写成报表名称。或是使用~\表示项目根目录,~\报表文件夹\报表名称

2. 报表标题,可能是有其他的标签覆盖了,所以导致未显示完全,需要调整报表设计样式。

wu8829 发表于 2016-11-24 13:02:05

1、按照您的方法依然提示“报表不可用”。

2、如果是其他标签覆盖了,那怎么在FlashView里又没这样的错误?另外,报表文件在压缩包内,您可以去核实,并未存在多余标签覆盖的问题

Lenka.Guo 发表于 2016-11-24 15:34:42

本帖最后由 Lenka.Guo 于 2016-11-24 15:41 编辑

1.按照您的方法依然提示“报表不可用”。
》》》 报表不可用,说明路径还没有正确或者需要报表文件的copy Local 属性设置为True。


2. 我在这边只修改了报表数据源,使用HTML5Viewer 加载,展示正常:
》》》不同的报表浏览器是为适应和解决不同平台和技术提供的,因此渲染报表也是采用对应技术,如HTML5Viewer使用的是HTML5技术和Bootsrap等,而FlashViewer 则采用的是浏览器的Flash技术来展示报表等,所以每种浏览器因为采用的技术不同,渲染报表的效果也是有略微差异的。而且每一种报表浏览器没有绝对的好坏哦,只是看选择哪一种更能满足您的技术和实现需求哦。






页: [1] 2
查看完整版本: 第一次使用HTML5View