1229-gaofei
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Web;
|
||||
@@ -9,6 +10,9 @@ using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using BLL;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NPOI.HSSF.UserModel;
|
||||
using NPOI.SS.UserModel;
|
||||
using NPOI.XSSF.UserModel;
|
||||
|
||||
namespace FineUIPro.Web.JDGL.WBS
|
||||
{
|
||||
@@ -61,37 +65,37 @@ namespace FineUIPro.Web.JDGL.WBS
|
||||
}
|
||||
for (int i = 0; i < months.Count; i++)
|
||||
{
|
||||
GroupField gd = new GroupField();
|
||||
gd.HeaderText = string.Format("{0:yyyy-MM}", months[i]);
|
||||
gd.HeaderTextAlign = TextAlign.Center;
|
||||
//GroupField gd = new GroupField();
|
||||
//gd.HeaderText = string.Format("{0:yyyy-MM}", months[i]);
|
||||
//gd.HeaderTextAlign = TextAlign.Center;
|
||||
|
||||
RenderField rdPlan = new RenderField();
|
||||
rdPlan.ColumnID = gd.HeaderText + "Plan";
|
||||
rdPlan.ColumnID = string.Format("{0:yyyy-MM}", months[i]) + "Plan";
|
||||
rdPlan.Width = Unit.Pixel(100);
|
||||
rdPlan.DataField = "PlanNum" + (i + 1).ToString();
|
||||
rdPlan.FieldType = FieldType.Double;
|
||||
rdPlan.HeaderText = "计划量";
|
||||
rdPlan.HeaderText = string.Format("{0:yyyy年MM月}", months[i]) + "<br/>计划量";
|
||||
rdPlan.HeaderTextAlign = TextAlign.Center;
|
||||
NumberBox numPlan = new NumberBox();
|
||||
numPlan.NoNegative = true;
|
||||
numPlan.NoDecimal = false;
|
||||
rdPlan.Editor.Add(numPlan);
|
||||
gd.Columns.Add(rdPlan);
|
||||
Grid1.Columns.Add(rdPlan);
|
||||
|
||||
RenderField rdThis = new RenderField();
|
||||
rdThis.ColumnID = gd.HeaderText + "This";
|
||||
rdThis.ColumnID = string.Format("{0:yyyy-MM}", months[i]) + "This";
|
||||
rdThis.Width = Unit.Pixel(100);
|
||||
rdThis.DataField = "ThisNum" + (i + 1).ToString();
|
||||
rdThis.FieldType = FieldType.Double;
|
||||
rdThis.HeaderText = "完成量";
|
||||
rdThis.HeaderText = string.Format("{0:yyyy年MM月}", months[i]) + "<br/>完成量";
|
||||
rdThis.HeaderTextAlign = TextAlign.Center;
|
||||
NumberBox numReal = new NumberBox();
|
||||
numReal.NoNegative = true;
|
||||
numReal.NoDecimal = false;
|
||||
rdThis.Editor.Add(numReal);
|
||||
gd.Columns.Add(rdThis);
|
||||
Grid1.Columns.Add(rdThis);
|
||||
|
||||
Grid1.Columns.Add(gd);
|
||||
//Grid1.Columns.Add(gd);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
@@ -339,14 +343,8 @@ namespace FineUIPro.Web.JDGL.WBS
|
||||
oldThisPlanValue = (costControlDetail.PlanNum ?? 0) * (costControl.PlanPrice ?? 0);
|
||||
oldThisRealCost = (costControlDetail.ThisNum ?? 0) * (costControl.RealPrice ?? 0);
|
||||
oldThisPlanCost = (costControlDetail.ThisNum ?? 0) * (costControl.PlanPrice ?? 0);
|
||||
if (!string.IsNullOrEmpty(planNum))
|
||||
{
|
||||
costControlDetail.PlanNum = Convert.ToDecimal(planNum);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(thisNum))
|
||||
{
|
||||
costControlDetail.ThisNum = Convert.ToDecimal(thisNum);
|
||||
}
|
||||
costControlDetail.PlanNum = Funs.GetNewDecimalOrZero(planNum);
|
||||
costControlDetail.ThisNum = Funs.GetNewDecimalOrZero(thisNum);
|
||||
thisPlanValue = (costControlDetail.PlanNum ?? 0) * (costControl.PlanPrice ?? 0);
|
||||
thisRealCost = (costControlDetail.ThisNum ?? 0) * (costControl.RealPrice ?? 0);
|
||||
thisPlanCost = (costControlDetail.ThisNum ?? 0) * (costControl.PlanPrice ?? 0);
|
||||
@@ -358,14 +356,8 @@ namespace FineUIPro.Web.JDGL.WBS
|
||||
costControlDetail.CostControlDetailId = SQLHelper.GetNewID();
|
||||
costControlDetail.CostControlId = costControlId;
|
||||
costControlDetail.Months = months[j];
|
||||
if (!string.IsNullOrEmpty(planNum))
|
||||
{
|
||||
costControlDetail.PlanNum = Convert.ToDecimal(planNum);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(thisNum))
|
||||
{
|
||||
costControlDetail.ThisNum = Convert.ToDecimal(thisNum);
|
||||
}
|
||||
costControlDetail.PlanNum = Funs.GetNewDecimalOrZero(planNum);
|
||||
costControlDetail.ThisNum = Funs.GetNewDecimalOrZero(thisNum);
|
||||
thisPlanValue = (costControlDetail.PlanNum ?? 0) * (costControl.PlanPrice ?? 0);
|
||||
thisRealCost = (costControlDetail.ThisNum ?? 0) * (costControl.RealPrice ?? 0);
|
||||
thisPlanCost = (costControlDetail.ThisNum ?? 0) * (costControl.PlanPrice ?? 0);
|
||||
@@ -591,22 +583,190 @@ namespace FineUIPro.Web.JDGL.WBS
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
#region 导出按钮
|
||||
/// 导出按钮
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
//#region 导出按钮
|
||||
///// 导出按钮
|
||||
///// </summary>
|
||||
///// <param name="sender"></param>
|
||||
///// <param name="e"></param>
|
||||
//protected void btnOut_Click(object sender, EventArgs e)
|
||||
//{
|
||||
// Response.ClearContent();
|
||||
// string filename = Funs.GetNewFileName();
|
||||
// Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("工作量录入" + filename, System.Text.Encoding.UTF8) + ".xls");
|
||||
// Response.ContentType = "application/excel";
|
||||
// Response.ContentEncoding = Encoding.UTF8;
|
||||
// this.Grid1.PageSize = Grid1.RecordCount;
|
||||
// Response.Write(GetGridTableHtml2(Grid1));
|
||||
// Response.End();
|
||||
//}
|
||||
//#endregion
|
||||
|
||||
protected void btnOut_Click(object sender, EventArgs e)
|
||||
{
|
||||
Response.ClearContent();
|
||||
string filename = Funs.GetNewFileName();
|
||||
Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("工作量录入" + filename, System.Text.Encoding.UTF8) + ".xls");
|
||||
Response.ContentType = "application/excel";
|
||||
Response.ContentEncoding = Encoding.UTF8;
|
||||
this.Grid1.PageSize = Grid1.RecordCount;
|
||||
Response.Write(GetGridTableHtml2(Grid1));
|
||||
string varValue = string.Empty;
|
||||
Model.Wbs_WbsSet wbsSet = BLL.WbsSetService.GetWbsSetByWbsSetId(Id);
|
||||
DateTime startDate, endDate, startMonth, endMonth;
|
||||
List<DateTime> months = new List<DateTime>();
|
||||
if (wbsSet != null && wbsSet.StartDate != null && wbsSet.EndDate != null)
|
||||
{
|
||||
startDate = Convert.ToDateTime(wbsSet.StartDate);
|
||||
endDate = Convert.ToDateTime(wbsSet.EndDate);
|
||||
startMonth = Convert.ToDateTime(startDate.Year + "-" + startDate.Month + "-01");
|
||||
endMonth = Convert.ToDateTime(endDate.Year + "-" + endDate.Month + "-01");
|
||||
do
|
||||
{
|
||||
months.Add(startMonth);
|
||||
startMonth = startMonth.AddMonths(1);
|
||||
} while (startMonth <= endMonth);
|
||||
}
|
||||
|
||||
string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
|
||||
//模板文件
|
||||
string TempletFileName = Server.MapPath("~/") + "File/Excel/JDGL/工作量录入.xls";
|
||||
//导出文件
|
||||
string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
|
||||
if (!Directory.Exists(filePath))
|
||||
{
|
||||
Directory.CreateDirectory(filePath);
|
||||
}
|
||||
string ReportFileName = filePath + "out.xlsx";
|
||||
|
||||
FileStream file = new FileStream(TempletFileName, FileMode.Open, FileAccess.Read);
|
||||
HSSFWorkbook hssfworkbook = new HSSFWorkbook(file);
|
||||
|
||||
ICellStyle styleCenter = hssfworkbook.CreateCellStyle();
|
||||
styleCenter.VerticalAlignment = VerticalAlignment.Center;
|
||||
styleCenter.Alignment = HorizontalAlignment.Center;
|
||||
styleCenter.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
styleCenter.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
styleCenter.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
styleCenter.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
styleCenter.WrapText = true;
|
||||
IFont font = styleCenter.GetFont(hssfworkbook);
|
||||
font.FontHeightInPoints = 10;//字体高度(与excel中的字号一致)
|
||||
styleCenter.SetFont(font);
|
||||
HSSFSheet recordSheet = (HSSFSheet)hssfworkbook.GetSheet("工作量录入");
|
||||
HSSFRow row0 = (HSSFRow)recordSheet.CreateRow(0);
|
||||
HSSFCell cell0 = (HSSFCell)row0.CreateCell(0);
|
||||
cell0.CellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
cell0.CellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
cell0.CellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
cell0.CellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
cell0.CellStyle.WrapText = true;
|
||||
cell0.SetCellValue(new HSSFRichTextString("序号"));
|
||||
HSSFCell cell1 = (HSSFCell)row0.CreateCell(1);
|
||||
cell1.SetCellValue(new HSSFRichTextString("分部"));
|
||||
cell1.CellStyle.WrapText = true;
|
||||
HSSFCell cell2 = (HSSFCell)row0.CreateCell(2);
|
||||
cell2.SetCellValue(new HSSFRichTextString("分项"));
|
||||
cell2.CellStyle.WrapText = true;
|
||||
HSSFCell cell3 = (HSSFCell)row0.CreateCell(3);
|
||||
cell3.SetCellValue(new HSSFRichTextString("费控项内容"));
|
||||
cell3.CellStyle.WrapText = true;
|
||||
HSSFCell cell4 = (HSSFCell)row0.CreateCell(4);
|
||||
cell4.SetCellValue(new HSSFRichTextString("合同工作量"));
|
||||
HSSFCell cell5 = (HSSFCell)row0.CreateCell(5);
|
||||
cell5.SetCellValue(new HSSFRichTextString("预算单价"));
|
||||
HSSFCell cell6 = (HSSFCell)row0.CreateCell(6);
|
||||
cell6.SetCellValue(new HSSFRichTextString("实际单价"));
|
||||
for (int a = 0; a < months.Count; a++)
|
||||
{
|
||||
HSSFCell cellPlan = (HSSFCell)row0.CreateCell(7 + a * 2);
|
||||
cellPlan.SetCellValue(new HSSFRichTextString(string.Format("{0:yyyy年MM月}", months[a]) + "计划量"));
|
||||
HSSFCell cellThis = (HSSFCell)row0.CreateCell(8 + a * 2);
|
||||
cellThis.SetCellValue(new HSSFRichTextString(string.Format("{0:yyyy年MM月}", months[a]) + "完成量"));
|
||||
}
|
||||
int i = 1;
|
||||
HSSFRow row1 = (HSSFRow)recordSheet.CreateRow(1);
|
||||
HSSFCell r1cell0 = (HSSFCell)row1.CreateCell(0);
|
||||
r1cell0.SetCellValue(new HSSFRichTextString(i.ToString()));
|
||||
HSSFCell r1cell1 = (HSSFCell)row1.CreateCell(1);
|
||||
r1cell1.SetCellValue(new HSSFRichTextString(wbsSet.WbsSetName));
|
||||
r1cell1.CellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
r1cell1.CellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
r1cell1.CellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
r1cell1.CellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
r1cell1.CellStyle.WrapText = true;
|
||||
var childWbsSets = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(Id);
|
||||
foreach (var childWbsSet in childWbsSets)
|
||||
{
|
||||
i++;
|
||||
HSSFRow rowW = (HSSFRow)recordSheet.CreateRow(i);
|
||||
HSSFCell rWcell0 = (HSSFCell)rowW.CreateCell(0);
|
||||
rWcell0.SetCellValue(new HSSFRichTextString(i.ToString()));
|
||||
HSSFCell rWcell2 = (HSSFCell)rowW.CreateCell(2);
|
||||
rWcell2.SetCellValue(new HSSFRichTextString(childWbsSet.WbsSetName));
|
||||
rWcell2.CellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
rWcell2.CellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
rWcell2.CellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
rWcell2.CellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
rWcell2.CellStyle.WrapText = true;
|
||||
var costControls = BLL.CostControlService.GetSelectedCostControlsByWbsSetId(childWbsSet.WbsSetId);
|
||||
foreach (var costControl in costControls)
|
||||
{
|
||||
i++;
|
||||
HSSFRow rowC = (HSSFRow)recordSheet.CreateRow(i);
|
||||
HSSFCell rCcell0 = (HSSFCell)rowC.CreateCell(0);
|
||||
rCcell0.SetCellValue(new HSSFRichTextString(i.ToString()));
|
||||
HSSFCell rCcell3 = (HSSFCell)rowC.CreateCell(3);
|
||||
rCcell3.SetCellValue(new HSSFRichTextString(costControl.CostControlName));
|
||||
rCcell3.CellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
rCcell3.CellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
rCcell3.CellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
rCcell3.CellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
|
||||
rCcell3.CellStyle.WrapText = true;
|
||||
HSSFCell rCcell4 = (HSSFCell)rowC.CreateCell(4);
|
||||
if (costControl.TotalNum != null)
|
||||
{
|
||||
rCcell4.SetCellValue(new HSSFRichTextString(costControl.TotalNum.Value.ToString("0.##")));
|
||||
}
|
||||
HSSFCell rCcell5 = (HSSFCell)rowC.CreateCell(5);
|
||||
if (costControl.PlanPrice != null)
|
||||
{
|
||||
rCcell5.SetCellValue(new HSSFRichTextString(costControl.PlanPrice.Value.ToString("0.##")));
|
||||
}
|
||||
HSSFCell rCcell6 = (HSSFCell)rowC.CreateCell(6);
|
||||
if (costControl.RealPrice != null)
|
||||
{
|
||||
rCcell6.SetCellValue(new HSSFRichTextString(costControl.RealPrice.Value.ToString("0.##")));
|
||||
}
|
||||
for (int j = 0; j < months.Count; j++)
|
||||
{
|
||||
Model.WBS_CostControlDetail costControlDetail = BLL.CostControlDetailService.GetCostControlDetailByCostControlIdAndMonths(costControl.CostControlId, months[j]);
|
||||
if (costControlDetail != null)
|
||||
{
|
||||
HSSFCell cellDetailPlan = (HSSFCell)rowC.CreateCell(7 + j * 2);
|
||||
if (costControlDetail.PlanNum != null)
|
||||
{
|
||||
cellDetailPlan.SetCellValue(new HSSFRichTextString(costControlDetail.PlanNum.Value.ToString("0.##")));
|
||||
}
|
||||
HSSFCell cellDetailThis = (HSSFCell)rowC.CreateCell(8 + j * 2);
|
||||
if (costControlDetail.ThisNum != null)
|
||||
{
|
||||
cellDetailThis.SetCellValue(new HSSFRichTextString(costControlDetail.ThisNum.Value.ToString("0.##")));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
using (FileStream filess = File.OpenWrite(ReportFileName))
|
||||
{
|
||||
hssfworkbook.Write(filess);
|
||||
}
|
||||
FileInfo filet = new FileInfo(ReportFileName);
|
||||
Response.Clear();
|
||||
Response.Charset = "GB2312";
|
||||
Response.ContentEncoding = System.Text.Encoding.UTF8;
|
||||
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
|
||||
Response.AddHeader("Content-Disposition", "attachment; filename="+ Server.UrlEncode("工作量录入_" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls"));
|
||||
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
|
||||
Response.AddHeader("Content-Length", filet.Length.ToString());
|
||||
// 指定返回的是一个不能被客户端读取的流,必须被下载
|
||||
Response.ContentType = "application/ms-excel";
|
||||
// 把文件流发送到客户端
|
||||
Response.WriteFile(filet.FullName);
|
||||
// 停止页面的执行
|
||||
Response.End();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user