金蝶云星空《资产实物清单》报表添加字段
一、业务需求
查看资产实物清单可查看对应物料编码

二、详细设计
1、编写报表插件
1.1 新建类,继承原报表插件,重写相关事件
相关引用:
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core.Report;
using Kingdee.BOS.Util;
using Kingdee.K3.FIN.FA.App.Report;
using Kingdee.BOS.App.Data; using Kingdee.BOS.Core.Report; using Kingdee.BOS.Util; using Kingdee.K3.FIN.FA.App.Report; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Krystal.K3.App.Report.FIN.FA { /// <summary> /// 功能描述 :AssetObjectListServiceExtend /// 创 建 者 :Administrator /// 创建日期 :2026/1/13 14:42:49 /// 最后修改者 :Krystal /// 最后修改日期:2026/1/13 14:42:49 /// </summary> [Description("资产实物清单报表服务插件二开-报表插件"), HotUpdate] public class AssetObjectListServiceExtend: AssetObjectListService { #region <方法> private void AddSecondField(string tableName) { //1、对临时表tableName添加字段销售类型 //添加的字段长度,类型,是否为空,尽量和原字段保持一致,添加的字段中间加上二开标识,防止和标准产品字段冲突 StringBuilder sqlStr = new StringBuilder(); sqlStr.AppendFormat(@"alter table {0} add F_Krystal_MNumber varchar(100) NOT NULL default '';", tableName); int uc = DBUtils.Execute(this.Context, sqlStr.ToString()); //测试表结构用,比如查看现有字段 //string sql1 = string.Format(@"select top 10000 * from {0}", tableName); //var sd = DBUtils.ExecuteDynamicObject(this.Context, sql1); //2、更新该字段 sqlStr.Clear(); sqlStr.AppendFormat(@" MERGE INTO {0} T0", tableName); sqlStr.AppendFormat(@" using ( SELECT b.FASSETNO ,b.FMATERIALNO,c.FNUMBER FMNUMBER FROM t_fa_card a LEFT JOIN T_FA_CARDDETAIL b ON a.FALTERID=b.FALTERID join T_BD_MATERIAL c on c.FMATERIALID=b.FMATERIALNO WHERE a.FDOCUMENTSTATUS='C' AND a.FISNEWREC='2' AND b.FMATERIALNO>0) T "); sqlStr.AppendFormat(@" ON T0.FAssetNO=T.FAssetNO "); sqlStr.AppendFormat(@" WHEN matched THEN UPDATE SET F_Krystal_MNumber=T.FMNUMBER;"); int uc1 = DBUtils.Execute(this.Context, sqlStr.ToString()); } #endregion <方法> #region <事件> public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName) { //调用基类的方法,获取初步的查询结果到临时表tableName【基类默认的存放查询结果的临时表】 base.BuilderReportSqlAndTempTable(filter, tableName); //构造过滤条件 //DynamicObject dyFilter = this.GetFilter(filter); this.AddSecondField(tableName); } #endregion <事件> } }
1.2 编译:

2、扩展《资产实物清单》
添加文本,重命名为物料编码,标识和插件一致

取消原来插件,注册新插件

3、扩展《资产实物清单过滤条件》
在显示隐藏列界面添加文本,重命名为物料编码,标识和插件一致

三、测试


浙公网安备 33010602011771号