以采购订单执行明细表为例,在原有基础上加上下面的两个字段
产业链备注:F_TXBE_CYL_Notes
产业链物料明细ID:F_TXBE_CYL_MateriaID
1、首先打开采购订单执行明细表过滤界面
找到显示隐藏列中的字段合集
新增字段:产业链备注:F_TXBE_CYL_Notes
产业链物料明细ID:F_TXBE_CYL_MateriaID
2、打开采购订单执行明细表
在表中加入字段:产业链备注:F_TXBE_CYL_Notes
产业链物料明细ID:F_TXBE_CYL_MateriaID
标识和过滤列表中一致
3、代码二开
在vs中创建一个类,继承原报表的类
原来的服务器插件如图所示
插件代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Kingdee.BOS;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Core.Report;
using Kingdee.K3.SCM.App.Purchase.Report;
using System.ComponentModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Kingdee.BOS;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Core.Report;
using Kingdee.K3.SCM.App.Purchase.Report;
using System.ComponentModel;
namespace Demo.T_SAL_OUTSTOCK.BusinessPlugIn
{
[Description("报表添加字段")]
[Kingdee.BOS.Util.HotUpdate]
public class mingxi : PurchaseOrderExecuteRpt
{
private string[] TempTableName;
//重写创建临时表方法
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
{
//创建临时表用于保存自己的数据
IDBService dbservice = Kingdee.BOS.App.ServiceHelper.GetService<IDBService>();
TempTableName = dbservice.CreateTemporaryTableName(this.Context, 1);
string strTable = TempTableName[0];
//调用基类方法,获取报表原始数据
base.BuilderReportSqlAndTempTable(filter, strTable);
//对初步的查询结果处理,然后回填到默认的存放查询结果到临时表
StringBuilder sb = new StringBuilder();
//未扩展之前,数据放在t1 strTable 采购订单执行明细表
//中文 FLOCALEID=2052
//{1}中查询出原始数据
string strSql = @"/*dialect*/select t1.*,ddl.F_TXBE_CYL_Notes,ddl.F_TXBE_CYL_MateriaID
into {0} from {1} t1
left join t_PUR_POOrder dd
on t1.fbillno=dd.fbillno
left join t_PUR_POOrderEntry ddl
on dd.fid=ddl.FID";
sb.AppendFormat(strSql, tableName, strTable);
DBUtils.Execute(this.Context, sb.ToString());
}
public override ReportHeader GetReportHeaders(IRptParams filter)
{
ReportHeader header = base.GetReportHeaders(filter);
header.AddChild("F_TXBE_CYL_Notes", new LocaleValue("产业链备注")).ColIndex = 99;
header.AddChild("F_TXBE_CYL_MateriaID", new LocaleValue("产业链物料明细ID")).ColIndex = 99;
return header;
}
public override void CloseReport()
{
//删除临时表
if (TempTableName == null || TempTableName.Length == 0)
{
return;
}
IDBService dbservice = Kingdee.BOS.App.ServiceHelper.GetService<IDBService>();
dbservice.DeleteTemporaryTableName(this.Context, TempTableName);
base.CloseReport();
}
}
}
4、生成解决方案,如下图所示:
5、打包上传到公有云
将解决方案上传到程序集下面的其他资源下面
右键选择部分包构建,并选择要构建的dll包,然后选择在线构建
然后在右键->我的构建历史中查看构建结果,构建完成后下载
然后去金蝶云天梯中上传对应的包
上传成功后进入采购订单执行明细表中,选择服务器插件并上传对应的dll文件,并取消被继承类的插件,这里的文件名为PurchaseOrderExecuteRpt
标签:TXBE,自定义,金蝶,BOS,System,Kingdee,账表,using,CYL From: https://www.cnblogs.com/woshinige/p/18234862