力软快速开发平台7.0.6,力软敏捷开发平台7.0.6葡萄城报表升级到ar14版本

忙了两天终于搞定升级到ar14版本,坑无数,终于算全部解决,在这里做一个小结。

  1.第一步去掉框架中原本集成的ar13部分(吐槽一下应该是对12的集成)。

  首先去掉licenses.licx文件。

  

      然后删掉这些引用

      

   删掉ActiveReports.ReportService.asmx

  

    删掉

     

   去掉web.config文件里的关于ar13的配置,想不懂为什么ar13集成为什么会这么麻烦。

  

 

       

          

          搞定,截图真的是个雷人的活

   2.第二部是下载事例工程,地址https://github.com/activereports/WebSamples14

         3.通过nuget引入需要的库,葡萄城终于支持这个了,希望力软也能把基础库放到nuget上

   Microsoft.Owin.Host.SystemWeb,这个一定要选4.0.0版本,一定要,高版本会报错,坑!

   Gcef.Data.DataEngine

   GrapeCity.ActiveReports.Aspnet.Viewer

         4.接下来从下来的实例工程中复制几个我们需要的文件找到这个工程,打开

首先是这个文件,放在我们原来删除的地方就好了。

这两个文件,复制到力软框架下

需要依赖的东西都准备好了。

5.添加启动类

 代码为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
using  GrapeCity.ActiveReports;
using  GrapeCity.ActiveReports.Aspnet.Viewer;
using  GrapeCity.ActiveReports.PageReportModel;
using  GrapeCity.ActiveReports.Rendering;
using  Learun.Application.TwoDevelopment.LR_CodeDemo;
using  Microsoft.Owin;
using  Owin;
using  System.Collections.Generic;
using  System.Data;
using  System.IO;
using  System.Reflection;
 
[assembly: OwinStartup( typeof (Learun.Application.Web.Startup1))]
 
namespace  Learun.Application.Web
{
     public  class  Startup1
     {
         public  static  string  EmbeddedReportsPrefix =  "Learun.Application.Web" ;
 
 
         public  void  Configuration(IAppBuilder app)
         {
             app.UseReporting(settings =>
             {
 
                 settings.UseCompression =  true ;
                 settings.UseCustomStore(GetReport); //使用UseCustomStore来自定义一些需要的值 
                                                    //settings.UseFileStore(new DirectoryInfo(String.Format(@"{0}.\Reports\", HttpRuntime.AppDomainAppPath)));              
                 settings.LocateDataSource = GetData;
 
             });
 
         }
 
 
 
         public  object  GetReport( string  P) //获取报表名称和报表参数,进行一个对应的报表名称和参数的分割
         {
             var  plist = P.Split( '|' );
             string  reportName = plist[0]; //报表名称;
             PageReport rep =  new  PageReport();
 
 
             string  path = Assembly.GetExecutingAssembly().CodeBase.Replace( "bin/Learun.Application.Web.DLL" "Reports/" ).Replace( "file:///" "" );
             //string path = System.Web.Hosting.HostingEnvironment.MapPath("~/");
             rep.Load( new  FileInfo(path + reportName));
 
