public virtual void LoadMenu()
        {
            var menu = Menu as Terrasoft.UI.WebControls.Controls.MenuBaseCollection;

            if (menu != null)
            {
                var    appCache            = UserConnection.SessionCache.WithLocalCaching(TSConfiguration.CacheUtilities.WorkspaceCacheGroup);
                var    reportsCollection   = Terrasoft.Configuration.CommonUtilities.GetSelectData(UserConnection, Terrasoft.Configuration.CommonUtilities.GetModuleReportsSelect, appCache, TSConfiguration.CacheUtilities.ReportsCache);
                string captionColumnName   = Terrasoft.Configuration.CommonUtilities.GetLczColumnName(UserConnection, "SysModuleReport", "Caption");
                var    reportSchemaManager = UserConnection.GetReportSchemaManager();
                var    pageSchemaManager   = UserConnection.GetSchemaManager("PageSchemaManager") as Terrasoft.UI.WebControls.PageSchemaManager;
                reportsCollection.Sort(delegate(Dictionary <string, object> p1, Dictionary <string, object> p2) {
                    return(p1[captionColumnName].ToString().CompareTo(p2[captionColumnName].ToString()));
                });
                foreach (var report in reportsCollection)
                {
                    Guid sysModuleId = new Guid(report["sysModuleId"].ToString());
                    if (SysModuleId == sysModuleId)
                    {
                        Guid   reportId      = new Guid(report["sysModuleReportId"].ToString());
                        Guid   typeId        = new Guid(report["typeId"].ToString());
                        string caption       = report[captionColumnName].ToString();
                        string helpContextId = report["helpContextId"].ToString();
                        if (typeId == new Guid("32F72C9C-72C7-44E0-8C84-34C9ED17CA50"))
                        {
                            Guid reportSchemaUId         = new Guid(report["sysReportSchemaUId"].ToString());
                            Guid sysOptionsPageSchemaUId = report["sysOptionsPageSchemaUId"] == DBNull.Value ? Guid.Empty : new Guid(report["sysOptionsPageSchemaUId"].ToString());
                            if (reportSchemaManager.FindItemByUId(reportSchemaUId) != null &&
                                (sysOptionsPageSchemaUId == Guid.Empty || pageSchemaManager.FindItemByUId(sysOptionsPageSchemaUId) != null))
                            {
                                menu.Add(CreateMenuItem(caption, reportSchemaUId.ToString()
                                                        + @"&" + sysOptionsPageSchemaUId.ToString() + @"&" + helpContextId,
                                                        "PrintReportMenuItem_" + reportId.ToString("n"), true));
                            }
                        }
                        else if (typeId == new Guid("8BC259EF-4276-4906-B7A6-23DC59BE7FE2"))
                        {
                            menu.Add(CreateMenuItem(caption, reportId.ToString("n"),
                                                    "PrintReportMenuItem_" + reportId.ToString("n"), false));
                        }
                    }
                }
            }
        }