using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Estsh.BLL; using System.Collections; using System.Data; using Estsh.Web.Util; using System.IO; using Estsh.Web.Service; using NPOI.HSSF.UserModel; namespace Estsh.Core.Web.Controllers { public class XTStockDataQueryController : Controller { // // GET: /ProductOffLineNotShipedQuery/ XTStockDataQueryService Service = new XTStockDataQueryService(); public ActionResult Index() { return View(); } public string SetWhere() { string _where = ""; if (!string.IsNullOrEmpty(Request["txtPartNo"])) { _where += " and b.part_no= '" + Request["txtPartNo"].ToString().Trim() + "'"; } //如果配置不为空 if (!string.IsNullOrEmpty(Request["cmbModelName"])) { _where += " and c.model_name = '" + Request["cmbModelName"].Trim() + "'"; } //如果车型不为空 if (!string.IsNullOrEmpty(Request["cmbTypeName"])) { _where += " and f.type_name = '" + Request["cmbTypeName"].Trim() + "'"; } return _where; } /// /// 汇总 /// /// /// public ActionResult GetStockData(Pager pager) { if (string.IsNullOrEmpty(Request["txtPartNo"]) && string.IsNullOrEmpty(Request["cmbModelName"]) && string.IsNullOrEmpty(Request["cmbTypeName"])) { return null; } string where = SetWhere(); int totalCount = 0; DataTable dtQuery = Service.GetStockData(where, pager, ref totalCount); Hashtable result = new Hashtable(); result.Add("rows", DataTypeConvert.NewObject.DataTableToArrayList(dtQuery)); result.Add("pager.totalRows", totalCount); return Json(result); } /// /// 明细 /// /// /// public ActionResult GetDetailData(Pager pager) { if (string.IsNullOrEmpty(Request["txtPartNo"]) && string.IsNullOrEmpty(Request["cmbModelName"]) && string.IsNullOrEmpty(Request["cmbTypeName"])) { return null; } string where = SetWhere(); int totalCount = 0; DataTable dtQuery = Service.GetDetailData(where, pager, ref totalCount); Hashtable result = new Hashtable(); result.Add("rows", DataTypeConvert.NewObject.DataTableToArrayList(dtQuery)); result.Add("pager.totalRows", totalCount); return Json(result); } /// /// 车型 /// /// public ActionResult GetTypeName() { Hashtable ht = new Hashtable(); ArrayList alType = Service.GetTypeName(); ht.Add("list", alType); return Json(ht, JsonRequestBehavior.AllowGet); } /// /// 配置 /// /// /// public ActionResult GetModelName(string typeName) { Hashtable ht = new Hashtable(); ArrayList alModel = Service.GetModelName(typeName); ht.Add("list", alModel); return Json(ht, JsonRequestBehavior.AllowGet); } public ActionResult exportData(Pager pager, Pager pager1, int a) { int totalCount = 0; int totalCount2 = 0; string where = SetWhere(); DataTable dtQuery = Service.GetStockData(where, pager, ref totalCount); DataTable dtDetailQuery = Service.GetDetailData(where, pager1, ref totalCount2); Stream outputStream = Response.OutputStream; string AbsolutePath = Request.UrlReferrer.AbsolutePath; string url = AbsolutePath.Remove(0, Request.ApplicationPath.Length); GridColumnService colService = new GridColumnService(); Models.SysWebGridColumn[] detailGridItems = colService.GetColumnByUrl(url, "汇总");//查询汇总GtidColumn] Models.SysWebGridColumn[] SNCurrent = colService.GetColumnByUrl(url, "明细"); HSSFWorkbook workbook = NPOIExcelTools.DataTableToWorkbook(detailGridItems, dtQuery, "汇总信息");//将汇总表转换为Workbook NPOIExcelTools.AddSheet(workbook, SNCurrent, dtDetailQuery, "明细信息");//添加明细Sheet Response.Clear(); workbook.Write(outputStream); Response.Buffer = true; if (a == 1) { if (Request.Browser.Type.ToUpper().IndexOf("IE") >= 0) { Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("下线未发运_当前页_" + DateTime.Now.ToString("yyyy-MM-dd") + ".xls", System.Text.Encoding.UTF8)); } else { Response.AppendHeader("Content-Disposition", "attachment;filename=下线未发运_当前页_" + DateTime.Now.ToString("yyyy-MM-dd") + ".xls"); } } else { if (Request.Browser.Type.ToUpper().IndexOf("IE") >= 0) { Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("下线未发运_当前页_" + DateTime.Now.ToString("yyyy-MM-dd") + ".xls", System.Text.Encoding.UTF8)); } else { Response.AppendHeader("Content-Disposition", "attachment;filename=下线未发运_所有页_" + DateTime.Now.ToString("yyyy-MM-dd") + ".xls"); } } Response.ContentEncoding = System.Text.Encoding.UTF8; Response.ContentType = "application/vnd.ms-excel"; Response.Flush(); return null; } } }