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

【二开插件】动态创建单据体字段

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

【二开插件】动态创建单据体字段

        /// 元数据
        private BusinessInfo _currInfo = null;
        /// 界面布局
        private LayoutInfo _currLayout = null;
        
        public override void ButtonClick(ButtonClickEventArgs e){
                    base.ButtonClick(e);
                        if (e.Key.EqualsIgnoreCase("F_BDI_Button_83g"))
                        {
                            // 修改元数据
                            this.ReBuildFields();
                            // 根据新的元数据,重构单据体表格列
                            EntryGrid grid = this.View.GetControl<EntryGrid>("FList");//单据体标识FList
                            grid.SetAllowLayoutSetting(false); // 列按照索引显示
                            EntityAppearance listAppearance = _currLayout.GetEntityAppearance("FList");
                            grid.CreateDyanmicList(listAppearance);
            
                            // 填充数据
                            this.SetData();
                            // 下达一个指令
                            this.View.SendDynamicFormAction(this.View);
                        }
        }
         #region 动态创建列
        public override void OnSetBusinessInfo(SetBusinessInfoArgs e)
        {
            // 复制界面元数据到本地变量
            FormMetadata currMeta = (FormMetadata)ObjectUtils.CreateCopy(
            this.View.OpenParameter.FormMetaData);
            _currInfo = currMeta.BusinessInfo;
            _currLayout = currMeta.GetLayoutInfo();
            // 用本地的元数据,替换动态表单引擎持有的元数据
            e.BusinessInfo = _currInfo;
            e.BillBusinessInfo = _currInfo;
        }
        /// 通常在此事件中,修改界面元数据;
        /// 本示例,在此事件中,把界面元数据复制到本地,避免与其他实例公用元数据,造成串账
        public override void OnSetLayoutInfo(SetLayoutInfoArgs e)
        {
            e.LayoutInfo = _currLayout;
            e.BillLayoutInfo = _currLayout;
        }

        private void SetData()
        {
            // 使用最新的元数据,重新界面数据包
            _currInfo.GetDynamicObjectType(true);
           this.Model.CreateNewData();
            this.View.Model.CreateNewEntryRow("FList");
            foreach (Field fld in _currInfo.GetEntity("FList").Fields)
            {
                this.Model.SetValue(fld.Key, 1, 0);
            }
            this.View.Model.CreateNewEntryRow("FList");
            foreach (Field fld in _currInfo.GetEntity("FList").Fields)
            {
                this.Model.SetValue(fld.Key, 1.1, 1);
            }
        }
        private void ReBuildFields()
        {
            // 获取单据体表格的元数据及外观
            Entity entity = _currInfo.GetEntity("FList");
            EntityAppearance entityApp = _currLayout.GetEntityAppearance("FList");
            // 清除全部字段
            int oldCount = entity.Fields.Count;
            for (int i = oldCount - 1; i >= 0; i--)
            {
                Field fld = entity.Fields[i];
                _currInfo.Remove(fld);
                Appearance fldApp = _currLayout.GetAppear

【二开插件】动态创建单据体字段

/// 元数据 private BusinessInfo _currInfo = null; /// 界面布局 private LayoutInfo _currLayout = null;...
点击下载文档文档为doc格式

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

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