通过labelid查找fieldId

Find fieldId through labelid

请问是否可以通过字段的labelId找到具体table的fieldId

提前致谢

可能的解决方案之一:

static void FindTableFieldsByLabel(Args _args)
{
    TableId         tableId     = tableNum(AccountingDistribution);
    str             findLabel   = literalStr('@SYS132687');
    SysDictTable    dictTable;
    SysDictField    dictField;
    FieldId         fieldId;

    dictTable   = new SysDictTable(tableId);
    fieldId     = dictTable.fieldNext(0);

    while (fieldId)
    {
        dictField = dictTable.fieldObject(fieldId);

        if (dictField.isSql() && !dictField.isSystem()
            && dictField.labelLabel() == findLabel)
        {
            info(strFmt('Field name: %1', dictField.name()));
        }

        fieldId = dictTable.fieldNext(fieldId);
    }

    info('Job completed');
}

如果您想忽略在扩展数据类型上设置的标签而不是在 table 字段上设置的标签,您也可以使用 dictField.labelDefined()

使用交叉引用。通过接口:

  1. 工具\标签\标签编辑器
  2. Find what 字段中输入 LabelID
  3. 单击 Used by 按钮
  4. 在列表中查找表、地图或视图

您应该先生成交叉引用(工具\交叉引用\定期\更新)