             int  num = 0;
             foreach  ( var  item  in  plist)
             {
                 if  (num > 0)
                 {
                     AddReportPara( "param"  + num, item, rep);
                 }
 
                 num++;
             }
             return  rep.Report;
         }
         /// <summary>
         /// 报表参数添加
         /// </summary>
         /// <param name="name">参数名</param>
         /// <param name="value">参数值</param>
         /// <param name="rp">报表体</param>
         private  void  AddReportPara( string  name,  string  value, PageReport rep)
         {
             //如果没有值,报表不会自动运行,所以不能加
             if  ( string .IsNullOrEmpty(value.Trim()))
             {
                 return ;
             }
 
             Dictionary< string string > dicParas =  new  Dictionary< string string >();
             foreach  ( var  item  in  rep.Report.ReportParameters)
             {
                 if  (!dicParas.ContainsKey(item.Name))
                 {
                     dicParas.Add(item.Name, item.DefaultValue.Values[0].Expression);
                 }
             }
 
             if  (!dicParas.ContainsKey(name))
             {
                 ReportParameter para =  new  ReportParameter();
                 para.Name = name;
                 para.Prompt = name;
                 para.UsedInQuery = ReportParameterUsedInQuery.True;
                 para.DataType = ReportParameterDataType.String;
                 para.DefaultValue.Values.Add(value.Trim());
                 rep.Report.ReportParameters.Add(para);
             }
         }
 
 
         /// <summary>
         /// 自定义数据源
         /// </summary>
         /// <param name="args">报表数据参数</param>
         /// <returns></returns>
         public  object  GetData(LocateDataSourceArgs args)
         {
             Dictionary< string string > dcFilter =  new  Dictionary< string string >();
             DataTable dtData =  new  DataTable();
             string  name = args.Report.Name.ToString();
             string  dataSource = args.DataSet.Query.DataSourceName;
             string  dataSet = args.DataSet.Name;
             switch  (name)
             {
                 case  "制程工单.rdlx" :
                     if  (args.Report.ReportParameters.Count > 0) {
                         var  id = args.Report.ReportParameters[0].DefaultValue.Values[0].Expression;
                         WorkOrderIBLL workOrderIBLL =  new  WorkOrderBLL();
                         dtData = workOrderIBLL.GetPrintItem(id);
                     }
                     break ;
             }
             return  dtData;
         }
 
     }
}

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<! DOCTYPE  html>
< html  lang="zh-CN">
< head >
     < meta  name=”renderer” content=”webkit|ie-comp|ie-stand” />
     < meta  name="viewport" content="width=device-width, initial-scale=1" />
     < meta  http-equiv="content-type" content="text/html; charset=UTF-8">
     < meta  http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
     < meta  name="renderer" content="webkit">
     < link  rel="icon" href="~/favicon.ico">
 
     < title >@ViewBag.Title|力软信息|快速开发平台|Learun敏捷开发框架</ title >
     < link  href="~/Content/font/css/font-awesome.min.css" rel="stylesheet" />
     < link  href="~/Content/bootstrap/bootstrap.min.css" rel="stylesheet" />
     < script  src="~/Content/jquery/jquery-1.10.2.min.js"></ script >
     < script  src="~/Content/fonts/bootstrap-3.0.0.js"></ script >
     @*< link  href="~/Content/fontGity/css/materialdesignicons.min.css" rel="stylesheet" />*@
     < link  href="~/Content/GrapeCity/jsViewer.min.css" rel="stylesheet" />
     < script  src="~/Content/GrapeCity/jsViewer.min.js"></ script >
     < script >
         function request(d) { for (var c = location.search.slice(1).split("&"), a = 0; a <  c.length ; a++) { var b = c[a].split("="); if (b[0] == d) if ("undefined" == unescape(b[1])) break; else return unescape(b[1]) } return "" };
     </script>
 
     < style >
 
         div.page {
             margin: auto;
         }
 
         #singleView {
             position: relative !important;
         }
         /*.btn-toolbar .btn-group {
             clear:left;
             display:inline-block;
         }
         .ar-viewer .toolbar {
             display: flex;
             justify-content: flex-end;
             flex-direction: row;
             text-align:right;
         }*/
     </ style >
 
</ head >
< body  class="@Learun.Util.Net.Browser @Learun.Util.WebHelper.GetUITheme()">
     @RenderBody()
