功能实现说明:
后台boss不能将单据体,两个不同单据体的字段拼接在一起。现在需要将几个字段拼接在一个字段上,供后台套打生成二维码使用。
系统默认加载单据头部分字段,有些字段不能加载需要先预加载进去,才能读到相应字段的值。
public override void OnPreparePropertys(PreparePropertysEventArgs e)
{
e.FieldKeys.Add("FJobNumber");
e.FieldKeys.Add("FCUSMATERIALIDPRINT");
}
附上代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Validation;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Util;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Orm;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS;
using Kingdee.BOS.Core.Metadata.ConvertElement;
namespace k3cloud.sal.zxd.ckqorcd.Audit
{
public class Audit : AbstractOperationServicePlugIn
{
public override void OnPreparePropertys(PreparePropertysEventArgs e)
{
e.FieldKeys.Add("FJobNumber");
e.FieldKeys.Add("FCUSMATERIALIDPRINT");
}
public override void EndOperationTransaction(EndOperationTransactionArgs e)
{
base.EndOperationTransaction(e);
foreach (var dataEntity in e.DataEntitys)
{
Int32 Id; //单据头ID
Id = Convert.ToInt32(dataEntity["Id"]);
string date; //单据头日期
date = Convert.ToString(dataEntity["Date"]);
date = date.Substring(0,10);
string JobNumber; //单据头项目号
JobNumber = Convert.ToString(dataEntity["JobNumber"]);
if (JobNumber == null || JobNumber == "" || JobNumber == " ")
{
JobNumber = "0000";
string gchsql = string.Format("update T_TPL_packing set FJobNumber='0000' WHERE FID='{0}'", Id);
DBUtils.ExecuteDynamicObject(this.Context, gchsql);
}
DynamicObject CUSMATERIALIDPRINT = dataEntity["CUSMATERIALIDPRINT"] as DynamicObject; //客户物料编码
string khwl = "";
if (CUSMATERIALIDPRINT != null)
{
khwl = Convert.ToString(CUSMATERIALIDPRINT["Number"]);
}
//string wlsql = string.Format("select b.fnumber from T_TPL_packing a " + ' ' +
// "join V_SAL_CUSTMATMAPPING b on a.FMAPID=b.fid WHERE a.FID='{0}'", Id);
//var wlrow = DBUtils.ExecuteDynamicObject(this.Context, wlsql);
//if (wlrow.Count > 0)
//{
// string wl = Convert.ToString(wlrow[0][0]);
string sql = string.Format("SELECT FTUBENOS FROM T_TPL__packingNUEntry WHERE FID='{0}'", Id);
var row = DBUtils.ExecuteDynamicObject(this.Context, sql);
for (int i = 0; i < row.Count; i++)
{
int j = i + 1;
string FTUBENOS = Convert.ToString(row[i][0]);
if (FTUBENOS.Length < 13)
{
FTUBENOS = "0000";
string ghsql = string.Format("update T_TPL__packingNUEntry set FTUBENOS='0000' WHERE FID='{0}' and fseq = {1}", Id, j);
DBUtils.ExecuteDynamicObject(this.Context, ghsql);
string qorcd = khwl + '&' + date + '&' + JobNumber + '&' + FTUBENOS;
string upsql = string.Format("update T_TPL__packingNUEntry set FCKQORCD='{2}' WHERE FID='{0}' and fseq = {1}", Id, j, qorcd);
DBUtils.ExecuteDynamicObject(this.Context, upsql);
}
else
{
string qorcd = khwl + '&' + date + '&' + JobNumber + '&' + FTUBENOS;
string upsql = string.Format("update T_TPL__packingNUEntry set FCKQORCD='{2}' WHERE FID='{0}' and fseq = {1}", Id, j, qorcd);
DBUtils.ExecuteDynamicObject(this.Context, upsql);
}
}
}
}
}
}