Exemplo n.º 1
0
 /// <summary>
 /// 从上往下递归:保存多表头
 /// </summary>
 /// <param name="parentTopId"></param>
 /// <param name="tbReportId"></param>
 /// <param name="top"></param>
 /// <param name="topList"></param>
 private void RecursionSaveTopField(long?parentTopId, long tbReportId, TbReportFieldTopModel top, List <TbReportFieldTopModel> topList)
 {
     //当前节点为字段时,不添加表头而去修改字段的top
     if (!string.IsNullOrEmpty(top.FieldCode) && top.FieldCode.Length > 0)
     {
         //根据FieldCode和tbReportId查找字段
         var fd = _tbReportFieldRepository.FirstOrDefault(p => p.FieldCode == top.FieldCode && p.TbReportId == tbReportId);
         if (fd != null && parentTopId != null)
         {
             fd.TbReportFieldTopId = parentTopId; //修改字段的表头ID
             _tbReportFieldRepository.Update(fd); //保存修改
         }
     }
     else
     {
         top.Id = 0;//新增式插入
         var curParentTopId = SaveTopField(top, tbReportId, parentTopId);
         foreach (var curTop in topList)
         {
             if (curTop.ParentName == top.Name)                                      //当前节点的子节点
             {
                 RecursionSaveTopField(curParentTopId, tbReportId, curTop, topList); //保存子节点
             }
         }
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// 获取多表头配置集合
        /// </summary>
        /// <returns></returns>
        public IList <TbReportFieldTopModel> GetFildTopList(long tbReportId)
        {
            //多表头集合
            var entList = _tbReportFieldTopRepository.GetAllList(p => p.TbReportId == tbReportId);

            if (entList != null && entList.Count > 0)
            {
                var topFieldList = new List <TbReportFieldTopModel>(); //初始化多表头集合

                var fieldList = GetFildList(tbReportId);               //获取字段集合
                if (fieldList != null && fieldList.Count > 0)
                {
                    foreach (var fd in fieldList)
                    {
                        var fieldAsTop = new TbReportFieldTopModel
                        {
                            ParentID   = fd.TbReportFieldTopId,
                            ParentName = fd.TbReportFieldTopName,
                            Name       = fd.FieldName,
                            FieldCode  = fd.FieldCode
                        };
                        topFieldList.Add(fieldAsTop);
                    }
                }
                topFieldList = topFieldList.Concat(AutoMapper.Mapper.Map <List <TbReportFieldTopModel> >(entList)).ToList();
                return(topFieldList);
            }
            return(null);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 保存一个多表头信息
        /// </summary>
        /// <param name="top"></param>
        /// <param name="tbReportId"></param>
        /// <param name="parentTopId"></param>
        private long?SaveTopField(TbReportFieldTopModel top, long tbReportId, long?parentTopId)
        {
            var curTop = AutoMapper.Mapper.Map <TbReportFieldTop>(top);

            curTop.ParentID   = parentTopId;
            curTop.TbReportId = tbReportId;
            return(_tbReportFieldTopRepository.InsertOrUpdateAndGetId(curTop));
        }