Инструменты пользователя

Инструменты сайта


axapta:каксоздатьedtпрограммно

Раздел: Метаданные


toc

Ax 3.0

По видимому, в TreeNode нет методов, позволяющих это делать(вероятно, поэтому добавили класс AOTTableFieldList).

Единственный выход – экспортировать «шаблонный» EDT и использовать метод importElement класса Infolog чтобы сделать новый. Чтобы увидеть, как его использовать – посмотрите в класс SysImportElements

Можно воспрользоваться следующим примером:

 static void Job19(Args _args)
 {
    UtilIdElements uie;
    XInfo XInfo = new XInfo();
    TreeNode TNode;
    TreeNode DNode;
 
    str      Props =
        "PROPERTIES\n" +
        "  Name                #AXUStr35\n" +
        "  Label               #\n" +
        "  HelpText            #\n" +
        "  FormHelp            #\n" +
        "  ArrayLength         #1\n" +
        "  DisplayLength       #Auto\n" +
        "  ConfigurationKey    #\n" +
        "  ButtonImage         #Arrow\n" +
        "  Extends             #\n" +
        "  DisplayHeight       #Auto\n" +
        "  StringSize          #35\n" +
        "  Adjustment          #Left\n" +
        "  Alignment           #Auto\n" +
        "  ChangeCase          #Auto\n" +
        "ENDPROPERTIES\n";
 
    select maxof(id) from uie where uie.recordType == UtilElementType::ExtendedType && uie.utilLevel  == XInfo.currentAOLayer();
 
    uie.id++;
    uie.utilLevel  = XInfo.currentAOLayer( );
    uie.recordType = UtilElementType::ExtendedType;
    uie.name       = "AXUStr35";
 
    uie.insert();
    DNode = TreeNode::findNode("Data Dictionary\\Extended Data Types");
    DNode.AOTrefresh();
 
    TNode = TreeNode::findNode("Data Dictionary\\Extended Data Types\\AXUStr35");
    TNode.sysUtilDelete();
 
    TNode.AOTsetProperties(Props);
    TNode.AOTsave();
 
    pause;
 
 
 }

Ax 4.0

(thanx to Ed Tarnovsky)

   treeNode = xInfo.rootNode();
   treeNode = treeNode.AOTfindChild('Data Dictionary');
   treeNode = treeNode.AOTfindChild('Extended Data Types');
   treeNode=treeNode.AOTaddExtendedDataType(_EDT,Types::String);
   treeNode.AOTsetProperties(Props);

Также можно работать с отношениями EDT через aotAdd()

axapta/каксоздатьedtпрограммно.txt · Последнее изменение: 2018/04/13 22:43 (внешнее изменение)