金蝶云星空在原有简单账表的基础上加上自定义字段

以采购订单执行明细表为例,在原有基础上加上下面的两个字段

产业链备注: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

 

posted on 2024-06-06 17:19  这一生,谢谢自己  阅读(41)  评论(0编辑  收藏  举报