Basf_EProject/EProject/FineUIPro.Web/Report/FTEReport.aspx.cs

1485 lines
52 KiB
C#

using BLL;
using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.Report
{
public partial class FTEReport : PageBase
{
protected void Page_Init(object sender, EventArgs e)
{
InitGrid();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetButtonPower();//权限设置
BindGrid1();
}
}
private void InitGrid()
{
DateTime dateTime = DateTime.Now;
for (int i = 0; i <= 12; i++)
{
RenderField rd = new RenderField();
rd.Width = Unit.Pixel(90);
rd.HeaderText = dateTime.ToString("yyyyMM");
rd.FieldType = FieldType.Double;
rd.ColumnID = dateTime.ToString("yyyyMM");
rd.DataField = dateTime.ToString("yyyyMM");
Grid1.Columns.Add(rd);
rd = new RenderField();
rd.Width = Unit.Pixel(90);
rd.HeaderText = dateTime.ToString("yyyyMM");
rd.FieldType = FieldType.Int;
rd.ColumnID = dateTime.ToString("yyyyMM");
rd.DataField = dateTime.ToString("yyyyMM");
Grid2.Columns.Add(rd);
rd = new RenderField();
rd.Width = Unit.Pixel(90);
rd.HeaderText = dateTime.ToString("yyyyMM");
rd.FieldType = FieldType.Double;
rd.ColumnID = dateTime.ToString("yyyyMM");
rd.DataField = dateTime.ToString("yyyyMM");
Grid3.Columns.Add(rd);
rd = new RenderField();
rd.Width = Unit.Pixel(90);
rd.HeaderText = dateTime.ToString("yyyyMM");
rd.FieldType = FieldType.Int;
rd.ColumnID = dateTime.ToString("yyyyMM");
rd.DataField = dateTime.ToString("yyyyMM");
Grid4.Columns.Add(rd);
rd = new RenderField();
rd.Width = Unit.Pixel(90);
rd.HeaderText = dateTime.ToString("yyyyMM");
rd.FieldType = FieldType.Double;
rd.ColumnID = dateTime.ToString("yyyyMM");
rd.DataField = dateTime.ToString("yyyyMM");
Grid5.Columns.Add(rd);
rd = new RenderField();
rd.Width = Unit.Pixel(90);
rd.HeaderText = dateTime.ToString("yyyyMM");
rd.FieldType = FieldType.Int;
rd.ColumnID = dateTime.ToString("yyyyMM");
rd.DataField = dateTime.ToString("yyyyMM");
Grid6.Columns.Add(rd);
rd = new RenderField();
rd.Width = Unit.Pixel(90);
rd.HeaderText = dateTime.ToString("yyyyMM");
rd.FieldType = FieldType.Double;
rd.ColumnID = dateTime.ToString("yyyyMM");
rd.DataField = dateTime.ToString("yyyyMM");
Grid7.Columns.Add(rd);
rd = new RenderField();
rd.Width = Unit.Pixel(90);
rd.HeaderText = dateTime.ToString("yyyyMM");
rd.FieldType = FieldType.Int;
rd.ColumnID = dateTime.ToString("yyyyMM");
rd.DataField = dateTime.ToString("yyyyMM");
Grid8.Columns.Add(rd);
rd = new RenderField();
rd.Width = Unit.Pixel(90);
rd.HeaderText = dateTime.ToString("yyyyMM");
rd.FieldType = FieldType.Double;
rd.ColumnID = dateTime.ToString("yyyyMM");
rd.DataField = dateTime.ToString("yyyyMM");
Grid9.Columns.Add(rd);
rd = new RenderField();
rd.Width = Unit.Pixel(90);
rd.HeaderText = dateTime.ToString("yyyyMM");
rd.FieldType = FieldType.Int;
rd.ColumnID = dateTime.ToString("yyyyMM");
rd.DataField = dateTime.ToString("yyyyMM");
Grid10.Columns.Add(rd);
rd = new RenderField();
rd.Width = Unit.Pixel(90);
rd.HeaderText = dateTime.ToString("yyyyMM");
rd.FieldType = FieldType.Double;
rd.ColumnID = dateTime.ToString("yyyyMM");
rd.DataField = dateTime.ToString("yyyyMM");
Grid11.Columns.Add(rd);
rd = new RenderField();
rd.Width = Unit.Pixel(90);
rd.HeaderText = dateTime.ToString("yyyyMM");
rd.FieldType = FieldType.Int;
rd.ColumnID = dateTime.ToString("yyyyMM");
rd.DataField = dateTime.ToString("yyyyMM");
Grid12.Columns.Add(rd);
rd = new RenderField();
rd.Width = Unit.Pixel(90);
rd.HeaderText = dateTime.ToString("yyyyMM");
rd.FieldType = FieldType.Double;
rd.ColumnID = dateTime.ToString("yyyyMM");
rd.DataField = dateTime.ToString("yyyyMM");
Grid13.Columns.Add(rd);
rd = new RenderField();
rd.Width = Unit.Pixel(90);
rd.HeaderText = dateTime.ToString("yyyyMM");
rd.FieldType = FieldType.Int;
rd.ColumnID = dateTime.ToString("yyyyMM");
rd.DataField = dateTime.ToString("yyyyMM");
Grid14.Columns.Add(rd);
rd = new RenderField();
rd.Width = Unit.Pixel(90);
rd.HeaderText = dateTime.ToString("yyyyMM");
rd.FieldType = FieldType.Double;
rd.ColumnID = dateTime.ToString("yyyyMM");
rd.DataField = dateTime.ToString("yyyyMM");
Grid15.Columns.Add(rd);
dateTime = dateTime.AddMonths(1);
}
}
#region TAB数据切换
/// <summary>
/// 点击TAB数据切换
/// </summary>
protected void TabStrip1_TabIndexChanged(object sender, EventArgs e)
{
if (TabStrip1.ActiveTabIndex == 0)
{
BindGrid1();
}
else if (TabStrip1.ActiveTabIndex == 1)
{
BindGrid2();
}
else if (TabStrip1.ActiveTabIndex == 2)
{
BindGrid3();
}
else if (TabStrip1.ActiveTabIndex == 3)
{
BindGrid4();
}
else if (TabStrip1.ActiveTabIndex == 4)
{
BindGrid5();
}
else if (TabStrip1.ActiveTabIndex == 5)
{
BindGrid6();
}
else if (TabStrip1.ActiveTabIndex == 6)
{
BindGrid7();
}
else if (TabStrip1.ActiveTabIndex == 7)
{
BindGrid8();
}
else if (TabStrip1.ActiveTabIndex == 8)
{
BindGrid9();
}
else if (TabStrip1.ActiveTabIndex == 9)
{
BindGrid10();
}
else if (TabStrip1.ActiveTabIndex == 10)
{
BindGrid11();
}
else if (TabStrip1.ActiveTabIndex == 11)
{
BindGrid12();
}
else if (TabStrip1.ActiveTabIndex == 12)
{
BindGrid13();
}
else if (TabStrip1.ActiveTabIndex == 13)
{
BindGrid14();
}
else if (TabStrip1.ActiveTabIndex == 14)
{
BindGrid15();
}
}
#endregion
#region
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSearch_Click(object sender, EventArgs e)
{
if (TabStrip1.ActiveTabIndex == 0)
{
BindGrid1();
}
else if (TabStrip1.ActiveTabIndex == 1)
{
BindGrid2();
}
else if (TabStrip1.ActiveTabIndex == 2)
{
BindGrid3();
}
else if (TabStrip1.ActiveTabIndex == 3)
{
BindGrid4();
}
else if (TabStrip1.ActiveTabIndex == 4)
{
BindGrid5();
}
else if (TabStrip1.ActiveTabIndex == 5)
{
BindGrid6();
}
else if (TabStrip1.ActiveTabIndex == 6)
{
BindGrid7();
}
else if (TabStrip1.ActiveTabIndex == 7)
{
BindGrid8();
}
else if (TabStrip1.ActiveTabIndex == 8)
{
BindGrid9();
}
else if (TabStrip1.ActiveTabIndex == 9)
{
BindGrid10();
}
else if (TabStrip1.ActiveTabIndex == 10)
{
BindGrid11();
}
else if (TabStrip1.ActiveTabIndex == 11)
{
BindGrid12();
}
else if (TabStrip1.ActiveTabIndex == 12)
{
BindGrid13();
}
else if (TabStrip1.ActiveTabIndex == 13)
{
BindGrid14();
}
else if (TabStrip1.ActiveTabIndex == 14)
{
BindGrid15();
}
}
#endregion
#region CTE_Overall_FTE
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid1()
{
SqlParameter[] parameter = new SqlParameter[]
{
};
DataSet ds = SQLHelper.RunProcedure("Proc_FTE_CTEOverallFTE", parameter, "tt");
DataTable table = ds.Tables[0];
table= procOverAll(table);
if (table.Rows.Count > 1)
{
//Grid1.RecordCount = table.Rows.Count;
//var tb = this.GetPagedDataTable(Grid1, table);
Grid1.DataSource = table;
Grid1.DataBind();
}
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
BindGrid1();
}
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindGrid1();
}
#endregion
#region CTE-A_Manhour
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid2()
{
SqlParameter sqlParameter = new SqlParameter("departName", "CTE/A");
SqlParameter[] parameter = new SqlParameter[1];
parameter[0] = sqlParameter;
DataSet ds = SQLHelper.RunProcedure("Proc_FTE_Manhour", parameter, "tt");
DataTable table = procManHours( ds.Tables[0]);
if (table.Rows.Count > 1)
{
Grid2.RecordCount = table.Rows.Count;
var tb = this.GetPagedDataTable(Grid2, table);
Grid2.DataSource = tb;
Grid2.DataBind();
}
}
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid2_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid2.PageIndex = e.NewPageIndex;
BindGrid2();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid2_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid2.SortDirection = e.SortDirection;
Grid2.SortField = e.SortField;
BindGrid2();
}
#endregion
#region CTE-A_FTE
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid3()
{
SqlParameter sqlParameter = new SqlParameter("departName", "CTE/A");
SqlParameter[] parameter = new SqlParameter[1];
parameter[0] = sqlParameter;
DataSet ds = SQLHelper.RunProcedure("Proc_FTE_FTE", parameter, "tt");
DataTable table = procManHours(ds.Tables[0],"FTE");
if (table.Rows.Count > 1)
{
Grid3.RecordCount = table.Rows.Count;
var tb = this.GetPagedDataTable(Grid3, table);
Grid3.DataSource = tb;
Grid3.DataBind();
}
}
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid3_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid3.PageIndex = e.NewPageIndex;
BindGrid3();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid3_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid3.SortDirection = e.SortDirection;
Grid3.SortField = e.SortField;
BindGrid3();
}
#endregion
#region CTE-C_Manhour
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid4()
{
SqlParameter sqlParameter = new SqlParameter("departName", "CTE/C");
SqlParameter[] parameter = new SqlParameter[1];
parameter[0] = sqlParameter;
DataSet ds = SQLHelper.RunProcedure("Proc_FTE_Manhour", parameter, "tt");
DataTable table = procManHours(ds.Tables[0]);
if (table.Rows.Count > 1)
{
Grid4.RecordCount = table.Rows.Count;
var tb = this.GetPagedDataTable(Grid4, table);
Grid4.DataSource = tb;
Grid4.DataBind();
}
}
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid4_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid4.PageIndex = e.NewPageIndex;
BindGrid4();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid4_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid4.SortDirection = e.SortDirection;
Grid4.SortField = e.SortField;
BindGrid4();
}
#endregion
#region CTE-C_FTE
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid5()
{
SqlParameter sqlParameter = new SqlParameter("departName", "CTE/C");
SqlParameter[] parameter = new SqlParameter[1];
parameter[0] = sqlParameter;
DataSet ds = SQLHelper.RunProcedure("Proc_FTE_FTE", parameter, "tt");
DataTable table = procManHours(ds.Tables[0], "FTE");
if (table.Rows.Count > 1)
{
Grid5.RecordCount = table.Rows.Count;
var tb = this.GetPagedDataTable(Grid5, table);
Grid5.DataSource = tb;
Grid5.DataBind();
}
}
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid5_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid5.PageIndex = e.NewPageIndex;
BindGrid5();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid5_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid5.SortDirection = e.SortDirection;
Grid5.SortField = e.SortField;
BindGrid5();
}
#endregion
#region CTE-D_Manhour
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid6()
{
SqlParameter sqlParameter = new SqlParameter("departName", "CTE/D");
SqlParameter[] parameter = new SqlParameter[1];
parameter[0] = sqlParameter;
DataSet ds = SQLHelper.RunProcedure("Proc_FTE_Manhour", parameter, "tt");
DataTable table = procManHours(ds.Tables[0]);
if (table.Rows.Count > 1)
{
Grid6.RecordCount = table.Rows.Count;
var tb = this.GetPagedDataTable(Grid6, table);
Grid6.DataSource = tb;
Grid6.DataBind();
}
}
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid6_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid6.PageIndex = e.NewPageIndex;
BindGrid6();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid6_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid6.SortDirection = e.SortDirection;
Grid6.SortField = e.SortField;
BindGrid6();
}
#endregion
#region CTE-D_FTE
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid7()
{
SqlParameter sqlParameter = new SqlParameter("departName", "CTE/D");
SqlParameter[] parameter = new SqlParameter[1];
parameter[0] = sqlParameter;
DataSet ds = SQLHelper.RunProcedure("Proc_FTE_FTE", parameter, "tt");
DataTable table = procManHours(ds.Tables[0], "FTE");
if (table.Rows.Count > 1)
{
Grid7.RecordCount = table.Rows.Count;
var tb = this.GetPagedDataTable(Grid7, table);
Grid7.DataSource = tb;
Grid7.DataBind();
}
}
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid7_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid7.PageIndex = e.NewPageIndex;
BindGrid7();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid7_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid7.SortDirection = e.SortDirection;
Grid7.SortField = e.SortField;
BindGrid7();
}
#endregion
#region CTE-M_Manhour
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid8()
{
SqlParameter sqlParameter = new SqlParameter("departName", "CTE/M");
SqlParameter[] parameter = new SqlParameter[1];
parameter[0] = sqlParameter;
DataSet ds = SQLHelper.RunProcedure("Proc_FTE_Manhour", parameter, "tt");
DataTable table = procManHours(ds.Tables[0]);
if (table.Rows.Count > 1)
{
Grid8.RecordCount = table.Rows.Count;
var tb = this.GetPagedDataTable(Grid8, table);
Grid8.DataSource = tb;
Grid8.DataBind();
}
}
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid8_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid8.PageIndex = e.NewPageIndex;
BindGrid8();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid8_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid8.SortDirection = e.SortDirection;
Grid8.SortField = e.SortField;
BindGrid8();
}
#endregion
#region CTE-M_FTE
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid9()
{
SqlParameter sqlParameter = new SqlParameter("departName", "CTE/M");
SqlParameter[] parameter = new SqlParameter[1];
parameter[0] = sqlParameter;
DataSet ds = SQLHelper.RunProcedure("Proc_FTE_FTE", parameter, "tt");
DataTable table = procManHours(ds.Tables[0], "FTE");
if (table.Rows.Count > 1)
{
Grid9.RecordCount = table.Rows.Count;
var tb = this.GetPagedDataTable(Grid9, table);
Grid9.DataSource = tb;
Grid9.DataBind();
}
}
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid9_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid9.PageIndex = e.NewPageIndex;
BindGrid9();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid9_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid9.SortDirection = e.SortDirection;
Grid9.SortField = e.SortField;
BindGrid9();
}
#endregion
#region CTE-P_Manhour
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid10()
{
SqlParameter sqlParameter = new SqlParameter("departName", "CTE/P");
SqlParameter[] parameter = new SqlParameter[1];
parameter[0] = sqlParameter;
DataSet ds = SQLHelper.RunProcedure("Proc_FTE_Manhour", parameter, "tt");
DataTable table = procManHours(ds.Tables[0]);
if (table.Rows.Count > 1)
{
Grid10.RecordCount = table.Rows.Count;
var tb = this.GetPagedDataTable(Grid10, table);
Grid10.DataSource = tb;
Grid10.DataBind();
}
}
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid10_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid10.PageIndex = e.NewPageIndex;
BindGrid10();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid10_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid10.SortDirection = e.SortDirection;
Grid10.SortField = e.SortField;
BindGrid10();
}
#endregion
#region CTE-P_FTE
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid11()
{
SqlParameter sqlParameter = new SqlParameter("departName", "CTE/P");
SqlParameter[] parameter = new SqlParameter[1];
parameter[0] = sqlParameter;
DataSet ds = SQLHelper.RunProcedure("Proc_FTE_FTE", parameter, "tt");
DataTable table = procManHours(ds.Tables[0], "FTE");
if (table.Rows.Count > 1)
{
Grid11.RecordCount = table.Rows.Count;
var tb = this.GetPagedDataTable(Grid11, table);
Grid11.DataSource = tb;
Grid11.DataBind();
}
}
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid11_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid11.PageIndex = e.NewPageIndex;
BindGrid11();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid11_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid11.SortDirection = e.SortDirection;
Grid11.SortField = e.SortField;
BindGrid11();
}
#endregion
#region CTE-Q_Manhour
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid12()
{
SqlParameter sqlParameter = new SqlParameter("departName", "CTE/Q");
SqlParameter[] parameter = new SqlParameter[1];
parameter[0] = sqlParameter;
DataSet ds = SQLHelper.RunProcedure("Proc_FTE_Manhour", parameter, "tt");
DataTable table = procManHours(ds.Tables[0]);
if (table.Rows.Count > 1)
{
Grid12.RecordCount = table.Rows.Count;
var tb = this.GetPagedDataTable(Grid12, table);
Grid12.DataSource = tb;
Grid12.DataBind();
}
}
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid12_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid12.PageIndex = e.NewPageIndex;
BindGrid12();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid12_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid12.SortDirection = e.SortDirection;
Grid12.SortField = e.SortField;
BindGrid12();
}
#endregion
#region CTE-Q_FTE
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid13()
{
SqlParameter sqlParameter = new SqlParameter("departName", "CTE/Q");
SqlParameter[] parameter = new SqlParameter[1];
parameter[0] = sqlParameter;
DataSet ds = SQLHelper.RunProcedure("Proc_FTE_FTE", parameter, "tt");
DataTable table = procManHours(ds.Tables[0], "FTE");
if (table.Rows.Count > 1)
{
Grid13.RecordCount = table.Rows.Count;
var tb = this.GetPagedDataTable(Grid13, table);
Grid13.DataSource = tb;
Grid13.DataBind();
}
}
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid13_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid13.PageIndex = e.NewPageIndex;
BindGrid13();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid13_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid13.SortDirection = e.SortDirection;
Grid13.SortField = e.SortField;
BindGrid13();
}
#endregion
#region CTE-S_Manhour
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid14()
{
SqlParameter sqlParameter = new SqlParameter("departName", "CTE/S");
SqlParameter[] parameter = new SqlParameter[1];
parameter[0] = sqlParameter;
DataSet ds = SQLHelper.RunProcedure("Proc_FTE_Manhour", parameter, "tt");
DataTable table = procManHours(ds.Tables[0]);
if (table.Rows.Count > 1)
{
Grid14.RecordCount = table.Rows.Count;
var tb = this.GetPagedDataTable(Grid14, table);
Grid14.DataSource = tb;
Grid14.DataBind();
}
}
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid14_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid14.PageIndex = e.NewPageIndex;
BindGrid14();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid14_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid14.SortDirection = e.SortDirection;
Grid14.SortField = e.SortField;
BindGrid14();
}
#endregion
#region CTE-S_FTE
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid15()
{
SqlParameter sqlParameter = new SqlParameter("departName", "CTE/S");
SqlParameter[] parameter = new SqlParameter[1];
parameter[0] = sqlParameter;
DataSet ds = SQLHelper.RunProcedure("Proc_FTE_FTE", parameter, "tt");
DataTable table = procManHours(ds.Tables[0], "FTE");
if (table.Rows.Count > 1)
{
Grid15.RecordCount = table.Rows.Count;
var tb = this.GetPagedDataTable(Grid15, table);
Grid15.DataSource = tb;
Grid15.DataBind();
}
}
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid15_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid15.PageIndex = e.NewPageIndex;
BindGrid15();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid15_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid15.SortDirection = e.SortDirection;
Grid15.SortField = e.SortField;
BindGrid15();
}
#endregion
#region Excel
/// <summary>
/// 导出Excel
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnExport_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
//模板文件
string TempletFileName = rootPath + "FTE_Report_April.xlsx";
//导出文件
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);
XSSFWorkbook hssfworkbook = new XSSFWorkbook(file);
//XSSFFont cs_content_Font = (XSSFFont)hssfworkbook.CreateFont(); //创建字体
//cs_content_Font.FontName = "Arial";//字体
//cs_content_Font.FontHeightInPoints = 10; //字体大小
//列赋值
//overview.ForceFormulaRecalculation = true;
#region
XSSFSheet overview = (XSSFSheet)hssfworkbook.GetSheet("CTE_Overall_FTE");
IFont cs_content_Font = overview.Workbook.CreateFont(); //创建字体
cs_content_Font.FontName = "sans-serif";//字体
cs_content_Font.FontHeightInPoints = 10; //字体大小
IFont red_content_Font = overview.Workbook.CreateFont(); //创建字体
red_content_Font.FontName = "sans-serif";//字体
red_content_Font.FontHeightInPoints = 10; //字体大小
red_content_Font.Color = HSSFColor.Red.Index;
ICellStyle redCellStyle = hssfworkbook.CreateCellStyle();
redCellStyle.SetFont(red_content_Font);
ICellStyle mCellStyle = hssfworkbook.CreateCellStyle();
mCellStyle.SetFont(cs_content_Font);
DateTime dateTime = DateTime.Now;
for (int i = 0; i <= 12; i++)
{
overview.GetRow(0).GetCell(i+2).SetCellValue(dateTime.ToString("yyyyMM"));
dateTime = dateTime.AddMonths(1);
}
SqlParameter[] parameter = new SqlParameter[]
{
};
DataSet ds = SQLHelper.RunProcedure("Proc_FTE_CTEOverallFTE", parameter, "tt");
DataTable table = ds.Tables[0];
table = procOverAll(table);
for (int i = 0; i < table.Rows.Count; i++)
{
for (int j = 0; j < table.Columns.Count - 1; j++)
{
if (overview.GetRow(i + 1).GetCell(j) == null)
{
overview.GetRow(i + 1).CreateCell(j);
}
if (table.Rows[i][j + 1] != DBNull.Value)
{
overview.GetRow(i + 1).GetCell(j).SetCellValue(table.Rows[i][j + 1].ToString());
}
else
{
if (j >= 2)
{
overview.GetRow(i + 1).GetCell(j).SetCellValue("0");
}
}
try
{
if (j >= 2 && Double.Parse(overview.GetRow(i + 1).GetCell(j).StringCellValue) > 0.85)
{
overview.GetRow(i + 1).GetCell(j).CellStyle = redCellStyle;
}
else
{
overview.GetRow(i + 1).GetCell(j).CellStyle = mCellStyle;
}
}
catch (Exception e1)
{
// overview.GetRow(i + 1).GetCell(j).CellStyle.SetFont(red_content_Font);
}
}
}
#endregion
#region
fillSheetData((XSSFSheet)hssfworkbook.GetSheet("CTE-A_Manhour"), "CTE/A", "Proc_FTE_Manhour");
fillSheetData((XSSFSheet)hssfworkbook.GetSheet("CTE-A_FTE"), "CTE/A", "Proc_FTE_FTE");
fillSheetData((XSSFSheet)hssfworkbook.GetSheet("CTE-C_Manhour"), "CTE/C", "Proc_FTE_Manhour");
fillSheetData((XSSFSheet)hssfworkbook.GetSheet("CTE-C_FTE"), "CTE/C", "Proc_FTE_FTE");
fillSheetData((XSSFSheet)hssfworkbook.GetSheet("CTE-D_Manhour"), "CTE/D", "Proc_FTE_Manhour");
fillSheetData((XSSFSheet)hssfworkbook.GetSheet("CTE-D_FTE"), "CTE/D", "Proc_FTE_FTE");
fillSheetData((XSSFSheet)hssfworkbook.GetSheet("CTE-M_Manhour"), "CTE/M", "Proc_FTE_Manhour");
fillSheetData((XSSFSheet)hssfworkbook.GetSheet("CTE-M_FTE"), "CTE/M", "Proc_FTE_FTE");
fillSheetData((XSSFSheet)hssfworkbook.GetSheet("CTE-P_Manhour"), "CTE/P", "Proc_FTE_Manhour");
fillSheetData((XSSFSheet)hssfworkbook.GetSheet("CTE-P_FTE"), "CTE/P", "Proc_FTE_FTE");
fillSheetData((XSSFSheet)hssfworkbook.GetSheet("CTE-Q_Manhour"), "CTE/Q", "Proc_FTE_Manhour");
fillSheetData((XSSFSheet)hssfworkbook.GetSheet("CTE-Q_FTE"), "CTE/Q", "Proc_FTE_FTE");
fillSheetData((XSSFSheet)hssfworkbook.GetSheet("CTE-S_Manhour"), "CTE/S", "Proc_FTE_Manhour");
fillSheetData((XSSFSheet)hssfworkbook.GetSheet("CTE-S_FTE"), "CTE/S", "Proc_FTE_FTE");
#endregion
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=P14_FTE_Report_" + Server.UrlEncode(DateTime.Now.ToString("yyyyMMddhhmmss") + ".xlsx"));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", filet.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
Response.WriteFile(filet.FullName);
// 停止页面的执行
Response.End();
}
/// <summary>
/// 根据sql获取数据
/// </summary>
/// <param name="strSql"></param>
/// <param name="tableName"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public static DataTable GetDataTableNameRunText(string strSql, string tableName = "", params SqlParameter[] parameters)
{
DataTable dataTable = string.IsNullOrEmpty(tableName) ? new DataTable() : new DataTable(tableName);
using (SqlConnection Connection = new SqlConnection(Funs.ConnString))
{
try
{
Connection.Open();
SqlCommand command = new SqlCommand(strSql, Connection);
command.CommandType = CommandType.Text;
if (parameters != null)
{
command.Parameters.AddRange(parameters);
}
SqlDataAdapter adapter = new SqlDataAdapter(command);
adapter.Fill(dataTable);
}
finally
{
Connection.Close();
}
}
return dataTable;
}
#endregion
#region
/// <summary>
/// 菜单按钮权限
/// </summary>
private void GetButtonPower()
{
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.FTEReportAprilMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnOut))
{
this.btnExport.Hidden = false;
}
}
}
#endregion
/// <summary>
/// 表格处理
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
protected DataTable procManHours(DataTable dt,string dataColumnsName = "TaskPlan")
{
DataTable dtres = new DataTable();
dtres.Columns.Add("UserId", System.Type.GetType("System.String"));
dtres.Columns.Add("UserCode", System.Type.GetType("System.String"));
dtres.Columns.Add("UserName", System.Type.GetType("System.String"));
DateTime dateTime = DateTime.Now;
for (int i = 0; i <= 12; i++)
{
if (dataColumnsName == "TaskPlan")
{
dtres.Columns.Add(dateTime.ToString("yyyyMM"), System.Type.GetType("System.Int32"));
}
else
{
dtres.Columns.Add(dateTime.ToString("yyyyMM"), System.Type.GetType("System.Double"));
}
dateTime = dateTime.AddMonths(1);
}
DataRow dr = null;
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow tempRow = dt.Rows[i];
if (dr == null)
{
dr = dtres.NewRow();
for(int c = 3; c < dtres.Columns.Count; c++)
{
dr[c] = 0;
}
dr["UserId"] = tempRow["UserId"];
dr["UserCode"] = tempRow["UserCode"];
dr["UserName"] = tempRow["UserName"];
dtres.Rows.Add(dr);
}
if (dr["UserId"].ToString() != tempRow["UserId"].ToString())
{
try
{
dr = dtres.NewRow();
for (int c = 3; c < dtres.Columns.Count; c++)
{
dr[c] = 0;
}
dr["UserId"] = tempRow["UserId"];
dr["UserCode"] = tempRow["UserCode"];
dr["UserName"] = tempRow["UserName"];
dtres.Rows.Add(dr);
}
catch (Exception e)
{
string s = e.Message;
}
}
if (tempRow["Years"] != DBNull.Value)
{
try
{
int year = (int)tempRow["Years"];
int month = (int)tempRow["Months"];
if (month < 10)
{
if (dtres.Columns.Contains(year + "0" + month))
if (tempRow[dataColumnsName] != DBNull.Value)
{
dr[year + "0" + month] = tempRow[dataColumnsName];
}
}
else
{
if (dtres.Columns.Contains(year + "" + month))
{
if (tempRow[dataColumnsName] != DBNull.Value)
{
dr[year + "" + month] = tempRow[dataColumnsName];
}
}
}
}
catch (Exception e)
{
string s = e.Message;
}
}
}
return dtres;
}
protected DataTable procOverAll(DataTable dt)
{
DataTable dtres = new DataTable();
dtres.Columns.Add("DepartId", System.Type.GetType("System.String"));
dtres.Columns.Add("StaffNum", System.Type.GetType("System.String"));
dtres.Columns.Add("DepartName", System.Type.GetType("System.String"));
DateTime dateTime = DateTime.Now;
for (int i = 0; i <= 12; i++)
{
dtres.Columns.Add(dateTime.ToString("yyyyMM"), System.Type.GetType("System.Double"));
dateTime = dateTime.AddMonths(1);
}
DataRow dr = null;
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow tempRow = dt.Rows[i];
if (dr == null)
{
dr = dtres.NewRow();
for (int c = 3; c < dtres.Columns.Count; c++)
{
dr[c] = 0;
}
dr["DepartId"] = tempRow["DepartId"];
dr["DepartName"] = tempRow["DepartName"];
if (!tempRow["DepartName"].ToString().Contains("_"))
{
dr["StaffNum"] = tempRow["StaffNum"];
}
dtres.Rows.Add(dr);
}
if (dr["DepartName"].ToString() != tempRow["DepartName"].ToString())
{
try
{
dr = dtres.NewRow();
for (int c = 3; c < dtres.Columns.Count; c++)
{
dr[c] = 0;
}
dr["DepartId"] = tempRow["DepartId"];
dr["DepartName"] = tempRow["DepartName"];
if (!tempRow["DepartName"].ToString().Contains("_"))
{
dr["StaffNum"] = tempRow["StaffNum"];
}
dtres.Rows.Add(dr);
}
catch (Exception e)
{
string s = e.Message;
}
}
if (tempRow["Years"] != DBNull.Value)
{
try
{
int year = (int)tempRow["Years"];
int month = (int)tempRow["Months"];
if (month < 10)
{
if (dtres.Columns.Contains(year + "0" + month))
if (tempRow["FTE"] != DBNull.Value)
dr[year + "0" + month] = tempRow["FTE"];
}
else
{
if (dtres.Columns.Contains(year + "" + month))
if (tempRow["FTE"] != DBNull.Value)
dr[year + "" + month] = tempRow["FTE"];
}
}
catch (Exception e)
{
string s = e.Message;
}
}
}
return dtres;
}
protected DataTable divForDataTable(DataTable dt1,DataTable dt2)
{
DataTable dtres = new DataTable();
dtres.Columns.Add("UserId", System.Type.GetType("System.String"));
dtres.Columns.Add("UserCode", System.Type.GetType("System.String"));
dtres.Columns.Add("UserName", System.Type.GetType("System.String"));
DateTime dateTime = DateTime.Now;
for (int i = 0; i <= 12; i++)
{
dtres.Columns.Add(dateTime.ToString("yyyyMM"), System.Type.GetType("System.Int32"));
dateTime = dateTime.AddMonths(1);
}
DataRow dr = null;
for (int i = 0; i < dt1.Rows.Count; i++)
{
DataRow tempRow1 = dt1.Rows[i];
if (dr == null)
{
dr = dtres.NewRow();
dr["UserId"] = tempRow1["UserId"];
dr["UserCode"] = tempRow1["UserCode"];
dr["UserName"] = tempRow1["UserName"];
dtres.Rows.Add(dr);
}
if (dr["UserId"].ToString() != tempRow1["UserId"].ToString())
{
try
{
dr = dtres.NewRow();
dr["UserId"] = tempRow1["UserId"];
dr["UserCode"] = tempRow1["UserCode"];
dr["UserName"] = tempRow1["UserName"];
dtres.Rows.Add(dr);
}
catch (Exception e)
{
string s = e.Message;
}
}
if (tempRow1["UserId"] != DBNull.Value)
{
DataRow []dataRows = dt2.Select("UserId = '" + tempRow1["UserId"].ToString() + "'");
if (dataRows != null && dataRows.Length > 0)
{
DataRow tempRow2 = dataRows[0];
for (int j = 3; j < dtres.Columns.Count; j++)
{
try
{
if (tempRow1[dtres.Columns[j].ColumnName] != DBNull.Value && tempRow2[dtres.Columns[j].ColumnName] != DBNull.Value)
dr[dtres.Columns[j].ColumnName] = 1.0 * (int)tempRow1[dtres.Columns[j].ColumnName] / (int)tempRow2[dtres.Columns[j].ColumnName];
}
catch (Exception e) {
string s = e.Message;
}
}
}
}
}
return dtres;
}
/// <summary>
/// 标红
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid_RowDataBound(object sender, GridRowEventArgs e)
{
for (int i = 2; i < e.Values.Length; i++)
{
if (e.Values[i] != null && (double)e.Values[i] >= 0.85)
{
e.CellCssClasses[i] = "totalRed";
}
}
}
protected void fillSheetData(XSSFSheet sheet, string departMent,string pro)
{
XSSFFont cs_content_Font = (XSSFFont)sheet.Workbook.CreateFont(); //创建字体
cs_content_Font.FontName = "Arial";//字体
cs_content_Font.FontHeightInPoints = 10; //字体大小
XSSFFont red_content_Font = (XSSFFont)sheet.Workbook.CreateFont(); //创建字体
red_content_Font.FontName = "Arial";//字体
red_content_Font.FontHeightInPoints = 10; //字体大小
red_content_Font.Color = NPOI.HSSF.Util.HSSFColor.Red.Index;
ICellStyle redCellStyle = sheet.Workbook.CreateCellStyle();
redCellStyle.SetFont(red_content_Font);
ICellStyle mCellStyle = sheet.Workbook.CreateCellStyle();
mCellStyle.SetFont(cs_content_Font);
DateTime dateTime = DateTime.Now;
for (int i = 0; i <= 12; i++)
{
sheet.GetRow(0).GetCell(i + 2).SetCellValue(dateTime.ToString("yyyyMM"));
dateTime = dateTime.AddMonths(1);
}
SqlParameter sqlParameter2 = new SqlParameter("departName",departMent );
SqlParameter[] parameter2 = new SqlParameter[1];
parameter2[0] = sqlParameter2;
DataSet ds2 = SQLHelper.RunProcedure(pro, parameter2, "tt");
DataTable table2;
if ("Proc_FTE_FTE" == pro)
{
table2 = procManHours(ds2.Tables[0], "FTE");
}
else
{
table2 = procManHours(ds2.Tables[0]);
}
for (int i = 0; i < table2.Rows.Count; i++)
{
for (int j = 0; j < table2.Columns.Count-1; j++)
{
if (sheet.GetRow(i + 1).GetCell(j) == null)
{
sheet.GetRow(i + 1).CreateCell(j);
}
if (table2.Rows[i][j+1] != DBNull.Value)
{
sheet.GetRow(i + 1).GetCell(j).SetCellValue(table2.Rows[i][j+1].ToString());
}
else
{
sheet.GetRow(i + 1).GetCell(j).SetCellValue("0");
}
try
{
if (j>=2&&"Proc_FTE_FTE" == pro && Double.Parse(sheet.GetRow(i + 1).GetCell(j).StringCellValue) >= 0.85)
{
sheet.GetRow(i + 1).GetCell(j).CellStyle=redCellStyle ;
}
else
{
sheet.GetRow(i + 1).GetCell(j).CellStyle=mCellStyle;
}
}
catch (Exception e)
{
// sheet.GetRow(i + 1).GetCell(j).CellStyle.SetFont(cs_content_Font);
}
}
}
}
}
}