예제 #1
0
        void item_Click(CMenu menu)
        {
            if (menu.MType == enumMenuType.ViewMenu)
            {
                CView view = (CView)Program.Ctx.ViewMgr.Find(menu.UI_View_id);
                if (view != null)
                {
                    CTable table = (CTable)Program.Ctx.TableMgr.Find(view.FW_Table_id);
                    if (table == null)
                    {
                        return;
                    }
                    CBaseObjectMgr objMgr = Program.Ctx.FindBaseObjectMgrCache(table.Code, Guid.Empty);
                    if (objMgr == null)
                    {
                        objMgr        = new CBaseObjectMgr();
                        objMgr.TbCode = table.Code;
                        objMgr.Ctx    = Program.Ctx;
                    }

                    if (view.VType == enumViewType.Single)
                    {
                        SingleView frm = new SingleView();
                        frm.View          = view;
                        frm.BaseObjectMgr = objMgr;
                        frm.Show();
                    }
                    else if (view.VType == enumViewType.MasterDetail)
                    {
                        MasterDetailView frm = new MasterDetailView();
                        frm.View          = view;
                        frm.BaseObjectMgr = objMgr;
                        frm.Show();
                    }
                    else
                    {
                        MultMasterDetailView frm = new MultMasterDetailView();
                        frm.View          = view;
                        frm.BaseObjectMgr = objMgr;
                        frm.Show();
                    }
                }
            }
            else if (menu.MType == enumMenuType.WindowMenu)
            {
                CWindow window = (CWindow)Program.Ctx.WindowMgr.Find(menu.UI_Window_id);
                if (window != null)
                {
                    LayoutWindow frm = new LayoutWindow();
                    frm.Window = window;
                    frm.Show();
                }
            }
            else if (menu.MType == enumMenuType.UrlMenu)
            {
                bool bIsWebUrl = menu.Url.Length > 4 && menu.Url.Substring(0, 4).Equals("http", StringComparison.OrdinalIgnoreCase);
                if (!bIsWebUrl && !File.Exists(menu.Url))
                {
                    MessageBox.Show(string.Format("{0} 不存在!", menu.Url));
                    return;
                }
                System.Diagnostics.Process.Start(menu.Url);
            }
            else if (menu.MType == enumMenuType.ReportMenu)
            {
                CCompany  Company = (CCompany)Program.Ctx.CompanyMgr.Find(Program.User.B_Company_id);
                CReport   Report  = (CReport)Company.ReportMgr.Find(menu.RPT_Report_id);
                RunReport frm     = new RunReport();
                frm.m_Report = Report;
                frm.Show();
            }
        }