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;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值