using BLL; using NPOI.SS.Formula.Functions; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Runtime.InteropServices.ComTypes; using System.Runtime.Remoting.Metadata.W3cXsd2001; namespace FineUIPro.Web.DataShowLocal { public partial class NCRStatisc : PageBase { #region 加载页面 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Funs.DropDownPageSize(this.ddlPageSize); ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); BLL.ProjectService.InitProjectDropDownList(this.drpProject, true); // 绑定表格t BindGrid(); this.Panel1.Title = "NCR数据(" + BLL.UnitService.GetUnitNameByUnitId(BLL.Const.UnitId_CWCEC) + ")"; } } /// /// 绑定数据 /// private void BindGrid() { string strSql = @"select ProjectId,ProjectCode, ProjectName from Base_Project where ProjectState =1"; List listStr = new List(); string cpara = string.Empty; if (this.drpProject.SelectedValue != Const._Null) { strSql += " AND projectId = @projectId"; ///状态为已完成 listStr.Add(new SqlParameter("@projectId", this.drpProject.SelectedValue)); } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); Grid1.RecordCount = tb.Rows.Count; var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); } #endregion #region 查询 /// /// 查询 /// /// /// protected void TextBox_TextChanged(object sender, EventArgs e) { this.BindGrid(); } #endregion #region 表排序、分页、关闭窗口 /// /// 分页 /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { BindGrid(); } /// /// 排序 /// /// /// protected void Grid1_Sort(object sender, GridSortEventArgs e) { BindGrid(); } /// /// 分页显示条数下拉框 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } /// /// 关闭弹出窗 /// /// /// protected void Window1_Close(object sender, WindowCloseEventArgs e) { BindGrid(); } #endregion #region Grid双击事件 编辑 /// /// Grid行双击事件 /// /// /// protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) { EditData(); } /// /// /// private void EditData() { if (Grid1.SelectedRowIndexArray.Length == 0) { Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); return; } PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("NCRStatiscItem.aspx?projectId={0}", Grid1.SelectedRowID, "查看 - "))); } #endregion protected void btnView_Click(object sender, EventArgs e) { EditData(); } /// /// NCR总数 /// /// /// protected int Count1(object projectId) { int cout1 = 0; if (projectId != null) { var datetime1 = Funs.GetNewDateTime(this.txtStartTime.Text); var datetime2 = Funs.GetNewDateTime(this.txtStartTime.Text); var getD1 = from x in Funs.DB.Comprehensive_NCRManagement where x.ProjectId == projectId.ToString() select x; if (datetime1.HasValue) { getD1 = getD1.Where(x => x.IssuedDate >= datetime1); } if (datetime2.HasValue) { getD1 = getD1.Where(x => x.IssuedDate <= datetime2); } cout1 = getD1.Count(); } return cout1; } /// /// 整改闭环项 /// /// /// protected int Count2(object projectId) { int cout1 = 0; if (projectId != null) { var datetime1 = Funs.GetNewDateTime(this.txtStartTime.Text); var datetime2 = Funs.GetNewDateTime(this.txtStartTime.Text); var getD1 = from x in Funs.DB.Comprehensive_NCRManagement where x.ProjectId == projectId.ToString() && x.Status=="3" select x; if (datetime1.HasValue) { getD1 = getD1.Where(x => x.IssuedDate >= datetime1); } if (datetime2.HasValue) { getD1 = getD1.Where(x => x.IssuedDate <= datetime2); } cout1 = getD1.Count(); } return cout1; } protected int Count3(object projectId) { int cout1 = 0; if (projectId != null) { var datetime1 = Funs.GetNewDateTime(this.txtStartTime.Text); var datetime2 = Funs.GetNewDateTime(this.txtStartTime.Text); var getD1 = from x in Funs.DB.Comprehensive_NCRManagement where x.ProjectId == projectId.ToString() && ( x.Status != "3" || x.Status == null) select x; if (datetime1.HasValue) { getD1 = getD1.Where(x => x.IssuedDate >= datetime1); } if (datetime2.HasValue) { getD1 = getD1.Where(x => x.IssuedDate <= datetime2); } cout1 = getD1.Count(); } return cout1; } protected string Count4(object projectId) { string result = ""; if (projectId != null) { if (Count1(projectId) != 0)//被除数不能为零 { result = Math.Round((double)Count2(projectId) / (double)Count1(projectId) * 100, 2) + "%";//保留两位小数、后四舍五入 } else { result = "0%"; } } return result; } } }