public void Initialize(PageConfigView pageView, FormConfigView formView, ColumnConfig columnConfig, PageStyle style) { this.PageView = pageView; this.FormView = formView; this.Config = columnConfig; this.ViewPageStyle = style; }
protected virtual void CreateGroupColumns(FormConfigView formView, DataFormConfig dataformConfig) { //dataformConfig.ColumnGroups.ForEach(group => //{ // var columnGroup = new ColumnGroupConfigView(); // columnGroup.ShowType = group.ShowType == 0 ? "ColShowType".AppKv<int>(4) : group.ShowType; // columnGroup.Name = group.Name; // columnGroup.DisplayName = group.DisplayName; // columnGroup.Columns = new List<ColumnConfigView>(); // var hiddenColCount = 0; // group.Columns.ForEach(col => // { // var colView = formView.Columns.FirstOrDefault(x => x.Name == col.Name); // if (colView != null) // { // columnGroup.Columns.Add(colView); // if (colView.ControlType == ControlType.Hidden) // { // hiddenColCount++; // } // } // }); // //组内没有成员,该组移除,若组内所有字段都是隐藏字段,该组隐藏 // if (columnGroup.Columns.Count > 0) // { // formView.ColumnGroups.Add(columnGroup); // if (columnGroup.Columns.Count == hiddenColCount) // columnGroup.IsHidden = true; // } //}); }
private FormConfigView CreateSearchFormView(FormConfigView formView, List <ColumnConfig> columns) { FormConfigView searchFormView = new FormConfigView(); searchFormView.FormType = FormType.Normal; searchFormView.ShowKind = ShowKind.Tile; searchFormView.TableName = formView.TableName + "_SEARCH"; searchFormView.PrimaryKey = formView.PrimaryKey; searchFormView.Title = formView.Title + "查询"; searchFormView.Name = formView.Name + "_SEARCH"; searchFormView.Columns = new List <ColumnConfigView>(); foreach (var column in columns) { CreateSearchColumn(searchFormView, column); } return(searchFormView); }
protected virtual void CreateColumns(FormConfigView formView, DataFormConfig dataformConfig, FormConfig formConfig) { foreach (var column in dataformConfig.Columns) { if ((column.ShowPage & PageStyle) != PageStyle) { continue; } else { //var col = CreateColumn(formView, column); ////列表和明细页面的所有字段控件类型为Detail //if (!column.IsKey && (PageStyle == PageStyle.Detail || PageStyle == PageStyle.List)) // col.ControlType = ControlType.Detail; //formView.Columns.Add(col); formView.Columns.Add(CreateColumn(formView, column)); //if (column.Navigation != null && column.Navigation.IsAvailable == true) //{ // formView.NavigationColumns.Add(CreateColumnNavigation(formView, column)); //} } } }
private void CreateSearchColumn(FormConfigView formView, ColumnConfig column) { ColumnConfigView colView = new ColumnConfigView(); if (column.IsReadOnly) { column.IsReadOnly = false; } if (column.ControlType == ControlType.TreeMultiSelector) { colView.ControlType = ControlType.TreeSingleSelector; } else if (column.ControlType == ControlType.Detail || column.ControlType == ControlType.TextArea || (column.Search != null && column.Search.IsLike == true))//添加如果islike为true { colView.ControlType = ControlType.Text; } //else if (column.Search.ControlType != ControlType.None) //{ // colView.ControlType = column.Search.ControlType; //} else if (column.ControlType == ControlType.SingleCheckBox) { colView.ControlType = ControlType.Combo; column.RegName = "SingleCheckBoxIsOrNo"; } else { colView.ControlType = column.ControlType; } //搜索区的控件类型当为搜索字段配置的控件类型 if (column.Search.ControlType != ControlType.None) { colView.ControlType = column.Search.ControlType; } if (column.Search.DateSpan) { colView.DisplayName = column.DisplayName + "开始"; } else { colView.DisplayName = column.DisplayName; } colView.DisplayName = column.DisplayName; colView.Name = column.Name; string controlRegname = colView.ControlType.ToString(); // to.Options var optionCreator = provider.GetCodePlugService <OptionCreator>(controlRegname);// controlRegname.CodePlugIn<OptionCreator>(); //初始化 optionCreator.Initialize(BasePageView, formView, column, PageStyle.None); //方法调用 colView.Options = optionCreator.Create(); if (!column.DetailRegName.IsEmpty()) { colView.Options.RegName = column.DetailRegName; } if (column.Search != null && column.Search.IsOpenByDefault == true) { colView.Options.IsOpenByDefault = true; } colView.Options.DataValue = null; if (column.ControlType == ControlType.Text) //Text字段,模糊查询 { colView.Options.PostSetting.ColumnName = colView.Name + "_LIKE"; } //如果islike为true则 if (column.Search != null && column.Search.IsLike == true) { colView.Options.PostSetting.ColumnName = colView.Name + "_LIKE"; colView.Options.IsLike = true; } if (column.Search.IsExtension) //查询扩展 { colView.Options.PostSetting.ColumnName = colView.Name + "_IN"; } //查询区日期控件需要扩展成2个控件 if (column.Search.DateSpan) { colView.DisplayName = column.DisplayName + "开始"; formView.Columns.Add(colView); PageStyle = PageStyle.None;//避免创建选择器控件或多选控件的时候重复解码CodeTable var col = CreateColumn(formView, column); PageStyle = PageStyle.List; col.DisplayName = column.DisplayName + "结束"; col.Name = column.Name + "_END"; col.ControlType = colView.ControlType; col.Options.DataValue = null; col.Options.PostSetting.ColumnName = col.Name; formView.Columns.Add(col); } else { formView.Columns.Add(colView); } }
protected override ColumnConfigView CreateColumn(FormConfigView formView, ColumnConfig column) { var col = base.CreateColumn(formView, column); switch (column.ControlType) { case ControlType.Hidden: col.ControlType = ControlType.Hidden; break; case ControlType.Date: col.ControlType = ControlType.DetailDate; break; case ControlType.MultiFileUpload: case ControlType.SingleFileUpload: col.ControlType = ControlType.FileDetail; break; case ControlType.SingleImageUpload: case ControlType.MultiImageUpload: col.ControlType = ControlType.ImageDetail; break; case ControlType.Editor: col.ControlType = ControlType.EditorDetail; break; case ControlType.InnerPage: col.ControlType = ControlType.InnerPage; break; case ControlType.InnerForm: col.ControlType = ControlType.InnerForm; break; //case ControlType.MaskCode: // col.ControlType = ControlType.MaskCode; // break; case ControlType.Amount: col.ControlType = ControlType.AmountDetail; break; case ControlType.AmountDetail: col.ControlType = ControlType.AmountDetail; break; case ControlType.TwoColumns: col.ControlType = ControlType.TwoColumnsDetail; break; case ControlType.TwoColumnsDetail: col.ControlType = ControlType.TwoColumnsDetail; break; case ControlType.TextArea: col.ControlType = ControlType.DetailArea; break; case ControlType.DetailArea: col.ControlType = ControlType.DetailArea; break; case ControlType.JsonForm: col.ControlType = ControlType.JsonForm; break; case ControlType.XFormCol: col.ControlType = ControlType.XFormColDetail; break; case ControlType.AllImageShow: col.ControlType = ControlType.AllImageShow; break; case ControlType.ImageDetail: col.ControlType = ControlType.ImageDetail; break; default: col.ControlType = ControlType.Detail; break; } //if (column.ControlType != ControlType.Hidden) // col.ControlType = ControlType.Detail; //if (column.ControlType == ControlType.Date) // col.ControlType = ControlType.DetailDate; //if (column.ControlType == ControlType.SingleFileUpload) // col.ControlType = ControlType.DownLink; //if (column.ControlType == ControlType.SingleImageUpload || column.ControlType == ControlType.MultiImageUpload) // col.ControlType = ControlType.ImageDetail; ////case ControlType.Editor: //// col.ControlType = ControlType.EditorDetail; //// break; //if (column.ControlType == ControlType.Editor) // col.ControlType = ControlType.EditorDetail; return(col); }
protected virtual ColumnConfigView CreateColumn(FormConfigView formView, ColumnConfig column) { ColumnConfigView colView = new ColumnConfigView(); colView.ControlType = column.ControlType; colView.DisplayName = column.DisplayName; colView.Prompt = column.Prompt; colView.ValPrompt = column.ValPrompt; //if ((PageStyle == PageStyle.Update || PageStyle == PageStyle.Insert) && colView.ValPrompt != null && column.ShowType > 0) //{ // column.ShowType = column.ShowType >= 3?0:2; //} if (column.Changer != null) { colView.Changer = new ChangerViewConfig(); colView.Changer.Expression = column.Changer.Expression; colView.Changer.DependColumns = column.Changer.DependColumns; colView.Changer.NotifyColumns = column.Changer.NotifyColumns; } if (column.ShowType == 0 || column.ControlType == ControlType.XFormCol || column.ControlType == ControlType.AllImageShow || column.ControlType == ControlType.Editor || column.ControlType == ControlType.EditorDetail || column.ControlType == ControlType.ImageDetail || column.ControlType == ControlType.PCAS || column.ControlType == ControlType.MultiSelector || column.ControlType == ControlType.MultiImageUpload || column.ControlType == ControlType.SingleImageUpload || column.ControlType == ControlType.SingleFileUpload || column.ControlType == ControlType.MultiFileUpload || column.ControlType == ControlType.FormMultiSelector || column.ControlType == ControlType.TextArea) { colView.ShowType = 4;// "ColShowType".AppKv<int>(4); } else { colView.ShowType = column.ShowType; } if (column.ControlType == ControlType.Hidden) { colView.ShowType = 0; } colView.Sortable = column.Sortable; colView.IsDetailLink = column.IsDetailLink; colView.Name = column.Name; colView.Kind = column.Kind; colView.NormalStyle = column.NormalStyle; colView.TdStyle = column.TdStyle; //colView.TdClass = column.TdClass; colView.IsHiddenCol = column.IsHiddenCol; colView.Width = column.Width; //colView.IsMulitText = column.IsMulitText; //colView.Border = column.Border; colView.PxWidth = column.Width.lengToFloat(); colView.PxHeight = column.Height.lengToFloat(); colView.LinkFormat = column.LinkFormat; colView.ChangeEventFun = column.ChangeEventFun; //colView.Report = column.Report; //colView.TreeConfig = column.TreeConfig; colView.ShortCutName = column.ShortCutName; //colView.Amount = column.Amount; //colView.TextRegName = column.TextRegName; // colView.XForm = column.XForm; if (column.ControlType == ControlType.Custom) { //Debug.AssertArgumentNull(column.CustomControl, "Custom控件类型需要配置CustomControl", column); //Debug.AssertArgumentNullOrEmpty(column.CustomControl.ControlType, "CustomControl中必须指定自定义控件类型", column); } //colView.CustomControl = column.CustomControl; //if (column.ControlType == ControlType.Editor) //{ // colView.Editor = column.Editor; //} if (!column.SourceName.IsEmpty()) { colView.QingColumnName = column.Name; } string controlRegname = column.ControlType.ToString(); // to.Options var optionCreator = provider.GetCodePlugService <OptionCreator>(controlRegname); //controlRegname.CodePlugIn<OptionCreator>(); //初始化 optionCreator.Initialize(BasePageView, formView, column, PageStyle); //方法调用 colView.Options = optionCreator.Create(); return(colView); }
protected FormConfigView CreateFormView(DataFormConfig dataForm, FormConfig formConfig) { FormConfigView formView = new FormConfigView(); formView.FormType = formConfig.FormType; formView.ShowKind = formConfig.ShowKind; formView.AfterInitFunName = formConfig.AfterInitFunName; formView.VerticalTab = formConfig.VerticalTab; //布局方式 formView.HasBatchInsert = false; formView.HasPager = false; formView.HasSearch = false; formView.ParentFieldName = formConfig.ParentFieldName; formView.TextFieldName = formConfig.TextFieldName; formView.IsParentFieldName = formConfig.IsParentFieldName; formView.IsSafeMode = formConfig.IsSafeMode; formView.HasReview = formConfig.HasReview; formView.Calendar = formConfig.Calendar; formView.ExpandDetailPlug = formConfig.ExpandDetailPlug; formView.RowTpl = formConfig.RowTpl; formView.ContentTpl = formConfig.ContentTpl; formView.DisableColumnGroup = formConfig.Group.IsDisabled.ToLower() == "true" || formConfig.Group.IsDisabled == "1" ? true : false; // formView.Tpl = formConfig.Tpl; //var _bean = formConfig.Tpls.FirstOrDefault(a => a.PageStyle == PageStyle); //if (_bean != null) // formView.Tpl = _bean.Item; formView.IsInner = formConfig.IsInner; formView.HaveNoSwitchForm = formConfig.HaveNoSwitchForm; formView.HaveNoSortBar = formConfig.HaveNoSortBar; //var NavigationList = dataForm.Columns.Where(a => a.Navigation != null); //if (NavigationList.Count() > 0) //{ // formView.HasNavigation = true; // List<ColumnConfig> columns = NavigationList.ToList(); // foreach (var column in columns) // { // ColumnConfigView colView = new ColumnConfigView(); // if (column.Navigation != null && column.Navigation.IsAvailable == true && (column.ControlType == ControlType.CheckBox || column.ControlType == ControlType.Combo || column.ControlType == ControlType.Radio || column.ControlType == ControlType.TreeSingleSelector || column.ControlType == ControlType.TreeMultiSelector)) // { // if (column.ControlType == ControlType.CheckBox) // { // colView.ControlType = ControlType.CheckBoxNavi; // } // else if (column.ControlType == ControlType.Radio || column.ControlType == ControlType.Combo) // { // colView.ControlType = ControlType.RadioNavi; // } // else if (column.ControlType == ControlType.TreeSingleSelector) // { // colView.ControlType = ControlType.TreeSingleNavi; // } // else // { // colView.ControlType = ControlType.TreeMultiNavi; // } // } // } //} formView.TableName = formConfig.TableName; //if (formView.TableName.IsEmpty()) // formView.TableName = dataForm.TableName; //if (formView.TableName.IsEmpty()) // formView.TableName = formConfig.DataPlug.PlugInPageGet<IListDataTable>().RegName; formView.Title = formConfig.Title; //if (formView.Title.IsEmpty()) // formView.Title = dataForm.Title; //if (formView.Title.IsEmpty()) // formView.Title = ModuleConfig.Title; if (ModuleConfig.Mode == ModuleMode.None) { formView.Title = formView.Title; } else { switch (PageStyle) { case PageStyle.List: formView.Title = formView.Title + "列表"; break; case PageStyle.Detail: formView.Title = formView.Title + "明细"; break; case PageStyle.Update: formView.Title = formView.Title + "修改"; break; case PageStyle.Insert: formView.Title = formView.Title + "新增"; break; } } formView.Name = formConfig.Name; //if (formView.Name.IsEmpty()) // formView.Name = dataForm.Name; //if (formView.Name.IsEmpty()) // formView.Name = formView.TableName; //string msg = string.Format("数据源为{0}插件的form的名称不能为空", formConfig.DataPlug); //Debug.AssertNotNullOrEmpty(formView.Name, msg, this); formView.Columns = new List <ColumnConfigView>(); CreateColumns(formView, dataForm, formConfig); formView.ColumnGroups = new List <ColumnGroupConfigView>(); CreateGroupColumns(formView, dataForm); formView.NavigationColumns = new List <NaviColumnConfigView>(); //可能有多个navi(目前只有一个) if (PageStyle == PageStyle.List) { var navigation = dataForm.Columns.FindAll(a => a.Navigation != null && a.Navigation.IsAvailable); foreach (var navi in navigation) { if (navigation != null) { var viewColumn = formView.Columns.FirstOrDefault(a => a.Name == navi.Name); var viewNavi = CreateColumnNavigation(viewColumn, navi); if (viewNavi != null) { formView.NavigationColumns.Add(viewNavi); } } } } return(formView); }