力软敏捷框架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.添加启动类

代码为

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;
        }

    }
}

  

<!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>

  

<!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>

  

/* * 版 本 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();
}

  

/* * 版 本 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);
        //    }
        //}
    });

});

  完工,祝你好运!

   

原文地址:https://www.cnblogs.com/lr215/p/12616283.html

时间: 2024-08-28 19:08:22

力软敏捷框架7.0.6 葡萄城报表升级到ar14版本的相关文章

力软敏捷开发框架7.0版本更新资料

感谢一直以来广大用户对力软的支持,现将力软敏捷框架7.0版本更新情况发布如下:1新添加了?1.多语言功能:?2.代码生成器模版:a.可编辑列表代码生成器(Excel风格)模版:b.报表现实代码生成器模版:3.树形代码生成功能:4.动态配置首页功能5.外部邮件收发功能6.办公类型文件在线预览功能:7.表单页面的弹出框:a.左边树:b.中间选择:c.右边显示已选择2修复1.表格控件子表格展开显示异常问题:2.日期控件偶尔出现格式错乱问题:3.分页控件页面再次加载页数错误问题3优化1.代码生成器优化成

力软敏捷框架 jfGrid 使用例子之一

百度了下关于力软敏捷框架 jfGrid的教程,基本没有,出来的全是jqGrid.好吧看来只能自己上手了 今天来讲讲列设置属性里数据格式化事件(formatter)的使用 常规的使用方式如上图所示. 先来说说各个参数的意思: cellvalue 当前单元格的数据值,也就是你赋的值是什么就是什么. row 是当前行的值,这个能获取当前行的各个列的数据. op 是当前jfGrid初始化的时候所有的设置数据值,就是  $('#id').jfGrid(op)  中的op.这个参数基本用不太到,至少我使用里

力软敏捷开发框架V7.0.6新版移动端上线,支持钉钉、支付宝等小程序

日前,力软敏捷开发框架V7.0.6正式更新,新增了微信小程序模块,为了进一步提升框架的实用性,对移动端功能再次进行了更新,目前可同步支持微信.支付宝.百度.头条.QQ.钉钉等小程序. 小程序相关功能使用方法比较简单,这里以钉钉为例做一下基础演示: 在表单页右上角点击"分享"按钮,可以分享到钉钉群聊或私聊 相关人员点击这个链接会自动启动小程序,登录之后直接跳转到对应的表单,自动进入流程. 如账号已经登陆,会直接进入流程 到此流程结束. 力软敏捷开发框架是一套基于智能化可扩展组件式的软件系

力软敏捷开发框架 V7.0.6 正式发布

新增 1.新增ERP示例: 2.新增jqGrid示例: 3.新增二维码生成示例: 4.新增D3图表示例: 5.流程审批节点新增自动同意规则和无对应处理人规则设置: 6.移动端流程对系统表单进行支持: 7.pc端流程新增他人代填功能: 8.新增一套主题皮肤: 9.移动端支持小程序: 修复 1.完善功能页面表单字段权限设置: 2.修复流程普通审核节点不能指定下一审核人的功能: 3.修复单据编码在流水号初始值不是1的情况下错误的问题: 4.修复即时通讯历史消息页js语法错误: 5.修复tree 打开关

【力软7.0.5】力软敏捷开发框架源码更新发布,企业级.net快速开发平台

力软敏捷开发框架7.0.5版发布,企业级.net快速开发平台 升级日志: 新增 1.代码生成器,可保存方案: 2.加入葡萄城报表.套打: 3.流程手写签名.印章管理: 4.仓库平面图数据展示: 5.数据源的带参数查询: 6.表格控件字段的隐藏: 7.甘特图+项目管理示例: 8.Redis消息队列示例: 9.首页工作流任务处理界面: 修复 1.数据权限同一字段多次参与条件运算异常: 2.流程撤销异常: 3.日期控件在表格中使用异常: 4.清空缓存不彻底问题: 5.代码生成器生成编码字段异常: 6.

葡萄城报表V11 SP2新版本震撼发布!

葡萄城报表正式发布 v11.2 版本,强势推出国内首创的基于HTML5的在线报表设计器,从此报表设计告别桌面应用程序,随时随地修改报表,真正跨平台操作,从而使任何报表用户更快速的响应报表业务变化! 在线报表设计器/Web报表设计器 全在线设计,无需安装客户端设计器,能与 B/S 系统直接集成 采用 OFFICE 的操作体验,易于学习,无论软件开发者,还是最终用户都能很快上手 使用选项设置窗格替代传统的属性窗口,简单轻松配置报表元素行为 内置报表主题与元素样式,无需专业美工,也能创建外观精美的报表

力软敏捷开发平台 7.0.6 框架源码下载

接触这个框架有三年的时间了,初次接触b/s型开发项目时,是在指导人员的帮助下完成的,技术上确实也学到了一些东西,但个人觉得最大的收获是在开发软件项目的过程中,自己意识上的提升,如做项目是考虑其合理性安全性以及并发性的重要性与必要性,这么想来发现我们以前开发的项目简直太肤浅了,接来下我还是踏下心来研究处理好创业项目的测试以及后台程序并发性,安全性的问题吧. 任何一个框架都是不完美的,此框架也是,有其便利的地方,我们用起来很舒服,开发起来很方便,但是每当我们想要加入个性化要求的时候这便是一件比较蛋疼

OA系统构建神器---力软敏捷开发框架

现在企业对OA系统的要求越来越高了,十年前把请假单,报销单这些乱七八糟的单据实现无纸化就可以叫OA系统了,后来做OA的这些厂商又坐不住了,所性把工作流也整合进来了.这样也就算了,随着这几年微信.APP的崛起,于是企业主便通过微信.APP把魔爪伸向了无辜的劳动人民,是的,微信和APP也被整合进来了,号称办公无处不在(在哪儿你都得给老子干活,小样压榨不死你). 对于开发OA系统的企业和团队来说,技术要求真的是越来越高了,整个工作流进来已经废了半条小命,这下还要把微信,安卓.IOS给弄进来,上哪儿学这

力软敏捷开发框架

力软敏捷开发框架(第六代)软件行业的3D打印机.整合框架,给用户和开发者最佳的.Net框架方案.力软敏捷开发框架是一套集快速开发+通用权限管理+工作流+即时通讯+微信组件+手机APP开发于一体的敏捷开发框架.能帮企业提高开发效率,提升软件质量,使得软件研发人员只用关注核心业务的实现.拥有了这套框架您只需要一批.net程序员, 就能把架构师.美工妹.APP开发人员的活全干了.只要您创意有了,设计出来了,马上就能通过力软敏捷开发框架快速实现.它就是软件行业的3D打印机! 框架官网:http://ww