Look up and set up AOT Properties

Sometimes,We often need to lookup the dictionary date( such as table) list or modified the properties on AOT .

so,X++ code  as below:

Jimmy August 3th 2010

Batch set up the field for table properties

static void Jimmy_LookUpsetTableList(Args _args)
{
    #AOT
    treeNode            tableNode,childNode;
    AotTableFieldList   myAOTTablefieldList;
    SysDictTable        sysDictTable = new SysDictTable(tablenum(Test));
    treenodeIterator    nodeIterator;
    str                 fields;
    Str                 properties,Props;
;
    tableNode           = TreeNode::findNode(#TablesPath+'\\'+sysDictTable.name());
    myAOTTablefieldList = TreeNode::findNode(#TablesPath+'\\'+sysDictTable.name() + "\\Fields");

    nodeIterator        = myAOTTablefieldList.AOTiterator();
    childNode           = nodeIterator.next();
    while (childNode)
    {
        fields = childNode.treeNodeName();

        if (fields == "ItemId")
         {
            properties = setProperty(childNode.AOTgetProperties(), "Label","New label");
            Props =
            "  PROPERTIES\n" +
            "  Name                #ItemId\n" +
            "  Label               #Item number\n" +
            "  HelpText            #Jimmy X++ Code\n" +
            "  ExtendedDataType    #ItemId\n" +
            "  ENDPROPERTIES\n";

            childNode.AOTsetProperties(properties);//设置单个属性
            childNode.AOTsetProperties(Props);//可以批量设置表属性
            childNode.AOTsave();
            childNode.AOTcompile();
            childNode.AOTrefresh();
        }
        info(fields);
        childNode = nodeIterator.next();
    }
}

Look up the table properties

static void Jimmy_TableProperty(Args _args)   
{   
/*  
    Author      :       Jimmy xie
    Date        :       April 16, 2010 
    Purpose     :       get to the table properties  
*/ 
 
    #AOT   
    str             Property;   
    TreeNode        TreeNode;   
    identifiername  identifiername;   
    str             Name;   
    ;   
  
    TreeNode    = TreeNode::findNode(#TablesPath);   
    TreeNode    = TreeNode.AOTfirstChild();   
    while (TreeNode)   
    {   
            Name = TreeNode.AOTname();   
            Property       = TreeNode.AOTgetProperties();   
            identifiername = findproperty(Property, 'SecurityKey');   
            info (strfmt("%1, %2", Name, identifiername));   
            treenode = TreeNode.AOTnextSibling();   
    }   
}  

set up the table properties

static void Jimmy_TablePropertySet(Args _args)   
{   
/*  
    Author     :       Jimmy xie
    Date       :       April 16, 2010
    Purpose    :       set up to the table properties  
*/  
  
    str                Property;   
    TreeNode    TreeNode;   
    str               Name;   
    ;   
       
    Name = "CustTable";   
    TreeNode  = TreeNode::findNode("Data Dictionary\\Tables\\" + Table);   
    if (TreeNode)   
  
           ttsbegin;   
           Property       = TreeNode.AOTgetProperties();   
           Property       = SetProperty(Property, "ModifiedDate", "Yes");   
           TreeNode.AOTsetProperties(Property);   
           TreeNode.AOTcompile();   
           TreeNode.AOTsave();   
        }   
}

Look up the projects properties of AOT

private void Jimmy_ProjectsList()
{
/*  
    Author      :       Jimmy xie
    Date        :       September 30, 2010
    Purpose     :       get to the table properties 
*/
TreeNode privateProjectNode; TreeNode sharedProjectNode; TreeNode node; ProjectNode projectNode; int i; ; privateProjectNode = infolog.projectRootNode().AOTfirstChild(); node = privateProjectNode.AOTfirstChild(); setPrefix(privateProjectNode.AOTname()); while(node != null) { info("--"+node.AOTname()); node = node.AOTnextSibling(); } sharedProjectNode = privateProjectNode.AOTnextSibling(); node = sharedProjectNode.AOTfirstChild(); setPrefix(sharedProjectNode.AOTname()); while(node != null) { i++; projectNode = node; projectNode = projectNode.loadForInspection(); info(strfmt("%6 : %1, -- %2, %3, -- %4, %5",projectNode.name(),projectNode.createdBy(),projectNode.creationDate(),projectNode.changedBy(),projectNode.changedDate(),i)); node = node.AOTnextSibling(); projectNode = node; } /*** loadForInspection()非常重要,我们需要把Project加载进来,才能确保可以读取到所有内容 你也可以调用getRunNode()方法来加载Project,但这时会打开Project form */ }

 

原文地址:https://www.cnblogs.com/Fandyx/p/1791042.html