public PartialViewResult GetReportResult(FormCollection form) { string categoryCode = string.Empty; string reportTitle = string.Empty; int reportType = form["reportType"].ToIntOrZero(); int timeFilterType = form["timeFilterType"].ToIntOrZero(); int queryItemCategoryType = form["queryItemCategoryType"].ToIntOrZero(); int queryDepartment = form["queryDepartment"].ToIntOrZero(); string categoryName = string.Empty; string departmentTitleExtenstion = string.Empty; DateTime?queryDateStart; DateTime?queryDateEnd; hscvVanBanDiBusiness = Get <HSCV_VANBANDIBusiness>(); dmDanhMucDataBusiness = Get <DM_DANHMUC_DATABusiness>(); cctcThanhPhanBusiness = Get <CCTC_THANHPHANBusiness>(); CCTC_THANHPHAN department = cctcThanhPhanBusiness.Find(queryDepartment); departmentTitleExtenstion = department != null && string.IsNullOrEmpty(department.NAME) == false ? (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_DONVINHAN_VANBANDI ? string.Format("TỪ ĐƠN VỊ {0}", department.NAME.ToUpper()) : string.Format("CỦA ĐƠN VỊ {0}", department.NAME.ToUpper())) : string.Empty; ReportVanBanDiResultViewModel viewModel = new ReportVanBanDiResultViewModel(); if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_HINHTHUC_VANBANDI) { categoryCode = DMLOAI_CONSTANT.LOAI_VANBAN; if (queryItemCategoryType > 0) { DM_DANHMUC_DATA category = dmDanhMucDataBusiness.Find(queryItemCategoryType) ?? new DM_DANHMUC_DATA(); categoryName = string.IsNullOrEmpty(category.TEXT) ? string.Empty : category.TEXT.ToUpper(); } } else if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_LINHVUC_VANBANDI) { categoryCode = DMLOAI_CONSTANT.LINHVUCVANBAN; if (queryItemCategoryType > 0) { DM_DANHMUC_DATA category = dmDanhMucDataBusiness.Find(queryItemCategoryType) ?? new DM_DANHMUC_DATA(); categoryName = string.IsNullOrEmpty(category.TEXT) ? string.Empty : category.TEXT.ToUpper(); } } else { categoryCode = DMLOAI_CONSTANT.LINHVUCVANBAN; if (queryItemCategoryType > 0) { CCTC_THANHPHAN receiveDepartment = cctcThanhPhanBusiness.Find(queryItemCategoryType) ?? new CCTC_THANHPHAN(); categoryName = string.IsNullOrEmpty(receiveDepartment.NAME) ? string.Empty : receiveDepartment.NAME.ToUpper(); } } if (timeFilterType == LOAI_BAOCAO_THOIGIAN_CONSTANT.NGAY) { queryDateStart = form["queryDateStart"].ToDateTime(); queryDateEnd = form["queryDateEnd"].ToDateTime(); if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_HINHTHUC_VANBANDI) { reportTitle = string.Format("THỐNG KÊ VĂN BẢN ĐI THEO HÌNH THỨC {0} TỪ NGÀY {1} ĐẾN NGÀY {2} {3}", categoryName, queryDateStart.Value.ToVietnameseDateFormat(), queryDateEnd.Value.ToVietnameseDateFormat(), departmentTitleExtenstion); } else if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_LINHVUC_VANBANDI) { reportTitle = string.Format("THỐNG KÊ VĂN BẢN ĐI THEO LĨNH VỰC {0} TỪ NGÀY {1} ĐẾN NGÀY {2} {3}", categoryName, queryDateStart.Value.ToVietnameseDateFormat(), queryDateEnd.Value.ToVietnameseDateFormat(), departmentTitleExtenstion); } else { reportTitle = string.Format("THỐNG KÊ VĂN BẢN ĐI ĐÃ GỬI CHO ĐƠN VỊ {0} TỪ NGÀY {1} ĐẾN NGÀY {2} {3}", categoryName, queryDateStart.Value.ToVietnameseDateFormat(), queryDateEnd.Value.ToVietnameseDateFormat(), departmentTitleExtenstion); } } else if (timeFilterType == LOAI_BAOCAO_THOIGIAN_CONSTANT.THANG) { int month = form["queryMonth"].ToIntOrZero(); int year = form["queryYear"].ToIntOrZero(); queryDateStart = new DateTime(year, month, 1); queryDateEnd = new DateTime(year, month, DateTime.DaysInMonth(year, month)); if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_HINHTHUC_VANBANDI) { reportTitle = string.Format("BÁO CÁO VĂN BẢN ĐI THEO HÌNH THỨC {0} TRONG THÁNG {1} NĂM {2} {3}", categoryName, month, year, departmentTitleExtenstion); } else if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_LINHVUC_VANBANDI) { reportTitle = string.Format("BÁO CÁO VĂN BẢN ĐI THEO LĨNH VỰC {0} TRONG THÁNG {1} NĂM {2} {3}", categoryName, month, year, departmentTitleExtenstion); } else { reportTitle = string.Format("BÁO CÁO VĂN BẢN ĐI ĐÃ GỬI CHO ĐƠN VỊ {0} TRONG THÁNG {1} NĂM {2} {3}", categoryName, month, year, departmentTitleExtenstion); } } else { int year = form["queryYearOnly"].ToIntOrZero(); queryDateStart = new DateTime(year, 1, 1); queryDateEnd = new DateTime(year, 12, 31); if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_HINHTHUC_VANBANDI) { reportTitle = string.Format("BÁO CÁO VĂN BẢN ĐI THEO HÌNH THỨC {0} TRONG NĂM {1} {2}", categoryName, year, departmentTitleExtenstion); } else if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_LINHVUC_VANBANDI) { reportTitle = string.Format("BÁO CÁO VĂN BẢN ĐI THEO LĨNH VỰC {0} TRONG NĂM {1} {2}", categoryName, year, departmentTitleExtenstion); } else { reportTitle = string.Format("BÁO CÁO VĂN BẢN ĐI ĐÃ GỬI CHO ĐƠN VỊ {0} TRONG NĂM {1} {2}", categoryName, year, departmentTitleExtenstion); } } viewModel.title = reportTitle; viewModel.reportType = reportType; if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_DONVINHAN_VANBANDI) { viewModel.groupOfReportResultItems = hscvVanBanDiBusiness.GetStatisticResultByInteralDepartment(queryDepartment, queryDateStart, queryDateEnd, queryItemCategoryType); } else { viewModel.groupOfReportResultItems = hscvVanBanDiBusiness.GetStatisticResultByCategory(queryDepartment, categoryCode, queryDateStart, queryDateEnd, queryItemCategoryType); } SessionManager.SetValue("ReportVanBanDi" + reportType, viewModel); return(PartialView("_ReportVanBanDiResult", viewModel)); }
public JsonResult ExportExcelReportResult(int reportType) { JsonResultBO result = new JsonResultBO(true); string fileName = string.Empty; ReportVanBanDiResultViewModel data = (ReportVanBanDiResultViewModel)SessionManager.GetValue("ReportVanBanDi" + reportType); if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_LINHVUC_VANBANDI) { fileName = "Thống kê văn bản đi theo lĩnh vực.xlsx"; } else if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_HINHTHUC_VANBANDI) { fileName = "Thống kê văn bản đi theo hình thức.xlsx"; } else { fileName = "Thống kê văn bản đi đã gửi cho đơn vị.xlsx"; } ExportExcelSupplier <SelectListItem> helper = new ExportExcelSupplier <SelectListItem>(); //thư mục chứa file kết quả helper.outputFolderPath = OUTPUT_EXECL_FOLDER_PATH; //đường dẫn file biểu mẫu helper.templateFilePath = Path.Combine(UPLOAD_PATH, TEMPLATE_REPORT_PATH); //tên file muốn kết xuất helper.fileName = fileName; //cột bắt đầu helper.startCell = 1; //dòng bắt đầu helper.startRow = 5; helper.propertyColumns = new List <string>() { "STT", "Text", "Value" }; bool isWorkBookOpen = helper.OpenWorkBook(); if (isWorkBookOpen) { int dataSize = data.groupOfReportResultItems.Count; //điền dữ liệu vào bảng helper.FillTableData(data.groupOfReportResultItems); //điền thông tin đặc thù vào bảng helper.workSheet.Range["A3", "C3"].Value = data.title; helper.workSheet.Range["A3", "C3"].Font.Bold = true; helper.workSheet.Range["A5", "A" + (5 + dataSize - 1)].Cells.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; helper.workSheet.Range["A5", "A" + (5 + dataSize - 1)].Cells.VerticalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; helper.workSheet.Range["A" + (5 + dataSize), "A" + (5 + dataSize)].Value = null; helper.workSheet.Range["A" + (5 + dataSize), "B" + (5 + dataSize)].Merge(Type.Missing); helper.workSheet.Range["A" + (5 + dataSize), "B" + (5 + dataSize)].Value = "Tổng"; helper.workSheet.Range["A" + (5 + dataSize), "B" + (5 + dataSize)].Cells.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; helper.workSheet.Range["A" + (5 + dataSize), "B" + (5 + dataSize)].Cells.VerticalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; helper.workSheet.Range["C" + (5 + dataSize), "C" + (5 + dataSize)].Value = data.groupOfReportResultItems.Select(x => int.Parse(x.Value)).Sum(); var borderRange = helper.workSheet.Range["A1", "C" + (5 + dataSize)]; helper.SetBorderRange(borderRange); var centerRange = helper.workSheet.Range["C5", "C" + (5 + dataSize)]; helper.SetTextCenterRange(centerRange); ExportExcelResult exportResult = helper.SaveAndCloseWorkBook(); if (exportResult.exportSuccess) { result.Message = "/Uploads/Output/Excel/" + exportResult.exportResultFileName; } else { result.Status = false; result.Message = exportResult.exportResultMessage; } } return(Json(result)); }