using System; using System.Collections.Generic; using System.Linq; using System.Data.SqlClient; using System.Data; using BLL; using System.Text; namespace FineUIPro.Web.HJGL.CheckManage { public partial class RTTestingReportDetail : PageBase { #region 加载 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.drpProjectId.DataTextField = "ProjectCode"; this.drpProjectId.DataValueField = "ProjectId"; this.drpProjectId.DataSource = BLL.Base_ProjectService.GetProjectListByUserId(this.CurrUser.UserId, "1"); this.drpProjectId.DataBind(); Funs.FineUIPleaseSelect(this.drpProjectId); this.InitTreeMenu();//加载树 } } #endregion #region DropDownList下拉选择事件 /// /// 项目下拉选择事件 /// /// /// protected void drpProjectId_SelectedIndexChanged(object sender, EventArgs e) { this.InitTreeMenu(); } #endregion #region 加载树施工号 /// /// 加载树 /// private void InitTreeMenu() { this.tvControlItem.Nodes.Clear(); TreeNode rootNode = new TreeNode(); rootNode.Text = "施工号"; rootNode.ToolTip = "项目"; rootNode.NodeID = "0"; rootNode.Expanded = true; this.tvControlItem.Nodes.Add(rootNode); List projects = BLL.Base_ProjectService.GetOnProjectListByUserId(this.CurrUser.UserId, "1"); if (this.drpProjectId.SelectedValueArray.Length > 1 || (this.drpProjectId.SelectedValueArray.Length == 1 && this.drpProjectId.SelectedValue != "null")) { projects = projects.Where(x => this.drpProjectId.SelectedValueArray.Contains(x.ProjectId)).ToList(); } foreach (var item in projects) { TreeNode rootProjectNode = new TreeNode();//定义根节点 rootProjectNode.Text = item.ProjectCode; rootProjectNode.NodeID = item.ProjectId; rootProjectNode.Expanded = false; rootProjectNode.ToolTip = item.ProjectName; rootProjectNode.CommandName = "施工号"; rootProjectNode.EnableClickEvent = true; rootNode.Nodes.Add(rootProjectNode); } } #endregion #region TreeView点击事件 /// /// TreeView点击事件 /// /// /// protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) { this.BindGrid(); } #endregion #region 绑定数据 /// /// 绑定数据 /// private void BindGrid() { string strSql = @"SELECT v.* FROM (SELECT ROW_NUMBER() OVER(ORDER BY report.JOT_JointNo,report.FilmNum) AS Number,report.* FROM (SELECT v1.* FROM (SELECT QualityRating.QualityRatingId, JointInfo.JOT_JointDesc,JointInfo.JOT_JointNo,'' as RepairMark,case BatchDetail.PointType when '2' then 'K' else '' end as PointType, QualityRating.FilmNum,Welder.WED_Code, QualityRating.DefectNature,QualityRating.DefectRation as DefectSize, QualityRating.DefectResult,QualityRating.Remark, IsoInfo.ISO_IsoNo,Steel.STE_Code FROM dbo.HJGL_BO_QualityRating AS QualityRating LEFT JOIN DBO.HJGL_CH_TrustItem AS TrustItem ON TrustItem.CH_TrustItemID = QualityRating.CH_TrustItemID LEFT JOIN dbo.HJGL_CH_Trust trust ON trust.CH_TrustID = TrustItem.CH_TrustID LEFT JOIN DBO.HJGL_PW_JointInfo AS JointInfo ON JointInfo.JOT_ID=QualityRating.JOT_ID LEFT JOIN DBO.HJGL_BO_BatchDetail AS BatchDetail ON BatchDetail.JOT_ID=QualityRating.JOT_ID LEFT JOIN DBO.HJGL_BS_Welder AS Welder ON Welder.WED_ID =JointInfo.JOT_CellWelder LEFT JOIN DBO.HJGL_PW_IsoInfo AS IsoInfo ON IsoInfo.ISO_ID = QualityRating.ISO_ID LEFT JOIN dbo.HJGL_BS_Steel AS Steel ON Steel.STE_ID = IsoInfo.STE_ID LEFT JOIN dbo.HJGL_BS_NDTType ndtType ON ndtType.NDT_ID=trust.CH_NDTMethod WHERE JointInfo.ProjectId=@ProjectId AND ndtType.NDT_Code=@NDTCode ) v1 UNION all SELECT v2.* from (SELECT qualityRatingRepair.QualityRatingRepairId AS QualityRatingId, JointInfo.JOT_JointDesc,JointInfo.JOT_JointNo,record.RepairMark,case BatchDetail.PointType when '2' then 'K' else '' end as PointType, (qualityRatingRepair.FilmNum+record.RepairMark) AS FilmNum, Welder.WED_Code,qualityRatingRepair.DefectNature, qualityRatingRepair.DefectRation as DefectSize,qualityRatingRepair.DefectResult, qualityRatingRepair.Remark, IsoInfo.ISO_IsoNo,Steel.STE_Code FROM dbo.HJGL_BO_QualityRatingRepair AS qualityRatingRepair LEFT JOIN dbo.HJGL_CH_RepairItem AS repairItem ON repairItem.CH_RepairItemId = qualityRatingRepair.CH_RepairItemId LEFT JOIN dbo.HJGL_CH_Repair repair ON repair.CH_RepairID = repairItem.CH_RepairID LEFT JOIN DBO.HJGL_PW_JointInfo AS JointInfo ON JointInfo.JOT_ID=qualityRatingRepair.JOT_ID LEFT JOIN DBO.HJGL_BO_BatchDetail AS BatchDetail ON BatchDetail.JOT_ID=qualityRatingRepair.JOT_ID LEFT JOIN dbo.HJGL_CH_RepairItemRecord record ON record.RepairItemRecordId = repairItem.RepairItemRecordId LEFT JOIN DBO.HJGL_BS_Welder AS Welder ON Welder.WED_ID =record.JOT_CellWelder LEFT JOIN DBO.HJGL_PW_IsoInfo AS IsoInfo ON IsoInfo.ISO_ID = qualityRatingRepair.ISO_ID LEFT JOIN dbo.HJGL_BS_Steel AS Steel ON Steel.STE_ID = IsoInfo.STE_ID LEFT JOIN dbo.HJGL_CH_TrustItem AS TrustItem ON TrustItem.CH_TrustItemID = repair.TrustItemID LEFT JOIN dbo.HJGL_CH_Trust AS Trust ON Trust.CH_TrustID = TrustItem.CH_TrustID LEFT JOIN dbo.HJGL_BS_NDTType ndtType ON ndtType.NDT_ID=Trust.CH_NDTMethod WHERE JointInfo.ProjectId=@ProjectId AND ndtType.NDT_Code=@NDTCode ) v2) report) v where 1=1 "; List listStr = new List(); listStr.Add(new SqlParameter("@ProjectId", this.tvControlItem.SelectedNodeID)); listStr.Add(new SqlParameter("@NDTCode", "RT")); if (!string.IsNullOrEmpty(this.txtIsoNo.Text.Trim())) { strSql += " AND ISO_IsoNo LIKE @ISO_IsoNo"; listStr.Add(new SqlParameter("@ISO_IsoNo", "%" + this.txtIsoNo.Text.Trim() + "%")); } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); // 2.获取当前分页数据 //var table = this.GetPagedDataTable(Grid1, tb1); Grid1.RecordCount = tb.Rows.Count; tb = GetFilteredTable(Grid1.FilteredData, tb); var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); } #endregion #region 排序 /// /// 排序 /// /// /// protected void Grid1_Sort(object sender, GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; BindGrid(); } #endregion #region 分页选择下拉改变事件 /// /// 分页选择下拉改变事件 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } #endregion #region 页索引改变事件 /// /// 页索引改变事件 /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { BindGrid(); } #endregion #region 查询 /// /// 查询 /// /// /// protected void Text_TextChanged(object sender, EventArgs e) { BindGrid(); } #endregion #region 导出 /// 导出按钮 /// /// /// protected void btnOut_Click(object sender, EventArgs e) { Response.ClearContent(); string filename = Funs.GetNewFileName(); Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("射线检测报告明细" + filename, System.Text.Encoding.UTF8) + ".xls"); Response.ContentType = "application/excel"; Response.ContentEncoding = System.Text.Encoding.UTF8; this.Grid1.PageSize = 100000; this.BindGrid(); Response.Write(GetGridTableHtml(Grid1)); Response.End(); } /// /// 导出方法 /// /// /// private string GetGridTableHtml(Grid grid) { StringBuilder sb = new StringBuilder(); sb.Append(""); sb.Append(""); sb.Append(""); foreach (GridColumn column in grid.Columns) { if (column.HeaderText != "序号") { sb.AppendFormat("", column.HeaderText); } } sb.Append(""); foreach (GridRow row in grid.Rows) { sb.Append(""); foreach (GridColumn column in grid.Columns) { string html = row.Values[column.ColumnIndex].ToString(); if (column.ColumnID != "tfNumber") { //html = (row.FindControl("lblNumber") as AspNet.Label).Text; sb.AppendFormat("", html); } //sb.AppendFormat("", html); } sb.Append(""); } sb.Append("
{0}
{0}{0}
"); return sb.ToString(); } #endregion } }