跳转至

控件API

在代码编辑区通过 this.DataFieldID 获取控件管理对象,通过控件管理对象可以实现取值、赋值操作,控制可见、可写控制及监听值变化等事件等功能。

控件取值

适用所有控件。

this.F0000002.GetValue(); // 获取控件值,F0000002 为控件编码

控件数据格式

不同的控件对应的数据格式不一样的,下面是每一个控件类型的数据格式示例,控件取值后根据这个格式去做逻辑处理,控件赋值需要使用对应格式的数据赋值。

单行文本

"文本内容"

多行文本

"多行文本内容"

日期

"2025-08-28"

数值

"1234"
"123.456"

单选框

"选项1"

复选框

"选项1;选项2"

下拉框

"选项3"

是否

true

地址

'{"adcode":"210203","adname":"辽宁省 大连市 西岗区","Detail":"详细地址"}'

地图

'{"Address":"广东省深圳市福田区莲花街道益田路市民广场","Point":{"lat":22.540862,"lng":114.05644},"CSType":2,"WGS84Point":{"lng":114.05132789740453,"lat":22.54358194824299}}'

人员单选/部门单选

['21517f93-1355-41ea-8833-c97e81592a4f']

人员多选/部门多选

['23066b3b-1367-4867-8500-cba6124e7e75', '3be20805-0812-400b-a2fb-377ce16539c1']

关联表单

'67761576-0eb0-41f4-ab6b-3ba181fa90e7'

关联多选

['67761576-0eb0-41f4-ab6b-3ba181fa90e7', '9bc7bf7c-b61a-4593-aeb5-22c25548c68e']

附件

{
    "AttachmentIds": "",
    "Attachments": "[{\"AttachmentId\":\"be9728f2-4fed-4164-a5bc-b960b259238a\",\"SourceFileId\":\"\",\"FileName\":\"材料检测合同-华科达-终版.doc\",\"ContentLength\":4131840,\"ContentType\":\"application/msword\",\"Desc\":\"\"},{\"AttachmentId\":\"dae68dd1-5ae9-4f6d-a79f-719c4b0cd6e5\",\"SourceFileId\":\"\",\"FileName\":\"材料检测合同-华科达-终版.doc\",\"ContentLength\":4131840,\"ContentType\":\"application/msword\",\"Desc\":\"\"}]",
    "DelAttachmentIds": ""
}

子表

[
    {
        "F0000019": "第一行单行文本",
        "F0000020": "2025-12-18",
        "F0000021": "13.14",
        "F0000022": "选项2",
        "F0000023": "选项1;选项2",
        "F0000024": [
            "002b5394-bf46-490d-b5eb-5bc5281810ff"
        ],
        "F0000025": [
            "f8efee5c-1fee-4475-baee-db417b769571"
        ],
        "ObjectId": "19791abe-70a1-4bc7-be1d-8912960f936d"
    },
    {
        "F0000019": "第二行单行文本",
        "F0000020": "2025-12-19",
        "F0000021": "15.21",
        "F0000022": "选项3",
        "F0000023": "选项2;选项3",
        "F0000024": [
            "002b5394-bf46-490d-b5eb-5bc5281810ff"
        ],
        "F0000025": [
            "f8efee5c-1fee-4475-baee-db417b769571"
        ],
        "ObjectId": "89020e9b-d9c1-43ce-aa5a-009ab981cfa1"
    }
]

控件赋值

适用除子表外的所有控件。

// 控件赋值,F0000002 为控件编码
this.F0000002.SetValue("单行文本");
this.F0000002.SetValue("多行文本");
this.F0000002.SetValue("选项1"); // 单选框,下拉框
this.F0000002.SetValue("选项1;选项2"); // 复选框
this.F0000002.SetValue("xxx-xxx-xxx-xxx"); // 关联表单
this.F0000002.SetValue("人员Id/部门Id"); // 人员单选,部门单选
this.F0000002.SetValue(["id1", "id2"]); // 人员多选,部门多选
this.F0000002.SetValue(["数据Id-1", "数据Id-2"]); // 关联多选
this.F0000002.SetValue("2024-05-17"); // 日期 无时分秒
this.F0000002.SetValue("2024-05-17 06:24:49"); // 日期 有时分秒
this.F0000002.SetValue(123.45); // 数值
this.F0000002.SetValue(true); // 是否
this.F0000002.SetValue(false); // 是否
// 地址控件
this.F0000002.SetValue('{"adcode":"440305","adname":"广东省 深圳市 南山区","Detail":"粤海街道科兴科学园A2单元1505室"}');
// 位置控件
this.F0000002.SetValue('{"Address":"广东省深圳市南山区粤海街道南山科兴科学园C2栋","Point":{"lat":22.547421,"lng":113.944386},"CSType":2,"WGS84Point":{"lng":113.93950766274739,"lat":22.550433917423504}}');
// 附件图片不支持赋值

