Ejemplo n.º 1
0
        protected override void OnSetController(BaseController value)
        {
            var controller = value as ReportTableController;

            if (controller == null)
            {
                return;
            }

            if (DataFieldsEditControl != null)
            {
                DataFieldsEditControl.Parent = null;
                DataFieldsEditControl.CloseControl();
                DataFieldsEditControl.Dispose();
            }

            DataFieldsEditControl              = controller.ParameterEditController.CreateEditControl(typeof(DataField)) as DataParametersEditControl;
            DataFieldsEditControl.Dock         = DockStyle.Top;
            DataFieldsEditControl.AutoSizeMode = AutoSizeMode.GrowAndShrink;
            DataFieldsEditControl.AutoSize     = true;
            DataFieldsEditControl.Parent       = this;

            ExtendAddonPublic.GetAddonExtendProperties(controller);

            RecreateParameterInputControls();

            base.OnSetController(value);
        }
Ejemplo n.º 2
0
        protected override void OnSetController(BaseController value)
        {
            var controller = value as GridControlController;

            ExtendAddonPublic.GetAddonExtendProperties(controller);
            GridViewType = controller.GridViewType;
            MainView.SetLayoutData(controller.LayoutData);
        }
Ejemplo n.º 3
0
        protected override bool OnClosing(DialogReturn dialogResult)
        {
            var controller = Controller as GridControlController;

            controller.GridViewType = GridViewType;
            controller.LayoutData   = MainView.GetLayoutData();
            ExtendAddonPublic.SetAddonExtendProperties(controller, "GridViewType", "LayoutData");
            return(base.OnClosing(dialogResult));
        }
Ejemplo n.º 4
0
        protected override void OnClose()
        {
            var controller = Controller as ReportTableController;

            if (controller != null)
            {
                controller.QueryParameters = this.DataFieldsEditControl.EditValue as List <DataParameter>;
                ExtendAddonPublic.SetAddonExtendProperties(controller, "QueryBehavior", "ParameterEditController", "QueryParameters", "DataColumns");
            }
            base.OnClose();
        }
