电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

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

来源:金蝶云社区作者:金蝶2024-09-166

二开案例.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格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信