控件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"; // 样本实测值记录表
})
}
});