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

插件二开:如何在移动端 动态创建控件及字段

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

插件二开:如何在移动端 动态创建控件及字段

一、概述:

     本篇将介绍如何在移动端动态创建控件/字段。


二、应用场景:

    用于表单上的字段或控件不固定,需要动态创建的情况。


三、详细介绍:

以下是一个简单示例:

3.1  创建一个移动表单,增加一些固定字段和控件,然后拖一个流式布局控件作为动态控件及字段的容器,标识为“FFlowCustomControl”,大概设计如下:

  

3. 2. 动态字段:创建一个 折叠控件,里面有一个文本字段,效果如下:


参考代码如:

using Kingdee.BOS;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Core.Metadata.ControlElement;
using Kingdee.BOS.Core.Metadata.FieldElement;
using Kingdee.BOS.Mobile.Metadata.ControlElement;
using Kingdee.BOS.Mobile.PlugIn;
using Kingdee.BOS.Util;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using System;

namespace BOS.Demo.MobilePlugIn
{
    /// <summary>
    /// 移动表单继承:AbstractMobilePlugin, 移动单据继承:AbstractMobileBillPlugin, 移动单据列表继承:AbstractMobileListPlugin
    /// </summary>
    [System.ComponentModel.Description("移动表单插件 - 动态创建控件/字段")]
    public class MForm_CreateControls : AbstractMobilePlugin
    { 
        private BusinessInfo _myBusinessInfo; 
        private LayoutInfo _myLayoutInfo; 

        /// <summary>
        /// 设置元数据
        /// </summary>
        /// <param name="e"></param>
        public override void OnSetBusinessInfo(SetBusinessInfoArgs e)
        {
           //创建当前业务元数据副本,避免并发时修改当前元数据导致共享的原始元数据发生改变导致错误
           _myBusinessInfo = (BusinessInfo)ObjectUtils.CreateCopy(this.View.OpenParameter.FormMetaData.BusinessInfo);
           _myLayoutInfo = (LayoutInfo)ObjectUtils.CreateCopy(this.View.OpenParameter.FormMetaData.GetLayoutInfo());

           //1.创建 字段1
           TextField field1 = new TextField();
           field1.Key = "FField1";
           field1.PropertyName = "FField1";
           field1.FieldName = "FField1";
           field1.Name = new LocaleValue("字段1");
           field1.EntityKey = "FBillHead";
           //2.添加字段到 BusinessInfo,多个字段,重复1和2
           _myBusinessInfo.Add(field1);
          //强制重构动态实体定义
           _myBusinessInfo.GetDynamicObjectType(true);
           
           e.BusinessInfo = _myBusinessInfo;
           e.BillBusinessInfo = _myBusinessInfo;
        }

        /// <summary>
        /// 设计布局
        /// </summary>
        /// <param name="e"></param>
        public override void OnSetLayoutInfo(SetLayoutInfoArgs e)
        {
            //动态控件/字段所在的布局,用于前端指令的布局数据
            LayoutInfo controlLayout = new LayoutInfo();
            //折叠控件
            AccordionPanelAppearance accordionPanel = new AccordionPanelAppearance();
            accordionPanel.Container = "";
            accordionPanel.Key = "MyCollapse";
            accordionPanel.Caption = new L

插件二开:如何在移动端 动态创建控件及字段

一、概述: 本篇将介绍如何在移动端动态创建控件/字段。二、应用场景: 用于表单上的字段或控件不固定,需要动态创建的情况。三...
点击下载文档文档为doc格式

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

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