示例#1
0
        internal static void SetGridPermissions(this IArchiveGrid grid)
        {
            GridInfo info = ADInfoBll.Instance.GetGridInfo(grid.GridName);

            if (!string.IsNullOrEmpty(info.AllowInnerInsert))
            {
                grid.AllowInnerInsert = Authority.AuthorizeByRule(info.AllowInnerInsert);
            }
            if (!string.IsNullOrEmpty(info.AllowInnerEdit))
            {
                grid.AllowInnerEdit = Authority.AuthorizeByRule(info.AllowInnerEdit);
            }
            if (!string.IsNullOrEmpty(info.AllowInnerDelete))
            {
                grid.AllowInnerDelete = Authority.AuthorizeByRule(info.AllowInnerDelete);
            }

            if (!string.IsNullOrEmpty(info.AllowInsert))
            {
                grid.ControlManager.AllowInsert = Authority.AuthorizeByRule(info.AllowInsert);
            }
            if (!string.IsNullOrEmpty(info.AllowEdit))
            {
                grid.ControlManager.AllowEdit = Authority.AuthorizeByRule(info.AllowEdit);
            }
            if (!string.IsNullOrEmpty(info.AllowDelete))
            {
                grid.ControlManager.AllowDelete = Authority.AuthorizeByRule(info.AllowDelete);
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="name"></param>
        public void LoadItems()
        {
            IList <AlertInfo> list = ADInfoBll.Instance.GetAlertInfo();

            if (list == null || list.Count == 0)
            {
                return;
            }

            Dictionary <string, int> groupIdxs = new Dictionary <string, int>();

            foreach (AlertInfo info in list)
            {
                ActionInfo actionInfo = ADInfoBll.Instance.GetActionInfo(info.Action.Name);
                if (Authority.AuthorizeByRule(actionInfo.Access))
                {
                    if (!groupIdxs.ContainsKey("警示"))
                    {
                        groupIdxs["警示"] = this.Items.Add("警示");
                    }
                    int groupIdx = groupIdxs["警示"];

                    int childIdx = this.Items[groupIdx].Items.Add(info.Description);
                    this.Items[groupIdx].Items[childIdx].Click     += new SmartItemClickEventHandler(TaskPaneAlert_Click);
                    this.Items[groupIdx].Items[childIdx].MouseDown += new System.Windows.Forms.MouseEventHandler(TaskPaneAlert_MouseDown);
                    this.Items[groupIdx].Items[childIdx].Tag        = info;
                }
            }
        }
示例#3
0
        private void LoadPlugins()
        {
            IList <PluginInfo> list = ADInfoBll.Instance.GetInfos <PluginInfo>();

            foreach (PluginInfo i in list)
            {
                if (Authority.AuthorizeByRule(i.Permission))
                {
                    try
                    {
                        object ret = ProcessInfoHelper.ExecuteProcess(i.Process.Name, new Dictionary <string, object> {
                            { "mdiForm", this }
                        });
                        IPlugin p = ret as IPlugin;
                        if (p == null)
                        {
                            throw new ArgumentException(string.Format("插件\"{0}\"创建错误", i.Name), new ArgumentException("Plugin should return an instance of IPlugin!"));
                        }
                        p.OnLoad();

                        m_plugins.Add(p);
                    }
                    catch (Exception ex)
                    {
                        ExceptionProcess.ProcessWithNotify(ex);
                    }
                }
            }
        }
        private void ColumnManageCell_MouseDown(object sender, MouseEventArgs e)
        {
            Cell     cell     = (Cell)sender;
            GridInfo gridInfo = ADInfoBll.Instance.GetGridInfo(m_grid.GridName);

            if (!Authority.AuthorizeByRule(gridInfo.AllowInnerMenu) && !Authority.IsDeveloper())
            {
                return;
            }

            if (e.Button == MouseButtons.Right)
            {
                // DetailGrid只是从DetailGridTemplate复制,Constructor里的grid只是模版
                DetailGrid detailGrid = ((Xceed.Grid.ColumnManagerCell)sender).ParentGrid;
                if (detailGrid is DataBoundDetailGrid)
                {
                    m_grid = detailGrid as DataBoundDetailGrid;
                }

                m_contextMenuManagerColumnCell = cell;
                contextMenuStrip2.Show(cell.PointToScreen(new System.Drawing.Point(e.X, e.Y)));
            }
            else
            {
                m_contextMenuManagerColumnCell = null;
            }
        }
        internal static void ResetSearchControlInfos(MyGrid grdSetup, IDisplayManager dmMaster)
        {
            if (dmMaster == null)
            {
                return;
            }

            if (dmMaster.SearchManager != null)
            {
                int n = 0;
                foreach (ISearchControl sc in dmMaster.SearchManager.SearchControls)
                {
                    GridColumnInfo info = sc.Tag as GridColumnInfo;

                    if (info == null || (!string.IsNullOrEmpty(info.SearchControlType) &&
                                         Authority.AuthorizeByRule(info.SearchControlVisible)))
                    {
                        sc.Available = true;
                    }
                    else
                    {
                        sc.Available = false;
                    }

                    sc.Index = n;
                    n++;
                }

                //LoadSearchControlInfos(grdSetup, dmMaster);
            }
        }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="selectFormName"></param>
        public ArchiveSelectForm(string selectFormName)
        {
            InitializeComponent();

            IList <WindowSelectInfo> list = ADInfoBll.Instance.GetWindowSelectInfo(selectFormName);

            if (list == null)
            {
                return;
            }

            foreach (WindowSelectInfo info in list)
            {
                if (!Authority.AuthorizeByRule(info.Visible))
                {
                    continue;
                }

                MyRadioButton rbg = new MyRadioButton();
                rbg.Text = info.Text;
                rbg.Tag  = info;

                this.flowLayoutPanel1.Controls.Add(rbg);
            }
            if (this.flowLayoutPanel1.Controls.Count > 0)
            {
                (this.flowLayoutPanel1.Controls[0] as MyRadioButton).Checked = true;
            }
        }
        private void AddRowEvents()
        {
            GridInfo gridInfo = ADInfoBll.Instance.GetGridInfo(m_grid.GridName);

            if (Authority.AuthorizeByRule(gridInfo.AllowInnerEdit))
            {
                m_grid.DataRowTemplate.EditBegun  += new EventHandler(row_EditBegun);
                m_grid.DataRowTemplate.EndingEdit += new System.ComponentModel.CancelEventHandler(row_EndingEdit);
                //m_grid.DataRowTemplate.EditEnded += new EventHandler(row_EditEnded);
                m_grid.DataRowTemplate.EditCanceled    += new EventHandler(row_EditCanceled);
                m_grid.DataRowTemplate.ValidationError += new RowValidationErrorEventHandler(row_ValidationError);
            }

            if (Authority.AuthorizeByRule(gridInfo.AllowInnerInsert))
            {
                // InsertionRow will also raise DataRow Events
                // It will raise two times, but for show error description, we should use InsertionRow Events
                if (m_insertionRow != null)
                {
                    m_insertionRow.EditBegun       += new EventHandler(row_EditBegun);
                    m_insertionRow.EndingEdit      += new System.ComponentModel.CancelEventHandler(row_EndingEdit);
                    m_insertionRow.ValidationError += new RowValidationErrorEventHandler(row_ValidationError);
                    m_insertionRow.EditCanceled    += new EventHandler(row_EditCanceled);
                }
            }
        }
示例#8
0
        /// <summary>
        /// 重新读入绑定Grid默认Layout
        /// </summary>
        /// <param name="grid"></param>
        public static void LoadGridDefaultLayout(this IGrid grid)
        {
            if (ADInfoBll.Instance.GetGridColumnInfos(grid.GridName).Count > 0)
            {
                foreach (GridColumnInfo info in ADInfoBll.Instance.GetGridColumnInfos(grid.GridName))
                {
                    Xceed.Grid.Column column = grid.Columns[info.GridColumnName];
                    if (column != null)
                    {
                        column.Visible      = Authority.AuthorizeByRule(info.ColumnVisible);
                        column.VisibleIndex = info.SeqNo;

                        column.Fixed = info.ColumnFixed.HasValue ? info.ColumnFixed.Value : false;
                    }
                }
            }
            else
            {
                foreach (Xceed.Grid.Column column in grid.Columns)
                {
                    column.Visible = true;
                    column.Fixed   = false;
                }
            }
        }
示例#9
0
        private void LoadCustomSearch(string gridName)
        {
            IList <CustomSearchInfo> list = ADInfoBll.Instance.GetCustomSearchInfo(gridName);

            if (list == null || list.Count == 0)
            {
                return;
            }

            int groupIdx1 = customSearchPane.Items.Add("预定义");

            foreach (CustomSearchInfo info in list)
            {
                if (!Authority.AuthorizeByRule(info.Visible))
                {
                    continue;
                }

                int childIdx1 = customSearchPane.Items[groupIdx1].Items.Add(info.Name);
                customSearchPane.Items[groupIdx1].Items[childIdx1].Text        = info.Text;
                customSearchPane.Items[groupIdx1].Items[childIdx1].ToolTipText = info.Help;
                customSearchPane.Items[groupIdx1].Items[childIdx1].Click      += new SmartItemClickEventHandler(CustomSearchItem_Click);
                customSearchPane.Items[groupIdx1].Items[childIdx1].Tag         = info;
            }
        }
        internal static void LoadSearchControlInfos(MyGrid grdSetup, IDisplayManager dmMaster)
        {
            if (dmMaster == null)
            {
                return;
            }

            if (grdSetup.Columns.Count == 0)
            {
                grdSetup.Columns.Add(new Xceed.Grid.Column("名称", typeof(string)));
                grdSetup.Columns.Add(new Xceed.Grid.Column("是否显示", typeof(bool)));
                grdSetup.ReadOnly = false;
                grdSetup.Columns["是否显示"].ReadOnly = false;
                grdSetup.Columns["名称"].ReadOnly   = true;
            }

            grdSetup.DataRows.Clear();

            ISearchManager sm = dmMaster.SearchManager;

            if (sm != null)
            {
                SortedList <int, ISearchControl> scc1 = new SortedList <int, ISearchControl>();
                SortedList <int, ISearchControl> scc2 = new SortedList <int, ISearchControl>();

                foreach (ISearchControl sc in sm.SearchControls)
                {
                    GridColumnInfo info = sc.Tag as GridColumnInfo;
                    if (info == null || (!string.IsNullOrEmpty(info.SearchControlType) &&
                                         Authority.AuthorizeByRule(info.SearchControlVisible)))
                    {
                        if (sc.Available)
                        {
                            scc1.Add(sc.Index, sc);
                        }
                        else
                        {
                            scc2.Add(sc.Index, sc);
                        }
                    }
                }

                foreach (KeyValuePair <int, ISearchControl> kvp in scc1)
                {
                    Xceed.Grid.DataRow row = grdSetup.DataRows.AddNew();
                    row.Cells["是否显示"].Value = kvp.Value.Available;
                    row.Cells["名称"].Value   = kvp.Value.Caption;
                    row.EndEdit();
                }
                foreach (KeyValuePair <int, ISearchControl> kvp in scc2)
                {
                    Xceed.Grid.DataRow row = grdSetup.DataRows.AddNew();
                    row.Cells["是否显示"].Value = kvp.Value.Available;
                    row.Cells["名称"].Value   = kvp.Value.Caption;
                    row.EndEdit();
                }
            }
        }
        internal static void LoadGridInfos(MyGrid grdSetup, IGrid masterGrid)
        {
            if (masterGrid == null)
            {
                return;
            }

            if (grdSetup.Columns.Count == 0)
            {
                grdSetup.Columns.Add(new Xceed.Grid.Column("名称", typeof(string)));
                grdSetup.Columns.Add(new Xceed.Grid.Column("是否显示", typeof(bool)));
                grdSetup.ReadOnly = false;
                grdSetup.Columns["是否显示"].ReadOnly = false;
                grdSetup.Columns["名称"].ReadOnly   = true;
            }

            grdSetup.DataRows.Clear();

            if (masterGrid != null)
            {
                Dictionary <string, GridColumnInfo> visibleColumns = new Dictionary <string, GridColumnInfo>();
                IList <GridColumnInfo> gridColumnInfos             = ADInfoBll.Instance.GetGridColumnInfos(masterGrid.GridName);
                bool hasInfo = gridColumnInfos.Count > 0;

                foreach (GridColumnInfo info in gridColumnInfos)
                {
                    if (!Authority.AuthorizeByRule(info.ColumnVisible))
                    {
                        continue;
                    }
                    visibleColumns[info.GridColumnName] = info;
                }

                SortedList <int, Xceed.Grid.Column> columns = new SortedList <int, Xceed.Grid.Column>();
                foreach (Xceed.Grid.Column column in masterGrid.Columns)
                {
                    if (hasInfo && !visibleColumns.ContainsKey(column.FieldName))
                    {
                        continue;
                    }

                    columns.Add(column.VisibleIndex, column);
                }

                foreach (KeyValuePair <int, Xceed.Grid.Column> kvp in columns)
                {
                    Xceed.Grid.DataRow row = grdSetup.DataRows.AddNew();
                    row.Cells["是否显示"].Value = kvp.Value.Visible;
                    row.Cells["名称"].Value   = kvp.Value.Title;
                    row.EndEdit();

                    if (visibleColumns.ContainsKey(kvp.Value.FieldName))
                    {
                        row.ReadOnly = Authority.AuthorizeByRule(visibleColumns[kvp.Value.FieldName].NotNull);
                    }
                }
            }
        }
        private void CreateGridColumns(IGrid grid)
        {
            try
            {
                grid.BeginInit();

                grid.Columns.Clear();

                foreach (GridColumnInfo info in ADInfoBll.Instance.GetGridColumnInfos(grid.GridName))
                {
                    // 有些列是要设置值但不可见的,例如Id
                    //if (!Authority.AuthorizeByRule(info.ColumnVisible))
                    //    continue;

                    switch (info.GridColumnType)
                    {
                    case GridColumnType.Normal:
                    {
                        Xceed.Grid.Column column;
                        if (grid.Columns[info.GridColumnName] != null)
                        {
                            throw new ArgumentException("there have already exist column " + info.GridColumnName);
                        }
                        else
                        {
                            column = new Xceed.Grid.Column(info.GridColumnName, GridColumnInfoHelper.CreateType(info));
                        }

                        UnBoundGridExtention.SetColumnProperties(column, info, grid);

                        GridFactory.CreateCellViewerManager(column, info, this.ControlManager.DisplayManager);

                        bool readOnly = Authority.AuthorizeByRule(info.ReadOnly);
                        if (!readOnly)
                        {
                            GridFactory.CreateCellEditorManager(column, info, this.ControlManager.DisplayManager);
                        }

                        grid.Columns.Add(column);
                    }
                    break;

                    default:
                        break;
                        //default:
                        //    throw new InvalidOperationException("Invalide gridcolumnType of " + info.GridColumnType + " in " + info.Name);
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionProcess.ProcessWithNotify(ex);
            }
            finally
            {
                grid.EndInit();
            }
        }
示例#13
0
        internal static void SetColumnProperties(Xceed.Grid.Column column, GridColumnInfo info, IGrid grid)
        {
            column.Visible = Authority.AuthorizeByRule(info.ColumnVisible);
            if (!column.Visible)
            {
                // only for column custom visible
                column.MaxWidth = 0;
            }

            column.VisibleIndex = info.SeqNo;
            column.Title        = (string.IsNullOrEmpty(info.Caption) ? info.PropertyName : info.Caption);

            column.Tag = info;
            bool readOnly = Authority.AuthorizeByRule(info.ReadOnly);

            if (readOnly)
            {
                column.ReadOnly = readOnly;
            }

            if (!string.IsNullOrEmpty(info.BackColor))
            {
                column.BackColor = System.Drawing.Color.FromName(info.BackColor);
            }
            if (!string.IsNullOrEmpty(info.ForeColor))
            {
                column.ForeColor = System.Drawing.Color.FromName(info.ForeColor);
            }
            if (!string.IsNullOrEmpty(info.FontName) && info.FontSize.HasValue)
            {
                column.Font = new System.Drawing.Font(info.FontName, info.FontSize.Value);
            }
            //if (info.ColumnWidth.HasValue)
            //{
            //    column.Width = info.ColumnWidth.Value * grid.Width / 1024;
            //}
            if (info.ColumnMaxWidth.HasValue)
            {
                column.MaxWidth = info.ColumnMaxWidth.Value;
            }
            if (info.ColumnFixed.HasValue)
            {
                column.Fixed = info.ColumnFixed.Value;
            }

            if (!string.IsNullOrEmpty(info.SortDirection))
            {
                if (info.SortDirection.ToUpper() == "ASC")
                {
                    column.SortDirection = SortDirection.Ascending;
                }
                else if (info.SortDirection.ToUpper() == "DESC")
                {
                    column.SortDirection = SortDirection.Descending;
                }
            }
        }
示例#14
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="detailGrid"></param>
        protected void CreateDetailGridSumRow(MyDetailGrid detailGrid)
        {
            bool needSum = false;

            if (!needSum)
            {
                foreach (Column column in detailGrid.Columns)
                {
                    GridColumnInfo info = column.Tag as GridColumnInfo;
                    if (info == null)
                    {
                        continue;
                    }

                    if (string.IsNullOrEmpty(info.StatFunction) || !Authority.AuthorizeByRule(info.ColumnVisible))
                    {
                        continue;
                    }

                    needSum = true;
                    break;
                }
            }

            if (needSum)
            {
                SummaryRow sumRow = detailGrid.AddSummaryRowToFixedFooter();
                sumRow.TextFormat = ADInfoBll.Instance.GetGridInfo(detailGrid.GridName).StatTitle;

                foreach (Column column in detailGrid.Columns)
                {
                    GridColumnInfo info = column.Tag as GridColumnInfo;
                    if (info == null)
                    {
                        continue;
                    }

                    if (string.IsNullOrEmpty(info.StatFunction) || !Authority.AuthorizeByRule(info.ColumnVisible))
                    {
                        continue;
                    }

                    MySummaryCell cell = ((MySummaryCell)sumRow.Cells[info.GridColumnName]);
                    cell.StatFunction          = BoundGridExtention.GetStatFunction(info.StatFunction);
                    cell.RunningStatGroupLevel = 0;
                    cell.ResultDataType        = typeof(string);

                    if (!string.IsNullOrEmpty(info.StatTitle))
                    {
                        cell.TitleFormat   = info.StatTitle;
                        cell.TitlePosition = TitlePosition.PreferablyRight;
                    }
                }
            }
        }
        // 表格配置用.xmlg,搜索窗口配置用.xmls
        void contextMenuStrip2_Opening(object sender, System.ComponentModel.CancelEventArgs e)
        {
            Xceed.Grid.Cell cell = m_contextMenuManagerColumnCell;
            if (cell == null)
            {
                return;
            }
            GridColumnInfo columnInfo = cell.ParentColumn.Tag as GridColumnInfo;

            if (columnInfo.EnableCopy.HasValue)
            {
                tsmCopyColumn.Visible = columnInfo.EnableCopy.Value;
            }

            GridInfo gridInfo = ADInfoBll.Instance.GetGridInfo(m_grid.GridName);

            if (!Authority.AuthorizeByRule(gridInfo.AllowInnerFilter))
            {
                tsmFilter.Visible = false;
            }
            else
            {
                tsmFilter.Checked = m_grid.GetFilterRowVisible();
            }

            tsmGroup.Checked = (m_grid.GetGroupByRow() != null);

            if (m_masterGrid != null &&
                tsmPresetLayout.DropDownItems.Count == 0)
            {
                string[] folders = new string[] { m_masterGrid.GetGridDefaultDataDirectory(), m_masterGrid.GetGridGlobalDataDirectory() };

                foreach (string folder in folders)
                {
                    if (!System.IO.Directory.Exists(folder))
                    {
                        continue;
                    }
                    foreach (string fileName in System.IO.Directory.GetFiles(folder, "*.xmlg"))
                    {
                        ToolStripMenuItem item = new ToolStripMenuItem();
                        item.Text   = System.IO.Path.GetFileName(fileName).Replace(".xmlg", "");
                        item.Tag    = fileName;
                        item.Click += new EventHandler(tsmPresetSubitem_Click);
                        tsmPresetLayout.DropDownItems.Add(item);
                    }
                }

                if (tsmPresetLayout.DropDownItems.Count == 0)
                {
                    tsmPresetLayout.Visible = false;
                }
            }
        }
示例#16
0
        private void CreateColumns(int level, WindowTabInfo tabInfo)
        {
            string gridName = tabInfo.GridName; //"网页查询_客户委托情况_进口";

            foreach (GridColumnInfo info in ADInfoBll.Instance.GetGridColumnInfos(gridName))
            {
                if (info.GridColumnType == GridColumnType.Normal)
                {
                    if (!Authority.AuthorizeByRule(info.ColumnVisible))
                    {
                        continue;
                    }

                    if (this.Grid1.Levels.Count <= level)
                    {
                        this.Grid1.Levels.Add(new ComponentArt.Web.UI.GridLevel());
                    }

                    ComponentArt.Web.UI.GridColumn column = GetColumn(info);
                    if (!this.Grid1.Levels[level].Columns.Contains(column))
                    {
                        this.Grid1.Levels[level].Columns.Add(GetColumn(info));
                    }
                }
            }

            //m_levelTabInfos[level] = tabInfo;
            //if (tabInfo.Childs.Count > 1)
            //{
            //    //throw new NotSupportedException("only one child is supported!");
            //}

            //for (int i = 0; i < Math.Min(1, tabInfo.Childs.Count); i++)
            //{
            //    WindowTabInfo subTabInfo = tabInfo.Childs[i];
            //    CreateColumns(level + 1, subTabInfo);

            //    if (!m_isHierarchicalEventCreated)
            //    {
            //        this.Grid1.NeedChildDataSource += new ComponentArt.Web.UI.Grid.NeedChildDataSourceEventHandler(Grid1_NeedChildDataSource);
            //        m_isHierarchicalEventCreated = true;
            //    }
            //}

            for (int i = 0; i < tabInfo.ChildTabs.Count; i++)
            {
                this.Grid1.Levels[level].Columns[i].DataCellCssClass = "DetailTemplate";
            }
        }
示例#17
0
        //protected void AssociateButtonAdd(Button button, IControlManager cm)
        //{
        //    cm.StateControls.Add(new StateControl(button, true));
        //    button.Click += new EventHandler((sender, e) =>
        //    {
        //        cm.AddNew();
        //        UpdateContent(m_cm, m_controlGroupName);

        //        (m_cm.DisplayManager.CurrentItem as 任务).任务来源 = 任务来源.手工;
        //        (m_cm.DisplayManager.CurrentItem as 任务).IsActive = true;
        //    });
        //}

        public static void RestrictToUserAccess(ISearchManager sm, string adminName)
        {
            if (!Authority.AuthorizeByRule("R:" + adminName))
            {
                string userRestriction = string.Format("CreatedBy = {0}", SystemConfiguration.UserName);
                if (string.IsNullOrEmpty(sm.AdditionalSearchExpression))
                {
                    sm.AdditionalSearchExpression = userRestriction;
                }
                else
                {
                    sm.AdditionalSearchExpression = "(" + sm.AdditionalSearchExpression + ")"
                                                    + " AND " + userRestriction;
                }
            }
        }
        private static void SetGridPermissions(WindowTabInfo tabInfo, IControlManager cm)
        {
            GridInfo info = ADInfoBll.Instance.GetGridInfo(tabInfo.GridName);

            if (!string.IsNullOrEmpty(info.AllowInsert))
            {
                cm.AllowInsert = Authority.AuthorizeByRule(info.AllowInsert);
            }
            if (!string.IsNullOrEmpty(info.AllowEdit))
            {
                cm.AllowEdit = Authority.AuthorizeByRule(info.AllowEdit);
            }
            if (!string.IsNullOrEmpty(info.AllowDelete))
            {
                cm.AllowDelete = Authority.AuthorizeByRule(info.AllowDelete);
            }
        }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="gridControl"></param>
        public BoundGridHelper(IBoundGrid gridControl)
        {
            InitializeComponent();

            m_grid = gridControl;

            m_masterGrid = m_grid as MyGrid;
            if (m_masterGrid == null)
            {
                tsmFind.Visible = false;
                //tsmExportExcel.Visible = false;
                tsmPrintPreview.Visible     = false;
                tsmGenerateReport.Visible   = false;
                toolStripSeparator1.Visible = false;
                //tsmGroup.Visible = false;

                tsmLoadLayout.Visible   = false;
                tsmSaveLayout.Visible   = false;
                tsmPresetLayout.Visible = false;
            }

            this.tsmResetColumns.Image    = Feng.Windows.ImageResource.Get("Feng", "Icons.iconReset.png").Reference;
            this.tsmInvibleColumn.Image   = Feng.Windows.ImageResource.Get("Feng", "Icons.iconInvisible.png").Reference;
            this.tsmAutoAdjustWidth.Image = Feng.Windows.ImageResource.Get("Feng", "Icons.iconAdjust.png").Reference;
            this.tsmPresetLayout.Image    = Feng.Windows.ImageResource.Get("Feng", "Icons.iconPreset.png").Reference;
            this.tsmLoadLayout.Image      = Feng.Windows.ImageResource.Get("Feng", "Icons.iconOpen.png").Reference;
            this.tsmSaveLayout.Image      = Feng.Windows.ImageResource.Get("Feng", "Icons.iconSave.png").Reference;
            this.tsmFilter.Image          = Feng.Windows.ImageResource.Get("Feng", "Icons.iconFilter.png").Reference;
            this.tsmGroup.Image           = Feng.Windows.ImageResource.Get("Feng", "Icons.iconGroup.png").Reference;
            this.tsmResetColumns.Image    = Feng.Windows.ImageResource.Get("Feng", "Icons.iconReset.png").Reference;
            this.tsmFind.Image            = Feng.Windows.ImageResource.Get("Feng", "Icons.iconFind.png").Reference;
            this.tsmExportExcel.Image     = Feng.Windows.ImageResource.Get("Feng", "Icons.iconExportExcel.png").Reference;
            this.tsmPrintPreview.Image    = Feng.Windows.ImageResource.Get("Feng", "Icons.iconPrint.png").Reference;
            this.tsmGenerateReport.Image  = Feng.Windows.ImageResource.Get("Feng", "Icons.iconReport.png").Reference;
            this.tsmSetup.Image           = Feng.Windows.ImageResource.Get("Feng", "Icons.iconSetup.png").Reference;

            this.tsmRefresh.Image = Feng.Windows.ImageResource.Get("Feng", "Icons.iconRefresh.png").Reference;
            //this.tsmRefresh.Visible = false;

            GridInfo gridInfo = ADInfoBll.Instance.GetGridInfo(m_grid.GridName);

            if (Authority.AuthorizeByRule(gridInfo.AllowInnerMenu) || Authority.IsDeveloper())
            {
                m_grid.GridHelper.MergeContenxtMenuStripForCell(this.contextMenuStrip1);
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="grid"></param>
        public ArchiveGridHelper(IArchiveGrid grid)
        {
            m_grid = grid;
            m_cm   = grid.ControlManager;

            InitializeComponent();

            this.tsmDelete.Image      = Feng.Windows.ImageResource.Get("Feng", "Icons.iconErase.png").Reference;
            this.tsmDeleteBatch.Image = Feng.Windows.ImageResource.Get("Feng", "Icons.iconErase.png").Reference;
            this.tsmDelete.Visible    = false;

            GridInfo gridInfo = ADInfoBll.Instance.GetGridInfo(m_grid.GridName);

            if (Authority.AuthorizeByRule(gridInfo.AllowInnerMenu) || Authority.IsDeveloper())
            {
                m_grid.GridHelper.MergeContenxtMenuStripForCell(this.contextMenuStrip1);
            }
        }
        internal void Initialize()
        {
            GridInfo gridInfo = ADInfoBll.Instance.GetGridInfo(m_grid.GridName);

            if (Authority.AuthorizeByRule(gridInfo.AllowInnerSearch))
            {
                m_grid.SetSearchRowVisible(true);
            }
            if (Authority.AuthorizeByRule(gridInfo.AllowInnerFilter))
            {
                m_grid.SetFilterRowVisible(true);
            }
            if (Authority.AuthorizeByRule(gridInfo.AllowInnerTextFilter))
            {
                m_grid.SetTextFilterRowVisible(true);
            }

            m_grid.GridHelper.ContextMenuStripForCell.Opening += new System.ComponentModel.CancelEventHandler(ContextMenuStripForCell_Opening);
        }
示例#22
0
        internal static void AddDateItemToUnBoundGrid(this IBoundGrid grid, object dataItem)
        {
            GridInfo gridInfo = ADInfoBll.Instance.GetGridInfo(grid.GridName);

            if (!Authority.AuthorizeByRule(gridInfo.Visible))
            {
                return;
            }

            GridRowInfo gridRowInfo = ADInfoBll.Instance.GetGridRowInfo(grid.GridName);

            if (!Permission.AuthorizeByRule(gridRowInfo.Visible, dataItem))
            {
                return;
            }
            Xceed.Grid.DataRow row = grid.DataRows.AddNew();
            grid.SetDataRowsIListData(dataItem, row);
            row.EndEdit();
        }
示例#23
0
 private void LoadDefaultLayout(DetailGrid detailGrid, GridColumnInfo info)
 {
     Xceed.Grid.Column column = detailGrid.Columns[info.GridColumnName];
     if (column != null)
     {
         column.Visible      = Authority.AuthorizeByRule(info.ColumnVisible);
         column.VisibleIndex = info.SeqNo;
     }
     else
     {
         foreach (Xceed.Grid.DataRow row in detailGrid.DataRows)
         {
             if (row.DetailGrids.Count > 0)
             {
                 LoadDefaultLayout(row.DetailGrids[0], info);
             }
         }
     }
 }
示例#24
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="list"></param>
        /// <param name="gridName"></param>
        /// <returns></returns>
        public IList <Dictionary <string, object> > Process(IEnumerable list, string gridName)
        {
            IList <Dictionary <string, object> > ret = new List <Dictionary <string, object> >();

            // grid
            if (!Authority.AuthorizeByRule(ADInfoBll.Instance.GetGridInfo(gridName).Visible))
            {
                return(ret);
            }

            foreach (object entity in list)
            {
                Dictionary <string, object> r = Process(entity, gridName);

                ret.Add(r);
            }

            return(ret);
        }
示例#25
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="name"></param>
        /// <param name="fm"></param>
        public void LoadMenus(ISearchManager sm, string name)
        {
            IList <CustomSearchInfo> list;

            list = m_bll.GetCustomSearchInfo(name);
            if (list == null || list.Count == 0)
            {
                this.Visible = false;
                return;
            }

            foreach (CustomSearchInfo info in list)
            {
                if (!Authority.AuthorizeByRule(info.Visible))
                {
                    continue;
                }

                ToolStripItem item;
                if (info.SearchExpression.ToUpper() == "SEPARATOR")
                {
                    item = new ToolStripSeparator();
                }
                else
                {
                    item        = new ToolStripMenuItem();
                    item.Name   = info.Name + "ToolStripItem";
                    item.Size   = new System.Drawing.Size(172, 22);
                    item.Text   = info.Text;
                    item.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
                    item.Tag    = info;
                }

                this.DropDownItems.Add(item);
            }

            m_sm = sm;

            if (list.Count > 0)
            {
                ToolStripMenuItem_Click(this.DropDownItems[0], System.EventArgs.Empty);
            }
        }
示例#26
0
        internal static void SetUnBoundGridDataBinding(this IBoundGrid grid)
        {
            try
            {
                grid.BeginInit();

                grid.DataRows.Clear();

                GridInfo gridInfo = ADInfoBll.Instance.GetGridInfo(grid.GridName);
                if (!Authority.AuthorizeByRule(gridInfo.Visible))
                {
                    return;
                }
                if (!string.IsNullOrEmpty(gridInfo.ReadOnly))
                {
                    grid.ReadOnly = Authority.AuthorizeByRule(gridInfo.ReadOnly);
                }

                GridRowInfo gridRowInfo = ADInfoBll.Instance.GetGridRowInfo(grid.GridName);

                foreach (object entity in grid.DisplayManager.Items)
                {
                    if (!Permission.AuthorizeByRule(gridRowInfo.Visible, entity))
                    {
                        continue;
                    }
                    Xceed.Grid.DataRow row = grid.DataRows.AddNew();
                    grid.SetDataRowsIListData(entity, row);
                    row.EndEdit();
                }
            }
            catch (Exception ex)
            {
                ExceptionProcess.ProcessWithNotify(ex);
            }
            finally
            {
                grid.EndInit();
            }

            grid.AfterLoadData();
        }
示例#27
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="name"></param>
        public void LoadMenus(string groupName)
        {
            IList <TaskInfo> list = ADInfoBll.Instance.GetTaskInfo(groupName);

            if (list == null || list.Count == 0)
            {
                return;
            }

            //ProgressForm progressForm = new ProgressForm();
            //progressForm.Start(this.FindForm(), "计算");

            Dictionary <string, int> groupIdxs = new Dictionary <string, int>();

            foreach (TaskInfo info in list)
            {
                ActionInfo menuInfo = ADInfoBll.Instance.GetActionInfo(info.Action.Name);
                if (Authority.AuthorizeByRule(menuInfo.Access))
                {
                    if (Authority.AuthorizeByRule(info.Visible))
                    {
                        if (!groupIdxs.ContainsKey(info.ParentName))
                        {
                            groupIdxs[info.ParentName] = this.Items.Add(info.ParentName);
                        }
                        int groupIdx = groupIdxs[info.ParentName];
                        int childIdx = this.Items[groupIdx].Items.Add(info.Name);
                        this.Items[groupIdx].Items[childIdx].Text   = info.Text;
                        this.Items[groupIdx].Items[childIdx].Click += new SmartItemClickEventHandler(TaskPane_Click);
                        this.Items[groupIdx].Items[childIdx].Tag    = info;
                        //this.Items[groupIdx].Items[childIdx].Visible = Authority.AuthorizeByRule(info.Visible);

                        //if (this.Items[groupIdx].Items[childIdx].Visible)
                        {
                            RepalceParameterizedText(groupIdx, childIdx);
                        }
                    }
                }
            }

            //progressForm.Stop();
        }
        /// <summary>
        /// 根据GroupName从数据库读入数据
        /// </summary>
        public void LoadFromDatabase(string groupName)
        {
            Clear();

            IList <CustomSearchInfo> lists = ADInfoBll.Instance.GetCustomSearchInfo(groupName);

            for (int i = 0; i < lists.Count; ++i)
            {
                if (!Authority.AuthorizeByRule(lists[i].Visible))
                {
                    continue;
                }

                myComboBox1.Items.Add(new object[] { lists[i].Text });

                dict[lists[i].Text] = lists[i].SearchExpression;
            }

            myComboBox1.AdjustDropDownControlSize();
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="entity"></param>
        public string Calculate(object entity)
        {
            StringBuilder sb = new StringBuilder();

            foreach (GridColumnWarningInfo info in m_warningInfos)
            {
                if (!Authority.AuthorizeByRule(info.Visible))
                {
                    continue;
                }

                object ret = EntityScript.CalculateExpression(info.Expression, entity);
                if (ret != null && (bool)ret)
                {
                    sb.Append(info.Text);
                    sb.Append(",");
                }
            }
            return(sb.ToString());
        }
示例#30
0
        /// <summary>
        /// 保存查找控件信息
        /// </summary>
        /// <param name="grid"></param>
        /// <param name="profile"></param>
        /// <returns></returns>
        public bool LoadLayout(AMS.Profile.IProfile profile)
        {
            string sectionName = "SearchControlContainer." + "." + m_sm.Name + ".Layout";

            string s = profile.GetValue(sectionName, "SearchControls", "");

            if (string.IsNullOrEmpty(s))
            {
                return(false);
            }
            string[] columns = s.Split(new string[] { System.Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

            foreach (string columnName in columns)
            {
                string[] ss = columnName.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                if (ss.Length != 3)
                {
                    continue;
                }

                ISearchControl sc = m_sm.SearchControls[ss[0]];
                if (sc == null)
                {
                    continue;
                }

                GridColumnInfo info = sc.Tag as GridColumnInfo;
                if (info == null || (!string.IsNullOrEmpty(info.SearchControlType) &&
                                     Authority.AuthorizeByRule(info.SearchControlVisible)))
                {
                    sc.Available = Convert.ToBoolean(ss[1]);
                }
                else
                {
                    m_sm.SearchControls[ss[0]].Available = false;
                }

                sc.Index = Convert.ToInt32(ss[2]);
            }
            return(true);
        }