设置只读

适用所有控件。

this.F0000002.SetReadonly(true); // 设置不可写,F0000002 为控件编码

设置不可见

适用所有控件。

this.F0000002.SetVisible(false); // 设置不可见,F0000002 为控件编码

绑定控件变更事件

适用所有控件。

this.F0000002.BindChange("F000002Changed", // 事件名称,不要重复
        function(){
            ValidatePhone(this); // 变化时执行的逻辑
        });

解除控件值变化事件

适用所有控件。

this.F0000002.UnbindChange("F000002Changed"); // 与 BindChange 对应

添加控件选项

仅适用于下拉框、复选框、单选框控件。

this.F0000002.AddItem("选项1"); // 添加选项,F0000002 为控件编码

清除控件选项

仅适用于下拉框、复选框、单选框控件。

this.F0000002.ClearItems(); // 清除选项,F0000002 为控件编码

设置字体颜色

设置控件内容展示的字体颜色。
仅适用于单行文本、多行文本、日期、数值控件类型。

this.F0000001.SetColor(Color.Blue); // F0000001 为控件编码

// 枚举值
enum Color {
  Default,
  Blue,
  Green,
  Yellow,
  Red,
  Cyan,
  Purple,
}

设置控件背景颜色

仅适用于单行文本、多行文本、日期、数值控件类型。

this.F0000001.SetBgColor(BgColor.Success); // F0000001 为控件编码

// 文字背景颜色
enum BgColor {
  Success,
  Info,
  Warning,
  Error,
}

设置控件文字大小

仅适用于单行文本、多行文本、日期、数值控件类型。

this.F0000001.SetFontSize(FontSize.Large); // F0000001 为控件编码

// 文字大小
enum FontSize {
  Small,
  Medium,
  Large,
}

设置控件文字字重

仅适用于单行文本、多行文本、日期、数值控件类型。

this.F0000001.SetFontWeight(FontWeight.Bold); // F0000001 为控件编码

// 文字字重
enum FontWeight {
  Light,
  Medium,
  Bold,
}

设置线类型

仅适用于单行文本、多行文本、日期、数值控件类型。

this.F0000001.SetLine(LineType.Underline); // F0000001 为控件编码

// 线类型
enum LineType {
  Underline, // 下划线
  Strikeline, // 删除线
}

自动聚焦

仅适用于单行文本、多行文本、数值控件类型。

this.F0000001.SetFocus(); // 聚焦时自动滚动到指定控件处,默认值:true
this.F0000001.SetFocus(false); // 聚焦时不自动滚动到指定控件处

控件聚焦事件

仅适用于单行文本、多行文本、数值控件类型。
只支持编辑态控件,可以配合 SetFocus 一起使用,先定义 OnFocus 监听,后执行 SetFocus

this.F0000001.OnFocus(function(event){ 
  console.log(event)
});

控件按键事件

仅适用于单行文本、多行文本、数值控件类型。
需要根据 event.keyCode 来判断具体点击的是哪个按钮,如:event.keyCode == 'enter' 为回车键。

this.F0000001.OnKeyDown(function(event){ 
  console.log(event.keyCode) 
});

控件点击事件

仅适用于单行文本、多行文本、数值控件类型。

this.F0000001.BindClickEvent(function(){ 
  console.log(event.keyCode);
});

子表 API

添加子表行

this.SubTable.AddRow(subObjectId,{"SubTable.ColumnName":Value});

//示例
const controlManager = this.D000001AssetCheckDetail; // D000001AssetCheckDetail 为子表编码
for(var i = 0; i < responseValue.ReturnData.Objects.length;i++) {
      var subObjectId = $.IGuid();
      var subObject =responseValue.ReturnData.Objects[i];
      controlManager.AddRow(subObjectId, {
        "D000001AssetCheckDetail.AssetID":{ObjectId:subObject.ObjectId,Name:subObject.ValueTable.AssetName},
        "D000001AssetCheckDetail.AssetSeqNo": subObject.ValueTable.SeqNo,
        "D000001AssetCheckDetail.Specification": subObject.ValueTable.Specification,
        "D000001AssetCheckDetail.Location":subObject.ValueTable.Location,
        "D000001AssetCheckDetail.User":subObject.ValueTable.User
      });
}

更新子表行

this.SubTable.UpdateRow(subObjectId,{"SubTable.ColumnName":Value});

