using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web.Services.Description; using BLL; 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) { 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++; } } } /// /// 统计方法 /// 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 按照当前日期前一周数据 if (_dateType == "1") { ///按单位统计 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(); dtTime.Rows.Add(rowTime); } this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "尾项完成统计分析", 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(); dtTime.Rows.Add(rowTime); } this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "尾项完成统计分析", this.drpChartType.SelectedValue, 1300, 550, false)); } } /// /// 统计分析 /// /// /// protected void BtnAnalyse_Click(object sender, EventArgs e) { this.AnalyseData(); } /// /// 图形变换 /// /// /// 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(); } } }