public static IEnumerable <TRow> Select <TKey, TTable, TDataContext, TRow>( this BaseDataSourceView <TKey, TTable, TDataContext, TRow> view, StoreReadDataEventArgs e, BaseFilterControl <TKey, TTable, TDataContext> filter, GridFilters gridFilter, BaseGridColumns columns, bool sort) where TKey : struct where TTable : class where TDataContext : DataContext, new() where TRow : BaseRow, new() { var dataSourceSelectArguments = new DataSourceSelectArguments(e.Start, e.Limit); dataSourceSelectArguments.RetrieveTotalRowCount = true; if (sort && e.Sort != null && e.Sort.Length > 0) { dataSourceSelectArguments.SortExpression = GetSortExpression(columns, e.Sort); } IEnumerable result = null; view.Select(dataSourceSelectArguments, data => { result = data; }); e.Total = dataSourceSelectArguments.TotalRowCount; return(result.Cast <TRow>()); }
public static IEnumerable <TRow> Select <TKey, TTable, TDataContext, TRow>( this BaseDataSourceView <TKey, TTable, TDataContext, TRow> view, StoreReadDataEventArgs e, BaseFilterControl <TKey, TTable, TDataContext> filter, GridFilters gridFilter, BaseGridColumns columns) where TKey : struct where TTable : class where TDataContext : DataContext, new() where TRow : BaseRow, new() { return(Select(view, e, filter, gridFilter, columns, true)); }
public static void ReadData <TKey, TTable, TDataContext, TRow>( this GridPanel gridPanel, BaseDataSourceView <TKey, TTable, TDataContext, TRow> view, StoreReadDataEventArgs e, BaseFilterControl <TKey, TTable, TDataContext> filter, GridFilters gridFilter, BaseGridColumns columns) where TKey : struct where TTable : class where TDataContext : DataContext, new() where TRow : BaseRow, new() { gridPanel.GetStore().ReadData <TKey, TTable, TDataContext, TRow>(view, e, filter, gridFilter, columns); }
private void ShowFilterProperties(BaseFilter bf) { if (FilterProperties != null) { PanelFilterProperties.Controls.Clear(); FilterProperties.Hide(); FilterProperties = null; } if (bf is IntFilter) { FilterProperties = new IntFilterControl(); } else if (bf is StringFilter) { FilterProperties = new StringFilterControl(); } else if (bf is BooleanFilter) { FilterProperties = new BooleanFilterControl(); } else if (bf is EnumFilter) { FilterProperties = new EnumFilterControl(); } else if (bf is EnumListFilter) { FilterProperties = new EnumListFilterControl(); } else if (bf is AbilityListFilter) { FilterProperties = new AbilityListFilterControl(); } else { FilterProperties = new BaseFilterControl(); } FilterProperties.FilterUpdate_action = FilterProperties_PropertyValueChanged; FilterProperties.SetFilter(bf); FilterProperties.Location = new Point(3, 3); PanelFilterProperties.Controls.Add(FilterProperties); FilterProperties.BringToFront(); FilterProperties.Show(); }
public static void ReadData <TKey, TTable, TDataContext, TRow>( this Store store, BaseDataSourceView <TKey, TTable, TDataContext, TRow> view, StoreReadDataEventArgs e, BaseFilterControl <TKey, TTable, TDataContext> filter, GridFilters gridFilter, BaseGridColumns columns) where TKey : struct where TTable : class where TDataContext : DataContext, new() where TRow : BaseRow, new() { if (filter.Url.UserControl == null) { filter.Url.UserControl = filter.GetTableName() + "Journal"; } try { var data = view.Select(e, filter, gridFilter, columns, store.RemoteSort); if (!string.IsNullOrEmpty(store.DataSourceID)) { store.DataSourceID = null; } store.DataSource = data; } catch (SqlException exception) { if (exception.Number != -2) { throw; } store.DataSource = new TRow[0]; X.Msg.Show(new MessageBoxConfig { Title = Properties.Resources.SInformation, Message = Properties.Resources.STimeOut, Buttons = MessageBox.Button.OK, Icon = MessageBox.Icon.WARNING, }); } }
public static void SetGridFilters <TKey, TTable, TDataContext, TRow>( this GridFilters gridFilter, string gridFilterStr, BaseFilterControl <TKey, TTable, TDataContext> filter, BaseGridColumns columns) where TKey : struct where TTable : class where TDataContext : DataContext, new() where TRow : BaseRow, new() { var conditions = GetFilterValues(gridFilterStr); if (conditions == null) { return; } filter.Filter += (sender, filterArgs) => { var filterColumns = columns.Columns.OfType <GridColumn>().ToDictionary(r => r.ColumnNameIndex); foreach (var condition in conditions.Conditions) { var filterColumn = filterColumns[condition.Field]; if (filterColumn.SetGridFilterHandler != null) { filterColumn.SetGridFilterHandler(filterArgs, condition); continue; } var property = filterColumn.FilterColumnMapping ?? condition.Field; var param = Expression.Parameter(typeof(TTable), "filterExtNet"); Type fieldType; var getValueExp = LinqFilterGenerator.GetProperty( typeof(TTable), property, param, out fieldType); var values = GetValue(condition, fieldType); DateTime?dateEnd = null; if (fieldType == typeof(DateTime) || fieldType == typeof(DateTime?)) { if (condition.Comparison == Comparison.Eq) { values[0] = ((DateTime)values[0]).Date; dateEnd = ((DateTime)values[0]).AddDays(1).AddSeconds(-1); } else { dateEnd = ((DateTime)values[0]).Date; values[0] = ((DateTime)values[0]).Date.AddDays(1).AddSeconds(-1); } } if (filterColumn.IsForeignKey && filterColumn.DataSource != null && !filterColumn.IsLookup && (fieldType == typeof(long) || fieldType == typeof(long?)) && condition.Type == FilterType.List) { IEnumerable data = null; var strValues = values.Cast <string>().ToDictionary(r => r.ToLower()); filterColumn.DataSource.GetView("").Select(new DataSourceSelectArguments(), c => data = c); values = data.Cast <IDataRow>() .Where(r => strValues.ContainsKey(r.Name.ToLower())) .Select(r => Convert.ChangeType(r.Value, fieldType)) .ToArray(); } Expression expression = null; foreach (var value in values) { var exp3 = dateEnd != null ? filterArgs.QueryParameters.GetExpression( dateEnd.ToString(), dateEnd, fieldType) : null; var tempExp = GetExpression( getValueExp, filterArgs.QueryParameters.GetExpression(value.ToString(), value, fieldType), exp3, condition); expression = expression == null ? tempExp : Expression.Or(expression, tempExp); } if (expression != null) { var lambda = Expression.Lambda <Func <TTable, bool> >(expression, param); filterArgs.AddFilter(lambda); } } }; }
public void GetFieldValue_From_FilterTest() { BaseFilterControl filter = new BaseFilterControl(entityMiniConfigBLO); filter.GetFilterValues(); }
public void CreateField_In_Filter() { BaseFilterControl filter = new BaseFilterControl(entityMiniConfigBLO); }
/// Constructor /// </summary> /// <param name="BLO">Business OBject Instance</param> /// <param name="EntryForm_Instance">Entry Form Instance</param> /// <param name="Filter_Instance">Filter Instance</param> /// <param name="DataGrid_Instance">DataGrid Instance</param> /// <param name="DefaultFilterValues">Default Filter Values</param> /// <param name="FrmParent">Mdi Parent Form</param> public ManagerFormControl( IGwinBaseBLO BLO, BaseEntryForm EntryForm_Instance, BaseFilterControl Filter_Instance, GwinDataGridComponent DataGrid_Instance, Dictionary <string, object> DefaultFilterValues, Form FrmParent) { InitializeComponent(); // Init Properties values this.BLO_Instance = BLO; this.EntryForm_Instance = EntryForm_Instance; this.Filter_Instance = Filter_Instance; this.DataGridControl_Instance = DataGrid_Instance; this.DefaultFilterValues = DefaultFilterValues; this.FrmParent = FrmParent; // Create Entry Form Instance if (this.EntryForm_Instance == null) { if (this.BLO_Instance.ConfigEntity.GwinForm == null) { this.EntryForm_Instance = new BaseEntryForm(this.BLO_Instance); } else { this.EntryForm_Instance = (BaseEntryForm)Activator.CreateInstance(this.BLO_Instance.ConfigEntity.GwinForm.FormType, this.BLO_Instance); } } // Create and Init filtre Instance if (this.Filter_Instance == null) { this.Filter_Instance = new BaseFilterControl(this.BLO_Instance, this.DefaultFilterValues); } this.Filter_Instance.Dock = DockStyle.Fill; this.panel_Filtre.Controls.Add(this.Filter_Instance); this.Filter_Instance.RefreshEvent += BaseFilterControl_RefreshEvent; // Create and Init DataGrid Instance if (this.DataGridControl_Instance == null) { this.DataGridControl_Instance = new GwinDataGridComponent(this.BLO_Instance, this.DefaultFilterValues); } this.DataGridControl_Instance.Dock = DockStyle.Fill; groupBoxDataGrid.Controls.Add(this.DataGridControl_Instance); groupBoxDataGrid.CreateControl(); this.DataGridControl_Instance.EditClick += DataGridControl_EditClick; this.DataGridControl_Instance.EditManyToMany_Creation += DataGridControl_ManyToMany_Creation; // Create ActionsComponent this.ActionsComponent = new ActionsComponent(this); ActionsComponent.Dock = DockStyle.Fill; this.groupBoxActions.Controls.Add(this.ActionsComponent); // Update Titles this.Name = nameof(ManagerFormControl) + this.BLO_Instance.TypeEntity.ToString(); this.Text = this.BLO_Instance.ConfigEntity.ManagementForm.FormTitle; this.tabPageAdd.ToolTipText = this.BLO_Instance.ConfigEntity.AddButton.Title; this.tabControl_MainManager.TabPages["TabGrid"].Text = this.BLO_Instance.ConfigEntity.ManagementForm.TitrePageGridView; // TagAdd Title this.tabControl_MainManager.TabPages["tabPageAdd"].Text = Glossary.Add; // Selected Tab this.tabControl_MainManager.SelectedTab = this.tabControl_MainManager.TabPages["TabGrid"]; }