二开案例.webapi.根据formid得到表单的entry信息(主键、单据状态字段、单据编号字段、单据类型字段)

该功能可以通过接口的方式获得表单的关键信息,十分有用。
废话不多说直接上代码
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Core.Metadata.EntityElement;
using Kingdee.BOS.ServiceFacade.KDServiceFx;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using Kingdee.BOS.WebApi.ServicesStub;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
namespace scjr.extend.plugin.ly.lyproject
{
[Kingdee.BOS.Util.HotUpdate]
class fdatatowebapidatatable : AbstractWebApiBusinessService
{
public fdatatowebapidatatable(KDServiceContext context)
: base(context)
{ }
private string _formId = string.Empty;
private FormMetadata _formMetadata;
private JObject _json_info;
public object getWebApiData(string param)
{
try
{
_json_info = JObject.Parse(param);
var ctx = KDContext.Session.AppContext;
if (ctx == null)
{
// 会话超时,需重新登录
return new
{
isSuccess = false,
message = "会话超时,请重新登录"
};
}
this._formId = String.Format("{0}", _json_info["formid"]);
_formMetadata = FormMetaDataCache.GetCachedFormMetaData(ctx, _formId);
List<Entity> entrys = _formMetadata.BusinessInfo.Entrys;
List<object> results = new List<object>();
var bus = _formMetadata.BusinessInfo;
foreach (Entity ent in entrys)
{
if (ent.GetType().Name.EqualsIgnoreCase("HeadEntity"))
{
results.Add(new
{
pkname = ent.EntryPkFieldName,
tablename = ent.TableName,
entryname = ent.EntryName,
entrytype = ent.GetType().Name,
billnoname = bus.GetBillNoField().Name[2052],
billnofieldname = bus.GetBillNoField().FieldName,
billstatusname = bus.GetBillStatusField().Name[2052],
billstatusfieldname = bus.GetBillStatusField().FieldName,
billtypename = bus.GetBillTypeField().Name[2052],
billtypefieldname = bus.GetBillTypeField().FieldName
});
二开案例.webapi.根据formid得到表单的entry信息(主键、单据状态字段、单据编号字段、单据类型字段)
该功能可以通过接口的方式获得表单的关键信息,十分有用。废话不多说直接上代码using Kingdee.BOS.Core.Metadata;using Kingdee.BOS.Core.M...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



