donderdag 20 november 2014

Find projects that include a specific AOT object

static void FindWhatProjectsObjectExistsIn(Args _args)
    ProjectNode         pn;
    ProjectListNode     projectListNode;

    TreeNode            tn, tn2;
    TreeNodeIterator    tni, tni2;

    // Object we are searching for
    TreeNode            tnSearch = TreeNode::findNode(@'\Forms\SalesTable');

    projectListNode = SysTreeNode::getSharedProject();
    tni = projectListNode.AOTiterator();

    tn =;

    while (tn)
        pn = tn; // ProjectNode inherits TreeNode
        pn = pn.loadForInspection();

        tni2 = pn.AOTiterator();

        tn2 =;

        while (tn2)
            if (tn2.treeNodePath() == tnSearch.treeNodePath())
                info(strfmt("Found in shared project %1", tn.AOTname()));

            // info(tn2.applObjectType()); // Returns the type (Form/Class/Table/Etc)
            // info(tn2.AOTname()); // Returns the object name
            // info(tn2.treeNodePath()); // Returns the object path
            tn2 =;

        tn =;

maandag 13 oktober 2014

Foreground / Background - Report ‘shape’ control issues with PDF Printer

The issue is that ‘shapes’ on reports need to be placed first in their section (first from top to bottom) for the PDF printer to be able to display the text over the shape. It’s a back to front thing where ‘back to front’ corresponds to ‘top to bottom’ on the AX report section.