using BLL; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; namespace FineUIPro.Web.common { public partial class main : PageBase { #region 加载 protected void Page_Load(object sender, EventArgs e) { // 表头过滤 FilterDataRowItem = FilterDataRowItemImplement; if (!IsPostBack) { StartTime.Text = DateTime.Now.AddMonths(-11).ToString(StartTime.DateFormatString); EndTime.Text = DateTime.Now.ToString(EndTime.DateFormatString); rStartTime.Text = DateTime.Now.AddMonths(-11).ToString("yyyy-MM-dd"); rEndTime.Text = DateTime.Now.ToString("yyyy-MM-dd"); this.BindGrid(); this.Grid1.SelectedRowIndex = 0; } else if (GetRequestEventArgument() == "FilterChange") { BindGrid(); } } #region 绑定 Grid1 /// /// BindGrid /// private void BindGrid() { string strSql = @" SELECT fc.ID, fc.FO_NO, (CASE WHEN dis.Discipline IS NULL THEN dis.DisciplineCN WHEN dis.DisciplineCN IS NULL THEN dis.Discipline ELSE dis.Discipline+dis.DisciplineCN END) AS Discipline, con.Contractor AS Contractor, fc.Pricing_Scheme as Pricing_SchemeId, ps.PriceScheme AS Pricing_Scheme, fc.Original_WC,fc.Contractor, fc.Contract_Admin as Contract_AdminId,CA.UserName AS Contract_Admin, fc.Buyer, mc.UserName AS Main_Coordinator, ur.UserName AS User_Representative, fc.Contract_Person, fc.Contract_Tel,fc.Validate_Date, fc.Expire_Date, CONVERT(VARCHAR(10),CONVERT(DECIMAL(18,2),(fc.Actual_Budget-ISNULL(c.CheckedValue,0))/fc.Actual_Budget*100))+'%' AS Remaining_Budget_Rate, (CASE WHEN DATEDIFF(DAY,fc.Validate_Date,fc.Expire_Date)>0 THEN CONVERT(VARCHAR(10),CONVERT(DECIMAL(18,2),CONVERT(DECIMAL(18,2),DATEDIFF(DAY,GETDATE(),fc.Expire_Date))/CONVERT(DECIMAL(18,2),DATEDIFF(DAY,fc.Validate_Date,fc.Expire_Date))*100))+'%' ELSE ''END) AS Remaining_Duration_Rate FROM dbo.FC_SESRelatedData AS fc LEFT JOIN dbo.Base_Contractor AS con ON con.ContractorId = fc.Contractor LEFT JOIN dbo.Base_PriceScheme AS ps ON ps.PriceSchemeId = fc.Pricing_Scheme LEFT JOIN dbo.Sys_User AS CA ON CA.UserId = fc.Contract_Admin LEFT JOIN dbo.Sys_User AS mc ON mc.UserId = fc.Main_Coordinator LEFT JOIN dbo.Sys_User AS ur ON ur.UserId = fc.User_Representative LEFT JOIN dbo.Base_Discipline AS dis ON dis.DisciplineId = fc.DisciplineId LEFT JOIN(SELECT SUM(Net_Value) AS CheckedValue,CPTList.Contract_No FROM dbo.SESList LEFT JOIN dbo.CPTList ON CPTList.CPT_No = SESList.CPT_No GROUP BY CPTList.Contract_No) AS c ON c.Contract_No=fc.FO_NO WHERE 1=1 "; List listStr = new List(); if (this.drpValidContracts.SelectedValue == "1") { strSql += " AND fc.Expire_Date >= @expire_Date"; listStr.Add(new SqlParameter("@expire_Date", DateTime.Now)); } if (!string.IsNullOrEmpty(this.txtDescription.Text.Trim())) { strSql += " AND fc.Contract_Title LIKE @Description"; listStr.Add(new SqlParameter("@Description", "%" + this.txtDescription.Text.Trim() + "%")); } if (!string.IsNullOrEmpty(this.txtContractor.Text.Trim())) { strSql += " AND con.Contractor LIKE @Contractor"; listStr.Add(new SqlParameter("@Contractor", "%" + this.txtContractor.Text.Trim() + "%")); } if (!string.IsNullOrEmpty(this.hdKeyword.Text.Trim())) { strSql += " AND con.Contractor LIKE @Contractor"; listStr.Add(new SqlParameter("@Contractor", "%" + this.hdKeyword.Text.Trim() + "%")); } if (!string.IsNullOrEmpty(this.hdContractNo.Text.Trim())) { strSql += " AND fc.FO_NO LIKE @FO_NO"; listStr.Add(new SqlParameter("@FO_NO", "%" + this.hdContractNo.Text.Trim() + "%")); } if (!string.IsNullOrEmpty(this.hdContractAdmin.Text.Trim())) { strSql += " AND fc.Contract_Admin = @contractAdmin"; listStr.Add(new SqlParameter("@contractAdmin", this.hdContractAdmin.Text.Trim())); } if (!string.IsNullOrEmpty(this.hdPricingScheme.Text.Trim())) { strSql += " AND fc.Pricing_Scheme=@PriceScheme"; listStr.Add(new SqlParameter("@PriceScheme", hdPricingScheme.Text.Trim())); } //strSql += " GROUP BY data.ID,data.FO_NO,data.Contract_Title,con.Contractor,ps.PriceScheme,data.Actual_Budget,data.Original_WC,data.Contractor,CA.UserName,b.UserName,mc.UserName,ur.UserName,cp.UserName,data.Contract_Tel,data.Validate_Date,data.Expire_Date"; SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); Grid1.RecordCount = tb.Rows.Count; tb = GetFilteredTable(Grid1.FilteredData, tb); var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); if (tb.Rows.Count > 0) { hidFO_NO.Text = this.Grid1.Rows[0].Values[1].ToString(); hidVendor_Name.Text = this.Grid1.Rows[0].Values[3].ToString(); PageContext.RegisterStartupScript("PagePostBank();"); } else { Alert.ShowInParent("No record!"); } } #endregion #endregion #region 过滤表头 /// /// 过滤表头 /// /// /// protected void Grid1_FilterChange(object sender, EventArgs e) { BindGrid(); } /// /// 根据表头信息过滤列表数据 /// /// /// /// /// /// private bool FilterDataRowItemImplement(object sourceObj, string fillteredOperator, object fillteredObj, string column) { bool valid = false; if (column == "FO_NO") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "Contract_Title") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "Contractor") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "Pricing_Scheme") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "Original_WC") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "Contract_Admin") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "Buyer") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "Main_Coordinator") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "User_Representative") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "Contract_Person") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "Contract_Tel") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "Validate_Date") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "Expire_Date") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "Remaining_Budget_Rate") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } if (column == "Remaining_Duration_Rate") { string sourceValue = sourceObj.ToString(); string fillteredValue = fillteredObj.ToString(); if (fillteredOperator == "equal" && sourceValue == fillteredValue) { valid = true; } else if (fillteredOperator == "contain" && sourceValue.Contains(fillteredValue)) { valid = true; } } return valid; } #endregion #region 分页、排序 /// /// 分页下拉选择 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; BindGrid(); } protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; BindGrid(); } #endregion #region Grid1行点击事件 /// /// 行点击事件 /// /// /// protected void Grid1_RowClick(object sender, GridRowClickEventArgs e) { hidFO_NO.Text = this.Grid1.SelectedRow.Values[1].ToString(); hidVendor_Name.Text = this.Grid1.SelectedRow.Values[3].ToString(); PageContext.RegisterStartupScript("PagePostBank();"); } #endregion #region DropDownList下拉选择事件 ///查询 protected void DropDownList_SelectedIndexChanged(object sender, EventArgs e) { BindGrid(); } #endregion #region 行绑定后事件 /// /// 行绑定后事件 /// /// /// protected void Grid1_RowDataBound(object sender, GridRowEventArgs e) { DataRowView row = e.DataItem as DataRowView; string id = row["ID"].ToString(); //for (int i = 0; i < this.Grid1.Rows.Count; i++) { if (!string.IsNullOrEmpty(id)) { var data = BLL.SESRelatedDataService.GetSESRelatedDataById(id); if (data != null) { if (data.Expire_Date.HasValue) { if (data.Expire_Date < DateTime.Now)//过期行字体显示灰色 { e.RowCssClass = "color2"; } else if (data.Expire_Date.Value.AddMonths(-6) <= DateTime.Now && data.Expire_Date > DateTime.Now)//六个月后过期行字体显示棕色 { e.RowCssClass = "color1"; } } //Remaining Budget/Contract Budget<10 显示红色 //var checkedValue = BLL.SESReportService.getSumSSRActualCostByFo(data.FO_NO); //var remainmingBudget = data.Actual_Budget - checkedValue; //if (data.Actual_Budget > 0) //{ // var remainmingBudgetRate = remainmingBudget / data.Actual_Budget * 100; // if (remainmingBudgetRate < 10) // { // e.CellCssClasses[14] = "colorRed"; // } //} //如果(合同过期日-今天)/(合同生效总天数)<10显示红色 if (data.Validate_Date.HasValue && data.Expire_Date.HasValue) { decimal a = (data.Expire_Date - DateTime.Now).Value.Days; decimal b = (data.Expire_Date - data.Validate_Date).Value.Days;//合同生效总天数 if (b > 0) { decimal c = a / b * 100; if (c < 10) { e.CellCssClasses[14] = "colorRed"; } } } } } } } #endregion #region 查询 /// /// 查询 /// /// /// protected void btnSearch_Click(object sender, EventArgs e) { string s = this.hdKeyword.Text.Trim() + "|" + this.hdContractNo.Text.Trim() + "|" + this.hdContractAdmin.Text.Trim() + "|" + this.hdPricingScheme.Text.Trim() + "|"; string window = String.Format("MainSearch.aspx?s={0}", s, "查询 - "); PageContext.RegisterStartupScript(Window1.GetSaveStateReference(hdItemsString.ClientID) + Window1.GetShowReference(window)); } /// /// 查询返回值 /// /// /// protected void Window1_Close(object sender, WindowCloseEventArgs e) { List lists = Funs.GetStrListByStr(hdItemsString.Text, '|'); this.hdKeyword.Text = lists[0]; this.hdContractNo.Text = lists[1]; this.hdContractAdmin.Text = lists[2]; this.hdPricingScheme.Text = lists[3]; BindGrid(); } #endregion } }