</ body >
</ html >

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<! DOCTYPE  html>
< html  lang="zh-CN">
< head >
     < meta  name=”renderer” content=”webkit|ie-comp|ie-stand” />
     < meta  name="viewport" content="width=device-width, initial-scale=1" />
     < meta  http-equiv="content-type" content="text/html; charset=UTF-8">
     < meta  http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
     < meta  name="renderer" content="webkit">
     < link  rel="icon" href="~/favicon.ico">
 
     < title >@ViewBag.Title|力软信息|快速开发平台|Learun敏捷开发框架</ title >
     < meta  name=”renderer” content=”webkit|ie-comp|ie-stand” />
     < meta  http-equiv="content-type" content="text/html; charset=UTF-8">
     < meta  http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
     < meta  name="viewport" content="width=device-width, initial-scale=1" />
     < link  rel="icon" href="~/favicon.ico">
     < link  href="~/Content/font/css/font-awesome.min.css" rel="stylesheet" />
     < link  href="~/Content/bootstrap/bootstrap.min.css" rel="stylesheet" />
     < script  src="~/Content/jquery/jquery-1.10.2.min.js"></ script >
     < script  src="~/Content/fonts/bootstrap-3.0.0.js"></ script >
     @*< link  href="~/Content/fontGity/css/materialdesignicons.min.css" rel="stylesheet" />*@
     < link  href="~/Content/GrapeCity/jsViewer.min.css" rel="stylesheet" />
     < script  src="~/Content/GrapeCity/jsViewer.min.js"></ script >
     < script >
         function request(d) { for (var c = location.search.slice(1).split("&"), a = 0; a <  c.length ; a++) { var b = c[a].split("="); if (b[0] == d) if ("undefined" == unescape(b[1])) break; else return unescape(b[1]) } return "" };
     </script>
     @Html.AppendCssFile(
                         "/Views/LR_Content/style/lr-common.css",
                     "/Views/LR_Content/plugin/scroll/scroll.css",
                     "/Views/LR_Content/style/lr-iframe-index.css",
                     "/Views/LR_Content/plugin/layout/lr-layout.css",
                     "/Views/LR_Content/plugin/tree/lr-tree.css",
                     "/Views/LR_Content/plugin/select/lr-select.css",
                     "/Views/LR_Content/plugin/timeline/lr-timeline.css",
                     "/Views/LR_Content/plugin/formselect/lr-formselect.css",
                     "/Views/LR_Content/plugin/custmerquery/lr-custmerquery.css",
                     "/Views/LR_Content/plugin/date/lr-datepicker.css",
                     "/Views/LR_Content/plugin/grid/jfgrid.css")
     < script  src="~/Content/laydate/laydate.js"></ script >
     @Html.SetCurrentUrl()
</ head >
< body  class="@Learun.Util.Net.Browser @Learun.Util.WebHelper.GetUITheme()">
     @RenderBody()
 
     @Html.AppendJsFile(
 
                     "/Views/LR_Content/plugin/resize/resize.js",
                     "/Views/LR_Content/plugin/mousewheel/mousewheel.js",
                     "/Views/LR_Content/plugin/scroll/scroll.js",
 
                     "/Views/LR_Content/plugin/layout/lr-layout.js",
                     "/Views/LR_Content/plugin/tree/lr-tree.js",
                     "/Views/LR_Content/plugin/select/lr-select.js",
                     "/Views/LR_Content/plugin/timeline/lr-timeline.js",
                     "/Views/LR_Content/plugin/formselect/lr-formselect.js",
                     "/Views/LR_Content/plugin/custmerquery/lr-custmerquery.js",
                     "/Views/LR_Content/plugin/date/lr-datepicker.js",
                     "/Views/LR_Content/script/lr-validator.js",
                     "/Views/LR_Content/script/lr-authorize.js",
                     "/Views/LR_Content/script/lr-excel.js",
                     "/Views/LR_Content/script/lr-form.js",
 
                     "/Views/LR_Content/plugin/grid/jfgrid.js"
                     )
     < script >
         $(function () {
             $('#lr_layout').lrLayout();
 
             // 翻译指定标签
             $('.lrlg').each(function () {
                 var $this = $(this);
                 top.learun.language.get($this.text(), function (text) {
                     $this.text(text);
                 });
             });
             // 翻译表单标题
             $('.lr-form-item-title').each(function () {
                 var $this = $(this);
                 var $font = $this.find('font');
                 $font.remove();
                 top.learun.language.get($this.text(), function (text) {
                     if ($font.length > 0) {
                         $this.html(text + '< font  face="宋体">*</ font >');
                     }
                     else {
                         $this.text(text);
                     }
 
                 });
             });
             // input placeholder 翻译
             $('input[placeholder]').each(function () {
                 var $this = $(this);
                 var _text = $this.attr('placeholder');
                 top.learun.language.get(_text, function (text) {
                     $this.attr('placeholder', text);
                 });
             });
 
             top.learun.httpAsync('GET', top.$.rootUrl + '/LR_SystemModule/Module/GetAuthorizeButtonColumnList', { url: lrCurrentUrl }, function (data) {
                 lrModuleButtonList = data.btns;
                 lrModuleColumnList = data.cols;
                 lrModule = data.module;
                 window.lrModuleForms = data.forms;
                 if (!!window.bootstrap) {
                     bootstrap(jQuery, top.learun);
                 }
             });
 
 
 
         });
     </ script >
