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

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


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

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

axapta:каксоздатьedtпрограммно [2018/04/13 22:43] (текущий)
Строка 1: Строка 1:
 +Раздел: [[Метаданные | ]]
 +----
 +{{toc}}
 +
 +=== Ax 3.0 ===
 +
 +По видимому, в [[Класс/TreeNode]] нет методов, позволяющих это делать(вероятно, поэтому добавили класс [[Класс/AOTTableFieldList]]). 
 +
 +Единственный выход -- экспортировать "шаблонный" [[EDT | ]] и использовать метод importElement класса [[Класс/Infolog | ]] чтобы сделать новый. Чтобы увидеть, как его использовать -- посмотрите в класс [[Класс/SysImportElements]]
 +
 +Можно воспрользоваться следующим примером:
 +<code xpp>
 + 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;
 + 
 + 
 + }
 +</code>
 +=== Ax 4.0 ===
 +
 +(thanx to Ed Tarnovsky)
 +<code xpp>
 +   treeNode = xInfo.rootNode();
 +   treeNode = treeNode.AOTfindChild('Data Dictionary');
 +   treeNode = treeNode.AOTfindChild('Extended Data Types');
 +   treeNode=treeNode.AOTaddExtendedDataType(_EDT,Types::String);
 +   treeNode.AOTsetProperties(Props);
 +</code>
 +Также можно работать с отношениями  [[EDT | ]] через aotAdd()
 +
 +
  
axapta/каксоздатьedtпрограммно.txt · Последнее изменение: 2018/04/13 22:43 (внешнее изменение)