二开案例.表单插件.获取字段功能控制设置

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开案例.表单插件.获取字段功能控制设置

【应用场景】

运行时解析元数据,获取设计时设置的字段的功能控制选项。

上传图片

功能控制属性对应的元数据XML如下图。

上传图片



【案例演示】

采购订单,设置供应商字段的功能控制选项,然后在表单插件中读取并显示。

上传图片



【实现步骤】

<1>编写表单插件,代码如下。

using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Metadata.FieldElement;
using Kingdee.BOS.Util;
using System;
using System.ComponentModel;
using System.Text;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
    /// <summary>
    /// 【表单插件】获取字段功能控制设置
    /// </summary>
    [Description("【表单插件】获取字段功能控制设置"), HotUpdate]
    public class GetFieldFunControlFormPlugIn: AbstractDynamicFormPlugIn
    {
        public override void BarItemClick(BarItemClickEventArgs e)
        {
            base.BarItemClick(e);
            if (e.BarItemKey == "test")
            {
                var field = this.View.BillBusinessInfo.GetField("FSupplierId");
                var funControl = Convert.ToInt32(field.FunControl);
                var msg = new StringBuilder(string.Format("字段【{0}】的功能控制设置如下:", field.Name)).AppendLine();
                #region 在用属性
                // 允许多选
                var allowMulti = ((funControl & Field.FUNCONTROL_MULTI) == Field.FUNCONTROL_MULTI);
                msg.Append("允许多选:").Append(GetBoolValueDesc(allowMulti)).AppendLine();
                // 允许复制
                var allowCopy = ((funControl & Field.FUNCONTROL_COPY) == Field.FUNCONTROL_COPY);
                msg.Append("允许复制:").Append(GetBoolValueDesc(allowCopy)).AppendLine();
                // 允许批量填充
                var batchFill = ((funControl & Field.FUNCONTROL_BATCHFILL) == Field.FUNCONTROL_BATCHFILL);
                msg.Append("允许批量填充:").Append(GetBoolValueDesc(batchFill)).AppendLine();
                // 允许引入
                var allowImport = ((funControl & Field.FUNCONTROL_IMPORT_FIELD) == Field.FUNCONTROL_IMPORT_FIELD);
                msg.Append("允许引入:").Append(GetBoolValueDesc(allowImport)).AppendLine();
                // 允许引出
                var allowExpFieldTmp = ((funControl & Field.FUNCONTROL_EXPORT_FIELD_TEMPLATE) == Field.FUNCONTROL_EXPORT_FIELD_TEMPLATE);
                msg.Append("允许引出:").Append(GetBoolValueDesc(allowExpFieldTmp)).AppendLine();
                // 允许连续新增携带
                var seriesNewTote = ((funControl & Field.FUNCONTROL_SERIES_NEW_TOTE) == Field.FUNCONTROL_SERIES_NEW_TOTE);
                msg.Append("允许连续新增携带:").Append(GetBoolValueDesc(seriesNewTote)).AppendLine();
                // 允许批量修改
                var bulkEdit = ((funControl & Field.FUNCONTROL_BULK_EDIT) == Field.FUNCONTROL_BULK_EDIT);
                msg.Append("允许批量修改:").Append(GetBoolValueDesc(bulkEdit)).AppendLine();
                // 允许单据转换携带
                var convertTote = field.IsConvertToteControl();
                msg.Append("允许单据转换携带:").Append(GetBoolValueDesc(convertTote)).AppendLine();
                #endregion
                #region 废弃属性
                // 默认导出字段模板
                var defaultExpFieldTmp = ((funControl & Field.FUNCONTROL_DEFAULT_EXPORT_FIELD_TEMPLATE) == Field.FUNCONTROL_DEFAULT_EXPORT_FIELD_TEMPLATE);
                // 允许参与交叉分析表
                var allowCrossReport = ((funControl & Field.FUNCONTROL_CROSS_REPORT) == Field.FUNCONTROL_CROSS_REPORT);
                #endregion
                this.View.ShowMessage(msg.ToString());
            }
        }
        private string GetBoolValueDesc(bool val)
        {
            return val ? "是" : "否";
        }
    }
}


<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。

上传图片


<3>BOSIDE扩展采购订单,菜单集合新增菜单项test,注册表单插件,保存元数据,开发完毕。

上传图片



【功能验证】

<1>登录业务站点,打开采购订单新增界面,点击菜单test,效果如下图。

上传图片

---------------------------------------------------------------------------------------------------------













【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696

二开案例.表单插件.获取字段功能控制设置

【应用场景】运行时解析元数据,获取设计时设置的字段的功能控制选项。功能控制属性对应的元数据XML如下图。【案例演示】采购订单,设置供...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息