public virtual Json.Chart GetChart(View view, int top, FormCollection collection, string search, string SortColumn, SortDirection sortDirection, out int rowCount, out Durados.Web.Mvc.UI.Json.Filter filter, string guid, BeforeSelectEventHandler beforeSelectCallback, AfterSelectEventHandler afterSelectCallback) { rowCount = 0; filter = null; DataView dataView = view.ApplyFilter(0, top, collection, !string.IsNullOrEmpty(search), SortColumn, sortDirection, out rowCount, out filter, guid, beforeSelectCallback, afterSelectCallback); return(GetChart(view, dataView)); }
public static DataRow GetDataRow(this View view, string pk, DataSet dataset, BeforeSelectEventHandler beforeSelectCallback, AfterSelectEventHandler afterSelectCallback, bool usePermanentFilter = false) { return(GetDataTableAccess(view).GetDataRow(view, pk, dataset, beforeSelectCallback, afterSelectCallback, usePermanentFilter)); }
public Json.View GetJsonView(View view, DataAction dataAction, string pk, DataRow dataRow, string guid, BeforeSelectEventHandler beforeSelectCallback, AfterSelectEventHandler afterSelectCallback) { //DataRow dataRow = view.GetDataRow(pk, null, beforeSelectCallback, afterSelectCallback); if (dataRow == null) { return(null); } Json.View jsonView = new Json.View(); foreach (Field field in view.GetVisibleFieldsForRow(dataAction)) { if (field.FieldType == FieldType.Column) { string type = field.GetHtmlControlType().ToString(); string format = string.Empty; if (field.FieldType == FieldType.Column) { ColumnFieldType columnFieldType = field.GetColumnFieldType(); format = field.Validation.Format; } string validationType = "Children"; if (field.FieldType != FieldType.Children) { validationType = field.GetValidationType(); } ColumnField columnField = (ColumnField)field; //string value= columnField.ConvertToString(dataRow); //if (columnField.DataColumn.DataType == typeof(bool) && string.IsNullOrEmpty(value)) // value = false.ToString(); object value = dataRow[columnField.DataColumn.ColumnName]; if (view is Durados.Config.IConfigView && field.Name == "Formula") { string parentViewname = dataRow.GetParentRow("Fields")["Name"].ToString(); Map map = Maps.Instance.GetMap(); View currentView = (View)map.Database.Views[parentViewname]; value = DataAccessHelper.ReplaceFieldDisplayNames(value.ToString(), false, currentView); } if (value is DBNull || value.Equals("null")) { value = string.Empty; } else if (columnField.DataColumn.DataType == typeof(DateTime) || columnField.DataColumn.DataType == typeof(byte[])) { value = columnField.ConvertToString(dataRow); } bool disbled; if (dataAction == DataAction.Create) { disbled = field.IsDisableForCreate() || field.DisableConfigClonedField(dataRow); } else { disbled = field.IsDisableForEdit(guid) || field.DisableConfigClonedField(dataRow); } if (dataAction == DataAction.Create) { if (!field.IncludeInDuplicate) { if (field.DefaultValue != null) { value = field.DefaultValue.ToString(); } else { value = string.Empty; } } } if (columnField.Encrypted && columnField.SpecialColumn == SpecialColumn.Password) { value = columnField.View.Database.EncryptedPlaceHolder; } jsonView.Fields.Add(field.Name, new Json.Field() { Name = field.Name, Value = value, Type = field.GetHtmlControlType().ToString(), ValidationType = validationType, Format = format, Required = field.Required, Searchable = field.IsSearchable(), Disabled = disbled, DisDup = field.DisableInDuplicate, Refresh = field.Refresh, Min = field.Validation.GetMinForJson(), Max = field.Validation.GetMaxForJson(), DependencyData = field.DependencyData }); } else if (field.FieldType == FieldType.Parent) { //, DependencyChildren = parentField.GetDependencyChildrenNames() ParentField parentField = (ParentField)field; string fk = string.Empty; DataRow parentRow = null; try { parentRow = dataRow.GetParentRow(parentField.DataRelation.RelationName); fk = parentField.ParentView.GetPkValue(parentRow); } catch (Exception) { DataColumn[] columns = parentField.GetDataColumns(); if (columns.Length == 1) { fk = dataRow[columns[0].ColumnName].ToString(); } else { foreach (DataColumn column in columns) { fk += dataRow[column.ColumnName].ToString() + ','; } fk.TrimEnd(','); } } DataRow dependencyRow = parentRow; if (parentField.GetHtmlControlType() == HtmlControlType.OutsideDependency) { List <string> dependencyFks = new List <string>(); List <Durados.ParentField> dependencyDynasty = parentField.GetDependencyDynasty(); Durados.DataAccess.SqlAccess sqlAccess = new SqlAccess(); foreach (ParentField dependencyField in dependencyDynasty) { DataRow row = dependencyRow.GetParentRow(dependencyField.DataRelation.RelationName); if (row == null) { string key = dependencyField.View.GetFkValue(dependencyRow, dependencyField.DataRelation.RelationName); row = sqlAccess.GetDataRow(dependencyField.ParentView, key, dependencyRow.Table.DataSet); } dependencyRow = row; string dependencyFk = dependencyField.ParentView.GetPkValue(dependencyRow); dependencyFks.Add(dependencyFk); } dependencyFks.Reverse(); dependencyDynasty.Reverse(); int i = 0; foreach (ParentField dependencyField in dependencyDynasty) { Json.Field jsonDependencyField = GetParentJsonField(dependencyField, dependencyFks[i], dataAction, guid); jsonView.Fields.Add(jsonDependencyField.Name, jsonDependencyField); i++; } } Json.Field jsonField = GetParentJsonField(parentField, fk, dataAction, guid); if (parentField.DisableConfigClonedField(dataRow)) { jsonField.Disabled = true; } jsonView.Fields.Add(field.Name, jsonField); } else if (field.FieldType == FieldType.Children) { if (((ChildrenField)field).ChildrenHtmlControlType == ChildrenHtmlControlType.CheckList) { string value = string.Empty; if (dataAction == DataAction.Create) { if (field.IncludeInDuplicate) { value = ((ChildrenField)field).GetSelectedChildrenPKDelimited(pk); } else { if (field.DefaultValue != null) { value = field.DefaultValue.ToString(); } } } else { value = ((ChildrenField)field).GetSelectedChildrenPKDelimited(pk); } Json.Field jsonField = GetChildrenJsonField(((ChildrenField)field), value); jsonView.Fields.Add(field.Name, jsonField); } else { Json.Field jsonField = GetChildrenJsonField(((ChildrenField)field), null); jsonView.Fields.Add(field.Name, jsonField); } } } try { LoadDerivation(view, jsonView); } catch { } jsonView.InlineAddingCreateUrl = view.GetInlineAddingCreateUrl(); jsonView.ViewName = view.Name; return(jsonView); }
public static DataView FillPage(this View view, int page, int pageSize, Filter filter, bool?search, bool?useLike, Dictionary <string, SortDirection> sortColumns, out int rowCount, BeforeSelectEventHandler beforeSelectCallback, AfterSelectEventHandler afterSelectCallback) { return(GetDataTableAccess(view).FillPage(view, page, pageSize, filter, search, useLike, sortColumns, out rowCount, beforeSelectCallback, afterSelectCallback)); }
public DataView FillPage(View view, int page, int pageSize, Json.Filter jsonFilter, bool search, string sortColumn, SortDirection direction, out int rowCount, BeforeSelectEventHandler beforeSelectCallback, AfterSelectEventHandler afterSelectCallback) { Dictionary <string, object> values = new Dictionary <string, object>(); if (jsonFilter != null) { foreach (Json.Field jsonField in jsonFilter.Fields.Values) { if (jsonField.Value != null && !string.IsNullOrEmpty(jsonField.Value.ToString())) { values.Add(jsonField.Name, jsonField.Value); } //else //{ // values.Add(jsonField.Name, null); //} } } Dictionary <string, SortDirection> sortColumns = new Dictionary <string, SortDirection>(); if (!string.IsNullOrEmpty(sortColumn)) { sortColumns.Add(sortColumn, direction); } return(view.FillPage(page, pageSize, values, search, sortColumns, out rowCount, beforeSelectCallback, afterSelectCallback)); }