Axapta 通过labelid查找fieldId

Axapta 通过labelid查找fieldId,axapta,x++,dynamics-ax-2012-r2,Axapta,X++,Dynamics Ax 2012 R2,我想问一下,是否可以通过字段的labelId找到特定表的fieldId 提前感谢可能的解决方案之一: static void FindTableFieldsByLabel(Args _args) { TableId tableId = tableNum(AccountingDistribution); str findLabel = literalStr('@SYS132687'); SysDictTable di

我想问一下,是否可以通过字段的labelId找到特定表的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');
}

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

可能的解决方案之一:

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');
}

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

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

  • 工具\标签\标签编辑器
  • 查找内容
    字段中输入LabelID
  • 单击
    所用的
    按钮
  • 在列表中查找表、地图或视图
  • 您应该在(工具\交叉引用\定期\更新)之前生成交叉引用


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

  • 工具\标签\标签编辑器
  • 查找内容
    字段中输入LabelID
  • 单击
    所用的
    按钮
  • 在列表中查找表、地图或视图
  • 您应该在(工具\交叉引用\定期\更新)之前生成交叉引用


    这是否用于获取引用特定标签ID的所有字段(和表格)的列表?这是否用于获取引用特定标签ID的所有字段(和表格)的列表?如果标签直接用于表格字段,这是一种很好的方法(可能正是@Nikos Kou所需要的),而不是在扩展数据类型或表字段使用的枚举上。如果EDT、枚举、报表、窗体、confkey和其他AOT对象上使用标签,请参阅更多交叉引用。使用按钮
    Add-ins\Cross-reference\Used by
    继续探索deeperA的好方法,如果标签直接用于表字段(可能这正是@Nikos Kou需要的),而不是用于扩展数据类型或表字段使用的枚举。如果标签用于EDT、枚举、报表、表单,confkey和其他AOT对象。使用按钮
    Add-ins\Cross-reference\Used by
    继续深入探索