金蝶云星空服务端根据条件加载基础资料

发布时间 2023-09-01 16:06:37作者: lanrenka

使用场景:

需要根据表单界面的条件返回满足条件的数据。

比如:

1、服务端或者客户端根据编码加载基础资料,辅助资料,单据

2、服务端或者客户端根据名称加载基础资料,辅助资料,单据

3、服务端或者客户端根据多条件加载基础资料,辅助资料,单据

 

解决方案设计:

适配查询的对象(基础资料,辅助资料,单据)变化,查询条件变化,返回的字段变化。

故抽成公共方法,变量传参。

 

详细设计

一、创建公共方法

   public static class BOSCommon
    {
        /// <summary>
        /// 获取表单数据包(返回满足条件的第一条,一般是创建事件最早的)/// </summary>
        /// <param name="ctx"></param>
        /// <param name="formId">业务对象</param>
        /// <param name="filter">查询条件</param>
        /// <param name="field">获取字段,用,隔开</param>
        /// <returns></returns>
        public static DynamicObject GetMetaDynamic(Context ctx, string formId, string filter, string field)
        {
            QueryBuilderParemeter para = new QueryBuilderParemeter()
            {
                FormId = formId,
                SelectItems = SelectorItemInfo.CreateItems(field),
                FilterClauseWihtKey = filter
            };
            DynamicObjectCollection Entrys = QueryServiceHelper.GetDynamicObjectCollection(ctx, para);
            if (Entrys == null || Entrys.Count == 0) return null;
            return Entrys[0];
        }


        /// <summary>
        /// 获取表单数据包(返回满足条件的全部)/// </summary>
        /// <param name="ctx"></param>
        /// <param name="formId">业务对象</param>
        /// <param name="filter">条件</param>
        /// <param name="field">获取字段,用,隔开</param>
        /// <returns></returns>
        public static DynamicObjectCollection GetMetaDynamicCollection(Context ctx, string formId, string filter, string field)
        {
            //Convert.ToString("");
            QueryBuilderParemeter para = new QueryBuilderParemeter()
            {
                FormId = formId,
                SelectItems = SelectorItemInfo.CreateItems(field),
                FilterClauseWihtKey = filter
            };
            return QueryServiceHelper.GetDynamicObjectCollection(ctx, para);
        }
    }

 

 

二、使用/调用

在需要使用的地方。添加对公共方法的使用即可。