/// <summary> /// 校验保存数据 /// </summary> /// <param name="ReportTemplate"></param> /// <returns></returns> private ActionResult ValidateSaveData(ReportTemplate ReportTemplate, bool isAdd) { ActionResult result = new ActionResult(); result.Success = true; List <string> errorMsg = new List <string>(); if (string.IsNullOrWhiteSpace(ReportTemplate.Code)) { result.Success = false; errorMsg.Add("ReportTemplate.Msg1"); } ReportTemplate template = this.Engine.Analyzer.GetReportTemplateByCode(ReportTemplate.Code);//校验编码是否重复 if (null != template && isAdd) { result.Success = false; errorMsg.Add("msgGlobalString.CodeDuplicate"); } System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(ReportCodeReg); if (!regex.Match(ReportTemplate.Code).Success) { result.Success = false; errorMsg.Add("msgGlobalString.ReportCodeInvalid"); } if (string.IsNullOrWhiteSpace(ReportTemplate.SourceCode)) { result.Success = false; errorMsg.Add("ReportTemplate.Msg2"); } if (ReportTemplate.ReportType == ReportType.Summary && (ReportTemplate.Columns == null || ReportTemplate.Columns.Length == 0)) { result.Success = false; errorMsg.Add("ReportTemplate.Msg3"); } //交叉分析表校验 if (ReportTemplate.ReportType == ReportType.Cross) { if (string.IsNullOrWhiteSpace(ReportTemplate.ColumnTitle) && string.IsNullOrWhiteSpace(ReportTemplate.RowTitle)) { result.Success = false; errorMsg.Add("ReportTemplate.Msg4"); } if (string.IsNullOrWhiteSpace(ReportTemplate.RowTitle) || string.IsNullOrWhiteSpace(ReportTemplate.ColumnTitle)) { if (ReportTemplate.Columns == null && ReportTemplate.Columns.Length == 0) { result.Success = false; errorMsg.Add("ReportTemplate.Msg5"); } } if (!string.IsNullOrWhiteSpace(ReportTemplate.RowTitle) && !string.IsNullOrWhiteSpace(ReportTemplate.ColumnTitle)) { if (ReportTemplate.Columns != null && ReportTemplate.Columns.Length > 1) { result.Success = false; errorMsg.Add("ReportTemplate.Msg6"); } } //判断钻取维度 if (!string.IsNullOrWhiteSpace(ReportTemplate.DrillCode)) { if (!string.IsNullOrWhiteSpace(ReportTemplate.RowTitle)) { string[] RowTitles = ReportTemplate.RowTitle.Split(';'); for (int i = 0; i < RowTitles.Length; i++) { if (RowTitles[i] != ReportTemplate.RowDrillParam[i].Title) { result.Success = false; errorMsg.Add("ReportTemplate.Msg7"); } } } if (!string.IsNullOrWhiteSpace(ReportTemplate.ColumnTitle)) { if (ReportTemplate.ColumnTitle != ReportTemplate.ColumnDrillParam.Title) { result.Success = false; errorMsg.Add("ReportTemplate.Msg8"); } } } } ReportTemplate.SetPropertyDirty(ReportTemplate.PropertyName_AxisUnit); ReportTemplate.SetPropertyDirty(ReportTemplate.PropertyName_XAxisUnit); if (ReportTemplate.Parameters != null) {//这里可以做一些过来参数的校验 } if (!result.Success) { result.Extend = errorMsg; } return(result); }