金蝶报表二开

本案例描述:

折旧明细报表中加入字段:存放地点、成本中心部门、使用人组织三个字段。

参考社区案例:报表二次开发添加自定义字段的指导方案

步骤:

1、加入报表插件

继承原报表的类。重写BuilderReportSqlAndTempTable、GetReportHeaders、CloseReport三个方法。

customRptTempTableNames:实现在原报表的临时表中加入新的字段数据

GetReportHeaders:实现把新加的字段加在界面中展示

CloseReport:实现用完后删掉临时表

[Description("折旧明细表")]
    public class CarDetailReport : DeprDetailListService
    {
        private string[] customRptTempTableNames;
        /// <summary>
        /// 在原报表临时表中加入新字段的数据
        /// </summary>
        /// <param name="filter"></param>
        /// <param name="tableName"></param>
        public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
        {
            // 创建临时表,用于存放自己的数据
            IDBService dbservice = Kingdee.BOS.App.ServiceHelper.GetService<IDBService>();
            customRptTempTableNames = dbservice.CreateTemporaryTableName(this.Context, 1);
            // 获取临时表名称
            string strTable = customRptTempTableNames[0];

            // 把刚刚获得的临时表放进基类的方法,获取报表原始的数据
            base.BuilderReportSqlAndTempTable(filter, strTable);

            StringBuilder sb = new StringBuilder();
            sb.AppendFormat(@"select t1.*,B.F_LSLOCATION,
	                                D.FFULLNAME F_LSCostDept,
	                                E.FNAME F_LS_UserOrg 
                                into {0} -- 原有临时表
                                from {1} t1-- 临时表
	                            LEFT JOIN T_FA_CARDDETAIL B ON t1.FALTERID = B.FALTERID 
	                            AND t1.FNUMBER = B.FASSETNO
	                            LEFT JOIN t_fa_allocation C ON t1.FALTERID = C.FALTERID 
	                            AND t1.FNUMBER = C.FASSETNO
	                            LEFT JOIN T_BD_DEPARTMENT_L D ON C.F_LSCOSTDEPT = D.FDEPTID 
	                            LEFT JOIN T_ORG_ORGANIZATIONS_L E ON C.F_LS_USERORG = E.FORGID ", tableName, strTable);
            DBUtils.Execute(this.Context, sb.ToString());
        }

        /// <summary>
        /// 这里加上对应新加的字段,不然不会在界面显示
        /// </summary>
        /// <param name="filter"></param>
        /// <returns></returns>
        public override ReportHeader GetReportHeaders(IRptParams filter)
        {
            ReportHeader header = base.GetReportHeaders(filter);
            // TODO: 添加新增字段
            header.AddChild("F_LS_UserOrg", new LocaleValue("使用人组织"));
            header.AddChild("F_LSCostDept", new LocaleValue("成本中心部门"));
            header.AddChild("F_LSLOCATION", new LocaleValue("存放地点"));
            return header;
        }

        /// <summary>
        /// 调用完后删除临时表
        /// </summary>
        public override void CloseReport()
        {
            // 删除临时表
            if (customRptTempTableNames.IsNullOrEmptyOrWhiteSpace())
            {
                return;
            }
            IDBService dbService = Kingdee.BOS.App.ServiceHelper.GetService<Kingdee.BOS.Contracts.IDBService>();
            // 使用后的临时表需要删除
            dbService.DeleteTemporaryTableName(this.Context, customRptTempTableNames);

            base.CloseReport();
        }
    }

2、bos扩展报表,引入插件,并且把标准插件停用

3、发布和验证效果

3、注意点

  • 字段取名需要界面、sql语句里面完全一样。

  • 如果新加的字段需要过滤,要在过滤方案里面配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/257068.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python秘技】用Python实现千图成像,千字成像,编程炫技必备!

一个千图成像&#xff0c;千字成像的程序&#xff0c;开源给大家玩玩。 用她的名字组成她的照片会不会很酷呢&#xff1f; 后续会完善更多功能&#xff0c;打包为程序。 源代码在这里&#xff1a;https://github.com/w-x-x-w/Thousand-Image-Generator 讲解在这里&#xff…

armday1

1到一百的累加

Saliency Prediction in the Deep LearningEra: Successes and Limitations

摘要&#xff1a; 近年来&#xff0c;由于深度学习和大规模注释数据的进步&#xff0c;视觉显著性模型在性能上有了很大的飞跃。然而&#xff0c;尽管付出了巨大的努力并取得了巨大的突破&#xff0c;但模型在达到人类水平的准确性方面仍然存在差距。在这项工作中&#xff0c;…

CTF命令执行部分总结

&#x1f60b;大家好&#xff0c;我是YAy_17&#xff0c;是一枚爱好网安的小白&#xff0c;正在自学ing。 本人水平有限&#xff0c;欢迎各位大佬指点&#xff0c;一起学习&#x1f497;&#xff0c;一起进步⭐️。 ⭐️此后如竟没有炬火&#xff0c;我便是唯一的光。⭐️ 关于…

keep-live原理,react-router如何实现keep-alive

3. keep-live原理&#xff0c;react-router如何实现keep-alive 先说结论&#xff1a;被keep-alive标签包裹的组件在第一次初始化时&#xff08;渲染从render开始&#xff09;会被缓存起来&#xff08;以vnode的形式&#xff09;&#xff0c;再次访问时&#xff08;actived生命周…

在Python中使用Kafka帮助我们处理数据

Kafka是一个分布式的流数据平台&#xff0c;它可以快速地处理大量的实时数据。Python是一种广泛使用的编程语言&#xff0c;它具有易学易用、高效、灵活等特点。在Python中使用Kafka可以帮助我们更好地处理大量的数据。本文将介绍如何在Python中使用Kafka简单案例。 一、安装K…

[C++]——STL简介

带你了解c的STL 前言&#xff1a;一、什么是STL?二、STL有什么版本&#xff1f;三、STL的组件有哪些&#xff1f;四、如何学习STL?五、总结 前言&#xff1a; 我写这个博客&#xff0c;是为了在学习过程中能够更加有条理&#xff0c;更加全面&#xff0c;更加清晰的学习STL。…

喜报|棱镜七彩获评江苏省专精特新中小企业

近日&#xff0c;江苏省工业和信息化厅发布《关于江苏省2023年专精特新中小企业和2020年度专精特新企业复核通过企业名单的公示》&#xff0c;棱镜七彩成功入选2023年江苏省省级专精特新中小企业名单。 图 2023年省级专精特新中小企业公式名单节选 “专精特新”是国家为鼓励中…

Nodejs 第二十五章(http)

“http” 模块是 Node.js 中用于创建和处理 HTTP 服务器和客户端的核心模块。它使得构建基于 HTTP 协议的应用程序变得更加简单和灵活。 创建 Web 服务器&#xff1a;你可以使用 “http” 模块创建一个 HTTP 服务器&#xff0c;用于提供 Web 应用程序或网站。通过监听特定的端…

docker在线安装nginx

1、查看所有镜像 1、不带容器卷常规启动nginx&#xff0c;命令如下 docker run --name nginx-test -p 8089:80 -d a6bd71f48f68 2、在宿主机创建/usr/local/data/nginxdocker/目录&#xff0c;在此目录下创建html和logs文件夹&#xff0c;然后将容器内的 nginx.conf 和 html 下…

nodejs使用nodejieba

Nodejieba是一个基于Node.js平台的中文分词模块&#xff0c;用于将中文文本切分成有意义的词汇。它是结巴中文分词的Node.js版本&#xff0c;结巴分词是一种开源的中文分词工具&#xff0c;广泛应用于中文自然语言处理领域 优点 高性能&#xff1a; Nodejieba的底层实现采用了…

使用栈的特性实现多位计算器

创建一个栈&#xff1a; //定义一个ArrayStack 表示栈 class ArrayStack2 {private int maxSize; //栈的大小private int[] stack; //定义一个栈private int top -1; //定义一个栈顶指针public ArrayStack2(int size) {maxSize size;stack new int[maxSize];}//栈满public …

matplotlib科研绘图之折线图、柱状图、散点图、误差棒

matplotlib折线图例子1 # -*- coding: utf-8 -*- # Time : 2023/12/19 10:56 # Author : 长沙有肥鱼 # FileName: 21.py # Software: PyCharm # Blog : https://blog.csdn.net/weixin_53660567?spm1010.2135.3001.5343# 导入Matplotlib库 import matplotlib import ma…

【经典LeetCode算法题目专栏分类】【第7期】快慢指针与链表

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 快慢指针 移动零 class…

azkaban编译时报错的解决方案

大数据单机学习环境搭建(11)Azkaban单机部署&#xff0c;关于Azkaban和gradle下载&#xff0c;本文编译不限于单机solo模式。 一.大多数报错处理 1.1首先操作 1)安装 git yum install git -y 2)替换 azkaban 目录下的 build.gradle 文件的 2处 repositories 信息。改为 阿里…

LVS+Keepalived集群的介绍和搭建

目录 LVSKeepalived集群的介绍 Keepalived及其工作原理 Keepalived体系主要模块及其作用 一个合格的集群应该具备的特性 健康检查&#xff08;探针&#xff09;的方式 实验&#xff1a;搭建LVSKeepalived集群 实验准备 实验步骤 LVS 部署 配置节点服务器 实验验证 实…

vs code(Visual Studio Code)使用Remote SSH插件连接不上,反复输入密码

使用Remote SSH插件连接不上&#xff0c;反复输入密码问题解决分为两步 1&#xff0c;点击此处 可以得到配置文件的存放目录&#xff0c;进入硬盘这个目录 打开这个文件&#xff0c;知道你服务器的所在行ip&#xff0c;整行删掉&#xff0c;尝试再次连接 2&#xff0c;如果1不…

用户行为分析遇到的问题-ubantu16,hadoop3.1.3【更新中】

用户行为分析传送门 我的版本 ubantu16 hadoop 3.1.3 habse 2.2.2 hive3.1.3 zookeeper3.8.3 sqoop 1.46/1.47 我sqoop把MySQL数据往hbase导数据时候有问题 重磅&#xff1a;大数据课程实验案例&#xff1a;网站用户行为分析&#xff08;免费共享&#xff09; 用户行为分析-小…

32位MCU极致性价比高速风筒方案特点--【其利天下技术】

近年来&#xff0c;伴随着人们消费升级及现代工业技术水平的提升&#xff0c;电吹风市场已经步入了绿色节能、高效多功能化的发展阶段。人们对电吹风的需求和要求都在不断增加。然而&#xff0c;传统电吹风采用交流电机&#xff0c;使用寿命有限&#xff0c;维护不方便&#xf…

ctfshow(web171-web189)

目录 web171 web172 web173 web174 web175 web176 web177 web178 web179 web180 web181 web182 web183 web184 web185 web186 web187 web188 web189 web171 1 and 11 有结果 1 and 12 无结果 字符型注入点 1 order by 3 -- 正常 1 order by 4 -- 报错0 unio…