using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Web.Services.Description; using BLL; using Newtonsoft.Json.Linq; using NPOI.SS.Formula.Functions; namespace FineUIPro.Web.Transfer.Chart { public partial class PunchlistFromChartNew : PageBase { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ddlSystemNo.Hidden = true; ddlDateType.Hidden = true; drpChartType.Hidden = true; BtnAnalyse.Hidden = true; var systemNos = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).GroupBy(p => new { p.System_No }).Select(p => new { System_No = p.Key.System_No }).ToList(); int indexRow = 1; ddlSystemNo.Items.Insert(0, new FineUIPro.ListItem("ALL", "")); foreach (var t in systemNos) { ddlSystemNo.Items.Insert(indexRow, new FineUIPro.ListItem(t.System_No, t.System_No)); indexRow++; } AnalyseData(); } } /// /// x轴30天日期 /// public string AllxDate; /// /// 当天计划完成量 /// public string wcl1; /// /// 当天实际完成量 /// public string wcl2; /// /// 累计计划完成量 /// public string wcl3; /// /// 累计实际完成量 /// public string wcl4; /// /// 统计方法 /// private void AnalyseData() { string _systemNo = ddlSystemNo.SelectedValue; if (_systemNo == null) _systemNo = ""; _systemNo = _systemNo.Trim(); //_systemNo为空则查全部 var forms = from x in Funs.DB.Transfer_PunchlistFrom where x.ProjectId == this.CurrUser.LoginProjectId && (x.System_No == _systemNo || _systemNo == "") select x; string _dateType = ddlDateType.SelectedValue; #region 按照当前日期前一周数据 AllxDate = ""; if (_dateType == "1") { #region 加载尾项完成统计表(30天以内) var nowDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")); for (var i = nowDate.AddDays(-30); i <= nowDate; i=i.AddDays(1)) { //i是日期 var d = i.Month.ToString() + "月" + i.Day.ToString() + "日"; DateTime startTime = Convert.ToDateTime(i.ToString("yyyy-MM-dd") + " 00:00:00"); DateTime endTime = Convert.ToDateTime(i.ToString("yyyy-MM-dd") + " 23:59:59"); //当天计划完成量 var dtjhwcl= forms.Where(x => x.Required_Date >= startTime && x.Required_Date <= endTime).Count(); wcl1 += "'" + dtjhwcl + "',"; //当天实际完成量 var dtsjwcl = forms.Where(x => x.Actual_Date >= startTime && x.Actual_Date <= endTime).Count(); wcl2 += "'" + dtsjwcl + "',"; //累计计划完成量 var ljjhwcl = forms.Where(x => x.Required_Date <= endTime).Count(); wcl3 += "'" + ljjhwcl + "',"; //累计实际完成量 var ljsjwcl= forms.Where(x => x.Actual_Date <= endTime).Count(); wcl4 += "'" + ljsjwcl + "',"; AllxDate += "'"+ d + "',"; } if (AllxDate.Length>0) { AllxDate = AllxDate.Substring(0, AllxDate.Length - 1); wcl1 = wcl1.Substring(0, wcl1.Length - 1); wcl2 = wcl2.Substring(0, wcl2.Length - 1); wcl3 = wcl3.Substring(0, wcl3.Length - 1); wcl4 = wcl4.Substring(0, wcl4.Length - 1); } #endregion /////按单位统计 //DataTable dtTime = new DataTable(); //dtTime.Columns.Add("日期", typeof(string)); //dtTime.Columns.Add("计划完成数量", typeof(string)); //dtTime.Columns.Add("实际完成数量", typeof(string)); //for (int i = 6; i >= 0; i--) //{ // DataRow rowTime = dtTime.NewRow(); // DateTime QueryTime = DateTime.Now.AddDays(i * -1); // rowTime["日期"] = QueryTime.ToString("yyyy/MM/dd"); // DateTime startTime = Convert.ToDateTime(QueryTime.ToString("yyyy-MM-dd") + " 00:00:00"); // DateTime endTime = Convert.ToDateTime(QueryTime.ToString("yyyy-MM-dd") + " 23:59:59"); // //rowTime["计划完成数量"] = forms.Where(x => x.Required_Date >= startTime && x.Required_Date <= endTime).Count(); // //rowTime["实际完成数量"] = forms.Where(x => x.Actual_Date >= startTime && x.Actual_Date <= endTime).Count(); // rowTime["计划完成数量"] = forms.Where(x => x.Required_Date <= endTime).Count(); // rowTime["实际完成数量"] = forms.Where(x => x.Actual_Date <= endTime).Count(); // dtTime.Rows.Add(rowTime); //} //this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "尾项完成统计分析", this.drpChartType.SelectedValue, 1300, 550, false)); ///按单位统计 DataTable dtTime1 = new DataTable(); dtTime1.Columns.Add("日期", typeof(string)); dtTime1.Columns.Add("计划完成百分比(%)", typeof(string)); dtTime1.Columns.Add("实际完成百分比(%)", typeof(string)); for (int i = 6; i >= 0; i--) { DataRow rowTime = dtTime1.NewRow(); DateTime QueryTime = DateTime.Now.AddDays(i * -1); rowTime["日期"] = QueryTime.ToString("yyyy/MM/dd"); DateTime startTime = Convert.ToDateTime(QueryTime.ToString("yyyy-MM-dd") + " 00:00:00"); DateTime endTime = Convert.ToDateTime(QueryTime.ToString("yyyy-MM-dd") + " 23:59:59"); double jhCount = forms.Where(x => x.Required_Date <= endTime).Count(); double sjCount = forms.Where(x => x.Actual_Date <= endTime).Count(); double allCount = forms.Count(); rowTime["计划完成百分比(%)"] = allCount == 0 ? "0.00" : (jhCount / allCount * 100).ToString("0.00"); rowTime["实际完成百分比(%)"] = allCount == 0 ? "0.00" : (sjCount / allCount * 100).ToString("0.00"); dtTime1.Rows.Add(rowTime); } this.ChartAccidentTime1.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime1, "尾项完成统计分析", this.drpChartType.SelectedValue, 1300, 550, false)); } #endregion //按照当前月份到一月份的数据 if (_dateType == "2") { /////按单位统计 //DataTable dtTime = new DataTable(); //dtTime.Columns.Add("月份", typeof(string)); //dtTime.Columns.Add("计划完成数量", typeof(string)); //dtTime.Columns.Add("实际完成数量", typeof(string)); //for (int i = 1; i <= DateTime.Now.Month; i++) //{ // DataRow rowTime = dtTime.NewRow(); // DateTime QueryTime =Convert.ToDateTime($"{DateTime.Now.Year.ToString()}-{i}-1 00:00:00"); // rowTime["月份"] = QueryTime.ToString("yyyy/MM"); // DateTime startTime = QueryTime; // DateTime endTime = Convert.ToDateTime(QueryTime.AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd") + " 23:59:59"); // //rowTime["计划完成数量"] = forms.Where(x => x.Required_Date >= startTime && x.Required_Date <= endTime).Count(); // //rowTime["实际完成数量"] = forms.Where(x => x.Actual_Date >= startTime && x.Actual_Date <= endTime).Count(); // rowTime["计划完成数量"] = forms.Where(x => x.Required_Date <= endTime).Count(); // rowTime["实际完成数量"] = forms.Where(x => x.Actual_Date <= endTime).Count(); // dtTime.Rows.Add(rowTime); //} //this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "尾项完成统计分析", this.drpChartType.SelectedValue, 1300, 550, false)); ///按单位统计 DataTable dtTime1 = new DataTable(); dtTime1.Columns.Add("月份", typeof(string)); dtTime1.Columns.Add("计划完成百分比(%)", typeof(string)); dtTime1.Columns.Add("实际完成百分比(%)", typeof(string)); for (int i = 1; i <= DateTime.Now.Month; i++) { DataRow rowTime = dtTime1.NewRow(); DateTime QueryTime = Convert.ToDateTime($"{DateTime.Now.Year.ToString()}-{i}-1 00:00:00"); rowTime["月份"] = QueryTime.ToString("yyyy/MM"); DateTime startTime = QueryTime; DateTime endTime = Convert.ToDateTime(QueryTime.AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd") + " 23:59:59"); double jhCount = forms.Where(x => x.Required_Date <= endTime).Count(); double sjCount = forms.Where(x => x.Actual_Date <= endTime).Count(); double allCount = forms.Count(); rowTime["计划完成百分比(%)"] = allCount == 0 ? "0.00" : (jhCount / allCount * 100).ToString("0.00"); rowTime["实际完成百分比(%)"] = allCount == 0 ? "0.00" : (sjCount / allCount * 100).ToString("0.00"); dtTime1.Rows.Add(rowTime); } this.ChartAccidentTime1.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime1, "尾项完成统计分析", this.drpChartType.SelectedValue, 1300, 550, false)); } } /// /// 统计分析 /// /// /// protected void BtnAnalyse_Click(object sender, EventArgs e) { this.AnalyseData(); BindGrid1(); BindGrid2(); } /// /// 图形变换 /// /// /// protected void drpChartType_SelectedIndexChanged(object sender, EventArgs e) { this.AnalyseData(); } /// /// 现在日期类型 /// /// /// protected void ddlDateType_SelectedIndexChanged(object sender, EventArgs e) { this.AnalyseData(); } /// /// 选择System No /// /// /// protected void ddlSystemNo_SelectedIndexChanged(object sender, EventArgs e) { this.AnalyseData(); BindGrid1(); BindGrid2(); } #region 加载 #region 分页、排序 /// /// 分页下拉 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid1(); } /// /// 分页索引事件 /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { BindGrid1(); } /// /// 排序 /// /// /// protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; BindGrid1(); } /// /// 分页下拉 /// /// /// protected void ddlPageSize2_SelectedIndexChanged(object sender, EventArgs e) { Grid2.PageSize = Convert.ToInt32(ddlPageSize2.SelectedValue); BindGrid2(); } /// /// 分页索引事件 /// /// /// protected void Grid2_PageIndexChange(object sender, GridPageEventArgs e) { BindGrid2(); } /// /// 排序 /// /// /// protected void Grid2_Sort(object sender, FineUIPro.GridSortEventArgs e) { Grid2.SortDirection = e.SortDirection; Grid2.SortField = e.SortField; BindGrid2(); } #endregion /// /// 查询绑定数据 /// public void BindGrid1() { List listStr = new List(); string _systemNo = string.Empty; _systemNo = ddlSystemNo.SelectedValue; StringBuilder strSql = new StringBuilder(""); strSql.AppendLine(" IF OBJECT_ID('tempdb..#AllPunchlistFromSortTemp1') IS NOT NULL drop table #AllPunchlistFromSortTemp1; "); strSql.AppendLine(" IF OBJECT_ID('tempdb..#PunchlistFromSortTemp1') IS NOT NULL drop table #PunchlistFromSortTemp1; "); strSql.AppendLine(" select * INTO #AllPunchlistFromSortTemp1 from Transfer_PunchlistFrom(NOLOCK) where ProjectId=@ProjectId "); if (!string.IsNullOrWhiteSpace(_systemNo)) { strSql.AppendLine(" AND System_No=@System_No "); listStr.Add(new SqlParameter("@System_No", _systemNo)); } strSql.AppendLine(@" select Disc, cast(0 as decimal(18, 2)) Cat_A_Count, cast(0 as decimal(18, 2)) Cat_A_Countf, cast(0 as decimal(18, 2)) Cat_A_CountWUH, cast(0 as decimal(18, 2)) Cat_A_CountBASF, cast(0 as decimal(18, 2)) Cat_B_Count, cast(0 as decimal(18, 2)) Cat_B_Countf, cast(0 as decimal(18, 2)) Cat_B_CountWUH, cast(0 as decimal(18, 2)) Cat_B_CountBASF, cast(0 as decimal(18, 2)) Cat_C_Count, cast(0 as decimal(18, 2)) Cat_C_Countf, cast(0 as decimal(18, 2)) Cat_C_CountWUH, cast(0 as decimal(18, 2)) Cat_C_CountBASF, cast(0 as decimal(18, 2)) Cat_D_Count, cast(0 as decimal(18, 2)) Cat_D_Countf, cast(0 as decimal(18, 2)) Cat_D_CountWUH, cast(0 as decimal(18, 2)) Cat_D_CountBASF, cast(0 as decimal(18, 2)) allCount, cast(0 as decimal(18, 2)) allfinshedCount, cast(0 as decimal(18, 2)) allWUH, cast(0 as decimal(18, 2)) allBASF INTO #PunchlistFromSortTemp1 from #AllPunchlistFromSortTemp1 Group by Disc; "); strSql.AppendLine(@" update a set allCount=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc), allfinshedCount=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc and (b.Required_Date is not null or b.Required_Date!='')), allWUH=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc and (b.Confirmed_Date is not null or b.Confirmed_Date!='')), allBASF=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc and (b.Verified_Date is not null or b.Verified_Date!='')), a.Cat_A_Count=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc AND (isnull(b.Cat,'')='A' or isnull(b.Cat,'')='a')), a.Cat_A_Countf=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc AND (isnull(b.Cat,'')='A' or isnull(b.Cat,'')='a') and (b.Required_Date is not null or b.Required_Date!='')), a.Cat_A_CountWUH=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc AND (isnull(b.Cat,'')='A' or isnull(b.Cat,'')='a') and (b.Confirmed_Date is not null or b.Confirmed_Date!='')), a.Cat_A_CountBASF=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc AND (isnull(b.Cat,'')='A' or isnull(b.Cat,'')='a') and (b.Verified_Date is not null or b.Verified_Date!='')) ,a.Cat_B_Count=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc AND (isnull(b.Cat,'')='B' or isnull(b.Cat,'')='b')) , a.Cat_B_Countf=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc AND (isnull(b.Cat,'')='B' or isnull(b.Cat,'')='b') and (b.Required_Date is not null or b.Required_Date!='')), a.Cat_B_CountWUH=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc AND (isnull(b.Cat,'')='B' or isnull(b.Cat,'')='b') and (b.Confirmed_Date is not null or b.Confirmed_Date!='')), a.Cat_B_CountBASF=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc AND (isnull(b.Cat,'')='B' or isnull(b.Cat,'')='b') and (b.Verified_Date is not null or b.Verified_Date!='')) ,a.Cat_C_Count=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc AND (isnull(b.Cat,'')='C' or isnull(b.Cat,'')='c')) , a.Cat_C_Countf=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc AND (isnull(b.Cat,'')='C' or isnull(b.Cat,'')='c') and (b.Required_Date is not null or b.Required_Date!='')), a.Cat_C_CountWUH=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc AND (isnull(b.Cat,'')='C' or isnull(b.Cat,'')='c') and (b.Confirmed_Date is not null or b.Confirmed_Date!='')), a.Cat_C_CountBASF=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc AND (isnull(b.Cat,'')='C' or isnull(b.Cat,'')='c') and (b.Verified_Date is not null or b.Verified_Date!='')) ,a.Cat_D_Count=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc AND (isnull(b.Cat,'')='D' or isnull(b.Cat,'')='d')) , a.Cat_D_Countf=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc AND (isnull(b.Cat,'')='D' or isnull(b.Cat,'')='d') and (b.Required_Date is not null or b.Required_Date!='')), a.Cat_D_CountWUH=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc AND (isnull(b.Cat,'')='D' or isnull(b.Cat,'')='d') and (b.Confirmed_Date is not null or b.Confirmed_Date!='')), a.Cat_D_CountBASF=(select count(1) from #AllPunchlistFromSortTemp1 b where a.Disc=b.Disc AND (isnull(b.Cat,'')='D' or isnull(b.Cat,'')='d') and (b.Verified_Date is not null or b.Verified_Date!='')) from #PunchlistFromSortTemp1 a;"); strSql.AppendLine("select * from #PunchlistFromSortTemp1 "); listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); strSql.AppendLine(" order by Disc "); SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql.ToString(), parameter); Grid1.RecordCount = tb.Rows.Count; var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); //合计 int cat_A_Count = 0; int cat_B_Count = 0; int cat_C_Count = 0; int cat_D_Count = 0; int Cat_A_Countf = 0, Cat_A_CountWUH = 0, Cat_A_CountBASF = 0, Cat_B_Countf = 0, Cat_B_CountWUH = 0, Cat_B_CountBASF = 0, Cat_C_Countf = 0, Cat_C_CountWUH = 0, Cat_C_CountBASF = 0, Cat_D_Countf = 0, Cat_D_CountWUH = 0, Cat_D_CountBASF = 0, allCount = 0, allfinshedCount = 0, allWUH = 0, allBASF = 0; foreach (DataRow row in tb.Rows) { cat_A_Count += Convert.ToInt32(row["Cat_A_Count"]); cat_B_Count += Convert.ToInt32(row["Cat_B_Count"]); cat_C_Count += Convert.ToInt32(row["Cat_C_Count"]); cat_D_Count += Convert.ToInt32(row["Cat_D_Count"]); // Cat_A_Countf+= Convert.ToInt32(row["Cat_A_Countf"]); Cat_A_CountWUH += Convert.ToInt32(row["Cat_A_CountWUH"]); Cat_A_CountBASF += Convert.ToInt32(row["Cat_A_CountBASF"]); Cat_B_Countf += Convert.ToInt32(row["Cat_B_Countf"]); Cat_B_CountWUH += Convert.ToInt32(row["Cat_B_CountWUH"]); Cat_B_CountBASF += Convert.ToInt32(row["Cat_B_CountBASF"]); Cat_C_Countf += Convert.ToInt32(row["Cat_C_Countf"]); Cat_C_CountWUH += Convert.ToInt32(row["Cat_C_CountWUH"]); Cat_C_CountBASF += Convert.ToInt32(row["Cat_C_CountBASF"]); Cat_D_Countf += Convert.ToInt32(row["Cat_D_Countf"]); Cat_D_CountWUH += Convert.ToInt32(row["Cat_D_CountWUH"]); Cat_D_CountBASF += Convert.ToInt32(row["Cat_D_CountBASF"]); allCount += Convert.ToInt32(row["allCount"]); allfinshedCount += Convert.ToInt32(row["allfinshedCount"]); allWUH += Convert.ToInt32(row["allWUH"]); allBASF += Convert.ToInt32(row["allBASF"]); } JObject summary = new JObject(); summary.Add("Disc", "合计"); summary.Add("Cat_A_Count", cat_A_Count.ToString()); summary.Add("Cat_B_Count", cat_B_Count.ToString()); summary.Add("Cat_C_Count", cat_C_Count.ToString()); summary.Add("Cat_D_Count", cat_D_Count.ToString()); summary.Add("Cat_A_Countf", Cat_A_Countf.ToString()); summary.Add("Cat_A_CountWUH", Cat_A_CountWUH.ToString()); summary.Add("Cat_A_CountBASF", Cat_A_CountBASF.ToString()); summary.Add("Cat_B_Countf", Cat_B_Countf.ToString()); summary.Add("Cat_B_CountWUH", Cat_B_CountWUH.ToString()); summary.Add("Cat_B_CountBASF", Cat_B_CountBASF.ToString()); summary.Add("Cat_C_Countf", Cat_C_Countf.ToString()); summary.Add("Cat_C_CountWUH", Cat_C_CountWUH.ToString()); summary.Add("Cat_C_CountBASF", Cat_C_CountBASF.ToString()); summary.Add("Cat_D_Countf", Cat_D_Countf.ToString()); summary.Add("Cat_D_CountWUH", Cat_D_CountWUH.ToString()); summary.Add("Cat_D_CountBASF", Cat_D_CountBASF.ToString()); summary.Add("allCount", allCount.ToString()); summary.Add("allfinshedCount", allfinshedCount.ToString()); summary.Add("allWUH", allWUH.ToString()); summary.Add("allBASF", allBASF.ToString()); Grid1.SummaryData = summary; } /// /// 查询绑定数据 /// public void BindGrid2() { List listStr = new List(); string _systemNo = string.Empty; _systemNo = ddlSystemNo.SelectedValue; StringBuilder strSql = new StringBuilder(""); strSql.AppendLine(" IF OBJECT_ID('tempdb..#AllPunchlistFromSortTemp2') IS NOT NULL drop table #AllPunchlistFromSortTemp2; "); strSql.AppendLine(" IF OBJECT_ID('tempdb..#PunchlistFromSortTemp2') IS NOT NULL drop table #PunchlistFromSortTemp2; "); strSql.AppendLine(" select * INTO #AllPunchlistFromSortTemp2 from Transfer_PunchlistFrom(NOLOCK) where ProjectId=@ProjectId "); if (!string.IsNullOrWhiteSpace(_systemNo)) { strSql.AppendLine(" AND System_No=@System_No "); listStr.Add(new SqlParameter("@System_No", _systemNo)); } strSql.AppendLine(@" select Action_By, cast(0 as decimal(18, 2)) Cat_A_Count, cast(0 as decimal(18, 2)) Cat_A_Countf, cast(0 as decimal(18, 2)) Cat_A_CountWUH, cast(0 as decimal(18, 2)) Cat_A_CountBASF, cast(0 as decimal(18, 2)) Cat_B_Count, cast(0 as decimal(18, 2)) Cat_B_Countf, cast(0 as decimal(18, 2)) Cat_B_CountWUH, cast(0 as decimal(18, 2)) Cat_B_CountBASF, cast(0 as decimal(18, 2)) Cat_C_Count, cast(0 as decimal(18, 2)) Cat_C_Countf, cast(0 as decimal(18, 2)) Cat_C_CountWUH, cast(0 as decimal(18, 2)) Cat_C_CountBASF, cast(0 as decimal(18, 2)) Cat_D_Count, cast(0 as decimal(18, 2)) Cat_D_Countf, cast(0 as decimal(18, 2)) Cat_D_CountWUH, cast(0 as decimal(18, 2)) Cat_D_CountBASF, cast(0 as decimal(18, 2)) allCount, cast(0 as decimal(18, 2)) allfinshedCount, cast(0 as decimal(18, 2)) allWUH, cast(0 as decimal(18, 2)) allBASF INTO #PunchlistFromSortTemp2 from #AllPunchlistFromSortTemp2 Group by Action_By; "); strSql.AppendLine(@" update a set allCount=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By), allfinshedCount=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By and (b.Required_Date is not null or b.Required_Date!='')), allWUH=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By and (b.Confirmed_Date is not null or b.Confirmed_Date!='')), allBASF=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By and (b.Verified_Date is not null or b.Verified_Date!='')), a.Cat_A_Count=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='A' or isnull(b.Cat,'')='a')), a.Cat_A_Countf=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='A' or isnull(b.Cat,'')='a') and (b.Required_Date is not null or b.Required_Date!='')), a.Cat_A_CountWUH=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='A' or isnull(b.Cat,'')='a') and (b.Confirmed_Date is not null or b.Confirmed_Date!='')), a.Cat_A_CountBASF=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='A' or isnull(b.Cat,'')='a') and (b.Verified_Date is not null or b.Verified_Date!='')) ,a.Cat_B_Count=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='B' or isnull(b.Cat,'')='b')) , a.Cat_B_Countf=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='B' or isnull(b.Cat,'')='b') and (b.Required_Date is not null or b.Required_Date!='')), a.Cat_B_CountWUH=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='B' or isnull(b.Cat,'')='b') and (b.Confirmed_Date is not null or b.Confirmed_Date!='')), a.Cat_B_CountBASF=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='B' or isnull(b.Cat,'')='b') and (b.Verified_Date is not null or b.Verified_Date!='')) ,a.Cat_C_Count=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='C' or isnull(b.Cat,'')='c')) , a.Cat_C_Countf=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='C' or isnull(b.Cat,'')='c') and (b.Required_Date is not null or b.Required_Date!='')), a.Cat_C_CountWUH=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='C' or isnull(b.Cat,'')='c') and (b.Confirmed_Date is not null or b.Confirmed_Date!='')), a.Cat_C_CountBASF=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='C' or isnull(b.Cat,'')='c') and (b.Verified_Date is not null or b.Verified_Date!='')) ,a.Cat_D_Count=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='D' or isnull(b.Cat,'')='d')) , a.Cat_D_Countf=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='D' or isnull(b.Cat,'')='d') and (b.Required_Date is not null or b.Required_Date!='')), a.Cat_D_CountWUH=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='D' or isnull(b.Cat,'')='d') and (b.Confirmed_Date is not null or b.Confirmed_Date!='')), a.Cat_D_CountBASF=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='D' or isnull(b.Cat,'')='d') and (b.Verified_Date is not null or b.Verified_Date!='')) from #PunchlistFromSortTemp2 a;"); strSql.AppendLine("select * from #PunchlistFromSortTemp2 "); listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); strSql.AppendLine(" order by Action_By "); SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql.ToString(), parameter); Grid2.RecordCount = tb.Rows.Count; var table = this.GetPagedDataTable(Grid1, tb); Grid2.DataSource = table; Grid2.DataBind(); //合计 int cat_A_Count = 0; int cat_B_Count = 0; int cat_C_Count = 0; int cat_D_Count = 0; int Cat_A_Countf = 0, Cat_A_CountWUH = 0, Cat_A_CountBASF = 0, Cat_B_Countf = 0, Cat_B_CountWUH = 0, Cat_B_CountBASF = 0, Cat_C_Countf = 0, Cat_C_CountWUH = 0, Cat_C_CountBASF = 0, Cat_D_Countf = 0, Cat_D_CountWUH = 0, Cat_D_CountBASF = 0, allCount = 0, allfinshedCount = 0, allWUH = 0, allBASF = 0; foreach (DataRow row in tb.Rows) { cat_A_Count += Convert.ToInt32(row["Cat_A_Count"]); cat_B_Count += Convert.ToInt32(row["Cat_B_Count"]); cat_C_Count += Convert.ToInt32(row["Cat_C_Count"]); cat_D_Count += Convert.ToInt32(row["Cat_D_Count"]); // Cat_A_Countf += Convert.ToInt32(row["Cat_A_Countf"]); Cat_A_CountWUH += Convert.ToInt32(row["Cat_A_CountWUH"]); Cat_A_CountBASF += Convert.ToInt32(row["Cat_A_CountBASF"]); Cat_B_Countf += Convert.ToInt32(row["Cat_B_Countf"]); Cat_B_CountWUH += Convert.ToInt32(row["Cat_B_CountWUH"]); Cat_B_CountBASF += Convert.ToInt32(row["Cat_B_CountBASF"]); Cat_C_Countf += Convert.ToInt32(row["Cat_C_Countf"]); Cat_C_CountWUH += Convert.ToInt32(row["Cat_C_CountWUH"]); Cat_C_CountBASF += Convert.ToInt32(row["Cat_C_CountBASF"]); Cat_D_Countf += Convert.ToInt32(row["Cat_D_Countf"]); Cat_D_CountWUH += Convert.ToInt32(row["Cat_D_CountWUH"]); Cat_D_CountBASF += Convert.ToInt32(row["Cat_D_CountBASF"]); allCount += Convert.ToInt32(row["allCount"]); allfinshedCount += Convert.ToInt32(row["allfinshedCount"]); allWUH += Convert.ToInt32(row["allWUH"]); allBASF += Convert.ToInt32(row["allBASF"]); } JObject summary = new JObject(); summary.Add("Action_By", "合计"); summary.Add("Cat_A_Count", cat_A_Count.ToString()); summary.Add("Cat_B_Count", cat_B_Count.ToString()); summary.Add("Cat_C_Count", cat_C_Count.ToString()); summary.Add("Cat_D_Count", cat_D_Count.ToString()); summary.Add("Cat_A_Countf", Cat_A_Countf.ToString()); summary.Add("Cat_A_CountWUH", Cat_A_CountWUH.ToString()); summary.Add("Cat_A_CountBASF", Cat_A_CountBASF.ToString()); summary.Add("Cat_B_Countf", Cat_B_Countf.ToString()); summary.Add("Cat_B_CountWUH", Cat_B_CountWUH.ToString()); summary.Add("Cat_B_CountBASF", Cat_B_CountBASF.ToString()); summary.Add("Cat_C_Countf", Cat_C_Countf.ToString()); summary.Add("Cat_C_CountWUH", Cat_C_CountWUH.ToString()); summary.Add("Cat_C_CountBASF", Cat_C_CountBASF.ToString()); summary.Add("Cat_D_Countf", Cat_D_Countf.ToString()); summary.Add("Cat_D_CountWUH", Cat_D_CountWUH.ToString()); summary.Add("Cat_D_CountBASF", Cat_D_CountBASF.ToString()); summary.Add("allCount", allCount.ToString()); summary.Add("allfinshedCount", allfinshedCount.ToString()); summary.Add("allWUH", allWUH.ToString()); summary.Add("allBASF", allBASF.ToString()); Grid2.SummaryData = summary; } protected void TabStrip1_TabIndexChanged(object sender, EventArgs e) { if (TabStrip1.ActiveTabIndex ==0) { ddlSystemNo.Hidden = true; ddlDateType.Hidden = true; drpChartType.Hidden = true; BtnAnalyse.Hidden = true; } else if (TabStrip1.ActiveTabIndex == 2) { ddlSystemNo.Hidden = false; ddlDateType.Hidden = true; drpChartType.Hidden = true; BtnAnalyse.Hidden = false; BindGrid1(); } else if (TabStrip1.ActiveTabIndex == 3) { ddlSystemNo.Hidden = false; ddlDateType.Hidden = true; drpChartType.Hidden = true; BtnAnalyse.Hidden = false; BindGrid2(); } else if (TabStrip1.ActiveTabIndex == 4) { ddlDateType.Hidden = true; drpChartType.Hidden = true; ddlSystemNo.Hidden = true; BtnAnalyse.Hidden = false; BindGrid3(); } else { this.AnalyseData(); ddlSystemNo.Hidden = false; ddlDateType.Hidden = false; drpChartType.Hidden = false; BtnAnalyse.Hidden = false; } } #endregion #region 跟踪 /// /// 数据绑定 /// public void BindGrid3() { StringBuilder strSql = new StringBuilder(""); strSql.AppendLine("IF OBJECT_ID('tempdb..#AllPunchlistFromProgressTemp') IS NOT NULL drop table #AllPunchlistFromProgressTemp; "); strSql.AppendLine("IF OBJECT_ID('tempdb..#PunchlistFromProgressTemp') IS NOT NULL drop table #PunchlistFromProgressTemp; "); strSql.AppendLine(" select * INTO #AllPunchlistFromProgressTemp from Transfer_PunchlistFrom(NOLOCK) where ProjectId=@ProjectId "); //strSql.AppendLine(" select System_No,count(System_No) SystemNoCount,cast(0 as decimal(18,2)) ActualDateCount "); //strSql.AppendLine(" ,cast(0 as decimal(18,2)) ClearedByCount,cast(0 as decimal(18,2)) ConfirmedByCount,cast(0 as decimal(18,2)) VerifiedByCount "); //strSql.AppendLine(" INTO #PunchlistFromProgressTemp from #AllPunchlistFromProgressTemp where ProjectId = @ProjectId group by System_No "); //strSql.AppendLine(" update a set a.ActualDateCount=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND isnull(b.Actual_Date,'')<>'') "); //strSql.AppendLine(" ,a.ClearedByCount=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND isnull(b.Cleared_By,'')<>'') "); //strSql.AppendLine(" ,a.ConfirmedByCount=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND isnull(b.Confirmed_By,'')<>'') "); //strSql.AppendLine(" ,a.VerifiedByCount=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND isnull(b.Verified_By,'')<>'') "); strSql.AppendLine(@" select System_No, cast(0 as decimal(18, 2)) Cat_A_Count, cast(0 as decimal(18, 2)) Cat_A_Countf, cast(0 as decimal(18, 2)) Cat_A_CountWUH, cast(0 as decimal(18, 2)) Cat_A_CountBASF, cast(0 as decimal(18, 2)) Cat_B_Count, cast(0 as decimal(18, 2)) Cat_B_Countf, cast(0 as decimal(18, 2)) Cat_B_CountWUH, cast(0 as decimal(18, 2)) Cat_B_CountBASF, cast(0 as decimal(18, 2)) Cat_C_Count, cast(0 as decimal(18, 2)) Cat_C_Countf, cast(0 as decimal(18, 2)) Cat_C_CountWUH, cast(0 as decimal(18, 2)) Cat_C_CountBASF, cast(0 as decimal(18, 2)) Cat_D_Count, cast(0 as decimal(18, 2)) Cat_D_Countf, cast(0 as decimal(18, 2)) Cat_D_CountWUH, cast(0 as decimal(18, 2)) Cat_D_CountBASF, cast(0 as decimal(18, 2)) allCount, cast(0 as decimal(18, 2)) allfinshedCount, cast(0 as decimal(18, 2)) allWUH, cast(0 as decimal(18, 2)) allBASF INTO #PunchlistFromProgressTemp from #AllPunchlistFromProgressTemp Group by System_No; "); strSql.AppendLine(@" update a set allCount=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No), allfinshedCount=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No and (b.Required_Date is not null or b.Required_Date!='')), allWUH=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No and (b.Confirmed_Date is not null or b.Confirmed_Date!='')), allBASF=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No and (b.Verified_Date is not null or b.Verified_Date!='')), a.Cat_A_Count=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND (isnull(b.Cat,'')='A' or isnull(b.Cat,'')='a')), a.Cat_A_Countf=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND (isnull(b.Cat,'')='A' or isnull(b.Cat,'')='a') and (b.Required_Date is not null or b.Required_Date!='')), a.Cat_A_CountWUH=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND (isnull(b.Cat,'')='A' or isnull(b.Cat,'')='a') and (b.Confirmed_Date is not null or b.Confirmed_Date!='')), a.Cat_A_CountBASF=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND (isnull(b.Cat,'')='A' or isnull(b.Cat,'')='a') and (b.Verified_Date is not null or b.Verified_Date!='')) ,a.Cat_B_Count=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND (isnull(b.Cat,'')='B' or isnull(b.Cat,'')='b')) , a.Cat_B_Countf=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND (isnull(b.Cat,'')='B' or isnull(b.Cat,'')='b') and (b.Required_Date is not null or b.Required_Date!='')), a.Cat_B_CountWUH=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND (isnull(b.Cat,'')='B' or isnull(b.Cat,'')='b') and (b.Confirmed_Date is not null or b.Confirmed_Date!='')), a.Cat_B_CountBASF=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND (isnull(b.Cat,'')='B' or isnull(b.Cat,'')='b') and (b.Verified_Date is not null or b.Verified_Date!='')) ,a.Cat_C_Count=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND (isnull(b.Cat,'')='C' or isnull(b.Cat,'')='c')) , a.Cat_C_Countf=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND (isnull(b.Cat,'')='C' or isnull(b.Cat,'')='c') and (b.Required_Date is not null or b.Required_Date!='')), a.Cat_C_CountWUH=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND (isnull(b.Cat,'')='C' or isnull(b.Cat,'')='c') and (b.Confirmed_Date is not null or b.Confirmed_Date!='')), a.Cat_C_CountBASF=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND (isnull(b.Cat,'')='C' or isnull(b.Cat,'')='c') and (b.Verified_Date is not null or b.Verified_Date!='')) ,a.Cat_D_Count=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND (isnull(b.Cat,'')='D' or isnull(b.Cat,'')='d')) , a.Cat_D_Countf=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND (isnull(b.Cat,'')='D' or isnull(b.Cat,'')='d') and (b.Required_Date is not null or b.Required_Date!='')), a.Cat_D_CountWUH=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND (isnull(b.Cat,'')='D' or isnull(b.Cat,'')='d') and (b.Confirmed_Date is not null or b.Confirmed_Date!='')), a.Cat_D_CountBASF=(select count(1) from #AllPunchlistFromProgressTemp b where a.System_No=b.System_No AND (isnull(b.Cat,'')='D' or isnull(b.Cat,'')='d') and (b.Verified_Date is not null or b.Verified_Date!='')) from #PunchlistFromProgressTemp a;"); strSql.AppendLine(" select * from #PunchlistFromProgressTemp "); List listStr = new List(); listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); strSql.AppendLine(" order by System_No "); SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql.ToString(), parameter); Grid3.RecordCount = tb.Rows.Count; var table = this.GetPagedDataTable(Grid1, tb); Grid3.DataSource = table; Grid3.DataBind(); //合计 int cat_A_Count = 0; int cat_B_Count = 0; int cat_C_Count = 0; int cat_D_Count = 0; int Cat_A_Countf = 0, Cat_A_CountWUH = 0, Cat_A_CountBASF = 0, Cat_B_Countf = 0, Cat_B_CountWUH = 0, Cat_B_CountBASF = 0, Cat_C_Countf = 0, Cat_C_CountWUH = 0, Cat_C_CountBASF = 0, Cat_D_Countf = 0, Cat_D_CountWUH = 0, Cat_D_CountBASF = 0, allCount = 0, allfinshedCount = 0, allWUH = 0, allBASF = 0; foreach (DataRow row in tb.Rows) { cat_A_Count += Convert.ToInt32(row["Cat_A_Count"]); cat_B_Count += Convert.ToInt32(row["Cat_B_Count"]); cat_C_Count += Convert.ToInt32(row["Cat_C_Count"]); cat_D_Count += Convert.ToInt32(row["Cat_D_Count"]); // Cat_A_Countf += Convert.ToInt32(row["Cat_A_Countf"]); Cat_A_CountWUH += Convert.ToInt32(row["Cat_A_CountWUH"]); Cat_A_CountBASF += Convert.ToInt32(row["Cat_A_CountBASF"]); Cat_B_Countf += Convert.ToInt32(row["Cat_B_Countf"]); Cat_B_CountWUH += Convert.ToInt32(row["Cat_B_CountWUH"]); Cat_B_CountBASF += Convert.ToInt32(row["Cat_B_CountBASF"]); Cat_C_Countf += Convert.ToInt32(row["Cat_C_Countf"]); Cat_C_CountWUH += Convert.ToInt32(row["Cat_C_CountWUH"]); Cat_C_CountBASF += Convert.ToInt32(row["Cat_C_CountBASF"]); Cat_D_Countf += Convert.ToInt32(row["Cat_D_Countf"]); Cat_D_CountWUH += Convert.ToInt32(row["Cat_D_CountWUH"]); Cat_D_CountBASF += Convert.ToInt32(row["Cat_D_CountBASF"]); allCount += Convert.ToInt32(row["allCount"]); allfinshedCount += Convert.ToInt32(row["allfinshedCount"]); allWUH += Convert.ToInt32(row["allWUH"]); allBASF += Convert.ToInt32(row["allBASF"]); } JObject summary = new JObject(); summary.Add("System_No", "合计"); summary.Add("Cat_A_Count", cat_A_Count.ToString()); summary.Add("Cat_B_Count", cat_B_Count.ToString()); summary.Add("Cat_C_Count", cat_C_Count.ToString()); summary.Add("Cat_D_Count", cat_D_Count.ToString()); summary.Add("Cat_A_Countf", Cat_A_Countf.ToString()); summary.Add("Cat_A_CountWUH", Cat_A_CountWUH.ToString()); summary.Add("Cat_A_CountBASF", Cat_A_CountBASF.ToString()); summary.Add("Cat_B_Countf", Cat_B_Countf.ToString()); summary.Add("Cat_B_CountWUH", Cat_B_CountWUH.ToString()); summary.Add("Cat_B_CountBASF", Cat_B_CountBASF.ToString()); summary.Add("Cat_C_Countf", Cat_C_Countf.ToString()); summary.Add("Cat_C_CountWUH", Cat_C_CountWUH.ToString()); summary.Add("Cat_C_CountBASF", Cat_C_CountBASF.ToString()); summary.Add("Cat_D_Countf", Cat_D_Countf.ToString()); summary.Add("Cat_D_CountWUH", Cat_D_CountWUH.ToString()); summary.Add("Cat_D_CountBASF", Cat_D_CountBASF.ToString()); summary.Add("allCount", allCount.ToString()); summary.Add("allfinshedCount", allfinshedCount.ToString()); summary.Add("allWUH", allWUH.ToString()); summary.Add("allBASF", allBASF.ToString()); Grid3.SummaryData = summary; } /// /// 分页下拉 /// /// /// protected void ddlPageSize3_SelectedIndexChanged(object sender, EventArgs e) { Grid3.PageSize = Convert.ToInt32(ddlPageSize3.SelectedValue); BindGrid3(); } /// /// 分页索引事件 /// /// /// protected void Grid3_PageIndexChange(object sender, GridPageEventArgs e) { BindGrid3(); } /// /// 排序 /// /// /// protected void Grid3_Sort(object sender, FineUIPro.GridSortEventArgs e) { Grid3.SortDirection = e.SortDirection; Grid3.SortField = e.SortField; BindGrid3(); } #endregion } }