金蝶云星空《资产实物清单》报表添加字段
📅 2026/7/7 10:48:59
👁️ 阅读次数
📝 编程学习
一、业务需求
查看资产实物清单可查看对应物料编码
二、详细设计
1、编写报表插件
1.1 新建类,继承原报表插件,重写相关事件
相关引用:
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core.Report;
using Kingdee.BOS.Util;
using Kingdee.K3.FIN.FA.App.Report;
usingKingdee.BOS.App.Data;usingKingdee.BOS.Core.Report;usingKingdee.BOS.Util;usingKingdee.K3.FIN.FA.App.Report;usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceKrystal.K3.App.Report.FIN.FA{/// <summary>/// 功能描述 :AssetObjectListServiceExtend/// 创 建 者 :Administrator/// 创建日期 :2026/1/13 14:42:49/// 最后修改者 :Krystal/// 最后修改日期:2026/1/13 14:42:49/// </summary>[Description("资产实物清单报表服务插件二开-报表插件"),HotUpdate]publicclassAssetObjectListServiceExtend:AssetObjectListService{#region<方法>privatevoidAddSecondField(stringtableName){//1、对临时表tableName添加字段销售类型//添加的字段长度,类型,是否为空,尽量和原字段保持一致,添加的字段中间加上二开标识,防止和标准产品字段冲突StringBuildersqlStr=newStringBuilder();sqlStr.AppendFormat(@"alter table {0} add F_Krystal_MNumber varchar(100) NOT NULL default '';",tableName);intuc=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;");intuc1=DBUtils.Execute(this.Context,sqlStr.ToString());}#endregion<方法>#region<事件>publicoverridevoidBuilderReportSqlAndTempTable(IRptParamsfilter,stringtableName){//调用基类的方法,获取初步的查询结果到临时表tableName【基类默认的存放查询结果的临时表】base.BuilderReportSqlAndTempTable(filter,tableName);//构造过滤条件//DynamicObject dyFilter = this.GetFilter(filter);this.AddSecondField(tableName);}#endregion<事件>}}2、扩展《资产实物清单》
添加文本,重命名为物料编码,标识和插件一致
3、扩展《资产实物清单过滤条件》
在显示隐藏列界面添加文本,重命名为物料编码,标识和插件一致
编程学习
技术分享
实战经验