Ejemplo n.º 5
0
        protected override void OnClosing(CancelEventArgs e)
        {
            this.DialogResult = DialogResult.OK;

            this.CloseControl();

            _MDIApplication.LayoutData = this.DockManager.GetLayoutData();
            _MDIApplication.SkinName   = DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName;
            ExtendAddonPublic.SetAddonExtendProperties(_MDIApplication, "LayoutData", "SkinName");
            base.OnClosing(e);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 重建参数视图
        /// </summary>
        private void RecreateTableView(AccordionControlElementCollection elements
                                       , ReportTableView parentTableView
                                       , IEnumerable <ReportTableController> tables)
        {
            if (parentTableView != null)
            {
                parentTableView.ChildTableViews = new List <Views.ReportTableView>();
            }
            foreach (var reportDataTable in tables)
            {
                ExtendAddonPublic.GetAddonExtendProperties(reportDataTable);

                var elementTableView = new AccordionControlElement();
                elementTableView.Name     = reportDataTable.ID;
                elementTableView.Style    = ElementStyle.Group;
                elementTableView.Expanded = true;
                elementTableView.Text     = String.Format("{0}({1})", reportDataTable.Caption, reportDataTable.TableName);
                elements.Add(elementTableView);


                var reportTableView = reportDataTable.CreateView() as ReportTableView;
                reportTableView.Dock         = DockStyle.Top;
                reportTableView.AutoSize     = true;
                reportTableView.RowCount     = 0;
                reportTableView.BorderStyle  = BorderStyle.FixedSingle;
                reportTableView.DataFetched += ReportTableView_DataFetched;
                reportTableView.DataRequery += ReportTableView_DataRequery;

                var elementParameterView = new AccordionControlElement();
                elementParameterView.Name     = reportDataTable.ID;
                elementParameterView.Style    = ElementStyle.Item;
                elementParameterView.Expanded = true;
                elementParameterView.Text     = "查询";
                var container = new AccordionContentContainer();
                container.Controls.Add(reportTableView);
                container.Height = reportTableView.Height;
                elementParameterView.ContentContainer = container;
                reportTableView.SizeChanged          += (sender, e) => {
                    container.Height = reportTableView.Height;
                };
                TableControls.Add(reportDataTable.TableName, reportTableView);
                elementTableView.Elements.Add(elementParameterView);
                if (parentTableView != null)
                {
                    parentTableView.ChildTableViews.Add(reportTableView);
                }

                if (reportDataTable.ChildTables.IsNotNullOrEmpty())
                {
                    RecreateTableView(elementTableView.Elements, reportTableView, reportDataTable.ChildTables);
                }
            }
        }
Ejemplo n.º 7
0
        public void Initialize(MDIApplication application)
        {
            _MDIApplication = application;

            Text = _MDIApplication.Caption;

            // 添加菜单项
            if (_MDIApplication.MenuItems.IsNotNullOrEmpty())
            {
                foreach (var menuItem in _MDIApplication.MenuItems)
                {
                    _MDIApplication.MainForm.AddMenuItem(menuItem.Value);
                }
            }

            if (_MDIApplication.Controllers.IsNotNullOrEmpty())
            {
                foreach (var controllerRef in _MDIApplication.Controllers)
                {
                    var controller = controllerRef.Value;
                    TransactionPublic.Run(String.Format("打开控制器:{0}", controller), () =>
                    {
                        controller.CreateAndOpenView(this);
                    });
                }
            }

            // 显示当前用户
            var securityService = _MDIApplication.SecurityService.Value;
            var userInfo        = securityService.GetUserInfo();

            MenuCurrentUser.Caption = userInfo.UserName;

            if (MenuFunction.ItemLinks.Count <= 0)
            {
                MenuFunction.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
            }
            else
            {
                MenuFunction.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
            }

            DefaultLayoutData = this.DockManager.GetLayoutData();
            ExtendAddonPublic.SetAddonExtendProperties(_MDIApplication);

            // 加载布局数据
            this.DockManager.SetLayoutData(_MDIApplication.LayoutData);
        }
Ejemplo n.º 8
0
        protected override void OnClose()
        {
            // 杀掉背景线程
            while (BackgroundWorkers.Count > 0)
            {
                var backgroundWorker = BackgroundWorkers[0];
                BackgroundWorkers.RemoveAt(0);
                backgroundWorker.CancelAsync();
            }
            var controller = Controller as ReportController;

            // 保存报表和数据的客户端设置
            controller.LayoutData = this.LayoutControl.GetLayoutData();
            ExtendAddonPublic.SetAddonExtendProperties(controller, "LayoutData", "QueryBehavior");
            base.OnClose();
        }
Ejemplo n.º 9
0
        protected override void OnSetController(BaseController value)
        {
            var controller = value as ReportController;

            // 打开子视图控制器
            foreach (var childControllerRef in controller.Displayers)
            {
                var childController = childControllerRef.Value;
                childController.CreateAndOpenView(this);
            }

            // 重建参数视图
            RecreateTableView();

            // 准备数据格式
            PrepareDataSchema();

            // 重置自动查询
            ResetAutoQuery();

            // 读取报表和数据的客户端设置
            ExtendAddonPublic.GetAddonExtendProperties(controller);
            this.LayoutControl.SetLayoutData(controller.LayoutData);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 运行
        /// </summary>
        public void Start()
        {
            // 一个应用中只能有一个默认应用程序
            Default = this;
            TransactionPublic.Run("主应用程序", () =>
            {
                TransactionPublic.Run("应用程序初始化", () =>
                {
                    TransactionPublic.Run("准备启动", OnPreparing);

                    TransactionPublic.Run("本地配置加载", () =>
                    {
                        // 加载本地配置存储
                        if (ConfigStorageDirName.IsNotNullOrEmpty())
                        {
                            ConfigStoragePublic.LoadConfigStorages(AppPublic.GetAbsolutePath(ConfigStorageDirName));
                        }

                        // 加载Application扩展属性
                        ExtendAddonPublic.GetAddonExtendProperties(this);
                    });

                    TransactionPublic.Run("检索全局插件", () => {
                        AddonPublic.SearchRuntimeAddons(this);
                    });

                    #region 事件
                    TransactionPublic.Run("事件处理机准备", () =>
                    {
                        if (!EventProcessorList.IsNullOrEmpty())
                        {
                            EventPublic.ClearEventProcessor();
                            foreach (var EventProcessor in EventProcessorList)
                            {
                                var logObj = EventProcessor.Value;
                                EventPublic.AddEventProcessor(logObj);
                            }
                        }
                    });
                    #endregion 日志

                    #region  务器
                    TransactionPublic.Run("启动服务器列表", () =>
                    {
                        if (ServerList.IsNotNullOrEmpty())
                        {
                            foreach (var server in ServerList)
                            {
                                var serverObj = server.Value;
                                if (serverObj == null)
                                {
                                    throw new Exception("服务创建失败");
                                }
                                serverObj.Start();
                                EventPublic.Information("服务{0}启动完毕.", serverObj.ObjectToString());
                            }
                        }
                    });
                    #endregion  务
                });

                #region  序
                TransactionPublic.Run("启动程序", Run);
                #endregion  序

                TransactionPublic.Run("应用程序退出", () =>
                {
                    TransactionPublic.Run("扩展属性保存", () =>
                    {
                        // 保存本地配置存储
                        if (ConfigStorageDirName.IsNotNullOrEmpty())
                        {
                            ConfigStoragePublic.SaveConfigStorages(AppPublic.GetAbsolutePath(ConfigStorageDirName));
                        }
                    });
                });
            }, OnException);
        }