public virtual ActionResult CoreView() { try { string ID = Request.Query["ID"]; string tmplCode = Request.Query["tmplCode"]; string IsPreView = Request.Query["IsPreView"]; string UpperVersion = Request.Query["UpperVersion"]; //前台用的判断数据 ViewBag.tmplCode = tmplCode; ViewBag.IsPreView = IsPreView; ViewBag.IsPreView = IsPreView; ViewBag.UpperVersion = UpperVersion; ViewBag.FlowCode = Request.Query["FlowCode"]; ViewBag.TaskExecID = Request.Query["TaskExecID"]; //TODO 流程升版 UIBuilder uiFO = new UIBuilder(); string sql = "SELECT * FROM S_UI_Form WITH(NOLOCK) "; List <S_UI_Form> uiLists = SQLHelper.CreateSqlHelper().ExecuteList <S_UI_Form>(sql).Where(c => c.Code == tmplCode).ToList(); S_UI_Form formDef = uiLists.FirstOrDefault(); bool isNew = false; DataTable formDataDT = null; if (IsPreView == "True") { formDataDT = new DataTable(); var row = formDataDT.NewRow(); formDataDT.Rows.Add(row); } else { if (string.IsNullOrEmpty(UpperVersion)) { sql = string.Format("select count(ID) from {0} where ID='{1}'", formDef.TableName, ID); SQLHelper sqlHelper = SQLHelper.CreateSqlHelper(formDef.ConnName); var count = Convert.ToInt32(sqlHelper.ExecuteScalar(sql)); if (count == 0) { isNew = true; } formDataDT = GetModelDT(formDef, ID); } else { isNew = true; formDataDT = GetModelDT(formDef, UpperVersion, true); formDataDT.Rows[0]["ID"] = GuidHelper.CreateGuid(); formDataDT.Rows[0]["FlowPhase"] = ""; formDataDT.Rows[0]["VersionNumber"] = ""; } //TODO Import AfterGetData(formDataDT, isNew, UpperVersion); } ViewBag.FormData = JsonHelper.ToJson(formDataDT).Trim('[', ']'); var fieldInfo = JsonHelper.ToJson(uiFO.GetFieldInfo(formDef)); if (fieldInfo == "[]" || fieldInfo == "") { ViewBag.FieldInfo = "{}"; } else { ViewBag.FieldInfo = fieldInfo.Trim('[', ']'); } ViewBag.FormHtml = uiFO.CreateFormHtml(formDef); ViewBag.HiddenHtml = uiFO.CreateFormHiddenHtml(formDef); //此处允许开发者在自定义的controller中增加自己需要的脚本,同平台的脚本一起绘制在PageView中 if (ViewBag.Script != null && !String.IsNullOrEmpty(ViewBag.Script)) { ViewBag.Script += "\n " + uiFO.CreateFormScript(formDef); } else { ViewBag.Script = uiFO.CreateFormScript(formDef); } #region 子表大数据时,需要配置表单虚滚动加载 var items = JsonHelper.ToObject <List <FormItem> >(formDef.Items); ViewBag.VirtualScroll = false.ToString().ToLower(); var subTableList = items.Where(c => c.ItemType == "SubTable").ToList(); foreach (var subTableItem in subTableList) { if (String.IsNullOrEmpty(subTableItem.Settings)) { continue; } var dic = JsonHelper.ToObject(subTableItem.Settings); var dicSubTableSettings = JsonHelper.ToObject(dic["formData"].ToString()); if (dicSubTableSettings.GetValue("IsVirtualScroll") == "true") { ViewBag.VirtualScroll = true.ToString().ToLower(); break; } } #endregion if (ViewBag.DataSource == null) { var defaultValueRows = uiFO.GetDefaultValueDic(formDef.DefaultValueSettings); #region 数据源到前台 StringBuilder sb = new StringBuilder(); foreach (var key in defaultValueRows.Keys) { var guid = new Guid(); if (Guid.TryParse(key, out guid) == false) { sb.AppendFormat("\n var {0}={1}", key, JsonHelper.ToJson(defaultValueRows[key])); } } ViewBag.DataSource = sb.ToString(); #endregion } } catch (Exception ex) { throw new Exception(ex.Message); } return(View()); }