Ejemplo n.º 1
0
        /// <summary>
        /// Exibe o formulário de pesquisa com os registros
        /// </summary>
        ///<param name="values">Coleção do tipo IDisplayValues</param>
        public static SearchWindowResult Show(IDisplayValues values, string filter = "")
        {
            SearchWindowForm form = new SearchWindowForm();
            values.ApplyFilters(filter.IsNullOrEmpty() ? null : form.Predicate(filter));
            form.MainGrid.Populate(values);
            form.TopMost = true;
            form.ShowDialog();
            SearchWindowResult result = form.Result;
            form.Close();
            form.Dispose();

            return result;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Move o registro para a página solicitada.
        /// <para>Por ser uma definição dinâmica, não temos como saber quem é a última página.</para>
        /// </summary>
        /// <returns>true se realmente moveu para a página</returns>
        /// <exception cref="DynamicPaging">Exceção lançada quando o DynamicPaging não está definido</exception>
        public bool MoveToPage(int page)
        {
            bool result = false;

            if (IsDynamicPaging)
            {
                //se ficar como zero o offset, algo pode dar errado, então ajustamos para ter sempre o pagesize padrão
                if (Where.Limit.From <= PageSize)
                {
                    Where.Limit = new Limit(PageSize, 0);
                }

                Where.Limit = new Limit(Where.Limit.From * ((page - 1) + 1), Where.Limit.OffSet);
                values.Clear();

                IDisplayValues displayValues = DynamicPaging.Invoke(Where);
                if (displayValues != null)
                {
                    DataReader = displayValues.DataReader;
                    values     = displayValues.Values;

                    if (page > 1 && values.Count == 0)
                    {
                        MoveToPage(--page);
                        return(false);
                    }
                }

                result = (values != null && values.Count > 0);
            }
            else
            {
                throw new DynamicPaging();
            }

            return(result);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Preenche os dados da grid 
        /// </summary>
        /// <param name="values">valores que deverão ser populados</param>
        /// <param name="refreshing">Se true, recria a grid.</param>
        public void Populate(IDisplayValues values, bool refreshing)
        {
            if(values == null) return;

            _dataSource = values;

            if(_dataSource.CreateColumns)
                PrepareColumns(_dataSource.Columns);

            Populate(values.Values);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Preenche os dados da grid 
 /// </summary>
 /// <param name="values">valores que deverão ser populados</param>
 public virtual void Populate(IDisplayValues values)
 {
     Populate(values, false);
 }
Ejemplo n.º 5
0
        public GridPanel()
        {
            InitializeComponent();
            _dataSource = new DisplayValues(null);

            grid.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
            grid.Dock = System.Windows.Forms.DockStyle.None;
            grid.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
            grid.ShowCellErrors = false;
            grid.ShowRowErrors = false;
            grid.AllowUserToOrderColumns = false;

            this.ScrollBars = ScrollBars.Both;

            #region Eventos da Grid
            grid.CellMouseDoubleClick += new DataGridViewCellMouseEventHandler((sender, e) =>
            {
                if(e.RowIndex >= 0 &&
                   CellMouseDoubleClick != null)
                {
                    CellMouseDoubleClick(sender, e);
                }
                else
                    toolbarGridPanel.EditButton.PerformClick();
            });

            grid.SelectionChanged += new EventHandler((sender, e) =>
            {
                if(clearing) return;

                if(SelectionChanged != null)
                    SelectionChanged(sender, e);
            });

            grid.CellClick += new DataGridViewCellEventHandler((sender, e) =>
            {
                if(CellClick != null)
                    CellClick(sender, e);
            });

            grid.RowEnter += new DataGridViewCellEventHandler((sender, e) =>
            {
                if(RowEnter != null)
                    RowEnter(sender, e);
            });

            grid.CellDoubleClick += new DataGridViewCellEventHandler((sender, e) =>
            {
                if(e.RowIndex >= 0 &&
                   CellDoubleClick != null)
                {
                    CellDoubleClick(sender, e);
                }
            });

            grid.CellEndEdit += new DataGridViewCellEventHandler((sender, e) =>
            {
                if(clearing) return;

                if(CellEndEdit != null)
                    CellEndEdit(sender, e);
            });

            grid.CellValueChanged += new DataGridViewCellEventHandler((sender, e) =>
            {
                if(clearing) return;

                if(CellValueChanged != null)
                    CellValueChanged(sender, e);
            });

            grid.CellBeginEdit += new DataGridViewCellCancelEventHandler((sender, e) =>
            {
                if(clearing) return;

                if(CellBeginEdit != null)
                    CellBeginEdit(sender, e);
            });

            grid.RowsAdded += new DataGridViewRowsAddedEventHandler((sender, e) =>
            {
                if(clearing) return;

                #region Bug Fix #17050
                if(!grid.Rows[e.RowIndex].IsNewRow && !fromPopulate)
                {
                    object[] value = new object[grid.ColumnCount];

                    for(int i = 0; i < grid.ColumnCount; i++)
                    {
                        value[i] = grid.Rows[e.RowIndex].Cells[i].Value;
                    }

                    _dataSource.Values.Add(value);
                    pagingToolbar.RecordCount = RowsCount;
                }
                #endregion

                if(RowsAdded != null)
                    RowsAdded(sender, e);
            });

            grid.RowsRemoved += new DataGridViewRowsRemovedEventHandler((sender, e) =>
            {
                if(clearing) return;

                if(RowsRemoved != null && e.RowIndex >= 0)
                    RowsRemoved(sender, e);

                pagingToolbar.RecordCount = RowsCount;
            });

            grid.DataError += new DataGridViewDataErrorEventHandler((sender, e) =>
            {
                if(DataError != null)
                    DataError(sender, e);
            });

            grid.KeyDown += (s, e) =>
            {
                if(e.KeyCode == Keys.Delete)
                {
                    e.Handled = true;
                    DeleteRow();
                }
            };
            #endregion
        }
Ejemplo n.º 6
0
 public void Inicializar(IDisplayValues values)
 {
     sfFiltro.DataSource = DisplayValues = values;
     grdFiltroRegra.PrepareColumns(values.Columns);
     grdFiltroRegra.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
     grdFiltroRegra.Refresh();
 }