//示例
var controlManager = this.D287672OutboundProductDetails; // D287672OutboundProductDetails 为子表编码
var existedValue=controlManager.GetValue();
for(var i=0;i< existedValue.length;i++){
     let rowId = existedValue[i].ObjectId;
     controlManager.UpdateRow(rowId, {
        "D287672OutboundProductDetails.DeliveryQuantity" : 20
    });
}

清除子表所有行

this.SubTable.ClearRows();

//示例
var controlManager = this.D000001AssetCheckDetail; // D000001AssetCheckDetail 为子表编码
controlManager.ClearRows();

获取子表数据行数

var rowsCount= this.F67c89495df154ab69ede62c1b61a0658.GetRowsCount(); // F67c89495df154ab69ede62c1b61a0658 为子表编码

控件变更事件

this.D00018F5e15d3daed0747d384200095b49f0582.BindChange("change.zibiao",function(data){
    console.log(data);
    // 明细表内任意字段值发生变化,data[0] 为值发生变化的控件管理器
    // 新增一行明细表,data[0] 为新增行的控件管理器列表,可以通过控件编码全程获取
    // 新增一行明细表,data[1] 为操作名称"add"
    // 删除一行明细表,data[0] 为 {"rowId":"44216c19-c5a5-480a-9861-d38c61568179"} 格式
    // 删除一行明细表,data[1] 为操作名称 "delete"
    // 删除一行明细表,data[2] 为删除的数据明细,如下,key 为字段编码全称,value 为对应的控件管理器
    //   {
    //     "D00018F5e15d3daed0747d384200095b49f0582.F0000001": {},
    //     "D00018F5e15d3daed0747d384200095b49f0582.Febdeb829364e49099679ef858fe82b8c": {},
    //     "D00018F5e15d3daed0747d384200095b49f0582.Fc7ef01328cfb42b8b43556babe5317a4": {},
    //     "D00018F5e15d3daed0747d384200095b49f0582.Fa6c2aee82afb4ec58d8fce139c1e17bd": {},
    //     "D00018F5e15d3daed0747d384200095b49f0582.Fe90cd1c684fa4381bd8d43e6a68dab52": {},
    //     "D00018F5e15d3daed0747d384200095b49f0582.F9fb83d0775c645bfb0d8db86cd7bf83c": {},
    //     "D00018F5e15d3daed0747d384200095b49f0582.F5fb16b80613c40a6acb0fab02b44ae16": {}
    // }
    var length = data.length;
    if(length>0)
    {
      // 获取控件管理器
        var controlManager = data[0];
        //子表内某一个字段的变更
        if(controlManager.DataField=="D00018F5e15d3daed0747d384200095b49f0582.Fe90cd1c684fa4381bd8d43e6a68dab52"){
          // 通过控件管理器可以对控件实现取值,赋值等操作   
          var changedValue = controlManager.GetValue();
        }
    }
    else if(length >=2) {
      var operation = data[1];//取得子表按钮代码  add, delete
      if(operation == "add"){
         //编写新增行逻辑
         console.log("执行了新增行...");
      }else if(operation == "delete"){
         //编写删除行逻辑
         console.log("执行了删除行...");
      }
    }
  });

子表控件点击事件

实现点击子表单元格中控件的时候处理逻辑,注意这里有两重BindClickEvent

// 绑定点击事件
this.D000261GXSamplelist.BindClickEvent( function(controlManager ) {
    // 当点击的是子表的编辑详情时
    var currentRowId = controlManager.ObjectId; // 当前子表行 Id
    // 子表中某个具体控件的点击事件
    if( controlManager.DataField == "D000261GXSamplelist.Measuredvaluesofthesample" ) {
        controlManager.BindClickEvent( function() {
            // 获取当前子表行中其他控件的值
            var sampleNumber = parent.D000261GXSamplelist.GetCellManager( currentRowId, "D000261GXSamplelist.SampleNumber" ).GetValue(); // 样本编号
            var material = parent.D000261GXSamplelist.GetCellManager( currentRowId,"D000261GXSamplelist.MaterialinformationID" ).GetValue(); // 物料信息
            var inspStandrad = parent.D000261GXSamplelist.GetCellManager( currentRowId,"D000261GXSamplelist.Inspectionstandard" ).GetValue(); // 检验标准
            var inspector = parent.D000261GXSamplelist.GetCellManager( currentRowId,"D000261GXSamplelist.Qualityinspector" ).GetValue(); // 质检员
            var processInspectionForm = $.SmartForm.ResponseContext.BizObjectId;
            var process = parent.D000261GXSamplelist.GetCellManager( currentRowId,"D000261GXSamplelist.ProcessId" ).GetValue(); // 工序
            var schemaCode = "D000261SampleMeasuredValuerecordtable"; // 样本实测值记录表
        })
    }
});