using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Estsh.Web.Service; using System.Collections; using System.Text; using NPOI.HSSF.UserModel; using System.Data; using System.IO; namespace Estsh.Core.Web.Controllers { public class DeliveryOrderReportController : Controller { /*************************************************************************************************** * * 作者:张茂忠 * 创建时间:2013.04.23 * 描述:出货单信息查询模块Controller层 * 修改日志: * * * *************************************************************************************************/ StringBuilder value = null; public ActionResult Index() { return View(); } private DeliveryOrderReportService service = new DeliveryOrderReportService(); /// /// 获取车型 /// /// public ActionResult GetModelType() { Hashtable resault = new Hashtable(); ArrayList list = service.GetModelType(); resault.Add("list", list); return Json(resault, JsonRequestBehavior.AllowGet); } /// /// 获取打印类型 /// /// 枚举类型 /// public ActionResult GetPrintType() { Hashtable resault = new Hashtable(); ArrayList list = service.GetEnum("print_type"); resault.Add("list", list); return Json(resault, JsonRequestBehavior.AllowGet); } /// /// 获取查询结果 /// /// public ActionResult GetQuery() { DataTable dt = null; value = new StringBuilder(1024); Session["_where"] = value.ToString(); //开始送货单 if (!string.IsNullOrEmpty(Request["txtSendCode"])) { value.Append(" and Number>='" + Request["txtSendCode"].ToString().Trim() + "'"); } //结束送货单 if (!string.IsNullOrEmpty(Request["txtEndCode"])) { value.Append(" and Number<='" + Request["txtEndCode"].ToString().Trim() + "'"); } //打印类型 if (!string.IsNullOrEmpty(Request["sendType"])) { value.Append(" and print_type='" + Request["sendType"].ToString() + "'"); } //车型 if (!string.IsNullOrEmpty(Request["ModelType"])) { value.Append(" and model_type_id='" + Request["ModelType"].ToString() + "'"); } //开始车身号 if (!string.IsNullOrEmpty(Request["txtStartCarNo"])) { value.Append(" and start_car_no>='" + Request["txtStartCarNo"].ToString().Trim() + "'"); } //结束车身号 if (!string.IsNullOrEmpty(Request["txtEndCarNo"])) { value.Append(" and end_car_no<='" + Request["txtEndCarNo"].ToString().Trim() + "'"); } //开始订单号 if (!string.IsNullOrEmpty(Request["txtStartOrderNo"])) { value.Append(" and cust_order>='" + Request["txtStartOrderNo"].ToString() + "'"); } //结束订单号 if (!string.IsNullOrEmpty(Request["txtEndOrderNo"])) { value.Append(" and cust_order<='" + Request["txtEndOrderNo"].ToString() + "'"); } if (!string.IsNullOrEmpty(Request["txtStartPrintTime"]) && !string.IsNullOrEmpty(Request["txtEndPrintTime"])) { value.Append(" and CONVERT(VARCHAR(10),update_ymd,23) between convert(datetime,'" + Request["txtStartPrintTime"].ToString() + "') and convert(datetime,'" + Request["txtEndPrintTime"].ToString() + "')"); } ArrayList list = null; Hashtable resault = new Hashtable(); if (!value.ToString().Equals("")) { list = service.GetQuery(value.ToString(), ref dt); Session["_where"] = value.ToString(); } resault.Add("rows", list); return Json(resault); } public ActionResult exportData() { DataTable dataHt = null; HSSFWorkbook workbook = new HSSFWorkbook(); Stream outputStream = Response.OutputStream; HSSFSheet sheet = (HSSFSheet)workbook.CreateSheet("出货单信息"); if (Session["_where"].ToString() != "") { try { ArrayList list = this.service.GetQuery(Session["_where"].ToString(), ref dataHt); if (workbook != null) { HSSFRow headRow = (HSSFRow)sheet.CreateRow(0); headRow.CreateCell(0).SetCellValue("送货单号"); headRow.CreateCell(1).SetCellValue("订单号"); headRow.CreateCell(2).SetCellValue("零件编号"); headRow.CreateCell(3).SetCellValue("送货日期"); headRow.CreateCell(5).SetCellValue("车型"); headRow.CreateCell(6).SetCellValue("单位"); headRow.CreateCell(7).SetCellValue("数量"); headRow.CreateCell(8).SetCellValue("起始车身号"); headRow.CreateCell(9).SetCellValue("结束车身号"); headRow.CreateCell(10).SetCellValue("起始补充车身号"); headRow.CreateCell(11).SetCellValue("结束补充车身号"); headRow.CreateCell(12).SetCellValue("出货类型"); headRow.CreateCell(13).SetCellValue("班次"); headRow.CreateCell(14).SetCellValue("包装方式"); headRow.CreateCell(15).SetCellValue("打印日期"); } for (int i = 0; i < dataHt.Rows.Count; i++) { int row = i + 1; HSSFRow dataRow = (HSSFRow)sheet.CreateRow(row); dataRow.CreateCell(0).SetCellValue(dataHt.Rows[i]["Number"].ToString()); dataRow.CreateCell(1).SetCellValue(dataHt.Rows[i]["cust_order"].ToString()); dataRow.CreateCell(2).SetCellValue(dataHt.Rows[i]["part_no"].ToString()); dataRow.CreateCell(3).SetCellValue(dataHt.Rows[i]["create_ymd"].ToString()); dataRow.CreateCell(5).SetCellValue(dataHt.Rows[i]["type_name"].ToString()); dataRow.CreateCell(6).SetCellValue(dataHt.Rows[i]["ship_unit"].ToString()); dataRow.CreateCell(7).SetCellValue(dataHt.Rows[i]["qty"].ToString()); dataRow.CreateCell(8).SetCellValue(dataHt.Rows[i]["start_car_no"].ToString()); dataRow.CreateCell(9).SetCellValue(dataHt.Rows[i]["end_car_no"].ToString()); dataRow.CreateCell(10).SetCellValue(dataHt.Rows[i]["bs_car_no"].ToString()); dataRow.CreateCell(11).SetCellValue(dataHt.Rows[i]["be_car_no"].ToString()); dataRow.CreateCell(12).SetCellValue(dataHt.Rows[i]["print_type"].ToString()); dataRow.CreateCell(13).SetCellValue(dataHt.Rows[i]["shift_name"].ToString()); dataRow.CreateCell(14).SetCellValue(dataHt.Rows[i]["pack_type"].ToString()); dataRow.CreateCell(15).SetCellValue(dataHt.Rows[i]["update_ymd"].ToString()); } Response.Clear(); workbook.Write(outputStream); Response.Buffer = true; Response.AppendHeader("Content-Disposition", "attachment;filename=Excel.xls"); Response.ContentEncoding = System.Text.Encoding.UTF8; Response.ContentType = "application/vnd.ms-excel"; Response.Flush(); } catch (Exception e) { } finally { workbook = null; } } else { workbook.Write(outputStream); Response.Buffer = true; Response.AppendHeader("Content-Disposition", "attachment;filename=Excel.xls"); Response.ContentEncoding = System.Text.Encoding.UTF8; Response.ContentType = "application/vnd.ms-excel"; Response.Flush(); } return null; } } }