Esempio n. 1
0
        /// <summary>
        /// 导出Excel
        /// </summary>
        /// <returns></returns>
        public ActionResult ExportExcel(string DepartmentId, string WarehouseId, string ItemLocationId, string ItemCode, string InOutTypeId, string BillTypes, string ItemBatch, string LBBillCode, string BillCode, string timestart, string timeend)
        {
            int?WarehouseId1 = null;

            if (WarehouseId != "undefined")
            {
                WarehouseId1 = Convert.ToInt32(WarehouseId);
            }

            string[] temp         = InOutTypeId.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries);//分割出入库类型id
            int?[]   InOutTypeIds = new int?[temp.Length];
            for (int i = 0; i < temp.Length; i++)
            {
                InOutTypeIds[i] = Convert.ToInt32(temp[i]);
            }
            string[] BillTypes1 = BillTypes.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries); //分割单据类型

            DateTime?timestart1 = null;                                                                       //开始时间
            DateTime?timeend1   = null;                                                                       //结束时间

            if (timestart != "")
            {
                timestart1 = Convert.ToDateTime(timestart);
            }
            if (timeend != "")
            {
                timeend1 = Convert.ToDateTime(timeend).AddDays(1);
            }
            if (ItemLocationId == "")
            {
                ItemLocationId = null;
            }
            if (ItemCode == "")
            {
                ItemCode = null;
            }
            if (ItemBatch == "")
            {
                ItemBatch = null;
            }
            if (LBBillCode == "")
            {
                LBBillCode = null;
            }
            if (BillCode == "")
            {
                BillCode = null;
            }

            //获取全部数据
            var list = RecordService.ExportExcel(DepartmentId, WarehouseId1, ItemLocationId, ItemCode, InOutTypeIds, BillTypes1, ItemBatch, LBBillCode, BillCode, timestart1, timeend1);
            //转换成DataTable
            DataTable dt = new DataTable();

            dt.Columns.Add("单据类型");
            dt.Columns.Add("系统单号");
            dt.Columns.Add("客户单号");
            dt.Columns.Add("物料编码");
            dt.Columns.Add("物料名称");
            dt.Columns.Add("仓库名称");
            dt.Columns.Add("货位编码");
            dt.Columns.Add("批次");
            dt.Columns.Add("数量");
            dt.Columns.Add("出入库类型");
            foreach (var item in list)
            {
                DataRow dr = dt.NewRow();
                dr["单据类型"]  = ChangeTableType(item.MainTableType);
                dr["系统单号"]  = item.BillCode;
                dr["客户单号"]  = item.LBBillCode;
                dr["物料编码"]  = item.ItemCode;
                dr["物料名称"]  = item.ItemName;
                dr["仓库名称"]  = item.Warehouse;
                dr["货位编码"]  = item.ItemLocationId;
                dr["批次"]    = item.ItemBatch;
                dr["数量"]    = item.Count;
                dr["出入库类型"] = item.InOutTypeName;
                dt.Rows.Add(dr);
            }
            MemoryStream file = NPIOHelper.RenderToMemory(dt, "sheet1");

            Response.Charset         = "UTF-8";
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
            Response.ContentType     = "application / vnd.openxmlformats - officedocument.spreadsheetml.sheet";// "application/ms-excel/msword";
            Response.AddHeader("Content-Disposition", "attachment;fileName=出入库记录.xls");
            Response.BinaryWrite(file.ToArray());
            return(new EmptyResult());
        }
Esempio n. 2
0
 public ActionResult ExportTable(DateTime?timestart, DateTime?timeend, string DepartmentId)
 {
     if (Session["Power"] == null || Session["UserCode"] == null)
     {
         return(null);
     }
     else
     {
         string Power = Session["Power"].ToString();//权限字符串
         //获取装卸费力资费明细
         var list1 = LoadingAndLaborCostDetailService.LoadEntities(a => Power.Contains(a.DepartmentId)).ToList();
         if (timestart != null)
         {
             list1 = list1.Where(a => a.ExaminaDate >= timestart).ToList();
         }
         if (timeend != null)
         {
             list1 = list1.Where(a => a.ExaminaDate < timeend.GetValueOrDefault().AddDays(1)).ToList();
         }
         //获取其他明细
         var list2 = LoadingAndLaborCostDetailService.LoadEntities(a => Power.Contains(a.DepartmentId)).ToList();
         if (timestart != null)
         {
             list2 = list2.Where(a => a.ExaminaDate >= timestart).ToList();
         }
         if (timeend != null)
         {
             list2 = list2.Where(a => a.ExaminaDate < timeend.GetValueOrDefault().AddDays(1)).ToList();
         }
         //合并list1  list2   提取有用字段  返回
         var res  = list1.Select(a => new { a.CostItemCode, a.CostItemName, a.AllAmount }).ToList();
         var res2 = list2.Select(a => new { a.CostItemCode, a.CostItemName, a.AllAmount }).ToList();
         //合并成一个list
         res.AddRange(res2);
         //分组求和
         var temp = from a in res
                    group a by new { a.CostItemCode, a.CostItemName } into g
             select new { g.Key.CostItemCode, g.Key.CostItemName, Price = g.Sum(a => a.AllAmount) };
         var tempNew = temp.ToList().Select(a => new { a.CostItemCode, a.CostItemName, a.Price, Type = a.CostItemCode.Substring(0, 2) == "64" ? "成本" : "收入" });
         //转换成DataTable
         DataTable dt = new DataTable();
         dt.Columns.Add("科目编码");
         dt.Columns.Add("科目名称");
         dt.Columns.Add("科目分类");
         dt.Columns.Add("发生金额");
         foreach (var item in tempNew)
         {
             DataRow dr = dt.NewRow();
             dr["科目编码"] = item.CostItemCode;
             dr["科目名称"] = item.CostItemName;
             dr["科目分类"] = item.Type;
             dr["发生金额"] = item.Price;
             dt.Rows.Add(dr);
         }
         MemoryStream file = NPIOHelper.RenderToMemory(dt, "sheet1");
         Response.Charset         = "UTF-8";
         Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
         Response.ContentType     = "application / vnd.openxmlformats - officedocument.spreadsheetml.sheet";// "application/ms-excel/msword";
         Response.AddHeader("Content-Disposition", "attachment;fileName=费用项目汇总表.xls");
         Response.BinaryWrite(file.ToArray());
         return(new EmptyResult());
     }
 }