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

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


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 (внешнее изменение)