1559 lines
100 KiB
C#
1559 lines
100 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using Aspose.Words;
|
|
using Aspose.Words.Drawing;
|
|
using Aspose.Words.Drawing.Charts;
|
|
using Aspose.Words.Tables;
|
|
using BLL;
|
|
using AspNet = System.Web.UI.WebControls;
|
|
|
|
namespace FineUIPro.Web.JDGL.CostAnalysis
|
|
{
|
|
public partial class JDReport : PageBase
|
|
{
|
|
#region 加载页面
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
this.txtMonths.Text = string.Format("{0:yyyy-MM}", DateTime.Now);
|
|
GetValue();
|
|
}
|
|
}
|
|
|
|
private void SetEmpty()
|
|
{
|
|
this.SimpleForm1.Title = string.Empty;
|
|
txt5.Text = string.Empty;
|
|
}
|
|
#endregion
|
|
|
|
#region 获取记录值
|
|
private void GetValue()
|
|
{
|
|
Model.Project_Installation installation = BLL.Project_InstallationService.GetProjectInstallationByProjectId(this.CurrUser.LoginProjectId);
|
|
if (installation != null && !string.IsNullOrEmpty(this.txtMonths.Text.Trim()))
|
|
{
|
|
string id = installation.InstallationId;
|
|
string date = this.txtMonths.Text.Trim() + "-01";
|
|
string strSql = "select distinct (cast(YEAR(Months) as varchar(4))+'.'+cast(MONTH(Months) as varchar(2))) as 月份,t.Months," +
|
|
"ThisRealCost as '本月已完工作实际费用-ACWP',ThisPlanCost as '本月已完工作预算费用-BCWP',ThisPlanValue as '本月计划工作预算费用-BCWS',TotalPlanValue as '累计计划工作预算费用-BCWS',TotalRealCost as '累计已完工作实际费用-ACWP',TotalPlanCost as '累计已完工作预算费用-BCWP' " +
|
|
"from dbo.View_WBS_CostControlParentDetail as t where ParentId=@Id and t.Months<=@Months order by t.Months";
|
|
//string date = DateTime.Now.Year + "-" + DateTime.Now.Month + "-01";
|
|
SqlParameter[] parameter = new SqlParameter[]
|
|
{
|
|
new SqlParameter("@Id",id),
|
|
new SqlParameter("@Months",date),
|
|
};
|
|
DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
|
|
decimal lastbcws = 0, bcws = 0, lastacwp = 0, acwp = 0, lastbcwp = 0, bcwp = 0;
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
dt.Rows[i]["本月已完工作实际费用-ACWP"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月已完工作实际费用-ACWP"].ToString()) / 10000;
|
|
dt.Rows[i]["本月已完工作预算费用-BCWP"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月已完工作预算费用-BCWP"].ToString()) / 10000;
|
|
dt.Rows[i]["本月计划工作预算费用-BCWS"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月计划工作预算费用-BCWS"].ToString()) / 10000;
|
|
bcws = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计计划工作预算费用-BCWS"].ToString());
|
|
acwp = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计已完工作实际费用-ACWP"].ToString());
|
|
bcwp = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计已完工作预算费用-BCWP"].ToString());
|
|
if (bcws == lastbcws)
|
|
{
|
|
if (Funs.GetNewDateTimeOrNow(dt.Rows[i]["Months"].ToString()) > DateTime.Now)
|
|
{
|
|
dt.Rows[i]["累计计划工作预算费用-BCWS"] = DBNull.Value;
|
|
}
|
|
else
|
|
{
|
|
dt.Rows[i]["累计计划工作预算费用-BCWS"] = bcws / 10000;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
dt.Rows[i]["累计计划工作预算费用-BCWS"] = bcws / 10000;
|
|
}
|
|
if (acwp == lastacwp)
|
|
{
|
|
if (Funs.GetNewDateTimeOrNow(dt.Rows[i]["Months"].ToString()) > DateTime.Now)
|
|
{
|
|
dt.Rows[i]["累计已完工作实际费用-ACWP"] = DBNull.Value;
|
|
}
|
|
else
|
|
{
|
|
dt.Rows[i]["累计已完工作实际费用-ACWP"] = acwp / 10000;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
dt.Rows[i]["累计已完工作实际费用-ACWP"] = acwp / 10000;
|
|
}
|
|
if (bcwp == lastbcwp)
|
|
{
|
|
if (Funs.GetNewDateTimeOrNow(dt.Rows[i]["Months"].ToString()) > DateTime.Now)
|
|
{
|
|
dt.Rows[i]["累计已完工作预算费用-BCWP"] = DBNull.Value;
|
|
}
|
|
else
|
|
{
|
|
dt.Rows[i]["累计已完工作预算费用-BCWP"] = bcwp / 10000;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
dt.Rows[i]["累计已完工作预算费用-BCWP"] = bcwp / 10000;
|
|
}
|
|
lastbcws = bcws;
|
|
lastacwp = acwp;
|
|
lastbcwp = bcwp;
|
|
}
|
|
this.ChartEV.CreateMaryChart(dt, 1220, 420, null);
|
|
decimal BCWP = Funs.GetNewDecimalOrZero(dt.Rows[dt.Rows.Count - 1]["累计已完工作预算费用-BCWP"].ToString());
|
|
decimal BCWS = Funs.GetNewDecimalOrZero(dt.Rows[dt.Rows.Count - 1]["累计计划工作预算费用-BCWS"].ToString());
|
|
decimal ACWP = Funs.GetNewDecimalOrZero(dt.Rows[dt.Rows.Count - 1]["累计已完工作实际费用-ACWP"].ToString());
|
|
decimal mBCWP = Funs.GetNewDecimalOrZero(dt.Rows[dt.Rows.Count - 1]["本月已完工作预算费用-BCWP"].ToString());
|
|
decimal mBCWS = Funs.GetNewDecimalOrZero(dt.Rows[dt.Rows.Count - 1]["本月计划工作预算费用-BCWS"].ToString());
|
|
decimal mACWP = Funs.GetNewDecimalOrZero(dt.Rows[dt.Rows.Count - 1]["本月已完工作实际费用-ACWP"].ToString());
|
|
decimal CV = BCWP - ACWP;
|
|
decimal SV = BCWP - BCWS;
|
|
decimal CPI = 0;
|
|
if (ACWP > 0)
|
|
{
|
|
CPI = BCWP / ACWP;
|
|
}
|
|
decimal SPI = 0;
|
|
if (BCWS > 0)
|
|
{
|
|
SPI = BCWP / BCWS;
|
|
}
|
|
decimal mCV = mBCWP - mACWP;
|
|
decimal mSV = mBCWP - mBCWS;
|
|
decimal mCPI = 0;
|
|
if (mACWP > 0)
|
|
{
|
|
mCPI = mBCWP / mACWP;
|
|
}
|
|
decimal mSPI = 0;
|
|
if (mBCWS > 0)
|
|
{
|
|
mSPI = mBCWP / mBCWS;
|
|
}
|
|
//总体进度
|
|
DataTable table2 = new DataTable();
|
|
table2.Columns.Add(new DataColumn("Id", typeof(String)));
|
|
table2.Columns.Add(new DataColumn("BCWP", typeof(String)));
|
|
table2.Columns.Add(new DataColumn("BCWS", typeof(String)));
|
|
table2.Columns.Add(new DataColumn("ACWP", typeof(String)));
|
|
table2.Columns.Add(new DataColumn("CV", typeof(String)));
|
|
table2.Columns.Add(new DataColumn("SV", typeof(String)));
|
|
table2.Columns.Add(new DataColumn("CPI", typeof(String)));
|
|
table2.Columns.Add(new DataColumn("SPI", typeof(String)));
|
|
DataRow row2;
|
|
row2 = table2.NewRow();
|
|
row2[0] = SQLHelper.GetNewID();
|
|
row2[1] = BCWP.ToString("0.####");
|
|
row2[2] = BCWS.ToString("0.####");
|
|
row2[3] = ACWP.ToString("0.####");
|
|
row2[4] = CV.ToString("0.####");
|
|
row2[5] = SV.ToString("0.####");
|
|
row2[6] = CPI.ToString("0.####");
|
|
row2[7] = SPI.ToString("0.####");
|
|
table2.Rows.Add(row2);
|
|
this.Grid2.DataSource = table2;
|
|
this.Grid2.DataBind();
|
|
//本月进度
|
|
table2.Rows.Clear();
|
|
row2[0] = SQLHelper.GetNewID();
|
|
row2[1] = mBCWP.ToString("0.####");
|
|
row2[2] = mBCWS.ToString("0.####");
|
|
row2[3] = mACWP.ToString("0.####");
|
|
row2[4] = mCV.ToString("0.####");
|
|
row2[5] = mSV.ToString("0.####");
|
|
row2[6] = mCPI.ToString("0.####");
|
|
row2[7] = mSPI.ToString("0.####");
|
|
table2.Rows.Add(row2);
|
|
this.Grid3.DataSource = table2;
|
|
this.Grid3.DataBind();
|
|
//按专业统计
|
|
DataTable table4 = new DataTable();
|
|
table4.Columns.Add(new DataColumn("Id", typeof(String)));
|
|
table4.Columns.Add(new DataColumn("SupId", typeof(String)));
|
|
table4.Columns.Add(new DataColumn("Name", typeof(String)));
|
|
table4.Columns.Add(new DataColumn("mBCWP", typeof(String)));
|
|
table4.Columns.Add(new DataColumn("mBCWS", typeof(String)));
|
|
table4.Columns.Add(new DataColumn("mACWP", typeof(String)));
|
|
table4.Columns.Add(new DataColumn("mCV", typeof(String)));
|
|
table4.Columns.Add(new DataColumn("mSV", typeof(String)));
|
|
table4.Columns.Add(new DataColumn("mCPI", typeof(String)));
|
|
table4.Columns.Add(new DataColumn("mSPI", typeof(String)));
|
|
table4.Columns.Add(new DataColumn("BCWP", typeof(String)));
|
|
table4.Columns.Add(new DataColumn("BCWS", typeof(String)));
|
|
table4.Columns.Add(new DataColumn("ACWP", typeof(String)));
|
|
table4.Columns.Add(new DataColumn("CV", typeof(String)));
|
|
table4.Columns.Add(new DataColumn("SV", typeof(String)));
|
|
table4.Columns.Add(new DataColumn("CPI", typeof(String)));
|
|
table4.Columns.Add(new DataColumn("SPI", typeof(String)));
|
|
Model.SGGLDB db = Funs.DB;
|
|
var cnProfessionInits = from x in db.WBS_CnProfessionInit select x;
|
|
var cnProfessions = from x in db.WBS_CnProfession where x.ProjectId == this.CurrUser.LoginProjectId select x;
|
|
var unitProjectInits = from x in db.Wbs_UnitProjectInit select x;
|
|
var unitProjects = from x in db.Wbs_UnitProject where x.ProjectId == this.CurrUser.LoginProjectId select x;
|
|
var details = from x in db.View_WBS_CostControlParentDetail
|
|
where x.Months == Funs.GetNewDateTime(date)
|
|
select x;
|
|
DataRow row4;
|
|
decimal cnACWP, cnBCWP, cnBCWS, cnmACWP, cnmBCWP, cnmBCWS, cnCV, cnSV, cnCPI, cnSPI, cnmCV, cnmSV, cnmCPI, cnmSPI,
|
|
unACWP, unBCWP, unBCWS, unmACWP, unmBCWP, unmBCWS, unCV, unSV, unCPI, unSPI, unmCV, unmSV, unmCPI, unmSPI;
|
|
int a = 1, b = 1;
|
|
foreach (var cn in cnProfessionInits)
|
|
{
|
|
cnACWP = 0;
|
|
cnBCWP = 0;
|
|
cnBCWS = 0;
|
|
cnmACWP = 0;
|
|
cnmBCWP = 0;
|
|
cnmBCWS = 0;
|
|
cnCV = 0;
|
|
cnSV = 0;
|
|
cnCPI = 0;
|
|
cnSPI = 0;
|
|
cnmCV = 0;
|
|
cnmSV = 0;
|
|
cnmCPI = 0;
|
|
cnmSPI = 0;
|
|
row4 = table4.NewRow();
|
|
row4[0] = a;
|
|
row4[1] = "0";
|
|
row4[2] = cn.CnProfessionName;
|
|
var cnDetails = (from x in details
|
|
join y in cnProfessions on x.ParentId equals y.CnProfessionId
|
|
where y.OldId == cn.CnProfessionId
|
|
select x).ToList();
|
|
cnmACWP = Funs.GetNewDecimalOrZero(cnDetails.Select(x => x.ThisRealCost).Sum().ToString()) / 10000;
|
|
cnmBCWP = Funs.GetNewDecimalOrZero(cnDetails.Select(x => x.ThisPlanCost).Sum().ToString()) / 10000;
|
|
cnmBCWS = Funs.GetNewDecimalOrZero(cnDetails.Select(x => x.ThisPlanValue).Sum().ToString()) / 10000;
|
|
cnmCV = cnmBCWP - cnmACWP;
|
|
cnmSV = cnmBCWP - cnmBCWS;
|
|
if (cnmACWP > 0)
|
|
{
|
|
cnmCPI = cnmBCWP / cnmACWP;
|
|
}
|
|
if (cnmBCWS > 0)
|
|
{
|
|
cnmSPI = cnmBCWP / cnmBCWS;
|
|
}
|
|
row4[3] = cnmBCWP.ToString("0.####");
|
|
row4[4] = cnmBCWS.ToString("0.####");
|
|
row4[5] = cnmACWP.ToString("0.####");
|
|
row4[6] = cnmCV.ToString("0.####");
|
|
row4[7] = cnmSV.ToString("0.####");
|
|
row4[8] = cnmCPI.ToString("0.####");
|
|
row4[9] = cnmSPI.ToString("0.####");
|
|
cnACWP = Funs.GetNewDecimalOrZero(cnDetails.Select(x => x.TotalRealCost).Sum().ToString()) / 10000;
|
|
cnBCWP = Funs.GetNewDecimalOrZero(cnDetails.Select(x => x.TotalPlanCost).Sum().ToString()) / 10000;
|
|
cnBCWS = Funs.GetNewDecimalOrZero(cnDetails.Select(x => x.TotalPlanValue).Sum().ToString()) / 10000;
|
|
cnCV = cnBCWP - cnACWP;
|
|
cnSV = cnBCWP - cnBCWS;
|
|
if (cnACWP > 0)
|
|
{
|
|
cnCPI = cnBCWP / cnACWP;
|
|
}
|
|
if (cnBCWS > 0)
|
|
{
|
|
cnSPI = cnBCWP / cnBCWS;
|
|
}
|
|
row4[10] = cnBCWP.ToString("0.####");
|
|
row4[11] = cnBCWS.ToString("0.####");
|
|
row4[12] = cnACWP.ToString("0.####");
|
|
row4[13] = cnCV.ToString("0.####");
|
|
row4[14] = cnSV.ToString("0.####");
|
|
row4[15] = cnCPI.ToString("0.####");
|
|
row4[16] = cnSPI.ToString("0.####");
|
|
table4.Rows.Add(row4);
|
|
b = 1;
|
|
var unLists = (from x in unitProjectInits where x.CnProfessionId == cn.CnProfessionId orderby x.SortIndex select x).ToList();
|
|
foreach (var un in unLists)
|
|
{
|
|
unACWP = 0;
|
|
unBCWP = 0;
|
|
unBCWS = 0;
|
|
unmACWP = 0;
|
|
unmBCWP = 0;
|
|
unmBCWS = 0;
|
|
unCV = 0;
|
|
unSV = 0;
|
|
unCPI = 0;
|
|
unSPI = 0;
|
|
unmCV = 0;
|
|
unmSV = 0;
|
|
unmCPI = 0;
|
|
unmSPI = 0;
|
|
row4 = table4.NewRow();
|
|
row4[0] = a.ToString() + "." + b.ToString();
|
|
row4[1] = a;
|
|
row4[2] = un.UnitProjectName;
|
|
var unDetails = from x in details
|
|
join y in unitProjects on x.ParentId equals y.UnitProjectId
|
|
where y.UnitProjectCode == un.UnitProjectCode
|
|
select x;
|
|
unmACWP = Funs.GetNewDecimalOrZero(unDetails.Select(x => x.ThisRealCost).Sum().ToString()) / 10000;
|
|
unmBCWP = Funs.GetNewDecimalOrZero(unDetails.Select(x => x.ThisPlanCost).Sum().ToString()) / 10000;
|
|
unmBCWS = Funs.GetNewDecimalOrZero(unDetails.Select(x => x.ThisPlanValue).Sum().ToString()) / 10000;
|
|
unmCV = unmBCWP - unmACWP;
|
|
unmSV = unmBCWP - unmBCWS;
|
|
if (unmACWP > 0)
|
|
{
|
|
unmCPI = unmBCWP / unmACWP;
|
|
}
|
|
if (unmBCWS > 0)
|
|
{
|
|
unmSPI = unmBCWP / unmBCWS;
|
|
}
|
|
row4[3] = unmBCWP.ToString("0.####");
|
|
row4[4] = unmBCWS.ToString("0.####");
|
|
row4[5] = unmACWP.ToString("0.####");
|
|
row4[6] = unmCV.ToString("0.####");
|
|
row4[7] = unmSV.ToString("0.####");
|
|
row4[8] = unmCPI.ToString("0.####");
|
|
row4[9] = unmSPI.ToString("0.####");
|
|
unACWP = Funs.GetNewDecimalOrZero(unDetails.Select(x => x.TotalRealCost).Sum().ToString()) / 10000;
|
|
unBCWP = Funs.GetNewDecimalOrZero(unDetails.Select(x => x.TotalPlanCost).Sum().ToString()) / 10000;
|
|
unBCWS = Funs.GetNewDecimalOrZero(unDetails.Select(x => x.TotalPlanValue).Sum().ToString()) / 10000;
|
|
unCV = unBCWP - unACWP;
|
|
unSV = unBCWP - unBCWS;
|
|
if (unACWP > 0)
|
|
{
|
|
unCPI = unBCWP / unACWP;
|
|
}
|
|
if (unBCWS > 0)
|
|
{
|
|
unSPI = unBCWP / unBCWS;
|
|
}
|
|
row4[10] = unBCWP.ToString("0.####");
|
|
row4[11] = unBCWS.ToString("0.####");
|
|
row4[12] = unACWP.ToString("0.####");
|
|
row4[13] = unCV.ToString("0.####");
|
|
row4[14] = unSV.ToString("0.####");
|
|
row4[15] = unCPI.ToString("0.####");
|
|
row4[16] = unSPI.ToString("0.####");
|
|
table4.Rows.Add(row4);
|
|
b++;
|
|
}
|
|
a++;
|
|
}
|
|
this.Grid4.DataSource = table4;
|
|
this.Grid4.DataBind();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 查询
|
|
/// <summary>
|
|
/// 查询按钮
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnSearch_Click(object sender, EventArgs e)
|
|
{
|
|
GetValue();
|
|
}
|
|
#endregion
|
|
|
|
#region 关闭弹出窗口
|
|
/// <summary>
|
|
/// 关闭窗口
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Window1_Close(object sender, WindowCloseEventArgs e)
|
|
{
|
|
if (!string.IsNullOrEmpty(this.txtMonths.Text.Trim()))
|
|
{
|
|
GetValue();
|
|
}
|
|
else
|
|
{
|
|
ShowNotify("请选择月份", MessageBoxIcon.Warning);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 导出按钮
|
|
/// 导出按钮
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnOut_Click(object sender, EventArgs e)
|
|
{
|
|
if (!string.IsNullOrEmpty(this.txtMonths.Text.Trim()))
|
|
{
|
|
Model.Project_Installation installation = BLL.Project_InstallationService.GetProjectInstallationByProjectId(this.CurrUser.LoginProjectId);
|
|
if (installation != null && !string.IsNullOrEmpty(this.txtMonths.Text.Trim()))
|
|
{
|
|
string rootPath = Server.MapPath("~/");
|
|
string initTemplatePath = string.Empty;
|
|
string uploadfilepath = string.Empty;
|
|
string newUrl = string.Empty;
|
|
string filePath = string.Empty;
|
|
Model.SGGLDB db = Funs.DB;
|
|
initTemplatePath = Const.JDReportTemplateUrl;
|
|
uploadfilepath = rootPath + initTemplatePath;
|
|
newUrl = uploadfilepath.Replace(".docx", "(" + this.txtMonths.Text.Trim() + ")" + ".docx");
|
|
if (File.Exists(newUrl))
|
|
{
|
|
File.Delete(newUrl);
|
|
}
|
|
File.Copy(uploadfilepath, newUrl);
|
|
//更新书签内容
|
|
Document doc = new Aspose.Words.Document(newUrl);
|
|
DocumentBuilder builder = new DocumentBuilder(doc);
|
|
string projectName = string.Empty;
|
|
var project = ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
|
|
if (project != null)
|
|
{
|
|
projectName = project.ProjectName;
|
|
}
|
|
Bookmark bookmarkProjectName = doc.Range.Bookmarks["ProjectName"];
|
|
if (bookmarkProjectName != null)
|
|
{
|
|
bookmarkProjectName.Text = projectName;
|
|
}
|
|
Bookmark bookmarkMonths = doc.Range.Bookmarks["Months"];
|
|
if (bookmarkMonths != null)
|
|
{
|
|
string[] strs = this.txtMonths.Text.Trim().Split('-');
|
|
bookmarkMonths.Text = strs[0] + "年" + strs[1] + "月";
|
|
}
|
|
|
|
//插入图表
|
|
builder.MoveToBookmark("Chart");
|
|
Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
|
|
Chart chart = shape.Chart;
|
|
chart.Title.Text = "赢得值曲线";
|
|
ChartSeriesCollection seriesColl = chart.Series;
|
|
seriesColl.Clear();
|
|
string id = installation.InstallationId;
|
|
string date = this.txtMonths.Text.Trim() + "-01";
|
|
string strSql = "select distinct (cast(YEAR(Months) as varchar(4))+'.'+cast(MONTH(Months) as varchar(2))) as 月份,t.Months," +
|
|
"ThisRealCost as '本月已完工作实际费用-ACWP',ThisPlanCost as '本月已完工作预算费用-BCWP',ThisPlanValue as '本月计划工作预算费用-BCWS',TotalPlanValue as '累计计划工作预算费用-BCWS',TotalRealCost as '累计已完工作实际费用-ACWP',TotalPlanCost as '累计已完工作预算费用-BCWP' " +
|
|
"from dbo.View_WBS_CostControlParentDetail as t where ParentId=@Id and t.Months<=@Months order by t.Months";
|
|
//string date = DateTime.Now.Year + "-" + DateTime.Now.Month + "-01";
|
|
SqlParameter[] parameter = new SqlParameter[]
|
|
{
|
|
new SqlParameter("@Id",id),
|
|
new SqlParameter("@Months",date),
|
|
};
|
|
DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
|
|
string[] categories = new string[dt.Rows.Count];
|
|
double[] d1 = new double[dt.Rows.Count];
|
|
double[] d2 = new double[dt.Rows.Count];
|
|
double[] d3 = new double[dt.Rows.Count];
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
categories[i] = dt.Rows[i]["月份"].ToString();
|
|
d1[i] = Convert.ToDouble(dt.Rows[i]["累计已完工作实际费用-ACWP"].ToString()) / 10000;
|
|
d2[i] = Convert.ToDouble(dt.Rows[i]["累计已完工作预算费用-BCWP"].ToString()) / 10000;
|
|
d3[i] = Convert.ToDouble(dt.Rows[i]["累计计划工作预算费用-BCWS"].ToString()) / 10000;
|
|
}
|
|
seriesColl.Add("累计已完工作实际费用-ACWP", categories, d1);
|
|
seriesColl.Add("累计已完工作预算费用-BCWP", categories, d2);
|
|
seriesColl.Add("累计计划工作预算费用-BCWS", categories, d3);
|
|
|
|
decimal BCWP = Funs.GetNewDecimalOrZero(dt.Rows[dt.Rows.Count - 1]["累计已完工作预算费用-BCWP"].ToString());
|
|
decimal BCWS = Funs.GetNewDecimalOrZero(dt.Rows[dt.Rows.Count - 1]["累计计划工作预算费用-BCWS"].ToString());
|
|
decimal ACWP = Funs.GetNewDecimalOrZero(dt.Rows[dt.Rows.Count - 1]["累计已完工作实际费用-ACWP"].ToString());
|
|
decimal mBCWP = Funs.GetNewDecimalOrZero(dt.Rows[dt.Rows.Count - 1]["本月已完工作预算费用-BCWP"].ToString());
|
|
decimal mBCWS = Funs.GetNewDecimalOrZero(dt.Rows[dt.Rows.Count - 1]["本月计划工作预算费用-BCWS"].ToString());
|
|
decimal mACWP = Funs.GetNewDecimalOrZero(dt.Rows[dt.Rows.Count - 1]["本月已完工作实际费用-ACWP"].ToString());
|
|
decimal CV = BCWP / 10000 - ACWP / 10000;
|
|
decimal SV = BCWP / 10000 - BCWS / 10000;
|
|
decimal CPI = 0;
|
|
if (ACWP > 0)
|
|
{
|
|
CPI = BCWP / ACWP;
|
|
}
|
|
decimal SPI = 0;
|
|
if (BCWS > 0)
|
|
{
|
|
SPI = BCWP / BCWS;
|
|
}
|
|
decimal mCV = mBCWP / 10000 - mACWP / 10000;
|
|
decimal mSV = mBCWP / 10000 - mBCWS / 10000;
|
|
decimal mCPI = 0;
|
|
if (mACWP > 0)
|
|
{
|
|
mCPI = mBCWP / mACWP;
|
|
}
|
|
decimal mSPI = 0;
|
|
if (mBCWS > 0)
|
|
{
|
|
mSPI = mBCWP / mBCWS;
|
|
}
|
|
#region 项目总体施工进度情况
|
|
//项目总体施工进度情况
|
|
builder.MoveToBookmark("Form2");
|
|
builder.StartTable();
|
|
builder.CellFormat.Borders.LineStyle = LineStyle.Single;
|
|
builder.CellFormat.Borders.Color = System.Drawing.Color.Black;
|
|
builder.Bold = false;
|
|
builder.RowFormat.Height = 20;
|
|
builder.Font.Size = 10;
|
|
|
|
//序号
|
|
//builder.InsertCell();
|
|
//builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
//builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
//builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
//builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
//builder.CellFormat.Width = 30;
|
|
//builder.Write("序号");
|
|
//赢得值参数(单位:万元)
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 240;
|
|
builder.Write("赢得值参数(单位:万元)");
|
|
//赢得值评价指标
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 320;
|
|
builder.Write("赢得值评价指标");
|
|
builder.EndRow();
|
|
//BCWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write("BCWP");
|
|
//BCWS
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write("BCWS");
|
|
//ACWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write("ACWP");
|
|
//CV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write("CV");
|
|
//SV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write("SV");
|
|
//CPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write("CPI");
|
|
//SPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write("SPI");
|
|
builder.EndRow();
|
|
////序号
|
|
//builder.InsertCell();
|
|
//builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
//builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
//builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
//builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
//builder.CellFormat.Width = 30;
|
|
//builder.Write(h.ToString());
|
|
//问题内容
|
|
//BCWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write((BCWP / 10000).ToString("0.####"));
|
|
//BCWS
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write((BCWS / 10000).ToString("0.####"));
|
|
//ACWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write((ACWP / 10000).ToString("0.####"));
|
|
//CV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write(CV.ToString("0.####"));
|
|
//SV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write(SV.ToString("0.####"));
|
|
//CPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write(CPI.ToString("0.####"));
|
|
//SPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write(SPI.ToString("0.####"));
|
|
builder.EndRow();
|
|
#endregion
|
|
#region 本月施工进度情况
|
|
//本月施工进度情况
|
|
builder.MoveToBookmark("Form3");
|
|
builder.StartTable();
|
|
builder.CellFormat.Borders.LineStyle = LineStyle.Single;
|
|
builder.CellFormat.Borders.Color = System.Drawing.Color.Black;
|
|
builder.Bold = false;
|
|
builder.RowFormat.Height = 20;
|
|
builder.Font.Size = 10;
|
|
|
|
//序号
|
|
//builder.InsertCell();
|
|
//builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
//builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
//builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
//builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
//builder.CellFormat.Width = 30;
|
|
//builder.Write("序号");
|
|
//赢得值参数(单位:万元)
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 240;
|
|
builder.Write("赢得值参数(单位:万元)");
|
|
//赢得值评价指标
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 320;
|
|
builder.Write("赢得值评价指标");
|
|
builder.EndRow();
|
|
//BCWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write("BCWP");
|
|
//BCWS
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write("BCWS");
|
|
//ACWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write("ACWP");
|
|
//CV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write("CV");
|
|
//SV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write("SV");
|
|
//CPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write("CPI");
|
|
//SPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write("SPI");
|
|
builder.EndRow();
|
|
//问题内容
|
|
//BCWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write((mBCWP / 10000).ToString("0.####"));
|
|
//BCWS
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write((mBCWS / 10000).ToString("0.####"));
|
|
//ACWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write((mACWP / 10000).ToString("0.####"));
|
|
//CV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write(mCV.ToString("0.####"));
|
|
//SV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write(mSV.ToString("0.####"));
|
|
//CPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write(mCPI.ToString("0.####"));
|
|
//SPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 80;
|
|
builder.Write(mSPI.ToString("0.####"));
|
|
builder.EndRow();
|
|
#endregion
|
|
#region 专业和分部工程工程施工进度情况
|
|
//专业和分部工程工程施工进度情况
|
|
builder.MoveToBookmark("Form4");
|
|
builder.StartTable();
|
|
builder.CellFormat.Borders.LineStyle = LineStyle.Single;
|
|
builder.CellFormat.Borders.Color = System.Drawing.Color.Black;
|
|
builder.Bold = false;
|
|
builder.RowFormat.Height = 20;
|
|
builder.Font.Size = 10;
|
|
|
|
//序号
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 30;
|
|
builder.Write("序号");
|
|
//专业
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write("专业");
|
|
//分部工程
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 60;
|
|
builder.Write("分部工程");
|
|
//本月赢得值参数(单位:万元)
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 150;
|
|
builder.Write("本月赢得值参数(单位:万元)");
|
|
//本月赢得值评价指标
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 200;
|
|
builder.Write("本月赢得值评价指标");
|
|
builder.EndRow();
|
|
//序号
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 30;
|
|
builder.Write("序号");
|
|
//专业
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write("专业");
|
|
//分部工程
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 60;
|
|
builder.Write("分部工程");
|
|
//BCWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write("BCWP");
|
|
//BCWS
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write("BCWS");
|
|
//ACWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write("ACWP");
|
|
//CV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write("CV");
|
|
//SV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write("SV");
|
|
//CPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write("CPI");
|
|
//SPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write("SPI");
|
|
builder.EndRow();
|
|
var cnProfessionInits = from x in db.WBS_CnProfessionInit select x;
|
|
var cnProfessions = from x in db.WBS_CnProfession where x.ProjectId == this.CurrUser.LoginProjectId select x;
|
|
var unitProjectInits = from x in db.Wbs_UnitProjectInit select x;
|
|
var unitProjects = from x in db.Wbs_UnitProject where x.ProjectId == this.CurrUser.LoginProjectId select x;
|
|
var details = from x in db.View_WBS_CostControlParentDetail
|
|
where x.Months == Funs.GetNewDateTime(date)
|
|
select x;
|
|
decimal cnACWP, cnBCWP, cnBCWS, cnmACWP, cnmBCWP, cnmBCWS, cnCV, cnSV, cnCPI, cnSPI, cnmCV, cnmSV, cnmCPI, cnmSPI,
|
|
unACWP, unBCWP, unBCWS, unmACWP, unmBCWP, unmBCWS, unCV, unSV, unCPI, unSPI, unmCV, unmSV, unmCPI, unmSPI;
|
|
int a = 1, b = 1;
|
|
foreach (var cn in cnProfessionInits)
|
|
{
|
|
cnmACWP = 0;
|
|
cnmBCWP = 0;
|
|
cnmBCWS = 0;
|
|
cnmCV = 0;
|
|
cnmSV = 0;
|
|
cnmCPI = 0;
|
|
cnmSPI = 0;
|
|
|
|
//序号
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 30;
|
|
builder.Write(a.ToString());
|
|
//专业
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(cn.CnProfessionName);
|
|
//分部工程
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 60;
|
|
builder.Write(string.Empty);
|
|
var cnDetails = (from x in details
|
|
join y in cnProfessions on x.ParentId equals y.CnProfessionId
|
|
where y.OldId == cn.CnProfessionId
|
|
select x).ToList();
|
|
cnmACWP = Funs.GetNewDecimalOrZero(cnDetails.Select(x => x.ThisRealCost).Sum().ToString()) / 10000;
|
|
cnmBCWP = Funs.GetNewDecimalOrZero(cnDetails.Select(x => x.ThisPlanCost).Sum().ToString()) / 10000;
|
|
cnmBCWS = Funs.GetNewDecimalOrZero(cnDetails.Select(x => x.ThisPlanValue).Sum().ToString()) / 10000;
|
|
cnmCV = cnmBCWP - cnmACWP;
|
|
cnmSV = cnmBCWP - cnmBCWS;
|
|
if (cnmACWP > 0)
|
|
{
|
|
cnmCPI = cnmBCWP / cnmACWP;
|
|
}
|
|
if (cnmBCWS > 0)
|
|
{
|
|
cnmSPI = cnmBCWP / cnmBCWS;
|
|
}
|
|
//BCWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(cnmBCWP.ToString("0.####"));
|
|
//BCWS
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(cnmBCWS.ToString("0.####"));
|
|
//ACWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(cnmACWP.ToString("0.####"));
|
|
//CV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(cnmCV.ToString("0.####"));
|
|
//SV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(cnmSV.ToString("0.####"));
|
|
//CPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(cnmCPI.ToString("0.####"));
|
|
//SPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(cnmSPI.ToString("0.####"));
|
|
builder.EndRow();
|
|
b = 1;
|
|
var unLists = (from x in unitProjectInits where x.CnProfessionId == cn.CnProfessionId orderby x.SortIndex select x).ToList();
|
|
foreach (var un in unLists)
|
|
{
|
|
unmACWP = 0;
|
|
unmBCWP = 0;
|
|
unmBCWS = 0;
|
|
unmCV = 0;
|
|
unmSV = 0;
|
|
unmCPI = 0;
|
|
unmSPI = 0;
|
|
|
|
//序号
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 30;
|
|
builder.Write(a.ToString() + "." + b.ToString());
|
|
//专业
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(string.Empty);
|
|
//分部工程
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 60;
|
|
builder.Write(un.UnitProjectName);
|
|
var unDetails = from x in details
|
|
join y in unitProjects on x.ParentId equals y.UnitProjectId
|
|
where y.UnitProjectCode == un.UnitProjectCode
|
|
select x;
|
|
unmACWP = Funs.GetNewDecimalOrZero(unDetails.Select(x => x.ThisRealCost).Sum().ToString()) / 10000;
|
|
unmBCWP = Funs.GetNewDecimalOrZero(unDetails.Select(x => x.ThisPlanCost).Sum().ToString()) / 10000;
|
|
unmBCWS = Funs.GetNewDecimalOrZero(unDetails.Select(x => x.ThisPlanValue).Sum().ToString()) / 10000;
|
|
unmCV = unmBCWP - unmACWP;
|
|
unmSV = unmBCWP - unmBCWS;
|
|
if (unmACWP > 0)
|
|
{
|
|
unmCPI = unmBCWP / unmACWP;
|
|
}
|
|
if (unmBCWS > 0)
|
|
{
|
|
unmSPI = unmBCWP / unmBCWS;
|
|
}
|
|
//BCWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(unmBCWP.ToString("0.####"));
|
|
//BCWS
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(unmBCWS.ToString("0.####"));
|
|
//ACWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(unmACWP.ToString("0.####"));
|
|
//CV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(unmCV.ToString("0.####"));
|
|
//SV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(unmSV.ToString("0.####"));
|
|
//CPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(unmCPI.ToString("0.####"));
|
|
//SPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(unmSPI.ToString("0.####"));
|
|
builder.EndRow();
|
|
b++;
|
|
}
|
|
a++;
|
|
}
|
|
|
|
|
|
builder.MoveToBookmark("Form42");
|
|
builder.StartTable();
|
|
builder.CellFormat.Borders.LineStyle = LineStyle.Single;
|
|
builder.CellFormat.Borders.Color = System.Drawing.Color.Black;
|
|
builder.Bold = false;
|
|
builder.RowFormat.Height = 20;
|
|
builder.Font.Size = 10;
|
|
|
|
//序号
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 30;
|
|
builder.Write("序号");
|
|
//专业
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write("专业");
|
|
//分部工程
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 60;
|
|
builder.Write("分部工程");
|
|
//累计赢得值参数(单位:万元)
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.CellFormat.VerticalMerge = CellMerge.None;
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 150;
|
|
builder.Write("累计赢得值参数(单位:万元)");
|
|
//累计赢得值评价指标
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.CellFormat.VerticalMerge = CellMerge.None;
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 200;
|
|
builder.Write("累计赢得值评价指标");
|
|
builder.EndRow();
|
|
//序号
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 30;
|
|
builder.Write("序号");
|
|
//专业
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write("专业");
|
|
//分部工程
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 60;
|
|
builder.Write("分部工程");
|
|
//BCWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write("BCWP");
|
|
//BCWS
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write("BCWS");
|
|
//ACWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write("ACWP");
|
|
//CV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write("CV");
|
|
//SV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write("SV");
|
|
//CPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write("CPI");
|
|
//SPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write("SPI");
|
|
builder.EndRow();
|
|
a = 1;
|
|
b = 1;
|
|
foreach (var cn in cnProfessionInits)
|
|
{
|
|
cnACWP = 0;
|
|
cnBCWP = 0;
|
|
cnBCWS = 0;
|
|
cnCV = 0;
|
|
cnSV = 0;
|
|
cnCPI = 0;
|
|
cnSPI = 0;
|
|
//序号
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 30;
|
|
builder.Write(a.ToString());
|
|
//专业
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(cn.CnProfessionName);
|
|
//分部工程
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 60;
|
|
builder.Write(string.Empty);
|
|
var cnDetails = (from x in details
|
|
join y in cnProfessions on x.ParentId equals y.CnProfessionId
|
|
where y.OldId == cn.CnProfessionId
|
|
select x).ToList();
|
|
cnmACWP = Funs.GetNewDecimalOrZero(cnDetails.Select(x => x.ThisRealCost).Sum().ToString()) / 10000;
|
|
cnmBCWP = Funs.GetNewDecimalOrZero(cnDetails.Select(x => x.ThisPlanCost).Sum().ToString()) / 10000;
|
|
cnmBCWS = Funs.GetNewDecimalOrZero(cnDetails.Select(x => x.ThisPlanValue).Sum().ToString()) / 10000;
|
|
cnmCV = cnmBCWP - cnmACWP;
|
|
cnmSV = cnmBCWP - cnmBCWS;
|
|
if (cnmACWP > 0)
|
|
{
|
|
cnmCPI = cnmBCWP / cnmACWP;
|
|
}
|
|
if (cnmBCWS > 0)
|
|
{
|
|
cnmSPI = cnmBCWP / cnmBCWS;
|
|
}
|
|
cnACWP = Funs.GetNewDecimalOrZero(cnDetails.Select(x => x.TotalRealCost).Sum().ToString()) / 10000;
|
|
cnBCWP = Funs.GetNewDecimalOrZero(cnDetails.Select(x => x.TotalPlanCost).Sum().ToString()) / 10000;
|
|
cnBCWS = Funs.GetNewDecimalOrZero(cnDetails.Select(x => x.TotalPlanValue).Sum().ToString()) / 10000;
|
|
cnCV = cnBCWP - cnACWP;
|
|
cnSV = cnBCWP - cnBCWS;
|
|
if (cnACWP > 0)
|
|
{
|
|
cnCPI = cnBCWP / cnACWP;
|
|
}
|
|
if (cnBCWS > 0)
|
|
{
|
|
cnSPI = cnBCWP / cnBCWS;
|
|
}
|
|
//BCWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(cnBCWP.ToString("0.####"));
|
|
//BCWS
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(cnBCWS.ToString("0.####"));
|
|
//ACWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(cnACWP.ToString("0.####"));
|
|
//CV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(cnCV.ToString("0.####"));
|
|
//SV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(cnSV.ToString("0.####"));
|
|
//CPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(cnCPI.ToString("0.####"));
|
|
//SPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(cnSPI.ToString("0.####"));
|
|
builder.EndRow();
|
|
b = 1;
|
|
var unLists = (from x in unitProjectInits where x.CnProfessionId == cn.CnProfessionId orderby x.SortIndex select x).ToList();
|
|
foreach (var un in unLists)
|
|
{
|
|
unACWP = 0;
|
|
unBCWP = 0;
|
|
unBCWS = 0;
|
|
unCV = 0;
|
|
unSV = 0;
|
|
unCPI = 0;
|
|
unSPI = 0;
|
|
//序号
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 30;
|
|
builder.Write(a.ToString() + "." + b.ToString());
|
|
//专业
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(string.Empty);
|
|
//分部工程
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 60;
|
|
builder.Write(un.UnitProjectName);
|
|
var unDetails = from x in details
|
|
join y in unitProjects on x.ParentId equals y.UnitProjectId
|
|
where y.UnitProjectCode == un.UnitProjectCode
|
|
select x;
|
|
unACWP = Funs.GetNewDecimalOrZero(unDetails.Select(x => x.TotalRealCost).Sum().ToString()) / 10000;
|
|
unBCWP = Funs.GetNewDecimalOrZero(unDetails.Select(x => x.TotalPlanCost).Sum().ToString()) / 10000;
|
|
unBCWS = Funs.GetNewDecimalOrZero(unDetails.Select(x => x.TotalPlanValue).Sum().ToString()) / 10000;
|
|
unCV = unBCWP - unACWP;
|
|
unSV = unBCWP - unBCWS;
|
|
if (unACWP > 0)
|
|
{
|
|
unCPI = unBCWP / unACWP;
|
|
}
|
|
if (unBCWS > 0)
|
|
{
|
|
unSPI = unBCWP / unBCWS;
|
|
}
|
|
//BCWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(unBCWP.ToString("0.####"));
|
|
//BCWS
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(unBCWS.ToString("0.####"));
|
|
//ACWP
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(unACWP.ToString("0.####"));
|
|
//CV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(unCV.ToString("0.####"));
|
|
//SV
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(unSV.ToString("0.####"));
|
|
//CPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(unCPI.ToString("0.####"));
|
|
//SPI
|
|
builder.InsertCell();
|
|
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
|
|
builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First;
|
|
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐
|
|
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
|
|
builder.CellFormat.Width = 50;
|
|
builder.Write(unSPI.ToString("0.####"));
|
|
builder.EndRow();
|
|
b++;
|
|
}
|
|
a++;
|
|
}
|
|
#endregion
|
|
doc.Save(newUrl);
|
|
string fileName = Path.GetFileName(newUrl);
|
|
FileInfo info = new FileInfo(newUrl);
|
|
long fileSize = info.Length;
|
|
Response.Clear();
|
|
Response.ContentType = "application/x-zip-compressed";
|
|
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
|
|
Response.AddHeader("Content-Length", fileSize.ToString());
|
|
Response.TransmitFile(newUrl, 0, fileSize);
|
|
Response.Flush();
|
|
Response.Close();
|
|
File.Delete(newUrl);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
ShowNotify("请选择月份", MessageBoxIcon.Warning);
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
} |