Some one may need to use codes to create or edit a method in Axapta.
Here is an example to show how to create a lookup method for a form's field in runtime.
static void CreateFieldMethod(Args _args)
{
    TreeNode tn1,tnAddr, methodsNode;
    MemberFunction memberFunction;
    str source;
    ;
    //Thanks for Max Belugin's comments,
    //it is really good to use Verbatim String as well.
    //The reason why I use escape characters here is
    //because this line of code is copied from standard Axapta application :)
    tn1 = infolog.findNode("\\Forms\\Address\\Data Sources\\Address\\Fields\\AddrRecId");
    tnAddr = infolog.findNode( "\\Forms\\Address" );
    methodsNode = tn1.AOTfindChild( 'Methods' );
    methodsNode.AOTadd('lookup');
    memberFunction = methodsNode.AOTfindChild( 'lookup' );
    source = @"public void lookup(FormControl _formControl, str _filterStr)
                     {
                            super(_formControl, _filterStr);
                     }" ;
    memberFunction.AOTsetSource(source, false);
    memberFunction.AOTsave();
    methodsNode.AOTsave();
    tnAddr.AOTcompile();
}
Tuesday, November 18, 2008
Subscribe to:
Post Comments (Atom)
 

No comments:
Post a Comment