读写系统参数原创
金蝶云社区-比邻星
比邻星
1人赞赏了该文章 9次浏览 未经作者许可,禁止转载编辑于2024年09月30日 15:20:01
using Kingdee.BOS;using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.List.PlugIn;using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;using System.ComponentModel;
namespace Jac.XkDemo.BOS.Business.PlugIn{    
    /// <summary>    
    /// 【列表插件】读写系统参数    
    /// </summary>    
    [Description("【列表插件】读写系统参数"), HotUpdate]    
    public class ReadAndWriteSysParameterListPlugIn : AbstractListPlugIn    
    {        
        /// <summary>        
        /// 列表主菜单点击事件        
        /// </summary>        
        /// <param name="e"></param>        
        public override void BarItemClick(BarItemClickEventArgs e)        
        {            
            base.BarItemClick(e);            
            if (e.BarItemKey.EqualsIgnoreCase("tbReadSysParameter"))            
            {                
                var auxMustInput = ReadSysParameter(this.Context, 0, "BOS_PlatformConfig", "FDisableWebApi");                
                this.View.ShowMessage("系统参数【禁用WebApi】:" + auxMustInput);                
                return;            
            }            
            if (e.BarItemKey.EqualsIgnoreCase("tbWriteSysParameter"))            
            {                
                var isOk = WriteSysParameter(this.Context, 0, "BOS_PlatformConfig", "FDisableWebApi", true);                
                this.View.ShowMessage(isOk ? "系统参数保存成功" : "系统参数保存失败");                return;            
            }        
        }        
        /// <summary>        
        /// 读取系统参数        
        /// </summary>        
        /// <param name="ctx">上下文</param>        
        /// <param name="orgId">系统参数所属组织</param>        
        /// <param name="parameterObjId">系统参数的业务对象标识</param>        
        /// <param name="parameterName">系统参数的实体属性名</param>        
        /// <returns></returns>        
        public static object ReadSysParameter(Context ctx, long orgId, string parameterObjId, string parameterName)        
        {            
            // 读取系统参数数据包            
            var parameterData = SystemParameterServiceHelper.Load(ctx, orgId, 0, parameterObjId);            
            // 从系统参数数据包中获取某一个参数            
            if (parameterData != null && parameterData.DynamicObjectType.Properties.ContainsKey(parameterName))            
            {                
                return parameterData[parameterName];            
            }            
            return null;        
        }        
        /// <summary>        
        /// 保存系统参数        
        /// </summary>        
        /// <param name="ctx">上下文</param>        
        /// <param name="orgId">系统参数所属组织</param>        
        /// <param name="parameterObjId">系统参数的业务对象标识</param>        
        /// <param name="parameterName">系统参数的实体属性名</param>        
        /// <param name="parameterValue">系统参数的值</param>        
        /// <returns></returns>        
        public static bool WriteSysParameter(Context ctx, long orgId, string parameterObjId, string parameterName, object parameterValue)        
        {            
            // 获取系统参数的元数据            
            var formMetadata = FormMetaDataCache.GetCachedFormMetaData(ctx, parameterObjId);            
            // 读取系统参数包            
            var parameterData = SystemParameterServiceHelper.Load(ctx, orgId, 0, parameterObjId);            
            // 从系统参数包中获取某一个参数            
            if (parameterData != null && parameterData.DynamicObjectType.Properties.Contains(parameterName))            
            {                
                parameterData[parameterName] = parameterValue;                
                var result = SystemParameterServiceHelper.Save(ctx, formMetadata.BusinessInfo, parameterData, orgId, 0, true);                
                return result.IsSuccess;            
            }            
            return false;        
        }    
    }
}
/*-- 查询系统参数SELECT * FROM T_BAS_SYSPARAMETER */


赞 1