本文主要是介绍D365 SysDictTable\SysDictField,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 前言
- 一、示例
前言
SysDictField 和 SysDictTable 用于访问表和字段的元数据信息。
一、示例
循环表,使对应数据源的字段禁止编辑
public void fieldNoAllowEdit(Common _common,formDataSource fds,boolean aE = false){TableId tableId;FieldId fieldId,extFieldId;SysDictTable dictTable;SysDictField dictField;int i, j;boolean ret = false;str fieldName;dictTable = new SysDictTable(_common.tableId);for (i = 1; i <= dictTable.fieldCnt(); i++){fieldId = dictTable.fieldCnt2Id(i);dictField = new SysDictField(_common.tableId, fieldId);fieldName = dictField.name();if (!dictField.isSystem() && (fieldName != 'fieldName1')){fds.object(fieldId).allowEdit(aE);}}}
判断两张相同表的字段值是否不同
public static boolean isDifference(Common _common1, Common _common2){TableId tableId;FieldId fieldId,extFieldId;SysDictTable dictTable;SysDictField dictField;int i, j;boolean ret = false;str fieldName;dictTable = new SysDictTable(_common1.tableId);for (i = 1; i <= dictTable.fieldCnt(); i++){fieldId = dictTable.fieldCnt2Id(i);dictField = new SysDictField(_common1.tableId, fieldId);fieldName = dictField.name();if (!dictField.isSystem() && (fieldName != 'PushState' && fieldName != 'PushDateTime'&& fieldName != 'Remark' && fieldName != 'CreateDateTime')){for (j = 1; j <= dictField.arraySize(); j++){extFieldId = fieldId2Ext(fieldId, j);if (_common1.(extFieldId) != _common2.(extFieldId)){ret = true;return ret;}}}}return ret;}
这篇关于D365 SysDictTable\SysDictField的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!