public ResultContext GetMonthList(string SystemID, int Year, int Month, string TargetPlanID, bool IsLatestVersion = false, string DataSource = "Draft", bool IsAll = false) { try { MonthlyReportController ms = new MonthlyReportController(); List <DictionaryVmodel> listM = ms.GetReportInstance(SystemID, Year, Month, TargetPlanID, IsLatestVersion, DataSource, IsAll); Guid result = Guid.Empty; Guid.TryParse(SystemID, out result); if (result == Guid.Empty) { return(new ResultContext((int)StatusCodeEnum.isFalse, "系统编码错误")); } DictionaryVmodel dv = new DictionaryVmodel(); if (listM.Count > 0) { dv = listM[2]; } return(new ResultContext(new { title = listM[1].ObjValue, list = JsonConvert.SerializeObject(dv) })); } catch (Exception ex) { return(new ResultContext((int)StatusCodeEnum.isCatch, ex.ToString())); throw; } }
/// <summary> /// 合并经营报告明细(混合指标) /// </summary> /// <param name="dvCurrent">已计算的单项指标集合</param> /// <returns></returns> public List <DictionaryVmodel> GetMergeComplateMonthReportDetail(List <DictionaryVmodel> dvCurrentList) { List <DictionaryVmodel> dvResult = new List <DictionaryVmodel>(); var completeBlendTargetDetailXml = SplitCompleteBlendTargetDetailXml(_System.Configuration); //遍历完成情况明细中包含几个混合指标(目前需求一个版块只允许有一个) foreach (var item in completeBlendTargetDetailXml) { //合并混合指标为Object List <DictionaryVmodel> dvMergeList = new List <DictionaryVmodel>(); DictionaryVmodel dv = new DictionaryVmodel(); dv.Name = item.TargetName; dv.IsBlendTarget = true; dv.Mark = "Target"; dv.Senquence = item.Senquence; foreach (var dvItem in dvCurrentList) { dv.HtmlTemplate = dvItem.HtmlTemplate; var TargetList = item.VTargetList.Where(m => m.TargetName == dvItem.Name).ToList(); //判断当前指标是否为混合指标 if (TargetList != null && TargetList.Count() > 0) { dvMergeList.Add(dvItem); } else { //如果不存在单指标才重新添加 if (dvResult.Where(m => m.Name == dvItem.Name).Count() == 0) { dvResult.Add(dvItem); } } } if (dvMergeList.Count > 0) { dv.ObjValue = dvMergeList; dvResult.Add(dv); } } //重新排序 return(dvResult.OrderBy(m => m.Senquence).ToList()); }
/// <summary> /// 分组数据 /// </summary> /// <param name="Group">分组条件</param> /// <param name="XmlType">补回情况/未完成说明</param> /// <returns></returns> List <DictionaryVmodel> FormartCounterData(VCounter counter, VGroup Group, string XmlType, string GroupStr, ref List <MonthlyReportDetail> Source) { List <DictionaryVmodel> result = new List <DictionaryVmodel>(); List <MonthlyReportDetail> tempList = CalclateMissTargetdata(counter, Group.TargetIDs); string TitleName = MonthDescriptionTools(counter.Title, Group.TargetIDs, counter.Expression, tempList); DictionaryVmodel dictM = new DictionaryVmodel(TitleName, tempList); dictM.Mark = "Data"; dictM.GuoupID = GroupStr; dictM.TargetGroupCount = Group.TargetIDs.Count(); dictM.SystemName = _System.SystemName; dictM.Value = counter.Senquence.ToString(); result.Add(dictM); return(result); }
private List <DictionaryVmodel> FormartProData(List <ProjectCounter> ProCounter) { List <DictionaryVmodel> result = new List <DictionaryVmodel>(); List <V_ProjectCompany> ProList = new List <V_ProjectCompany>(); List <V_ProjectCompany> VP = new List <V_ProjectCompany>(); /*这里XML确保“区域公司小计”的排序在“总计”的前面,这样在计算的时候容易, * 但是在展示的时候 总计需要在区域公司的前面,这个时候需要重新排序,同时还需要将明细数据放到最后 */ foreach (ProjectCounter item in ProCounter.OrderBy(g => g.Senquence)) { if (!item.IsDetail) //不是明细项 { if (item.Title == "总计") { //显示的项 ProList.AddRange(GetProjectModel(ProList, item)); //2 总计 } else { ProList.AddRange(GetProjectModel(item)); //1 区域小计 } } else { //是明细项 VP = ProList.OrderBy(p => p.ProCompanySequence).ToList(); //重新排序 //3 VP.AddRange(GetProjectCompany()); } } DictionaryVmodel Dict = new DictionaryVmodel(); Dict.Mark = "Data"; Dict.ObjValue = VP; result.Add(Dict); return(result); }
/// <summary> /// 分组数据 /// </summary> /// <param name="Group">分组条件</param> /// <param name="XmlType">补回情况/未完成说明</param> /// <returns></returns> List <DictionaryVmodel> FormartVData(VGroup Group, string XmlType, string GroupStr) { List <DictionaryVmodel> result = new List <DictionaryVmodel>(); //循环Group下的数据 foreach (var counter in Group.CounterList.OrderBy(C => C.Senquence)) { if (counter.SubCounterList != null && counter.SubCounterList.Count > 0) { DictionaryVmodel dictC = new DictionaryVmodel(counter.Title, FormartCounterData(counter, Group, XmlType, GroupStr, ref VLastList)); dictC.Mark = "Counter"; dictC.GuoupID = GroupStr; dictC.TargetGroupCount = 1; dictC.SystemName = _System.SystemName; result.Add(dictC); } else { result.AddRange(FormartCounterData(counter, Group, XmlType, GroupStr, ref VLastList)); } } return(result); }
/// <summary> /// 分组数据 /// </summary> /// <param name="Group">分组条件</param> /// <param name="XmlType">补回情况/未完成说明</param> /// <returns></returns> List <DictionaryVmodel> FormartCounterData(VCounter counter, VGroup Group, string XmlType, string GroupStr, ref List <MonthlyReportDetail> Source) { List <DictionaryVmodel> result = new List <DictionaryVmodel>(); if (counter.SubCounterList != null && counter.SubCounterList.Count > 0) { List <MonthlyReportDetail> subSource = Calclatedata(counter, Group.TargetIDs, ref Source); foreach (VCounter c in counter.SubCounterList) { if (c.SubCounterList != null && c.SubCounterList.Count > 0) { DictionaryVmodel dictC = new DictionaryVmodel(c.Title, FormartCounterData(c, Group, XmlType, GroupStr, ref subSource)); dictC.Mark = "Counter"; dictC.GuoupID = GroupStr; dictC.TargetGroupCount = 1; dictC.SystemName = _System.SystemName; result.Add(dictC); } else { result.AddRange(FormartCounterData(c, Group, XmlType, GroupStr, ref subSource)); } } } else { DictionaryVmodel dictR = new DictionaryVmodel(counter.Title, Calclatedata(counter, Group.TargetIDs, ref Source)); dictR.Mark = "Data"; dictR.GuoupID = GroupStr; dictR.TargetGroupCount = 1; dictR.SystemName = _System.SystemName; result.Add(dictR); } return(result); }
/// <summary> /// 获取区域汇总信息 /// </summary> /// <param name="listMRD"></param> /// <param name="ChildDataPermissions"></param> /// <returns></returns> private List <DictionaryVmodel> EditDataParent(List <DictionaryVmodel> dvList, C_Target CTarget, List <S_Organizational> listOrganizational) { #region 声明变量 List <DictionaryVmodel> lstDVM = new List <DictionaryVmodel>(); B_MonthlyReportDetail bmrd = null; #endregion //对区域数据分组获取大区信息 var areaList = dvList.GroupBy(m => new { m.GuoupID, m.Value, m.Level }).Select(n => new { AreaID = n.Key.GuoupID, AreaName = n.Key.Value, Level = n.Key.Level, Count = n.Count() }); //大区 foreach (var item in areaList) { List <DictionaryVmodel> currentDVListGroup = dvList.Where(m => m.GuoupID == item.AreaID).ToList(); DictionaryVmodel dv = new DictionaryVmodel(); dv.Name = item.AreaName; dv.Mark = "Area"; bmrd = SummaryAreaData(currentDVListGroup, dv.BMonthReportDetail, CTarget); bmrd = TargetEvaluationEngine.TargetEvaluationService.Calculation(bmrd, false); dv.BMonthReportDetail = bmrd; dv.RowSpanCount = currentDVListGroup.Count; dv.ObjValue = currentDVListGroup; //大于3表示当前区域上面还存在区域(level=1 组织架构顶级 level=2 板块) if (item.Level > 3) { //获取当前区域信息 var currentAreaList = listOrganizational.Where(m => m.ID == Guid.Parse(item.AreaID)).ToList(); if (currentAreaList.Any() && currentAreaList.FirstOrDefault().ParentID != Guid.Empty) { //获取当前区域父级区域信息 var parentArea = listOrganizational.Where(m => m.ID == currentAreaList.FirstOrDefault().ParentID); dv.Value = parentArea.FirstOrDefault().CnName.ToString(); dv.GuoupID = parentArea.FirstOrDefault().ID.ToString(); dv.Level = parentArea.FirstOrDefault().Level; } } lstDVM.Add(dv); } //表示存在父级区域 if (lstDVM.Any() && !string.IsNullOrEmpty(lstDVM.FirstOrDefault().GuoupID)) { //最后一级区域的上面的所有区域信息 List <DictionaryVmodel> resultDVM = new List <DictionaryVmodel>(); resultDVM = EditDataParent(lstDVM, CTarget, listOrganizational); return(resultDVM); } else { return(lstDVM); } }
/// <summary> /// 数据筛选 /// </summary> /// <param name="strCP">公司类型Item</param> /// <param name="listMRDetail">数据</param> /// <param name="vt">指标项</param> /// <returns></returns> private List <DictionaryVmodel> EditData(List <MonthlyReportDetail> listMRD, VTarget vt, C_Target CTarget, List <S_Organizational> listOrganizational, VItemCompanyProperty vcp) { #region 声明变量 List <DictionaryVmodel> lstDVM = new List <DictionaryVmodel>(); List <MonthlyReportDetail> VCounterListMonthlyReportDetailViewModel = null; B_MonthlyReportDetail bmrd = null; List <VCounter> listVCounter = null; #endregion #region 数据判断与拼装 //判断当前指标是否存在模板,如果存在使用指标模板,如果不存在使用当前系统的模板。 if (CTarget.Configuration.Elements("ManageTargetDetail").Elements("Target").ToList().Count > 0) { listVCounter = SplitCompleteTargetDetailXml(CTarget.Configuration)[0].CounterList; } else { listVCounter = vt.CounterList; } //对项目公司数据按照区域分组获取区域信息 var areaList = listMRD.GroupBy(m => new { m.AreaID, m.AreaName, m.AreaLevel }).Select(n => new { AreaID = n.Key.AreaID, AreaName = n.Key.AreaName, AreaLevel = n.Key.AreaLevel, Count = n.Count() }).OrderBy(m => m.AreaID); //从项目汇总到上一级区域 foreach (var item in areaList) { DictionaryVmodel dv = dv = new DictionaryVmodel(); VCounterListMonthlyReportDetailViewModel = new List <MonthlyReportDetail>(); var currentAreaMrd = listMRD.Where(m => m.AreaID == item.AreaID).ToList(); dv.Name = item.AreaName; dv.Mark = "LastArea"; bmrd = SummaryData(currentAreaMrd, dv.BMonthReportDetail, CTarget); //调用计算完成率的方法 bmrd = TargetEvaluationEngine.TargetEvaluationService.Calculation(bmrd, false); dv.BMonthReportDetail = bmrd; //如果是混合指标按照公司排序 否则按照XML中配置进行排序 if (vt.IsBlendTarget) { VCounterListMonthlyReportDetailViewModel = currentAreaMrd.OrderBy(m => m.Company.Sequence).ThenBy(m => m.Company.CompanyName).ToList(); } else { VCounterListMonthlyReportDetailViewModel = SequenceEngine.SequenceService.GetSequence(_System.ID, strMonthReportOrderType, currentAreaMrd); } dv.ObjValue = VCounterListMonthlyReportDetailViewModel;// EditDataChild(listMRD, CTarget, item.Nodes, ref dvList, ref br); dv.RowSpanCount = VCounterListMonthlyReportDetailViewModel.Count; //大于3表示当前区域上面还存在区域(level=1 组织架构顶级 level=2 板块) if (item.AreaLevel > 3) { //获取当前区域信息 var currentAreaList = listOrganizational.Where(m => m.ID == item.AreaID).ToList(); if (currentAreaList.Any() && currentAreaList.FirstOrDefault().ParentID != Guid.Empty) { //获取当前区域父级区域信息 var parentArea = listOrganizational.Where(m => m.ID == currentAreaList.FirstOrDefault().ParentID); dv.Value = parentArea.FirstOrDefault().CnName.ToString(); dv.GuoupID = parentArea.FirstOrDefault().ID.ToString(); dv.Level = parentArea.FirstOrDefault().Level; } } lstDVM.Add(dv); } //表示存在父级区域 if (lstDVM.Any() && !string.IsNullOrEmpty(lstDVM.FirstOrDefault().GuoupID)) { //最后一级区域的上面的所有区域信息 List <DictionaryVmodel> resultDVM = new List <DictionaryVmodel>(); resultDVM = EditDataParent(lstDVM, CTarget, listOrganizational); return(resultDVM); } else { return(lstDVM); } #endregion }
public List <DictionaryVmodel> GetReturnRptDataSource(ReportInstance RptModel, C_System sys) { VLastList = new List <MonthlyReportDetail>(); _System = sys; FinMonth = RptModel.FinMonth; FinYear = RptModel.FinYear; ReportDetails = RptModel.ReportDetails; List <VGroup> GroupList = new List <VGroup>(); XElement element = null; //加载XML,系统配置信息 element = _System.Configuration; if (element.Elements("MisstargetReturn").Elements("Group") != null) { List <XElement> Groups = element.Elements("MisstargetReturn").Elements("Group").ToList(); foreach (XElement group in Groups) { GroupList.Add(new VGroup(group)); } } //上个月A表单一指标 if (VLastList == null || VLastList.Count <= 0) { int lastFinMonth = 0; if (FinMonth == 1) { lastFinMonth = 0; } else { lastFinMonth = FinMonth - 1; } //上月A表的数据 //List<A_MonthlyReportDetail> Lastlist = A_MonthlyreportdetailOperator.Instance.GetAMonthlyreportdetailList(_System.ID, FinYear, lastFinMonth).ToList(); List <A_MonthlyReportDetail> Lastlist = A_MonthlyreportdetailOperator.Instance.GetAMonthlyReportDetailListForTargetPlanID(_System.ID, FinYear, lastFinMonth, RptModel.TargetPlanID).ToList(); //当月A表数据 //List<A_MonthlyReportDetail> list_A = A_MonthlyreportdetailOperator.Instance.GetAMonthlyreportdetailList(_System.ID, FinYear, FinMonth).ToList(); List <A_MonthlyReportDetail> list_A = A_MonthlyreportdetailOperator.Instance.GetAMonthlyReportDetailListForTargetPlanID(_System.ID, FinYear, FinMonth, RptModel.TargetPlanID).ToList(); //当月B表数据 List <B_MonthlyReportDetail> list_B = B_MonthlyreportdetailOperator.Instance.GetMonthlyreportdetailList(_System.ID, FinYear, FinMonth, RptModel._MonthReportID).ToList(); List <Guid> Companies = new List <Guid>(); //调用引擎 Companies = LastMonthCompaniesEngine.LastMonthCompaniesService.GetLastMonthCompaniesID(Lastlist, _System.ID); ReportDetails.RemoveAll(R => !Companies.Contains(R.CompanyID)); foreach (MonthlyReportDetail item in ReportDetails) //循环当月 { A_MonthlyReportDetail lastMRD = Lastlist.Find(p => p.CompanyID == item.CompanyID && p.TargetID == item.TargetID); if (lastMRD != null) { item.LastNAccumulativeActualAmmount = lastMRD.NAccumulativeActualAmmount; item.LastNAccumulativeDifference = lastMRD.NAccumulativeDifference; item.LastNAccumulativePlanAmmount = lastMRD.NAccumulativePlanAmmount; item.LastIsMissTarget = lastMRD.IsMissTarget; item.AddDifference = item.NAccumulativeDifference - item.LastNAccumulativeDifference; } VLastList.Add(item); } } List <DictionaryVmodel> ReturnList = new List <DictionaryVmodel>(); //补回情况,分组List foreach (var Group in GroupList.OrderBy(G => G.Senquence)) { DictionaryVmodel Vmodel = new DictionaryVmodel(); Vmodel.Name = Group.TargetName; Vmodel.ObjValue = FormartVData(Group, "TargetReturn", Group.TargetName); Vmodel.Mark = "Group"; Vmodel.GuoupID = Group.TargetName; Vmodel.SystemName = _System.SystemName; Vmodel.TargetGroupCount = Group.TargetIDs.Count(); Vmodel.HtmlTemplate = GetRetuenHtmlTemplate(element); ReturnList.Add(Vmodel); } return(ReturnList); }
bool IsSingleTarget = false; // Update 2015-5-13 是否单个指标 public List <DictionaryVmodel> GetMissTargetRptDataSource(ReportInstance RptModel, C_System sys) { #region 初始化 MissTargetList = new List <MonthlyReportDetail>(); MissTargetTextList = new List <MonthlyReportDetail>(); ReportDetails = new List <MonthlyReportDetail>(); targetList = new List <C_Target>(); #endregion _System = sys; FinMonth = RptModel.FinMonth; FinYear = RptModel.FinYear; targetList = RptModel._Target; List <VGroup> GroupList = new List <VGroup>(); XElement element = null; //加载XML,系统配置信息 element = _System.Configuration; //局部 if (element.Elements("Misstarget").Elements("Group") != null) { List <XElement> Groups = element.Elements("Misstarget").Elements("Group").ToList(); foreach (XElement group in Groups) { GroupList.Add(new VGroup(group)); } } //-------Update 2015 -5-13 区分未完成的时候是单个指标,还是组合指标 start if (element.Elements("Misstarget").ToList().Count > 0) { XElement subElement = element.Elements("Misstarget").ToList()[0]; IsSingleTarget = subElement.GetAttributeValue("IsSingleTarget", false); } //-------Update 2015 -5-13 区分未完成的时候是单个指标,还是组合指标 End ReportDetails = RptModel.ReportDetails; //当月未完成A或B表指标 if (ReportDetails != null && ReportDetails.Count > 0) { MissTargetList = ReportDetails; //当月的数据 int lastFinMonth = 0; if (FinMonth == 1) { lastFinMonth = 0; } else { lastFinMonth = FinMonth - 1; } //找到上个月的数据 , 上个月的数据只能在A表中 //List<A_MonthlyReportDetail> AList = A_MonthlyreportdetailOperator.Instance.GetAMonthlyreportdetailList(RptModel._System.ID, FinYear, lastFinMonth).ToList(); List <A_MonthlyReportDetail> AList = A_MonthlyreportdetailOperator.Instance.GetAMonthlyReportDetailListForTargetPlanID(RptModel._System.ID, FinYear, lastFinMonth, RptModel.TargetPlanID).ToList(); // 获取各个公司全年的总指标数据 List <V_PlanTargetModel> VPlanTargeList = A_TargetplandetailOperator.Instance.GetAnnualPlanTarget(ReportDetails[0].TargetPlanID, FinYear); //上月的数据 LastMissTargetList = new List <MonthlyReportDetail>(); AList.ForEach(P => LastMissTargetList.Add(P.ToVModel())); foreach (MonthlyReportDetail item in MissTargetList) { MonthlyReportDetail LastTempDetai = LastMissTargetList.Find(p => p.CompanyID == item.CompanyID && p.TargetID == item.TargetID); V_PlanTargetModel PTM = VPlanTargeList.Find(Tp => Tp.CompanyID == item.CompanyID && Tp.TargetID == item.TargetID); //将全年指标总数加进去 if (PTM != null) { item.AnnualTargetPlanValue = PTM.Target; } //判断上个月是否有数据 if (LastTempDetai != null) { item.LastNAccumulativeActualAmmount = LastTempDetai.NAccumulativeActualAmmount; item.LastNAccumulativeDifference = LastTempDetai.NAccumulativeDifference; item.LastNAccumulativePlanAmmount = LastTempDetai.NAccumulativePlanAmmount; item.AddDifference = item.NAccumulativeDifference - item.LastNAccumulativeDifference; item.LastIsMissTarget = LastTempDetai.IsMissTarget; item.LastIsCommitDate = LastTempDetai.IsCommitDate; } else { item.AddDifference = item.NAccumulativeDifference - 0; } MissTargetTextList.Add(item); } } Dictionary <string, object> Alldata = new Dictionary <string, object>(); List <DictionaryVmodel> ReturnList = new List <DictionaryVmodel>(); //补回情况,分组List foreach (var Group in GroupList.OrderBy(G => G.Senquence)) { DictionaryVmodel Vmodel = new DictionaryVmodel(); Vmodel.Name = Group.TargetName; Vmodel.ObjValue = FormartVData(Group, "MissTarget", Group.TargetName); Vmodel.Mark = "Group"; Vmodel.GuoupID = Group.TargetName; Vmodel.TargetGroupCount = Group.TargetIDs.Count(); Vmodel.SystemName = _System.SystemName; ReturnList.Add(Vmodel); } return(ReturnList); }
/// <summary> /// 数据筛选 /// </summary> /// <param name="strCP">公司类型Item</param> /// <param name="listMRDetail">数据</param> /// <param name="vt">指标项</param> /// <returns></returns> private List <DictionaryVmodel> EditData(List <MonthlyReportDetail> listMRD, VTarget vt, C_Target CTarget, List <C_Company> listCompany, VItemCompanyProperty vcp) { #region 声明变量 List <DictionaryVmodel> lstDVM = new List <DictionaryVmodel>(); List <MonthlyReportDetail> VCounterListMonthlyReportDetailViewModel = null; ExpressionParser _parser = null; int rowSpanCount = 0; B_MonthlyReportDetail bmrd = null; List <VCounter> listVCounter = null; #endregion #region 数据判断与拼装 //判断当前指标是否存在模板,如果存在使用指标模板,如果不存在使用当前系统的模板。 if (CTarget.Configuration.Elements("ComplateTargetDetail").Elements("Target").ToList().Count > 0) { listVCounter = SplitCompleteTargetDetailXml(CTarget.Configuration)[0].CounterList; } else { listVCounter = vt.CounterList; } for (int i = 0; listVCounter.Count > i; i++) { DictionaryVmodel dv = dv = new DictionaryVmodel(); VCounterListMonthlyReportDetailViewModel = new List <MonthlyReportDetail>(); foreach (MonthlyReportDetail mrd in listMRD) { Hashtable bizContext = BizContextEngine.BizContextService.GetBizContext(listMRD.FindAll(p => p.CompanyID == mrd.CompanyID), "MonthlyReportDetail"); _parser = new ExpressionParser(bizContext); //区分月累计算式与年累计算式。 string Expression = strMonthReportOrderType == "DetailMonthly" ? listVCounter.ToList()[i].DetailMonthlyExpression : listVCounter.ToList()[i].DetailExpression; if (_parser.CacluateCondition(Expression)) { VCounterListMonthlyReportDetailViewModel.Add(mrd); } } //明细项数据排序 VCounterListMonthlyReportDetailViewModel = SequenceEngine.SequenceService.GetSequence(_System.ID, strMonthReportOrderType, VCounterListMonthlyReportDetailViewModel); dv.Name = listVCounter.ToList()[i].Title; //判断是否隐藏Counter明细项中数据 if (listVCounter[i].Display.ToLower() == "true") { dv.Mark = "DetailShow"; //计算隐藏的行数 rowSpanCount = rowSpanCount + VCounterListMonthlyReportDetailViewModel.Count; } else { dv.Mark = "DetailHide"; } //判断Counter明细项中是否存在该数据。 if (listVCounter[i].HaveDetail.ToLower() == "false") { dv.Mark = "DetailDelete"; } //判断是否存在公司属性 if (vcp != null && i == 0) { dv.Value = vcp.ItemCompanyPropertyName; dv.RowSpanCount = 0; } #region 计算明细项项合计和小计 if (!listVCounter.ToList()[i].Title.Contains("小计") && !listVCounter.ToList()[i].Title.Contains("合计")) { bmrd = SummaryData(VCounterListMonthlyReportDetailViewModel, bmrd, CTarget); } else { bmrd = SummaryData(listMRD, bmrd, CTarget); } #endregion //调用计算完成率的方法 bmrd = TargetEvaluationEngine.TargetEvaluationService.Calculation(bmrd, false); dv.BMonthReportDetail = bmrd; dv.ObjValue = VCounterListMonthlyReportDetailViewModel; lstDVM.Add(dv); } //计算页面要通行数 if (vcp != null) { lstDVM[0].RowSpanCount = rowSpanCount + listVCounter.ToList().Count; } #endregion return(lstDVM); }