}       //	getWhereClause

        /// <summary>
        /// Get Child IDs
        /// </summary>
        /// <param name="ID">start node</param>
        /// <returns>array if IDs</returns>
        public int?[] GetChildIDs(int ID)
        {
            log.Fine("(" + _ElementType + ") ID=" + ID);
            List <int?> list = new List <int?>();
            //
            VTreeNode node = _tree.GetRootNode().FindNode(ID);

            log.Finest("Root=" + node);
            //
            if (node != null && node.IsSummary)
            {
                System.Collections.IEnumerator en = node.preorderEnumeration();
                while (en.MoveNext())
                {
                    VTreeNode nn = (VTreeNode)en.Current;
                    if (!nn.IsSummary)
                    {
                        list.Add(Utility.Util.GetValueOfInt(nn.GetNode_ID()));
                        log.Finest("- " + nn);
                    }
                    else
                    {
                        log.Finest("- skipped parent (" + nn + ")");
                    }
                }
            }
            else //	not found or not summary
            {
                list.Add(Utility.Util.GetValueOfInt(ID));
            }
            //
            int?[] retValue = new int?[list.Count];
            retValue = list.ToArray();
            return(retValue);
        }       //	getWhereClause
        }       //	getTreeType

        /// <summary>
        /// Get Where Clause
        /// </summary>
        /// <param name="ID">start node</param>
        /// <returns>ColumnName = 1 or ColumnName IN (1,2,3)</returns>
        public String GetWhereClause(int ID)
        {
            log.Fine("(" + _ElementType + ") ID=" + ID);
            String ColumnName = MAcctSchemaElement.GetColumnName(_ElementType);

            if (ID == 0)        //	All
            {
                return(ColumnName + " IS NOT NULL");
            }
            VTreeNode nod = _tree.GetRootNode().FindNode(ID);

            log.Finest("Root=" + nod);
            //
            StringBuilder result = null;

            if (nod != null && nod.IsSummary)
            {
                StringBuilder sb = new StringBuilder();
                System.Collections.IEnumerator en = nod.preorderEnumeration();

                while (en.MoveNext())
                {
                    VTreeNode nn = (VTreeNode)en.Current;
                    if (!nn.IsSummary)
                    {
                        if (sb.Length > 0)
                        {
                            sb.Append(",");
                        }
                        sb.Append(nn.GetNode_ID());
                        log.Finest("- " + nn);
                    }
                    else
                    {
                        log.Finest("- skipped parent (" + nn + ")");
                    }
                }

                result = new StringBuilder(ColumnName).Append(" IN (").Append(sb).Append(")");
            }
            else        //	not found or not summary
            {
                result = new StringBuilder(ColumnName).Append("=").Append(ID);
            }
            //
            log.Finest(result.ToString());
            return(result.ToString());
        }       //	getWhereClause