</ body >
</ html >

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn)
  * Copyright (c) 2013-2020 上海力软信息技术有限公司
  * 创建人:超级管理员
  * 日  期:2019-03-14 15:17
  * 描  述:报表文件管理
  */
var  refreshGirdData;
var  fileId;
var  keyValue;
var  bootstrap =  function  ($, learun) {
     "use strict" ;
     var  viewer
     var  page = {
         init:  function  () {
             //page.initGird();
             page.bind();
         },
         bind:  function  () {
             // 初始化左侧树形数据
             $( '#dataTree' ).lrtree({
                 url: top.$.rootUrl +  '/LR_ReportModule/RptManage/GetDetailTree' ,
                 nodeClick:  function  (item) {
                     //type = item.value;
                     $( '#titleinfo' ).text(item.text);
                     if  (item.id.length > 20) {
                         fileId = item.value;
                         keyValue = item.id;
                         page.show(item.value);
                     }
                 }
             });
             //$('#multiple_condition_query').lrMultipleQuery(function (queryJson) {
             //    page.search(queryJson);
             //}, 180, 400);
             $( '#F_Type' ).lrDataItemSelect({ code:  'ReportSort'  });
             // 刷新
             $( '#lr_refresh' ).on( 'click' function  () {
                 location.reload();
             });
             // 新增
             $( '#lr_add' ).on( 'click' function  () {
                 learun.layerForm({
                     id:  'form' ,
                     title:  '新增' ,
                     url: top.$.rootUrl +  '/LR_ReportModule/RptManage/Form' ,
                     width: 600,
                     height: 400,
                     callBack:  function  (id) {
                         return  top[id].acceptClick(page.init());
                     }
                 });
             });
             // 编辑
             $( '#lr_edit' ).on( 'click' function  () {
                 //var keyValue = $('#gridtable').jfGridValue('F_Id');
                 if  (learun.checkrow(keyValue)) {
                     learun.layerForm({
                         id:  'form' ,
                         title:  '编辑' ,
                         url: top.$.rootUrl +  '/LR_ReportModule/RptManage/Form?keyValue='  + keyValue,
                         width: 600,
                         height: 400,
                         callBack:  function  (id) {
                             return  top[id].acceptClick(page.init());
                         }
                     });
                 }
             });
             // 删除
             $( '#lr_delete' ).on( 'click' function  () {
                 //var keyValue = $('#gridtable').jfGridValue('F_Id');
                 if  (learun.checkrow(keyValue)) {
                     learun.layerConfirm( '是否确认删除该项!' function  (res) {
                         if  (res) {
                             learun.deleteForm(top.$.rootUrl +  '/LR_ReportModule/RptManage/DeleteForm' , { keyValue: keyValue },  function  () {
                                 page.init();
                             });
                         }
                     });
                 }
             });
             // 打印
             $( '#lr_print' ).on( 'click' function  () {
                 //var reportId = $('#gridtable').jfGridValue('F_File');
                 learun.frameTab.open({ F_ModuleId:  'report' , F_Icon:  'fa magic' , F_FullName: fileId, F_UrlAddress:  '/LR_ReportModule/RptManage/Report?reportId='  + encodeURI(encodeURI(fileId)) });
                 
                 //learun.layerForm({
                 //    id: 'form',
                 //    title: '预览',
                 //    url: top.$.rootUrl + '/LR_ReportModule/RptManage/Report?reportId=' + encodeURI(encodeURI(reportId)),
                 //    width: 1024,
                 //    height: 768,
                 //    callBack: function (id) {
                 //        // return top[id].acceptClick(refreshGirdData);
                 //    }
                 //});
             });
 
             viewer = GrapeCity.ActiveReports.JSViewer.create({
                 element:  '#viewerContainer' ,
                 availableExports: [ 'Xml' 'Pdf' 'Excel' ],
                 reportService: {
                     url: top.$.rootUrl +  '/api/reporting'
                 }
             });
         },
         show:  function  (reportId) {
             viewer.openReport(reportId);
         },
         // 初始化列表
         initGird:  function  () {
             $( '#gridtable' ).lrAuthorizeJfGrid({
                 url: top.$.rootUrl +  '/LR_ReportModule/RptManage/GetPageList' ,
                 headData: [
                     { label:  "报表编码" , name:  "F_Code" , width: 100, align:  "left"  },
                     { label:  "报表名称" , name:  "F_Name" , width: 100, align:  "left"  },
                     {
                         label:  "报表类型" , name:  "F_Type" , width: 100, align:  "left" ,
                         formatterAsync:  function  (callback, value, row, op, $cell) {
                             learun.clientdata.getAsync( 'dataItem' , {
                                 key: value,
                                 code:  'ReportSort' ,
                                 callback:  function  (_data) {
                                     callback(_data.text);
                                 }
                             });
                         }
                     },
                     { label:  "排序" , name:  "F_SortCode" , width: 100, align:  "left"  },
                     { label:  "报表文件" , name:  "F_File" , width: 100, align:  "left"  },
                     { label:  "备注" , name:  "F_Description" , width: 100, align:  "left"  },
                 ],
                 mainId:  'F_Id' ,
                 isPage:  true
             });
             page.search();
         },
         search:  function  (param) {
             param = param || {};
             $( '#gridtable' ).jfGridSet( 'reload' , { queryJson: JSON.stringify(param) });
         }
     };
     refreshGirdData =  function  () {
         $( '#gridtable' ).jfGridSet( 'reload' );
     };
     page.init();
}

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn)
  * Copyright (c) 2013-2020 上海力软信息技术有限公司
  * 创建人:超级管理员
  * 日  期:2019-03-14 15:17
  * 描  述:报表文件管理
  */
 
$( function  () {
     var  reportId = request( 'reportId' );
     //var isPrint = request('isPrint');
     
     reportId = decodeURI(reportId);
     var  viewer = GrapeCity.ActiveReports.JSViewer.create({
         element:  '#viewerContainer' ,
         reportID: reportId,
         availableExports: [ 'Xml' 'Pdf' 'Excel' ],
         reportService: {
             url: top.$.rootUrl +  '/api/reporting'
         },
         //documentLoaded: function () {
         //    if (isPrint == '1') {
         //        setTimeout(function () {
         //            viewer.print();
         //        }, 100);
         //    }
         //}
     });
 
    
 
 
 
});

  完工,祝你好运!

猜你喜欢

转载自www.cnblogs.com/learun-net/p/12661868.html