金蝶报表二开

news2024/12/24 11:35:11

本案例描述:

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

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

步骤:

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语句里面完全一样。

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

零基础也能制作家装预约咨询小程序

近年来&#xff0c;随着互联网的快速发展&#xff0c;越来越多的消费者倾向于使用手机进行购物和咨询。然而&#xff0c;许多家装实体店却发现自己的客流量越来越少&#xff0c;急需一种新的方式来吸引顾客。而开发家装预约咨询小程序则成为了一种利用互联网技术来解决这一问题…

CTF命令执行部分总结

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

selenium自动化webdriver下载及安装

1、确认浏览器的版本 在浏览器的地址栏&#xff0c;输入chrome://version/&#xff0c;回车后即可查看到对应版本 2、找到对应的chromedriver版本 2.1 114及之前的版本可以通过点击下载chromedriver,根据版本号&#xff08;只看大版本&#xff09;下载对应文件 2.2 116版本通过…

大模型评估中Pass@k值是如何计算的

在前面的博客中分别介绍了大模型评估过程不同指标的含义&#xff0c;以及如何通过代码&#xff0c;实现指标的收集。如果对如何运行代码生成结果和收集passk指标不清楚&#xff0c;可以参考这两篇博客。 如何对大模型进行评估上 如何对大模型进行评估下 Passk的来源 代码的生…

低代码软件开发的革命

一、前言 如果一个概念能在科技圈火起来&#xff0c;它往往兼具字面简明和内涵丰富的特征&#xff0c;并具有某种重塑产业格局的潜力。低代码&#xff08;Low Code&#xff09;就是这样一个典型。顾名思义&#xff0c;低代码是指少用代码&#xff0c;甚至不用代码&#xff0c;仅…

大学生可以自学嵌入式开发吗?

今日话题&#xff0c;大学生可以自学嵌入式开发吗&#xff1f;大学期间完全可以自学嵌入式开发&#xff0c;但这需要极大的毅力和耐心。嵌入式学习的过程可能会让你感到自卑&#xff0c;但也能带来无限成就感。嵌入式开发伴随着一系列问题&#xff0c;这些问题既是挑战也是机会…

Nodejs 第二十六章(反向代理)

什么是反向代理? 反向代理&#xff08;Reverse Proxy&#xff09;是一种网络通信模式&#xff0c;它充当服务器和客户端之间的中介&#xff0c;将客户端的请求转发到一个或多个后端服务器&#xff0c;并将后端服务器的响应返回给客户端。 负载均衡&#xff1a;反向代理可以根…

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

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

2023 英特尔On技术创新大会直播 | AI 融合发展之旅

前言 2023 年的英特尔 On 技术创新大会中国站&#xff0c;主要聚焦最新一代增强 AI 能力的计算平台&#xff0c;深度讲解如何支持开放、多架构的软件方案&#xff0c;以赋能人工智能并推动其持续发展。 大会的目标之一是优化系统并赋能开发者&#xff0c;特别注重芯片增强技术…

火柴棍等式c语言

分析&#xff1a;我们可以枚举等式&#xff0c;在判断这些等式是由多少根火柴组成&#xff0c;在把火柴数量和之前输入的比较&#xff0c;如果相等&#xff0c;那么就统计一次&#xff0c;注意的是等号和加号需要减去四根。 #include <stdio.h> int f(int a){//判断某一…

国产划片机品牌众多,如何选择优质的供应商?

在半导体行业的发展浪潮中&#xff0c;划片机作为关键设备之一&#xff0c;其性能和质量对于生产过程的高效性和产品的质量具有至关重要的影响。近年来&#xff0c;国产划片机的品牌数量不断增多&#xff0c;为半导体行业提供了更多的选择。然而&#xff0c;如何从众多的品牌中…

sourcetree 无效的源路径 细节提示:系统找不到指定的文件

工具–>选项–>git 直接下拉到底 点击红框&#xff0c;重新下载一个内嵌git就可以了 我感觉是因为改变了原有git安装路径的问题

病案管理的定义、流程及应用分析

病案管理是指针对病人的基本信息&#xff0c;病历&#xff0c;就诊记录等进行收集、整理、存储、分析和应用的一项管理工作。它在医院、医疗机构和医疗行业中具有重要的作用&#xff0c;能够提高医疗服务的质量、效率和安全性。本文将就病案管理的定义、流程以及其在医疗健康领…

超实用的Web兼容性测试经验总结,建议Mark

在日常工作中&#xff0c;我们经常碰到网页不兼容的问题。我们之所以要做兼容性测试&#xff0c;目的在于保证待测试项目在不同的操作系统平台上正常运行。 主要包括待测试项目能在同一操作系统平台的不同版本上正常运行&#xff1b;待测试项目能与相关的其他软件或系统的“和…

Halcon深度学习方法

1、异常检测和全局上下文异常检测 图(1)异常检测示例 在图(1)上图中&#xff0c;异常检测示例&#xff1a;为输入图像的每个像素都分配一个分数&#xff0c;表明它显示未知特征(即异常)的可能性&#xff1b;在图(1)下图中&#xff0c;全局上下文异常检测示例&#xff1a;为输入…

浅谈云性能测试的关键要点

随着云计算的广泛应用&#xff0c;云性能测试成为确保云服务质量和性能的关键环节。云性能测试不仅涵盖了传统性能测试的方面&#xff0c;还需要考虑云环境的特殊性。以下是云性能测试的几个关键要点&#xff1a; 1. 模拟真实云环境 云环境具有虚拟化、弹性扩展等特点&#xff…

Python基础教程——最详细python安装库的方法(安装pygame库为例)!

Python安装库方法大全&#xff08;以安装pygame库为例&#xff09; 方法一、在pycharm内部直接安装【直接上图】 第一种方法安装不了就用第二种 如果显示package pygame &#xff08;库名&#xff09; install successfully 到此第一种方法结束恭喜你安装成功 如果报了错那就…

Python---进程

1. 进程的介绍 在Python程序中&#xff0c;想要实现多任务可以使用进程来完成&#xff0c;进程是实现多任务的一种方式。 2. 进程的概念 一个正在运行的程序或者软件就是一个进程&#xff0c;它是操作系统进行资源分配的基本单位&#xff0c;也就是说每启动一个进程&#xf…

德人合科技 | 防止公司电脑文件数据资料外泄,自动智能透明加密保护系统

【透明加密软件】——防止公司电脑文件数据资料防止外泄&#xff0c;自动智能透明加密保护内部核心文件、文档、图纸、源代码、音视频等资料&#xff01; PC端访问地址&#xff1a; www.drhchina.com &#x1f31f; 核心功能&#xff1a; 透明加密&#xff1a;采用高级加密算…

telnet的交互原理(wireshark分析)

telnet的交互原理&#xff08;wireshark篇&#xff09; telnet的协议类型是tcp&#xff0c;他的密钥用的是明文的&#xff0c;容易被捕获&#xff0c;所以后来的windows基本弃用了telnet服务端但依然保留了客户端。 下面是他的交互抓包&#xff1a; 这里面的前三条运用的是tc…