力软敏捷框架7.0.6 葡萄城报表升级到ar14版本 - Fishk源码分享博客-Fishk源码分享博客

力软敏捷框架7.0.6 葡萄城报表升级到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<stringstring> dicParas = new Dictionary<stringstring>();
            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<stringstring> dcFilter = new Dictionary<stringstring>();
            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.3 力软敏捷开发框架(http://www.learun.cn)
 * Copyright (c) 2013-2018 上海力软信息技术有限公司
 * 创建人:超级管理员
 * 日  期: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.3 力软敏捷开发框架(http://www.learun.cn)
 * Copyright (c) 2013-2018 上海力软信息技术有限公司
 * 创建人:超级管理员
 * 日  期: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);
        //    }
        //}
    });
   
});

完工,祝你好运!

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营和服务器所需!
7. 站长联系QQ:3562983057
Fishk源码分享博客 » 力软敏捷框架7.0.6 葡萄城报表升级到ar14版本

开通永久VIP,海量资源,不限制下载,免费更新!

立即开通 了解详情