How to export Tables list with Tables group

static void aotTableGroupList(Args _args)
{
    TreeNode                            tableNode = TreeNode::findNode(@'\Data Dictionary\Tables');
    TreeNodeIterator                    iterator = tableNode.AOTiterator();
    ClassName                           tableName;
    UtilElements                        utilElements;
    int                                 i;
   
    System.IO.StreamWriter              sw;
    InteropPermission                   perm;
   
    Dialog                              dialog;
    DialogField                         dfFilePath;
    Filename                            fileName;
    FilePath                            filePath;

    str                                 string;
    str 200                             timeStamp;
    ;

    tableNode = iterator.next();
   
    dialog          = new Dialog("Table list with table group");
    dfFilePath      = dialog.addFieldValue(ExtendedTypeStr(FilePath), filePath, 'File path');
   
    if (dialog.run())
    {
        filePath    = dfFilePath.value();
       
        if (!filePath)
        {
            throw error("Please define file path.");
        }

        perm        = new InteropPermission(InteropKind::ClrInterop);

        timeStamp   = System.String::Format("{0:ddMMMyy_hhmm}", (DateTimeUtil::applyTimeZoneOffset(DateTimeUtil::utcNow(), Timezone::GMTPLUS0530CHENNAI_KOLKATA_MUMBAI)));

        fileName    = filePath + "\\\\Table list with table group_"+ timeStamp + ".csv";

        perm.assert();

        sw = new System.IO.StreamWriter(fileName);
   
   
        string = 'Table Name'  + ',' +
                'Table Group'
        ;

        sw.WriteLine(string);
        string    ='' ;

        while(tableNode)
        {
            i++;
            tableName = tableNode.treeNodeName();
            tableNode.AOTgetProperties(true);


            select utilElements
                where utilElements.RecordType   == UtilElementType::Table
                    && utilElements.Name        == tableName;
       
            string  =   strRem(tableName, ',')                                  + ',' +
                        strRem(tableNode.AOTgetProperty('TableGroup'), ',')
            ;

            sw.WriteLine(string);
            string    = '';

            //info(strfmt('%1 - %2',tableName, tableNode.AOTgetProperty('TableGroup')));

            tableNode = iterator.next();
        }
        sw.Flush();
        sw.Close();
        sw.Dispose();

        CodeAccessPermission::revertAssert();
        WinApi::shellExecute(fileName);
    }
}

Comments