1836 lines
		
	
	
		
			88 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			1836 lines
		
	
	
		
			88 KiB
		
	
	
	
		
			C#
		
	
	
	
using System;
 | 
						||
using System.Collections.Generic;
 | 
						||
using System.Data;
 | 
						||
using System.Data.SqlClient;
 | 
						||
using System.Linq;
 | 
						||
using System.Web;
 | 
						||
using BLL;
 | 
						||
using System.Text;
 | 
						||
using NPOI.HSSF.Util;
 | 
						||
using NPOI.SS.UserModel;
 | 
						||
using NPOI.SS.Util;
 | 
						||
using NPOI.XSSF.UserModel;
 | 
						||
using System.IO;
 | 
						||
using NPOI.OpenXmlFormats.Wordprocessing;
 | 
						||
 | 
						||
namespace FineUIPro.Web.WeldingProcess.WeldingManage
 | 
						||
{
 | 
						||
    public partial class JointInfo : PageBase
 | 
						||
    {
 | 
						||
        protected void Page_Load(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            if (!IsPostBack)
 | 
						||
            {
 | 
						||
                this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString();
 | 
						||
                this.InitTreeMenu();//加载树
 | 
						||
                //显示列
 | 
						||
                Model.Sys_UserShowColumns c = BLL.UserShowColumnsService.GetColumnsByUserId(this.CurrUser.UserId, "Joint");
 | 
						||
                if (c != null)
 | 
						||
                {
 | 
						||
                    this.GetShowColumn(c.Columns);
 | 
						||
                }
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
        protected void drpProjectId_SelectedIndexChanged(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            this.InitTreeMenu();
 | 
						||
        }
 | 
						||
 | 
						||
        #region 加载树装置-单位-工作区
 | 
						||
        /// <summary>
 | 
						||
        /// 加载树
 | 
						||
        /// </summary>
 | 
						||
        private void InitTreeMenu()
 | 
						||
        {
 | 
						||
            this.tvControlItem.Nodes.Clear();
 | 
						||
            var totalInstallation = from x in Funs.DB.Project_Installation select x;
 | 
						||
            var totalWorkArea = from x in Funs.DB.Project_WorkArea select x;
 | 
						||
            var totalUnit = from x in Funs.DB.Project_Unit select x;
 | 
						||
            var totalPipeline = from x in Funs.DB.Pipeline_Pipeline select x;
 | 
						||
            ////装置
 | 
						||
            var pInstallation = (from x in totalInstallation where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
 | 
						||
            ////区域
 | 
						||
            var pWorkArea = (from x in totalWorkArea where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
 | 
						||
            ////单位
 | 
						||
            var pUnits = (from x in totalUnit where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
 | 
						||
 | 
						||
            var workAreaIdList = (from x in totalPipeline
 | 
						||
                                  where x.ProjectId == this.CurrUser.LoginProjectId && x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim())
 | 
						||
                                  orderby x.PipelineCode
 | 
						||
                                  select x.WorkAreaId).Distinct().ToList();
 | 
						||
            pWorkArea = pWorkArea.Where(x => workAreaIdList.Contains(x.WorkAreaId)).OrderBy(x => x.WorkAreaCode).ToList();
 | 
						||
            pInstallation = (from x in pInstallation
 | 
						||
                             join y in pWorkArea on x.InstallationId equals y.InstallationId
 | 
						||
                             select x).Distinct().ToList();
 | 
						||
            pUnits = (from x in pUnits
 | 
						||
                      join y in pWorkArea on x.UnitId equals y.UnitId
 | 
						||
                      select x).Distinct().ToList();
 | 
						||
            this.BindNodes(null, pInstallation, pWorkArea, pUnits);
 | 
						||
        }
 | 
						||
        #endregion
 | 
						||
 | 
						||
        #region 绑定树节点
 | 
						||
        #region 绑定树节点
 | 
						||
        /// <summary>
 | 
						||
        ///  绑定树节点
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="node"></param>
 | 
						||
        private void BindNodes(TreeNode node, List<Model.Project_Installation> pInstallation, List<Model.Project_WorkArea> pWorkArea, List<Model.Project_Unit> pUnits)
 | 
						||
        {
 | 
						||
            if (node == null)
 | 
						||
            {
 | 
						||
                List<Model.Project_Installation> installations = pInstallation;
 | 
						||
                var pUnit = pUnits.FirstOrDefault(x => x.UnitId == this.CurrUser.UnitId);
 | 
						||
                //if (pUnit != null && !pUnit.UnitType.Contains(Const.UnitType_2) && !pUnit.UnitType.Contains(Const.UnitType_1))
 | 
						||
                if (pUnit != null && pUnit.UnitType.Contains(Const.UnitType_5))
 | 
						||
                {
 | 
						||
                    installations = (from x in pInstallation
 | 
						||
                                     join y in pWorkArea on x.InstallationId equals y.InstallationId
 | 
						||
                                     where y.UnitId == this.CurrUser.UnitId
 | 
						||
                                     orderby x.InstallationId
 | 
						||
                                     select x).Distinct().ToList();
 | 
						||
                }
 | 
						||
 | 
						||
                foreach (var q in installations)
 | 
						||
                {
 | 
						||
                    TreeNode newNode = new TreeNode();
 | 
						||
                    newNode.NodeID = q.InstallationId;
 | 
						||
                    newNode.Text = q.InstallationName;
 | 
						||
                    newNode.ToolTip = Resources.Lan.InstallationName;
 | 
						||
                    newNode.Expanded = true;
 | 
						||
                    this.tvControlItem.Nodes.Add(newNode);
 | 
						||
                    this.BindNodes(newNode, pInstallation, pWorkArea, pUnits);
 | 
						||
                }
 | 
						||
            }
 | 
						||
            else if (node.ToolTip == Resources.Lan.InstallationName)
 | 
						||
            {
 | 
						||
                List<Model.Project_Unit> units = null;
 | 
						||
                var pUnitDepth = pUnits.FirstOrDefault(x => x.UnitId == this.CurrUser.UnitId);
 | 
						||
                if (pUnitDepth == null || pUnitDepth.UnitType.Contains(Const.UnitType_2) || pUnitDepth.UnitType.Contains(Const.UnitType_1)
 | 
						||
                     || pUnitDepth.UnitType == BLL.Const.UnitType_3 || pUnitDepth.UnitType == BLL.Const.UnitType_4)
 | 
						||
                {
 | 
						||
                    units = (from x in pUnits
 | 
						||
                             join y in pWorkArea on x.UnitId equals y.UnitId
 | 
						||
                             where y.InstallationId == node.NodeID && x.UnitType == Const.UnitType_5
 | 
						||
                             select x).ToList();
 | 
						||
                }
 | 
						||
                else
 | 
						||
                {
 | 
						||
                    units = (from x in pUnits
 | 
						||
                             join y in pWorkArea on x.UnitId equals y.UnitId
 | 
						||
                             where y.InstallationId == node.NodeID && x.UnitType == Const.UnitType_5 && x.UnitId == this.CurrUser.UnitId
 | 
						||
                             select x).ToList();
 | 
						||
                }
 | 
						||
 | 
						||
                units = units.OrderBy(x => x.InTime).Distinct().ToList();
 | 
						||
                foreach (var q in units)
 | 
						||
                {
 | 
						||
                    var unit = BLL.Base_UnitService.GetUnit(q.UnitId);
 | 
						||
                    if (unit != null)
 | 
						||
                    {
 | 
						||
                        TreeNode newNode = new TreeNode();
 | 
						||
                        newNode.Text = unit.UnitName;
 | 
						||
                        newNode.NodeID = q.UnitId + "|" + node.NodeID;
 | 
						||
                        newNode.ToolTip = Resources.Lan.UnitName;
 | 
						||
                        node.Nodes.Add(newNode);
 | 
						||
                        this.BindNodes(newNode, pInstallation, pWorkArea, pUnits);
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            }
 | 
						||
            else if (node.ToolTip == Resources.Lan.UnitName)
 | 
						||
            {
 | 
						||
                var workAreas = (from x in pWorkArea
 | 
						||
                                 where x.InstallationId == node.ParentNode.NodeID && x.UnitId == node.NodeID.Split('|')[0]
 | 
						||
                                 select x);
 | 
						||
                workAreas = workAreas.OrderByDescending(x => x.WorkAreaCode);
 | 
						||
                var pipelines = from x in Funs.DB.Pipeline_Pipeline select x;
 | 
						||
                foreach (var q in workAreas)
 | 
						||
                {
 | 
						||
                    int a = (from x in pipelines where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitId == node.NodeID.Split('|')[0] && x.WorkAreaId == q.WorkAreaId select x).Count();
 | 
						||
                    TreeNode newNode = new TreeNode();
 | 
						||
                    newNode.Text = q.WorkAreaCode + "【" + a.ToString() + " " + Resources.Lan.Pipeline + "】";
 | 
						||
                    newNode.NodeID = q.WorkAreaId;
 | 
						||
                    newNode.EnableExpandEvent = true;
 | 
						||
                    newNode.ToolTip = Resources.Lan.Area;
 | 
						||
                    node.Nodes.Add(newNode);
 | 
						||
                    this.BindNodes(newNode, pInstallation, pWorkArea, pUnits);
 | 
						||
                }
 | 
						||
            }
 | 
						||
            else if (node.ToolTip == Resources.Lan.Area)
 | 
						||
            {
 | 
						||
                TreeNode newNode = new TreeNode();
 | 
						||
                newNode.Text = Resources.Lan.Pipeline;
 | 
						||
                newNode.NodeID = Resources.Lan.Pipeline;
 | 
						||
                node.Nodes.Add(newNode);
 | 
						||
            }
 | 
						||
        }
 | 
						||
        #endregion
 | 
						||
 | 
						||
        #region 树展开事件
 | 
						||
        /// <summary>
 | 
						||
        /// 树展开事件
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="sender"></param>
 | 
						||
        /// <param name="e"></param>
 | 
						||
        protected void tvControlItem_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
 | 
						||
        {
 | 
						||
            if (e.Node.ToolTip == Resources.Lan.Area)
 | 
						||
            {
 | 
						||
                e.Node.Nodes.Clear();
 | 
						||
                List<Model.Pipeline_Pipeline> pipeline = new List<Model.Pipeline_Pipeline>();
 | 
						||
                var pipelines = from x in Funs.DB.Pipeline_Pipeline select x;
 | 
						||
                pipeline = (from x in pipelines
 | 
						||
                            where x.ProjectId == this.CurrUser.LoginProjectId && x.WorkAreaId == e.Node.NodeID
 | 
						||
                           && x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim())
 | 
						||
                            orderby x.PipelineCode
 | 
						||
                            select x).ToList();
 | 
						||
                foreach (var item in pipeline)
 | 
						||
                {
 | 
						||
                    var jotCount = (from x in Funs.DB.Pipeline_WeldJoint where x.PipelineId == item.PipelineId select x).Count();
 | 
						||
                    TreeNode newNode = new TreeNode();
 | 
						||
                    if (!String.IsNullOrEmpty(item.Sheet))
 | 
						||
                    {
 | 
						||
                        newNode.Text = item.PipelineCode + "(" + item.Sheet + ")";
 | 
						||
                    }
 | 
						||
                    else
 | 
						||
                    {
 | 
						||
                        newNode.Text = item.PipelineCode;
 | 
						||
                    }
 | 
						||
                    newNode.Text += "【" + jotCount.ToString() + " " + Resources.Lan.WeldingJoint + "】";
 | 
						||
                    newNode.ToolTip = Resources.Lan.PipelinePage;
 | 
						||
                    newNode.NodeID = item.PipelineId;
 | 
						||
                    newNode.EnableClickEvent = true;
 | 
						||
                    e.Node.Nodes.Add(newNode);
 | 
						||
                }
 | 
						||
            }
 | 
						||
        }
 | 
						||
        #endregion
 | 
						||
        #endregion
 | 
						||
 | 
						||
        #region 点击TreeView
 | 
						||
        /// <summary>
 | 
						||
        /// 点击TreeView
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="sender"></param>
 | 
						||
        /// <param name="e"></param>
 | 
						||
        protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
 | 
						||
        {
 | 
						||
            this.BindGrid();
 | 
						||
        }
 | 
						||
        #endregion
 | 
						||
 | 
						||
        #region 数据绑定
 | 
						||
        /// <summary>
 | 
						||
        /// 数据绑定
 | 
						||
        /// </summary>
 | 
						||
        private void BindGrid()
 | 
						||
        {
 | 
						||
            string strSql = @"SELECT WeldJointId,ProjectId,PipelineId,WeldJointCode,WPQCode,DetectionType,
 | 
						||
                                     convert(int,dbo.Fun_GetParseInt(WeldJointCode)) AS ConvertJointNo,
 | 
						||
									 dbo.Fun_GetParseString(WeldJointCode) AS PreJotNo,
 | 
						||
                                     PipingClassCode,PipeSegment,JointAttribute,PageNum,
 | 
						||
                                     ComponentsCode1,ComponentsCode2,Is_hjName,IsHotProessStr,Material1Code,Material2Code,
 | 
						||
                                     WeldTypeCode,Specification,HeartNo1,HeartNo2,Size,Dia,Thickness,GrooveTypeCode,
 | 
						||
                                     WeldingMethodCode,WeldSilkId,WeldMatCode,WeldingDate,WeldingDailyCode,DoneDin,
 | 
						||
                                     BackingWelderCode,CoverWelderCode,SystemNumber,TestPackageNo,Remark,
 | 
						||
                                     (CASE WHEN IsCancel=1 THEN '是' ELSE '否' END) AS IsCancel
 | 
						||
                              FROM View_Pipeline_WeldJoint WHERE 1= 1";
 | 
						||
            List<SqlParameter> listStr = new List<SqlParameter>
 | 
						||
            {
 | 
						||
 | 
						||
            };
 | 
						||
            strSql += " AND PipelineId =@PipelineId";
 | 
						||
            listStr.Add(new SqlParameter("@PipelineId", this.tvControlItem.SelectedNodeID));
 | 
						||
 | 
						||
            if (!string.IsNullOrEmpty(this.txtWeldJointCode.Text.Trim()))
 | 
						||
            {
 | 
						||
                strSql += " AND WeldJointCode LIKE @WeldJointCode";
 | 
						||
                listStr.Add(new SqlParameter("@WeldJointCode", "%" + this.txtWeldJointCode.Text.Trim() + "%"));
 | 
						||
            }
 | 
						||
            SqlParameter[] parameter = listStr.ToArray();
 | 
						||
            DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
 | 
						||
 | 
						||
            // 2.获取当前分页数据
 | 
						||
            Grid1.RecordCount = tb.Rows.Count;
 | 
						||
            var table = this.GetPagedDataTable(Grid1, tb);
 | 
						||
            Grid1.DataSource = table;
 | 
						||
            Grid1.DataBind();
 | 
						||
        }
 | 
						||
        #endregion
 | 
						||
 | 
						||
        #region 分页排序
 | 
						||
        #region 页索引改变事件
 | 
						||
        /// <summary>
 | 
						||
        /// 页索引改变事件
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="sender"></param>
 | 
						||
        /// <param name="e"></param>
 | 
						||
        protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
 | 
						||
        {
 | 
						||
            BindGrid();
 | 
						||
        }
 | 
						||
        #endregion
 | 
						||
 | 
						||
        #region 排序
 | 
						||
        /// <summary>
 | 
						||
        /// 排序
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="sender"></param>
 | 
						||
        /// <param name="e"></param>
 | 
						||
        protected void Grid1_Sort(object sender, GridSortEventArgs e)
 | 
						||
        {
 | 
						||
            BindGrid();
 | 
						||
        }
 | 
						||
        #endregion
 | 
						||
 | 
						||
        #region 分页选择下拉改变事件
 | 
						||
        /// <summary>
 | 
						||
        /// 分页选择下拉改变事件
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="sender"></param>
 | 
						||
        /// <param name="e"></param>
 | 
						||
        protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
 | 
						||
            BindGrid();
 | 
						||
        }
 | 
						||
        #endregion
 | 
						||
        #endregion
 | 
						||
 | 
						||
        #region 焊口信息 维护事件
 | 
						||
        /// <summary>
 | 
						||
        /// Grid双击事件
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="sender"></param>
 | 
						||
        /// <param name="e"></param>
 | 
						||
        protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
 | 
						||
        {
 | 
						||
            if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.HJGL_JointInfoMenuId, BLL.Const.BtnModify))
 | 
						||
            {
 | 
						||
                PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("JointInfoEdit.aspx?WeldJointId={0}", Grid1.SelectedRowID, "编辑 - ")));
 | 
						||
            }
 | 
						||
            else
 | 
						||
            {
 | 
						||
                ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// 增加焊口信息
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="sender"></param>
 | 
						||
        /// <param name="e"></param>
 | 
						||
        protected void btnNew_Click(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_JointInfoMenuId, Const.BtnAdd))
 | 
						||
            {
 | 
						||
                var pipeline = BLL.Pipeline_PipelineService.GetPipelineByPipelineId(tvControlItem.SelectedNodeID);
 | 
						||
                if (pipeline != null)
 | 
						||
                {
 | 
						||
                    PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("JointInfoEdit.aspx?PipelineId={0}", this.tvControlItem.SelectedNodeID, "新增 - ")));
 | 
						||
                }
 | 
						||
                else
 | 
						||
                {
 | 
						||
                    ShowNotify(Resources.Lan.PleaseSelectPipelinetFirst, MessageBoxIcon.Warning);
 | 
						||
                }
 | 
						||
            }
 | 
						||
            else
 | 
						||
            {
 | 
						||
                ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// 批量增加焊口信息
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="sender"></param>
 | 
						||
        /// <param name="e"></param>
 | 
						||
        protected void btnBatchAdd_Click(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_JointInfoMenuId, Const.BtnAdd))
 | 
						||
            {
 | 
						||
                var pipeline = BLL.Pipeline_PipelineService.GetPipelineByPipelineId(tvControlItem.SelectedNodeID);
 | 
						||
                if (pipeline != null)
 | 
						||
                {
 | 
						||
                    PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("JointInfoBatchEdit.aspx?PipelineId={0}", this.tvControlItem.SelectedNodeID, "新增 - ")));
 | 
						||
                }
 | 
						||
                else
 | 
						||
                {
 | 
						||
                    ShowNotify(Resources.Lan.PleaseSelectPipelinetFirst, MessageBoxIcon.Warning);
 | 
						||
                }
 | 
						||
            }
 | 
						||
            else
 | 
						||
            {
 | 
						||
                ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
        protected void btnUpANS_Click(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            var jotList = (from x in Funs.DB.Pipeline_WeldJoint where x.ANSISCH == null || x.ANSISCH == "" select x).ToList();
 | 
						||
            foreach (var j in jotList)
 | 
						||
            {
 | 
						||
                decimal? size = j.Size;
 | 
						||
                decimal? sch = j.Thickness;
 | 
						||
                string ansi = string.Empty;
 | 
						||
                if (size != null && sch != null)
 | 
						||
                {
 | 
						||
                    var dn = from x in Funs.DB.Base_DNCompare where x.PipeSize == size select x;
 | 
						||
                    if (dn.Count() > 0)
 | 
						||
                    {
 | 
						||
                        if (dn.First().SCH5 == sch)
 | 
						||
                        {
 | 
						||
                            ansi = "5";
 | 
						||
                        }
 | 
						||
                        if (dn.First().SCH5S == sch)
 | 
						||
                        {
 | 
						||
                            ansi = "5S";
 | 
						||
                        }
 | 
						||
                        if (dn.First().SCH10 == sch)
 | 
						||
                        {
 | 
						||
                            ansi = "10";
 | 
						||
                        }
 | 
						||
                        if (dn.First().SCH10S == sch)
 | 
						||
                        {
 | 
						||
                            ansi = "10S";
 | 
						||
                        }
 | 
						||
                        if (dn.First().SCH20 == sch)
 | 
						||
                        {
 | 
						||
                            ansi = "20";
 | 
						||
                        }
 | 
						||
                        if (dn.First().SCH30 == sch)
 | 
						||
                        {
 | 
						||
                            ansi = "30";
 | 
						||
                        }
 | 
						||
                        if (dn.First().SCH40 == sch)
 | 
						||
                        {
 | 
						||
                            ansi = "40";
 | 
						||
                        }
 | 
						||
                        if (dn.First().SCH40S == sch)
 | 
						||
                        {
 | 
						||
                            ansi = "40S";
 | 
						||
                        }
 | 
						||
                        if (dn.First().STD == sch)
 | 
						||
                        {
 | 
						||
                            ansi = "STD";
 | 
						||
                        }
 | 
						||
                        if (dn.First().SCH60 == sch)
 | 
						||
                        {
 | 
						||
                            ansi = "60";
 | 
						||
                        }
 | 
						||
                        if (dn.First().SCH80 == sch)
 | 
						||
                        {
 | 
						||
                            ansi = "80";
 | 
						||
                        }
 | 
						||
                        if (dn.First().SCH80S == sch)
 | 
						||
                        {
 | 
						||
                            ansi = "80S";
 | 
						||
                        }
 | 
						||
 | 
						||
                        if (dn.First().XS == sch)
 | 
						||
                        {
 | 
						||
                            ansi = "XS";
 | 
						||
                        }
 | 
						||
                        if (dn.First().SCH100 == sch)
 | 
						||
                        {
 | 
						||
                            ansi = "100";
 | 
						||
                        }
 | 
						||
                        if (dn.First().SCH120 == sch)
 | 
						||
                        {
 | 
						||
                            ansi = "120";
 | 
						||
                        }
 | 
						||
                        if (dn.First().SCH140 == sch)
 | 
						||
                        {
 | 
						||
                            ansi = "140";
 | 
						||
                        }
 | 
						||
                        if (dn.First().SCH160 == sch)
 | 
						||
                        {
 | 
						||
                            ansi = "160";
 | 
						||
                        }
 | 
						||
                        if (dn.First().XXS == sch)
 | 
						||
                        {
 | 
						||
                            ansi = "XXS";
 | 
						||
                        }
 | 
						||
 | 
						||
                        j.ANSISCH = ansi;
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            }
 | 
						||
            Funs.DB.SubmitChanges();
 | 
						||
        }
 | 
						||
 | 
						||
        protected void btnUpdate_Click(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            var jotList = (from x in Funs.DB.Pipeline_WeldJoint select x).ToList();
 | 
						||
            foreach (var j in jotList)
 | 
						||
            {
 | 
						||
                decimal? size = j.Size;
 | 
						||
                string ansi = j.ANSISCH;
 | 
						||
                decimal? dia = j.Dia;
 | 
						||
                decimal? sch = j.Thickness;
 | 
						||
                string specification = j.Specification;
 | 
						||
 | 
						||
                if (size != null && !string.IsNullOrEmpty(ansi))
 | 
						||
                {
 | 
						||
                    var dn = from x in Funs.DB.Base_DNCompare where x.PipeSize == size select x;
 | 
						||
                    if (dn.Count() > 0)
 | 
						||
                    {
 | 
						||
                        if (dn.First().OutSizeDia != null)
 | 
						||
                        {
 | 
						||
                            dia = dn.First().OutSizeDia;
 | 
						||
                        }
 | 
						||
 | 
						||
                        if (ansi == "5")
 | 
						||
                        {
 | 
						||
                            if (dn.First().SCH5 != null)
 | 
						||
                            {
 | 
						||
                                sch = dn.First().SCH5;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        if (ansi == "5S")
 | 
						||
                        {
 | 
						||
                            if (dn.First().SCH5S != null)
 | 
						||
                            {
 | 
						||
                                sch = dn.First().SCH5S;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        if (ansi == "10")
 | 
						||
                        {
 | 
						||
                            if (dn.First().SCH10 != null)
 | 
						||
                            {
 | 
						||
                                sch = dn.First().SCH10;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        if (ansi == "10S")
 | 
						||
                        {
 | 
						||
                            if (dn.First().SCH10S != null)
 | 
						||
                            {
 | 
						||
                                sch = dn.First().SCH10S;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        if (ansi == "20")
 | 
						||
                        {
 | 
						||
                            if (dn.First().SCH20 != null)
 | 
						||
                            {
 | 
						||
                                sch = dn.First().SCH20;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        if (ansi == "30")
 | 
						||
                        {
 | 
						||
                            if (dn.First().SCH30 != null)
 | 
						||
                            {
 | 
						||
                                sch = dn.First().SCH30;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        if (ansi == "40")
 | 
						||
                        {
 | 
						||
                            if (dn.First().SCH40 != null)
 | 
						||
                            {
 | 
						||
                                sch = dn.First().SCH40;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        if (ansi == "40S")
 | 
						||
                        {
 | 
						||
                            if (dn.First().SCH40S != null)
 | 
						||
                            {
 | 
						||
                                sch = dn.First().SCH40S;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        if (ansi == "STD")
 | 
						||
                        {
 | 
						||
                            if (dn.First().STD != null)
 | 
						||
                            {
 | 
						||
                                sch = dn.First().STD;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        if (ansi == "60")
 | 
						||
                        {
 | 
						||
                            if (dn.First().SCH60 != null)
 | 
						||
                            {
 | 
						||
                                sch = dn.First().SCH60;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        if (ansi == "80")
 | 
						||
                        {
 | 
						||
                            if (dn.First().SCH80 != null)
 | 
						||
                            {
 | 
						||
                                sch = dn.First().SCH80;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        if (ansi == "80S")
 | 
						||
                        {
 | 
						||
                            if (dn.First().SCH80S != null)
 | 
						||
                            {
 | 
						||
                                sch = dn.First().SCH80S;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        if (ansi == "XS")
 | 
						||
                        {
 | 
						||
                            if (dn.First().XS != null)
 | 
						||
                            {
 | 
						||
                                sch = dn.First().XS;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        if (ansi == "100")
 | 
						||
                        {
 | 
						||
                            if (dn.First().SCH100 != null)
 | 
						||
                            {
 | 
						||
                                sch = dn.First().SCH100;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        if (ansi == "120")
 | 
						||
                        {
 | 
						||
                            if (dn.First().SCH120 != null)
 | 
						||
                            {
 | 
						||
                                sch = dn.First().SCH120;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        if (ansi == "140")
 | 
						||
                        {
 | 
						||
                            if (dn.First().SCH140 != null)
 | 
						||
                            {
 | 
						||
                                sch = dn.First().SCH140;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        if (ansi == "160")
 | 
						||
                        {
 | 
						||
                            if (dn.First().SCH160 != null)
 | 
						||
                            {
 | 
						||
                                sch = dn.First().SCH160;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        if (ansi == "XXS")
 | 
						||
                        {
 | 
						||
                            if (dn.First().XXS != null)
 | 
						||
                            {
 | 
						||
                                sch = dn.First().XXS;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
 | 
						||
                        j.Dia = dia;
 | 
						||
                        j.Thickness = sch;
 | 
						||
                        j.Specification = "Φ" + dia + "×" + sch;
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            }
 | 
						||
            Funs.DB.SubmitChanges();
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// 焊口信息编辑
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="sender"></param>
 | 
						||
        /// <param name="e"></param>
 | 
						||
        protected void btnMenuEdit_Click(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.HJGL_JointInfoMenuId, BLL.Const.BtnModify))
 | 
						||
            {
 | 
						||
                if (Grid1.SelectedRowIndexArray.Length == 0)
 | 
						||
                {
 | 
						||
                    Alert.ShowInTop(Resources.Lan.SelectLeastOneRecord, MessageBoxIcon.Warning);
 | 
						||
                    return;
 | 
						||
                }
 | 
						||
                PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("JointInfoEdit.aspx?WeldJointId={0}", Grid1.SelectedRowID, "维护 - ")));
 | 
						||
            }
 | 
						||
            else
 | 
						||
            {
 | 
						||
                ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// 删除按钮
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="sender"></param>
 | 
						||
        /// <param name="e"></param>
 | 
						||
        protected void btnMenuDelete_Click(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_JointInfoMenuId, Const.BtnDelete))
 | 
						||
            {
 | 
						||
                if (Grid1.SelectedRowIndexArray.Length == 0)
 | 
						||
                {
 | 
						||
                    Alert.ShowInTop(Resources.Lan.SelectLeastOneRecord, MessageBoxIcon.Warning);
 | 
						||
                    return;
 | 
						||
                }
 | 
						||
 | 
						||
                bool isShow = true;
 | 
						||
                if (Grid1.SelectedRowIndexArray.Length > 1)
 | 
						||
                {
 | 
						||
                    isShow = false;
 | 
						||
                }
 | 
						||
                string rowID = Grid1.DataKeys[Grid1.SelectedRowIndex][0].ToString();
 | 
						||
                var jot = BLL.Pipeline_WeldJointService.GetWeldJointByWeldJointId(rowID);
 | 
						||
                var isoInfo = BLL.Pipeline_PipelineService.GetPipelineByPipelineId(jot.PipelineId);
 | 
						||
                var rate = Funs.DB.Base_DetectionRate.FirstOrDefault(x => x.DetectionRateId == isoInfo.DetectionRateId);
 | 
						||
 | 
						||
                if (judgementDelete(rowID, isShow))
 | 
						||
                {
 | 
						||
                    BLL.Pipeline_WeldJointService.DeleteWeldJointById(rowID);
 | 
						||
                    BLL.Sys_LogService.AddLog(BLL.Const.System_3, this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_JointInfoMenuId, Const.BtnDelete, rowID);
 | 
						||
 | 
						||
 | 
						||
                    // 如固定口比例不足,则在固定口中随机补充缺的部分
 | 
						||
                    // 已焊接数
 | 
						||
                    int num = (from x in Funs.DB.Pipeline_WeldJoint
 | 
						||
                               join y in Funs.DB.Base_WeldType on x.WeldTypeId equals y.WeldTypeId
 | 
						||
                               where x.PipelineId == jot.PipelineId && y.Flag == "1"
 | 
						||
                                     && (x.IsCancel == false || x.IsCancel == null)
 | 
						||
                                     && (x.WeldingDailyId != null && x.WeldingDailyId != "")
 | 
						||
                               select x).Count();
 | 
						||
                    // 焊口总数
 | 
						||
                    int totalNum = (from x in Funs.DB.Pipeline_WeldJoint
 | 
						||
                                    join y in Funs.DB.Base_WeldType on x.WeldTypeId equals y.WeldTypeId
 | 
						||
                                    where x.PipelineId == jot.PipelineId && y.Flag == "1"
 | 
						||
                                          && (x.IsCancel == false || x.IsCancel == null)
 | 
						||
                                    select x).Count();
 | 
						||
 | 
						||
                    // 说明这条线已焊完,如固定口比例不足,则在固定口中随机补充缺的部分
 | 
						||
                    if (num == totalNum)
 | 
						||
                    {
 | 
						||
                        // 固定口需要点口数
 | 
						||
                        int needPointNum = Convert.ToInt32(Math.Ceiling(((double)(totalNum) * (double)(rate.DetectionRateValue) * 0.5) / 100.0));
 | 
						||
                        // 固定口已点口数
 | 
						||
                        int GdPointNum = (from x in Funs.DB.Pipeline_WeldJoint
 | 
						||
                                          join y in Funs.DB.Batch_PointBatchItem on x.WeldJointId equals y.WeldJointId
 | 
						||
                                          join z in Funs.DB.Batch_PointBatch on y.PointBatchId equals z.PointBatchId
 | 
						||
                                          join n in Funs.DB.Base_DetectionType on z.DetectionTypeId equals n.DetectionTypeId
 | 
						||
                                          where x.PipelineId == jot.PipelineId && x.WeldingDailyId != null && (x.IsCancel == false || x.IsCancel == null)
 | 
						||
                                                && y.PointState == "1" && n.SysType == "射线检测" && x.JointAttribute == "固定F"
 | 
						||
                                          select y.PointBatchItemId).Count();
 | 
						||
                        if (GdPointNum < needPointNum)
 | 
						||
                        {
 | 
						||
                            int d = needPointNum - GdPointNum;
 | 
						||
                            // 没有点口的固定口
 | 
						||
                            var GdNoPoint = from x in Funs.DB.Batch_PointBatchItem
 | 
						||
                                            join y in Funs.DB.Pipeline_WeldJoint on x.WeldJointId equals y.WeldJointId
 | 
						||
                                            join z in Funs.DB.Base_WeldType on y.WeldTypeId equals z.WeldTypeId
 | 
						||
                                            where y.PipelineId == jot.PipelineId && y.WeldingDailyId != null
 | 
						||
                                                && (y.IsCancel == false || y.IsCancel == null)
 | 
						||
                                                && x.PointState == null && z.Flag == "1" && y.JointAttribute == "固定F"
 | 
						||
                                            select x;
 | 
						||
                            int gdMaxValue = GdNoPoint.Count();
 | 
						||
                            if (gdMaxValue > 0)
 | 
						||
                            {
 | 
						||
                                string random = string.Empty;
 | 
						||
                                int[] r = Funs.GetRandomNum(d, 1, gdMaxValue);
 | 
						||
                                var q = from x in r orderby x select x;
 | 
						||
                                foreach (int i in q)
 | 
						||
                                {
 | 
						||
                                    if (i <= gdMaxValue)
 | 
						||
                                    {
 | 
						||
                                        random = random + i.ToString() + ",";
 | 
						||
                                    }
 | 
						||
                                }
 | 
						||
 | 
						||
                                int j = 1;
 | 
						||
                                foreach (var g in GdNoPoint)
 | 
						||
                                {
 | 
						||
                                    if (random.Contains(j.ToString()))
 | 
						||
                                    {
 | 
						||
                                        BLL.Batch_PointBatchItemService.UpdatePointBatchItem(g.PointBatchItemId, "1", System.DateTime.Now, null);
 | 
						||
                                    }
 | 
						||
                                    j++;
 | 
						||
                                }
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
 | 
						||
                    ShowNotify(Resources.Lan.DeletedSuccessfully, MessageBoxIcon.Success);
 | 
						||
                    this.BindGrid();
 | 
						||
                }
 | 
						||
            }
 | 
						||
            else
 | 
						||
            {
 | 
						||
                Alert.ShowInTop(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
        protected void btnMenuDeleteAll_Click(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_JointInfoMenuId, Const.BtnDeleteAll))
 | 
						||
            {
 | 
						||
                if (Grid1.SelectedRowIndexArray.Length == 1)
 | 
						||
                {
 | 
						||
                    string rowID = Grid1.DataKeys[Grid1.SelectedRowIndex][0].ToString();
 | 
						||
                    BLL.Batch_NDEItemService.DeleteWeldJointAllInfo(rowID);
 | 
						||
 | 
						||
                    ShowNotify(Resources.Lan.DeletedSuccessfully, MessageBoxIcon.Success);
 | 
						||
                    BLL.Sys_LogService.AddLog(BLL.Const.System_3, this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_JointInfoMenuId, Const.BtnDeleteAll, rowID);
 | 
						||
                    this.BindGrid();
 | 
						||
                }
 | 
						||
                else
 | 
						||
                {
 | 
						||
                    Alert.ShowInTop(Resources.Lan.SelectLeastOneRecord, MessageBoxIcon.Warning);
 | 
						||
                    return;
 | 
						||
                }
 | 
						||
            }
 | 
						||
            else
 | 
						||
            {
 | 
						||
                Alert.ShowInTop(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
 | 
						||
        protected void btnMenuCopy_Click(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.HJGL_JointInfoMenuId, BLL.Const.BtnAdd))
 | 
						||
            {
 | 
						||
                if (Grid1.SelectedRowIndexArray.Length == 0)
 | 
						||
                {
 | 
						||
                    Alert.ShowInTop(Resources.Lan.SelectLeastOneRecord, MessageBoxIcon.Warning);
 | 
						||
                    return;
 | 
						||
                }
 | 
						||
                PageContext.RegisterStartupScript(Window8.GetShowReference(String.Format("JointInfoCopy.aspx?WeldJointId={0}", Grid1.SelectedRowID, "增口复制 - ")));
 | 
						||
            }
 | 
						||
            else
 | 
						||
            {
 | 
						||
                ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
 | 
						||
            }
 | 
						||
        }
 | 
						||
        #endregion
 | 
						||
 | 
						||
        #region  报表打印
 | 
						||
        /// <summary>
 | 
						||
        ///  报表打印
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="sender"></param>
 | 
						||
        /// <param name="e"></param>
 | 
						||
        protected void btnPrint_Click(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            string pipelineId = this.tvControlItem.SelectedNodeID;
 | 
						||
            var q = BLL.Pipeline_PipelineService.GetPipelineByPipelineId(pipelineId);
 | 
						||
 | 
						||
            if (q != null)
 | 
						||
            {
 | 
						||
                string varValue = string.Empty;
 | 
						||
                var project = BLL.Base_ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
 | 
						||
                var ins = BLL.Project_InstallationService.GetProject_InstallationNameByInstallationId(q.InstallationId);
 | 
						||
                if (project != null)
 | 
						||
                {
 | 
						||
                    varValue = "工程名称:" + project.ProjectName;
 | 
						||
                    if (ins != null)
 | 
						||
                    {
 | 
						||
                        string insName = "单位工程名称:" + ins.ToString();
 | 
						||
                        varValue = varValue + "|" + insName;
 | 
						||
                    }
 | 
						||
                }
 | 
						||
                List<SqlParameter> listStr = new List<SqlParameter>();
 | 
						||
                listStr.Add(new SqlParameter("@IsoIds", pipelineId));
 | 
						||
                listStr.Add(new SqlParameter("@Flag", "0"));
 | 
						||
                SqlParameter[] parameter = listStr.ToArray();
 | 
						||
                DataTable tb = BLL.SQLHelper.GetDataTableRunProc("HJGL_spJointWorkRecordNew", parameter);
 | 
						||
                string page = Funs.GetPagesCountByPageSize(11, 16, tb.Rows.Count).ToString();
 | 
						||
 | 
						||
 | 
						||
                varValue = varValue + "|" + page;
 | 
						||
 | 
						||
                if (!string.IsNullOrEmpty(varValue))
 | 
						||
                {
 | 
						||
                    varValue = HttpUtility.UrlEncodeUnicode(varValue);
 | 
						||
                }
 | 
						||
                if (tb.Rows.Count <= 11)
 | 
						||
                {
 | 
						||
                    PageContext.RegisterStartupScript(Window6.GetShowReference(String.Format("../../Common/ReportPrint/ExReportPrint.aspx?ispop=1&reportId={0}&replaceParameter={1}&varValue={2}&projectId=0", BLL.Const.WeldingRecordReport1, pipelineId, varValue)));
 | 
						||
                }
 | 
						||
                else
 | 
						||
                {
 | 
						||
                    PageContext.RegisterStartupScript(Window7.GetShowReference(String.Format("../../Common/ReportPrint/ExReportPrint.aspx?ispop=1&reportId={0}&replaceParameter={1}&varValue={2}&projectId=0", BLL.Const.WeldingRecordReport2, pipelineId, varValue)));
 | 
						||
                    PageContext.RegisterStartupScript(Window6.GetShowReference(String.Format("../../Common/ReportPrint/ExReportPrint.aspx?ispop=1&reportId={0}&replaceParameter={1}&varValue={2}&projectId=0", BLL.Const.WeldingRecordReport1, pipelineId, varValue)));
 | 
						||
                }
 | 
						||
            }
 | 
						||
 | 
						||
            else
 | 
						||
            {
 | 
						||
                ShowNotify(Resources.Lan.PleaseSelectPipeline, MessageBoxIcon.Warning);
 | 
						||
                return;
 | 
						||
            }
 | 
						||
        }
 | 
						||
        #endregion
 | 
						||
 | 
						||
        #region 关闭弹出窗口及刷新页面
 | 
						||
        /// <summary>
 | 
						||
        /// 关闭弹出窗口
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="sender"></param>
 | 
						||
        /// <param name="e"></param>
 | 
						||
        protected void Window1_Close(object sender, WindowCloseEventArgs e)
 | 
						||
        {
 | 
						||
            this.InitTreeMenu();//加载树
 | 
						||
            this.BindGrid();
 | 
						||
        }
 | 
						||
 | 
						||
        protected void Window8_Close(object sender, WindowCloseEventArgs e)
 | 
						||
        {
 | 
						||
            this.BindGrid();
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// 查询
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="sender"></param>
 | 
						||
        /// <param name="e"></param>
 | 
						||
        protected void TextBox_TextChanged(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            this.BindGrid();
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// 查询
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="sender"></param>
 | 
						||
        /// <param name="e"></param>
 | 
						||
        protected void Tree_TextChanged(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            this.InitTreeMenu();
 | 
						||
            this.BindGrid();
 | 
						||
        }
 | 
						||
        #endregion
 | 
						||
 | 
						||
        #region 判断是否可删除
 | 
						||
        /// <summary>
 | 
						||
        /// 判断是否可以删除
 | 
						||
        /// </summary>
 | 
						||
        /// <returns></returns>
 | 
						||
        private bool judgementDelete(string id, bool isShow)
 | 
						||
        {
 | 
						||
            string content = string.Empty;
 | 
						||
            if (!string.IsNullOrEmpty(BLL.Pipeline_WeldJointService.GetWeldJointByWeldJointId(id).WeldingDailyId))
 | 
						||
            {
 | 
						||
                content = "该焊口已焊接,不能删除!";
 | 
						||
            }
 | 
						||
            if (BLL.Funs.DB.HotProess_TrustItem.FirstOrDefault(x => x.WeldJointId == id) != null)
 | 
						||
            {
 | 
						||
                content = "热处理已经使用了该焊口,不能删除!";
 | 
						||
            }
 | 
						||
            //if (BLL.Funs.DB.HJGL_CH_CheckItem.FirstOrDefault(x => x.WeldJointId == id) != null)
 | 
						||
            //{
 | 
						||
            //    content = "检测单已经使用了该焊口,不能删除!";
 | 
						||
            //}
 | 
						||
            if (string.IsNullOrEmpty(content))
 | 
						||
            {
 | 
						||
                return true;
 | 
						||
            }
 | 
						||
            else
 | 
						||
            {
 | 
						||
                if (isShow)
 | 
						||
                {
 | 
						||
                    Alert.ShowInTop(content, MessageBoxIcon.Error);
 | 
						||
                }
 | 
						||
                return false;
 | 
						||
            }
 | 
						||
        }
 | 
						||
        #endregion
 | 
						||
 | 
						||
        #region 导出焊口信息
 | 
						||
        /// <summary>
 | 
						||
        /// 导出焊口信息
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="sender"></param>
 | 
						||
        /// <param name="e"></param>
 | 
						||
        protected void btnOut_Click(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            var iso = BLL.Pipeline_PipelineService.GetPipelineByPipelineId(this.tvControlItem.SelectedNodeID);
 | 
						||
            var workArea = BLL.Project_WorkAreaService.GetProject_WorkAreaByWorkAreaId(this.tvControlItem.SelectedNodeID);
 | 
						||
            if (iso != null)
 | 
						||
            {
 | 
						||
                PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("JointInfoOut.aspx?PipelineId={0}", this.tvControlItem.SelectedNodeID, "导出 - ")));
 | 
						||
            }
 | 
						||
            else if (workArea != null)
 | 
						||
            {
 | 
						||
                PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("JointInfoOut.aspx?WorkAreaId={0}", this.tvControlItem.SelectedNodeID, "导出 - ")));
 | 
						||
            }
 | 
						||
            else
 | 
						||
            {
 | 
						||
                Alert.ShowInTop(Resources.Lan.PleaseSelectPipelineOrArea, MessageBoxIcon.Warning);
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// 导出焊口初始信息
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="sender"></param>
 | 
						||
        /// <param name="e"></param>
 | 
						||
        protected void btnOut2_Click(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
 | 
						||
            //导出文件
 | 
						||
            string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
 | 
						||
            if (!Directory.Exists(filePath))
 | 
						||
            {
 | 
						||
                Directory.CreateDirectory(filePath);
 | 
						||
            }
 | 
						||
            string ReportFileName = filePath + "管道焊接工作记录.xlsx";
 | 
						||
 | 
						||
            string sqlStr = @"SELECT WeldSilkId,PipelineId,WorkAreaId,a.ProjectName,a.WeldJointCode,a.Specification,a.Material1Code,
 | 
						||
                                     a.WeldingMethodCode,a.WeldingDate,a.WeldSilkCode,a.WeldMatCode,a.BackingWelderCode,a.CoverWelderCode,
 | 
						||
                                     a.IsHotProess,(case a.IsHotProess when 1 then '是' else '否' end) as IsHotProessName,PrepareTemp,
 | 
						||
                                     WeldingLocationCode,a.WeldTypeCode,
 | 
						||
                                     (SELECT TOP 1 n.NDEReportNo FROM dbo.Batch_NDEItem n WHERE n.TrustBatchItemId=
 | 
						||
                                     (SELECT TOP 1 bt.TrustBatchItemId FROM dbo.Batch_BatchTrustItem bt WHERE bt.WeldJointId=a.WeldJointId)) AS NDEReportNo
 | 
						||
                                FROM View_Pipeline_WeldJoint as a 
 | 
						||
                               WHERE 1= 1 AND PipelineId =@PipelineId and Is_hjName='是'  ";
 | 
						||
            List<SqlParameter> listStr = new List<SqlParameter>();
 | 
						||
            listStr.Add(new SqlParameter("@PipelineId", this.tvControlItem.SelectedNodeID));
 | 
						||
            SqlParameter[] parameter = listStr.ToArray();
 | 
						||
            DataTable tb = SQLHelper.GetDataTableRunText(sqlStr, parameter);
 | 
						||
 | 
						||
            var titleQuery = from a in Funs.DB.Pipeline_Pipeline
 | 
						||
                             join b in Funs.DB.Base_Project on a.ProjectId equals b.ProjectId
 | 
						||
                             join c in Funs.DB.Project_WorkArea on a.WorkAreaId equals c.WorkAreaId
 | 
						||
                             select new { a.PipelineId, a.PipelineCode, b.EnProjectName, b.ProjectName, c.WorkAreaName, c.EnWorkAreaName };
 | 
						||
            var titleModel = titleQuery.FirstOrDefault();
 | 
						||
            if (titleModel != null && tb.Rows.Count > 0)
 | 
						||
            {
 | 
						||
                int rowIndex = 0;
 | 
						||
                XSSFWorkbook hssfworkbook = new XSSFWorkbook();
 | 
						||
                XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("管道焊接工作记录");
 | 
						||
 | 
						||
                #region 列宽                
 | 
						||
 | 
						||
                ws.SetColumnWidth(0, 18 * 256);
 | 
						||
                ws.SetColumnWidth(1, 9 * 256);
 | 
						||
                ws.SetColumnWidth(2, 6 * 256);
 | 
						||
                ws.SetColumnWidth(3, 12 * 256);
 | 
						||
                ws.SetColumnWidth(4, 18 * 256);
 | 
						||
                ws.SetColumnWidth(5, 15 * 256);
 | 
						||
                ws.SetColumnWidth(6, 15 * 256);
 | 
						||
                ws.SetColumnWidth(7, 13 * 256);
 | 
						||
                ws.SetColumnWidth(8, 10 * 256);
 | 
						||
                ws.SetColumnWidth(9, 10 * 256);
 | 
						||
                ws.SetColumnWidth(10, 13 * 256);
 | 
						||
                ws.SetColumnWidth(11, 10 * 256);
 | 
						||
                ws.SetColumnWidth(12, 16 * 256);
 | 
						||
                ws.SetColumnWidth(13, 14 * 256);
 | 
						||
                ws.SetColumnWidth(14, 19 * 256);
 | 
						||
 | 
						||
                #endregion
 | 
						||
 | 
						||
                var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false);
 | 
						||
                var headerStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true, false);
 | 
						||
 | 
						||
                var tbNum = tb.Rows.Count;
 | 
						||
                var pageNum =
 | 
						||
                    tbNum < 17 ? 1
 | 
						||
                    : Math.Ceiling((float)(tbNum - 16) / 16) + 1;
 | 
						||
 | 
						||
                //循环页
 | 
						||
                for (int i = 1; i <= pageNum; i++)
 | 
						||
                {
 | 
						||
                    #region 头部
 | 
						||
 | 
						||
                    ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 5, style, 0, 14, true);
 | 
						||
                    //行0
 | 
						||
                    CellRangeAddress region = new CellRangeAddress(rowIndex, rowIndex + 3, 0, 2);
 | 
						||
                    ws.AddMergedRegion(region);
 | 
						||
                    ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J415-1");
 | 
						||
                    region = new CellRangeAddress(rowIndex, rowIndex + 3, 3, 10);
 | 
						||
                    ws.AddMergedRegion(region);
 | 
						||
                    string titleStr = i == 1 ? "管道焊接工作记录\r\nPiping Welding Record" : "管道焊接工作记录(续)\r\nPiping Welding Record";
 | 
						||
                    ws.GetRow(rowIndex).GetCell(3).SetCellValue(titleStr);
 | 
						||
                    ws.GetRow(rowIndex).GetCell(3).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 16, true, true);
 | 
						||
                    region = new CellRangeAddress(rowIndex, rowIndex, 11, 14);
 | 
						||
                    ws.AddMergedRegion(region);
 | 
						||
                    ws.GetRow(rowIndex).GetCell(11).SetCellValue($"工程名称:{titleModel.ProjectName}");
 | 
						||
                    ws.GetRow(rowIndex).GetCell(11).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10, true, false);
 | 
						||
 | 
						||
                    //行1
 | 
						||
                    region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 11, 14);
 | 
						||
                    ws.AddMergedRegion(region);
 | 
						||
                    ws.GetRow(rowIndex + 1).GetCell(11).SetCellValue($"Project Name:{titleModel.EnProjectName}");
 | 
						||
                    ws.GetRow(rowIndex + 1).GetCell(11).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 9, true, false);
 | 
						||
 | 
						||
                    //行2
 | 
						||
                    region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 11, 14);
 | 
						||
                    ws.AddMergedRegion(region);
 | 
						||
                    ws.GetRow(rowIndex + 2).GetCell(11).SetCellValue($"单位工程名称:{titleModel.WorkAreaName}");
 | 
						||
                    ws.GetRow(rowIndex + 2).GetCell(11).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10, true, false);
 | 
						||
 | 
						||
                    //行3
 | 
						||
                    region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 11, 14);
 | 
						||
                    ws.AddMergedRegion(region);
 | 
						||
                    ws.GetRow(rowIndex + 3).GetCell(11).SetCellValue($"Unit Name:{titleModel.EnWorkAreaName}");
 | 
						||
                    ws.GetRow(rowIndex + 3).GetCell(11).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10, true, false);
 | 
						||
 | 
						||
                    //画线
 | 
						||
                    RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex, rowIndex, 11, 14), ws);
 | 
						||
                    RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 11, 14), ws);
 | 
						||
                    RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 11, 14), ws);
 | 
						||
                    RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 11, 14), ws);
 | 
						||
                    RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 11, 14), ws);
 | 
						||
                    RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 3, rowIndex + 3, 11, 14), ws);
 | 
						||
 | 
						||
                    //行4行5
 | 
						||
                    region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 0, 0);
 | 
						||
                    ws.AddMergedRegion(region);
 | 
						||
                    ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("管道编号/单线号\r\nPiping No./Line No");
 | 
						||
                    region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 1, 2);
 | 
						||
                    ws.AddMergedRegion(region);
 | 
						||
                    ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("焊口编号\r\nWeld No.");
 | 
						||
                    region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 3, 3);
 | 
						||
                    ws.AddMergedRegion(region);
 | 
						||
                    ws.GetRow(rowIndex + 4).GetCell(3).SetCellValue("焊接形式\r\nWeld Type.");
 | 
						||
                    region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 4, 4);
 | 
						||
                    ws.AddMergedRegion(region);
 | 
						||
                    ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue("焊工代号\r\nWelder's Stamp No.");
 | 
						||
                    region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 5, 5);
 | 
						||
                    ws.AddMergedRegion(region);
 | 
						||
                    ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("规格mm\r\nSpecification\r\nmm");
 | 
						||
                    region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 6, 6);
 | 
						||
                    ws.AddMergedRegion(region);
 | 
						||
                    ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("材质\r\nMaterial");
 | 
						||
                    region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 7, 7);
 | 
						||
                    ws.AddMergedRegion(region);
 | 
						||
                    ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("焊接位置\r\nWelding\r\nPosition");
 | 
						||
                    region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 8, 9);
 | 
						||
                    ws.AddMergedRegion(region);
 | 
						||
                    ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("焊接方法\r\nWelding Process");
 | 
						||
                    region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 10, 11);
 | 
						||
                    ws.AddMergedRegion(region);
 | 
						||
                    ws.GetRow(rowIndex + 4).GetCell(10).SetCellValue("焊材牌号\r\nWelding Material Designation");
 | 
						||
                    region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 12, 12);
 | 
						||
                    ws.AddMergedRegion(region);
 | 
						||
                    ws.GetRow(rowIndex + 4).GetCell(12).SetCellValue("实际预热温度℃\r\nActual Preheating Temperature ℃");
 | 
						||
                    region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 13, 13);
 | 
						||
                    ws.AddMergedRegion(region);
 | 
						||
                    ws.GetRow(rowIndex + 4).GetCell(13).SetCellValue("焊接日期\r\nWelding Date");
 | 
						||
                    region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 14, 14);
 | 
						||
                    ws.AddMergedRegion(region);
 | 
						||
                    ws.GetRow(rowIndex + 4).GetCell(14).SetCellValue("无损检查报告\r\nNDE Report.");
 | 
						||
 | 
						||
 | 
						||
                    ws.GetRow(rowIndex + 4).GetCell(0).CellStyle = ws.GetRow(rowIndex + 4).GetCell(1).CellStyle
 | 
						||
                        = ws.GetRow(rowIndex + 4).GetCell(3).CellStyle = ws.GetRow(rowIndex + 4).GetCell(4).CellStyle
 | 
						||
                        = ws.GetRow(rowIndex + 4).GetCell(5).CellStyle = ws.GetRow(rowIndex + 4).GetCell(6).CellStyle
 | 
						||
                        = ws.GetRow(rowIndex + 4).GetCell(7).CellStyle = ws.GetRow(rowIndex + 4).GetCell(8).CellStyle
 | 
						||
                        = ws.GetRow(rowIndex + 4).GetCell(10).CellStyle = ws.GetRow(rowIndex + 4).GetCell(12).CellStyle
 | 
						||
                        = ws.GetRow(rowIndex + 4).GetCell(13).CellStyle = ws.GetRow(rowIndex + 4).GetCell(14).CellStyle
 | 
						||
                        = headerStyle;
 | 
						||
                    #endregion
 | 
						||
 | 
						||
                    #region 表格
 | 
						||
 | 
						||
                    ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 6, rowIndex + 21, style, 0, 14);
 | 
						||
                    var dataTit = rowIndex + 6;
 | 
						||
                    var tIndex = 5 + 16;
 | 
						||
                    var dStart = 0;
 | 
						||
                    var dEnd = 0;
 | 
						||
                    if (i == 1)
 | 
						||
                    {
 | 
						||
                        dStart = 0;
 | 
						||
                        dEnd = 16;
 | 
						||
                    }
 | 
						||
                    else
 | 
						||
                    {
 | 
						||
                        dStart = i == 2 ? 16 : ((i - 2) * 16) + 16;
 | 
						||
                        dEnd = ((i - 1) * 16) + 16;
 | 
						||
                    }
 | 
						||
 | 
						||
                    //合并单元格
 | 
						||
                    for (int hb = dataTit; hb <= rowIndex + tIndex; hb++)
 | 
						||
                    {
 | 
						||
                        region = new CellRangeAddress(hb, hb, 1, 2);
 | 
						||
                        ws.AddMergedRegion(region);
 | 
						||
                        region = new CellRangeAddress(hb, hb, 8, 9);
 | 
						||
                        ws.AddMergedRegion(region);
 | 
						||
                        region = new CellRangeAddress(hb, hb, 10, 11);
 | 
						||
                        ws.AddMergedRegion(region);
 | 
						||
                    }
 | 
						||
 | 
						||
                    //获取当前页数据
 | 
						||
                    var pageTb = GetPageToTable(tb, dStart, dEnd);
 | 
						||
                    for (int j = 0; j < pageTb.Rows.Count; j++)
 | 
						||
                    {
 | 
						||
                        int dataIndex = dataTit + j;
 | 
						||
                        //管道编号/单线号                        
 | 
						||
                        ws.GetRow(dataIndex).GetCell(0).SetCellValue(titleModel.PipelineCode);
 | 
						||
                        //焊口编号
 | 
						||
                        ws.GetRow(dataIndex).GetCell(1).SetCellValue(tb.Rows[i]["WeldJointCode"].ToString());
 | 
						||
                        //焊接形式
 | 
						||
                        ws.GetRow(dataIndex).GetCell(3).SetCellValue(tb.Rows[i]["WeldTypeCode"].ToString());
 | 
						||
                        //焊工代号
 | 
						||
                        List<string> welderStr = new List<string>();
 | 
						||
                        if (!string.IsNullOrWhiteSpace(tb.Rows[i]["BackingWelderCode"].ToString()))
 | 
						||
                        {
 | 
						||
                            welderStr.Add(tb.Rows[i]["BackingWelderCode"].ToString());
 | 
						||
                        }
 | 
						||
                        if (!string.IsNullOrWhiteSpace(tb.Rows[i]["CoverWelderCode"].ToString()))
 | 
						||
                        {
 | 
						||
                            welderStr.Add(tb.Rows[i]["CoverWelderCode"].ToString());
 | 
						||
                        }
 | 
						||
                        if (welderStr.Count > 0) welderStr = welderStr.GroupBy(x => x).Select(x => x.Key).ToList();
 | 
						||
                        ws.GetRow(dataIndex).GetCell(4).SetCellValue(string.Join("/", welderStr));
 | 
						||
                        //规格mm
 | 
						||
                        ws.GetRow(dataIndex).GetCell(5).SetCellValue(tb.Rows[i]["Specification"].ToString());
 | 
						||
                        //材质
 | 
						||
                        ws.GetRow(dataIndex).GetCell(6).SetCellValue(tb.Rows[i]["Material1Code"].ToString());
 | 
						||
                        //焊接位置
 | 
						||
                        ws.GetRow(dataIndex).GetCell(7).SetCellValue(tb.Rows[i]["WeldingLocationCode"].ToString());
 | 
						||
                        //焊接方法
 | 
						||
                        ws.GetRow(dataIndex).GetCell(8).SetCellValue(tb.Rows[i]["WeldingMethodCode"].ToString());
 | 
						||
                        //焊材牌号
 | 
						||
                        List<string> silkMats = new List<string>();
 | 
						||
                        if (!string.IsNullOrWhiteSpace(tb.Rows[i]["WeldSilkCode"].ToString()))
 | 
						||
                        {
 | 
						||
                            silkMats.Add(tb.Rows[i]["WeldSilkCode"].ToString());
 | 
						||
                        }
 | 
						||
                        if (!string.IsNullOrWhiteSpace(tb.Rows[i]["WeldMatCode"].ToString()))
 | 
						||
                        {
 | 
						||
                            silkMats.Add(tb.Rows[i]["WeldMatCode"].ToString());
 | 
						||
                        }
 | 
						||
                        if (silkMats.Count > 0) silkMats = silkMats.GroupBy(x => x).Select(x => x.Key).ToList();
 | 
						||
                        ws.GetRow(dataIndex).GetCell(10).SetCellValue(string.Join("/", silkMats));
 | 
						||
                        //实际预热温度
 | 
						||
                        ws.GetRow(dataIndex).GetCell(12).SetCellValue(tb.Rows[i]["PrepareTemp"].ToString());
 | 
						||
                        //焊接日期
 | 
						||
                        ws.GetRow(dataIndex).GetCell(13).SetCellValue(tb.Rows[i]["WeldingDate"].ToString());
 | 
						||
                        //无损检查报告
 | 
						||
                        ws.GetRow(dataIndex).GetCell(14).SetCellValue(tb.Rows[i]["NDEReportNo"].ToString());
 | 
						||
                    }
 | 
						||
 | 
						||
                    rowIndex += tIndex;
 | 
						||
 | 
						||
                    #endregion
 | 
						||
 | 
						||
                    #region 尾部
 | 
						||
 | 
						||
                    ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 7, style, 0, 14, false, true);
 | 
						||
 | 
						||
                    //合并单元格
 | 
						||
                    for (int hb = rowIndex + 1; hb <= rowIndex + 7; hb++)
 | 
						||
                    {
 | 
						||
                        for (int c = 0; c <= 14; c++)
 | 
						||
                        {
 | 
						||
                            if (hb >= rowIndex + 1 && hb <= rowIndex + 6)
 | 
						||
                            {
 | 
						||
                                ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true, false);
 | 
						||
                            }
 | 
						||
                            if (hb == rowIndex + 7)
 | 
						||
                            {
 | 
						||
                                ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true, false);
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        region = new CellRangeAddress(hb, hb, 0, 3);
 | 
						||
                        ws.AddMergedRegion(region);
 | 
						||
                        region = new CellRangeAddress(hb, hb, 4, 9);
 | 
						||
                        ws.AddMergedRegion(region);
 | 
						||
                        region = new CellRangeAddress(hb, hb, 10, 14);
 | 
						||
                        ws.AddMergedRegion(region);
 | 
						||
                    }
 | 
						||
 | 
						||
                    //行1
 | 
						||
                    ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("建设/监理单位");
 | 
						||
                    ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue("总承包单位\r\nGeneral Contractor");
 | 
						||
                    ws.GetRow(rowIndex + 1).GetCell(10).SetCellValue("施工单位\r\nConstruction Contractor");
 | 
						||
                    //行2
 | 
						||
                    ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("专业工程师\r\nDiscipline Engineer:");
 | 
						||
                    ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue("专业工程师\r\nDiscipline Engineer:");
 | 
						||
                    ws.GetRow(rowIndex + 2).GetCell(10).SetCellValue("记录人 :\r\nRecord Prepared by:");
 | 
						||
                    //行3
 | 
						||
                    ws.GetRow(rowIndex + 4).GetCell(10).SetCellValue("质量检查员:\r\nQuality Inspector:");
 | 
						||
                    //行5
 | 
						||
                    ws.GetRow(rowIndex + 6).GetCell(10).SetCellValue("焊接责任工程师:\r\nWelding Engineer:");
 | 
						||
                    //行6
 | 
						||
                    ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("日期Date:       年       月       日");
 | 
						||
                    ws.GetRow(rowIndex + 7).GetCell(4).SetCellValue("日期Date:       年       月       日");
 | 
						||
                    ws.GetRow(rowIndex + 7).GetCell(10).SetCellValue("日期Date:       年       月       日");
 | 
						||
 | 
						||
                    #endregion
 | 
						||
 | 
						||
                    ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 8, rowIndex + 9, style, 0, 14, false, false, true);
 | 
						||
                    rowIndex += 10;
 | 
						||
                    ws.SetRowBreak(rowIndex - 1);
 | 
						||
                }
 | 
						||
 | 
						||
                ws.FitToPage = true;
 | 
						||
                ws.PrintSetup.FitWidth = 1;
 | 
						||
                ws.PrintSetup.FitHeight = short.MaxValue;
 | 
						||
 | 
						||
 | 
						||
                ws.SetMargin(MarginType.LeftMargin, 0.3);
 | 
						||
                ws.SetMargin(MarginType.RightMargin, 0.2);
 | 
						||
                ws.PrintSetup.Landscape = true;
 | 
						||
                //ws.PrintSetup.Scale = 70;
 | 
						||
                ws.ForceFormulaRecalculation = true;
 | 
						||
                ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small;
 | 
						||
 | 
						||
 | 
						||
                //ws.PrintSetup.FitWidth = 1;
 | 
						||
                //ws.PrintSetup.FitHeight = 0;
 | 
						||
                //ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small;
 | 
						||
 | 
						||
                //ws.FitToPage = true;
 | 
						||
                //ws.SetMargin(MarginType.LeftMargin, 0.3);
 | 
						||
                //ws.SetMargin(MarginType.RightMargin, 0.2);
 | 
						||
                //ws.PrintSetup.Landscape = true;
 | 
						||
                //ws.PrintSetup.Scale = 75;
 | 
						||
                //ws.PrintSetup.PaperSize = 9;
 | 
						||
                //ws.ForceFormulaRecalculation = true;
 | 
						||
 | 
						||
                using (FileStream filess = System.IO.File.OpenWrite(ReportFileName))
 | 
						||
                {
 | 
						||
                    hssfworkbook.Write(filess);
 | 
						||
                }
 | 
						||
                FileInfo filet = new FileInfo(ReportFileName);
 | 
						||
                Response.Clear();
 | 
						||
                Response.Charset = "GB2312";
 | 
						||
                Response.ContentEncoding = System.Text.Encoding.UTF8;
 | 
						||
                // 添加头信息,为"文件下载/另存为"对话框指定默认文件名
 | 
						||
                Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("管道焊接工作记录.xlsx"));
 | 
						||
                // 添加头信息,指定文件大小,让浏览器能够显示下载进度
 | 
						||
                Response.AddHeader("Content-Length", filet.Length.ToString());
 | 
						||
                // 指定返回的是一个不能被客户端读取的流,必须被下载
 | 
						||
                Response.ContentType = "application/ms-excel";
 | 
						||
                // 把文件流发送到客户端
 | 
						||
                Response.WriteFile(filet.FullName);
 | 
						||
                // 停止页面的执行
 | 
						||
                Response.End();
 | 
						||
            }
 | 
						||
            else
 | 
						||
            {
 | 
						||
                Alert.ShowInTop("无数据!", MessageBoxIcon.Warning);
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// 导出焊口初始信息
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="sender"></param>
 | 
						||
        /// <param name="e"></param>
 | 
						||
        //protected void btnOut2_Click(object sender, EventArgs e)
 | 
						||
        //{
 | 
						||
        //    string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
 | 
						||
        //    //导出文件
 | 
						||
        //    string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
 | 
						||
        //    if (!Directory.Exists(filePath))
 | 
						||
        //    {
 | 
						||
        //        Directory.CreateDirectory(filePath);
 | 
						||
        //    }
 | 
						||
        //    string ReportFileName = filePath + "管道焊接工作记录.xlsx";
 | 
						||
 | 
						||
        //    string sqlStr = @"SELECT WeldSilkId,PipelineId,WorkAreaId,a.ProjectName,a.WeldJointCode,a.Specification,a.Material1Code,a.WeldingMethodCode,a.WeldingDate,a.WeldSilkCode,a.WeldMatCode,a.BackingWelderCode,a.CoverWelderCode,a.IsHotProess,(case a.IsHotProess when 1 then '是' else '否' end) as IsHotProessName,PrepareTemp,WeldingLocationCode FROM View_Pipeline_WeldJoint as a WHERE 1= 1 AND PipelineId =@PipelineId and Is_hjName='是' ";
 | 
						||
        //    List<SqlParameter> listStr = new List<SqlParameter>();
 | 
						||
        //    listStr.Add(new SqlParameter("@PipelineId", this.tvControlItem.SelectedNodeID));
 | 
						||
        //    SqlParameter[] parameter = listStr.ToArray();
 | 
						||
        //    DataTable tb = SQLHelper.GetDataTableRunText(sqlStr, parameter);
 | 
						||
 | 
						||
        //    var titleQuery = from a in Funs.DB.Pipeline_Pipeline
 | 
						||
        //                     join b in Funs.DB.Base_Project on a.ProjectId equals b.ProjectId
 | 
						||
        //                     join c in Funs.DB.Base_Unit on a.UnitId equals c.UnitId
 | 
						||
        //                     select new { a.PipelineId, a.PipelineCode, b.ProjectName, c.UnitName };
 | 
						||
        //    var titleModel = titleQuery.FirstOrDefault();
 | 
						||
        //    if (titleModel != null && tb.Rows.Count > 0)
 | 
						||
        //    {
 | 
						||
        //        int rowIndex = 0;
 | 
						||
        //        XSSFWorkbook hssfworkbook = new XSSFWorkbook();
 | 
						||
        //        XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("管道焊接工作记录");
 | 
						||
 | 
						||
        //        #region 列宽
 | 
						||
 | 
						||
        //        ws.SetColumnWidth(0, 18 * 256);
 | 
						||
        //        ws.SetColumnWidth(1, 13 * 256);
 | 
						||
        //        ws.SetColumnWidth(2, 10 * 256);
 | 
						||
        //        ws.SetColumnWidth(3, 18 * 256);
 | 
						||
        //        ws.SetColumnWidth(4, 13 * 256);
 | 
						||
        //        ws.SetColumnWidth(5, 16 * 256);
 | 
						||
        //        ws.SetColumnWidth(6, 13 * 256);
 | 
						||
        //        ws.SetColumnWidth(7, 13 * 256);
 | 
						||
        //        ws.SetColumnWidth(8, 9 * 256);
 | 
						||
        //        ws.SetColumnWidth(9, 13 * 256);
 | 
						||
        //        ws.SetColumnWidth(10, 13 * 256);
 | 
						||
        //        ws.SetColumnWidth(11, 17 * 256);
 | 
						||
        //        ws.SetColumnWidth(12, 13 * 256);
 | 
						||
 | 
						||
        //        #endregion
 | 
						||
 | 
						||
        //        var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false);
 | 
						||
 | 
						||
        //        var tbNum = tb.Rows.Count;
 | 
						||
        //        var pageNum =
 | 
						||
        //            tbNum < 17 ? 1
 | 
						||
        //            : Math.Ceiling((float)(tbNum - 16) / 16) + 1;
 | 
						||
 | 
						||
        //        //循环页
 | 
						||
        //        for (int i = 1; i <= pageNum; i++)
 | 
						||
        //        {
 | 
						||
        //            #region 头部
 | 
						||
 | 
						||
        //            ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 5, style, 0, 12, true);
 | 
						||
        //            //行0
 | 
						||
        //            CellRangeAddress region = new CellRangeAddress(rowIndex, rowIndex + 3, 0, 2);
 | 
						||
        //            ws.AddMergedRegion(region);
 | 
						||
        //            ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J415-1");
 | 
						||
        //            region = new CellRangeAddress(rowIndex, rowIndex + 3, 3, 9);
 | 
						||
        //            ws.AddMergedRegion(region);
 | 
						||
        //            string titleStr = i == 1 ? "管道焊接工作记录\r\nPiping Welding Record" : "管道焊接工作记录(续)\r\nPiping Welding Record";
 | 
						||
        //            ws.GetRow(rowIndex).GetCell(3).SetCellValue(titleStr);
 | 
						||
        //            ws.GetRow(rowIndex).GetCell(3).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 16, true, true);
 | 
						||
        //            region = new CellRangeAddress(rowIndex, rowIndex, 10, 12);
 | 
						||
        //            ws.AddMergedRegion(region);
 | 
						||
        //            ws.GetRow(rowIndex).GetCell(10).SetCellValue($"工程名称:{titleModel.ProjectName}");
 | 
						||
        //            ws.GetRow(rowIndex).GetCell(10).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10, true, false);
 | 
						||
 | 
						||
        //            //行1
 | 
						||
        //            region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 10, 12);
 | 
						||
        //            ws.AddMergedRegion(region);
 | 
						||
        //            ws.GetRow(rowIndex + 1).GetCell(10).SetCellValue("Project Name:");
 | 
						||
        //            ws.GetRow(rowIndex + 1).GetCell(10).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 9, true, false);
 | 
						||
 | 
						||
        //            //行2
 | 
						||
        //            region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 10, 12);
 | 
						||
        //            ws.AddMergedRegion(region);
 | 
						||
        //            ws.GetRow(rowIndex + 2).GetCell(10).SetCellValue($"单位工程名称:{titleModel.UnitName}");
 | 
						||
        //            ws.GetRow(rowIndex + 2).GetCell(10).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10, true, false);
 | 
						||
 | 
						||
        //            //行3
 | 
						||
        //            region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 10, 12);
 | 
						||
        //            ws.AddMergedRegion(region);
 | 
						||
        //            ws.GetRow(rowIndex + 3).GetCell(10).SetCellValue("Unit Name:");
 | 
						||
        //            ws.GetRow(rowIndex + 3).GetCell(10).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10, true, false);
 | 
						||
 | 
						||
        //            //行4行5
 | 
						||
        //            region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 0, 0);
 | 
						||
        //            ws.AddMergedRegion(region);
 | 
						||
        //            ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("管道编号/单线号\r\nPiping No./Line No");
 | 
						||
        //            region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 1, 2);
 | 
						||
        //            ws.AddMergedRegion(region);
 | 
						||
        //            ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("焊口编号\r\nWeld No.");
 | 
						||
        //            region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 3, 3);
 | 
						||
        //            ws.AddMergedRegion(region);
 | 
						||
        //            ws.GetRow(rowIndex + 4).GetCell(3).SetCellValue("焊工代号\r\nWelder's Stamp No.");
 | 
						||
        //            region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 4, 4);
 | 
						||
        //            ws.AddMergedRegion(region);
 | 
						||
        //            ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue("规格mm\r\nSpecification\r\nmm");
 | 
						||
        //            region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 5, 5);
 | 
						||
        //            ws.AddMergedRegion(region);
 | 
						||
        //            ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("材质\r\nMaterial");
 | 
						||
        //            region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 6, 6);
 | 
						||
        //            ws.AddMergedRegion(region);
 | 
						||
        //            ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("焊接位置\r\nWelding\r\nPosition");
 | 
						||
        //            region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 7, 8);
 | 
						||
        //            ws.AddMergedRegion(region);
 | 
						||
        //            ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("焊接方法\r\nWelding Process");
 | 
						||
        //            region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 9, 10);
 | 
						||
        //            ws.AddMergedRegion(region);
 | 
						||
        //            ws.GetRow(rowIndex + 4).GetCell(9).SetCellValue("焊材牌号\r\nWelding Material Designation");
 | 
						||
        //            region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 11, 11);
 | 
						||
        //            ws.AddMergedRegion(region);
 | 
						||
        //            ws.GetRow(rowIndex + 4).GetCell(11).SetCellValue("实际预热温度℃\r\nActual Preheating Temperature ℃");
 | 
						||
        //            region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 12, 12);
 | 
						||
        //            ws.AddMergedRegion(region);
 | 
						||
        //            ws.GetRow(rowIndex + 4).GetCell(12).SetCellValue("焊接日期\r\nWelding Date");
 | 
						||
 | 
						||
        //            #endregion
 | 
						||
 | 
						||
        //            #region 表格
 | 
						||
 | 
						||
        //            ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 6, rowIndex + 21, style, 0, 12);
 | 
						||
        //            var dataTit = rowIndex + 6;
 | 
						||
        //            var tIndex = 5 + 16;
 | 
						||
        //            var dStart = 0;
 | 
						||
        //            var dEnd = 0;
 | 
						||
        //            if (i == 1)
 | 
						||
        //            {
 | 
						||
        //                dStart = 0;
 | 
						||
        //                dEnd = 16;
 | 
						||
        //            }
 | 
						||
        //            else
 | 
						||
        //            {
 | 
						||
        //                dStart = i == 2 ? 16 : ((i - 2) * 16) + 16;
 | 
						||
        //                dEnd = ((i - 1) * 16) + 16;
 | 
						||
        //            }
 | 
						||
 | 
						||
        //            //合并单元格
 | 
						||
        //            for (int hb = dataTit; hb <= rowIndex + tIndex; hb++)
 | 
						||
        //            {
 | 
						||
        //                region = new CellRangeAddress(hb, hb, 1, 2);
 | 
						||
        //                ws.AddMergedRegion(region);
 | 
						||
        //                region = new CellRangeAddress(hb, hb, 7, 8);
 | 
						||
        //                ws.AddMergedRegion(region);
 | 
						||
        //                region = new CellRangeAddress(hb, hb, 9, 10);
 | 
						||
        //                ws.AddMergedRegion(region);
 | 
						||
        //            }
 | 
						||
 | 
						||
        //            //获取当前页数据
 | 
						||
        //            var pageTb = GetPageToTable(tb, dStart, dEnd);
 | 
						||
        //            for (int j = 0; j < pageTb.Rows.Count; j++)
 | 
						||
        //            {
 | 
						||
        //                int dataIndex = dataTit + j;
 | 
						||
        //                //管道编号/单线号                        
 | 
						||
        //                ws.GetRow(dataIndex).GetCell(0).SetCellValue(titleModel.PipelineCode);
 | 
						||
        //                //焊口编号
 | 
						||
        //                ws.GetRow(dataIndex).GetCell(1).SetCellValue(tb.Rows[i]["WeldJointCode"].ToString());
 | 
						||
        //                //焊工代号
 | 
						||
        //                List<string> welderStr = new List<string>();
 | 
						||
        //                if (!string.IsNullOrWhiteSpace(tb.Rows[i]["BackingWelderCode"].ToString()))
 | 
						||
        //                {
 | 
						||
        //                    welderStr.Add(tb.Rows[i]["BackingWelderCode"].ToString());
 | 
						||
        //                }
 | 
						||
        //                if (!string.IsNullOrWhiteSpace(tb.Rows[i]["CoverWelderCode"].ToString()))
 | 
						||
        //                {
 | 
						||
        //                    welderStr.Add(tb.Rows[i]["CoverWelderCode"].ToString());
 | 
						||
        //                }
 | 
						||
        //                if (welderStr.Count > 0) welderStr = welderStr.GroupBy(x => x).Select(x => x.Key).ToList();
 | 
						||
        //                ws.GetRow(dataIndex).GetCell(3).SetCellValue(string.Join("/", welderStr));
 | 
						||
        //                //规格mm
 | 
						||
        //                ws.GetRow(dataIndex).GetCell(4).SetCellValue(tb.Rows[i]["Specification"].ToString());
 | 
						||
        //                //材质
 | 
						||
        //                ws.GetRow(dataIndex).GetCell(5).SetCellValue(tb.Rows[i]["Material1Code"].ToString());
 | 
						||
        //                //焊接位置
 | 
						||
        //                ws.GetRow(dataIndex).GetCell(6).SetCellValue(tb.Rows[i]["WeldingLocationCode"].ToString());
 | 
						||
        //                //焊接方法
 | 
						||
        //                ws.GetRow(dataIndex).GetCell(7).SetCellValue(tb.Rows[i]["WeldingMethodCode"].ToString());
 | 
						||
        //                //焊材牌号
 | 
						||
        //                List<string> silkMats = new List<string>();
 | 
						||
        //                if (!string.IsNullOrWhiteSpace(tb.Rows[i]["WeldSilkCode"].ToString()))
 | 
						||
        //                {
 | 
						||
        //                    silkMats.Add(tb.Rows[i]["WeldSilkCode"].ToString());
 | 
						||
        //                }
 | 
						||
        //                if (!string.IsNullOrWhiteSpace(tb.Rows[i]["WeldMatCode"].ToString()))
 | 
						||
        //                {
 | 
						||
        //                    silkMats.Add(tb.Rows[i]["WeldMatCode"].ToString());
 | 
						||
        //                }
 | 
						||
        //                if (silkMats.Count > 0) silkMats = silkMats.GroupBy(x => x).Select(x => x.Key).ToList();
 | 
						||
        //                ws.GetRow(dataIndex).GetCell(9).SetCellValue(string.Join("/", silkMats));
 | 
						||
        //                //实际预热温度
 | 
						||
        //                ws.GetRow(dataIndex).GetCell(11).SetCellValue(tb.Rows[i]["PrepareTemp"].ToString());
 | 
						||
        //                //焊接日期
 | 
						||
        //                ws.GetRow(dataIndex).GetCell(12).SetCellValue(tb.Rows[i]["WeldingDate"].ToString());
 | 
						||
        //            }
 | 
						||
 | 
						||
        //            rowIndex += tIndex;
 | 
						||
 | 
						||
        //            #endregion
 | 
						||
 | 
						||
        //            #region 尾部
 | 
						||
 | 
						||
        //            ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 7, style, 0, 12, false, true);
 | 
						||
 | 
						||
        //            //合并单元格
 | 
						||
        //            for (int hb = rowIndex + 1; hb <= rowIndex + 7; hb++)
 | 
						||
        //            {
 | 
						||
        //                for (int c = 0; c <= 12; c++)
 | 
						||
        //                {
 | 
						||
        //                    if (hb >= rowIndex + 1 && hb <= rowIndex + 6)
 | 
						||
        //                    {
 | 
						||
        //                        ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true, false);
 | 
						||
        //                    }
 | 
						||
        //                    if (hb == rowIndex + 7)
 | 
						||
        //                    {
 | 
						||
        //                        ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true, false);
 | 
						||
        //                    }
 | 
						||
        //                }
 | 
						||
        //                region = new CellRangeAddress(hb, hb, 0, 3);
 | 
						||
        //                ws.AddMergedRegion(region);
 | 
						||
        //                region = new CellRangeAddress(hb, hb, 4, 8);
 | 
						||
        //                ws.AddMergedRegion(region);
 | 
						||
        //                region = new CellRangeAddress(hb, hb, 9, 12);
 | 
						||
        //                ws.AddMergedRegion(region);
 | 
						||
        //            }
 | 
						||
 | 
						||
        //            //行1
 | 
						||
        //            ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("建设/监理单位");
 | 
						||
        //            ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue("总承包单位\r\nGeneral Contractor");
 | 
						||
        //            ws.GetRow(rowIndex + 1).GetCell(9).SetCellValue("施工单位\r\nConstruction Contractor");
 | 
						||
        //            //行2
 | 
						||
        //            ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("专业工程师\r\nDiscipline Engineer:");
 | 
						||
        //            ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue("专业工程师\r\nDiscipline Engineer:");
 | 
						||
        //            ws.GetRow(rowIndex + 2).GetCell(9).SetCellValue("记录人 :\r\nRecord Prepared by:");
 | 
						||
        //            //行3
 | 
						||
        //            ws.GetRow(rowIndex + 4).GetCell(9).SetCellValue("质量检查员:\r\nQuality Inspector:");
 | 
						||
        //            //行5
 | 
						||
        //            ws.GetRow(rowIndex + 6).GetCell(9).SetCellValue("焊接责任工程师:\r\nWelding Engineer:");
 | 
						||
        //            //行6
 | 
						||
        //            ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("日期Date:       年       月       日");
 | 
						||
        //            ws.GetRow(rowIndex + 7).GetCell(4).SetCellValue("日期Date:       年       月       日");
 | 
						||
        //            ws.GetRow(rowIndex + 7).GetCell(9).SetCellValue("日期Date:       年       月       日");
 | 
						||
 | 
						||
        //            #endregion
 | 
						||
 | 
						||
        //            ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 8, rowIndex + 8, style, 0, 12, false, false, true);
 | 
						||
        //            rowIndex += 9;
 | 
						||
        //        }
 | 
						||
 | 
						||
        //        ws.SetMargin(MarginType.LeftMargin, 0.3);
 | 
						||
        //        ws.SetMargin(MarginType.RightMargin, 0.2);
 | 
						||
        //        ws.PrintSetup.Landscape = true;
 | 
						||
        //        ws.PrintSetup.Scale = 75;
 | 
						||
        //        ws.PrintSetup.PaperSize = 9;
 | 
						||
        //        ws.ForceFormulaRecalculation = true;
 | 
						||
 | 
						||
        //        using (FileStream filess = System.IO.File.OpenWrite(ReportFileName))
 | 
						||
        //        {
 | 
						||
        //            hssfworkbook.Write(filess);
 | 
						||
        //        }
 | 
						||
        //        FileInfo filet = new FileInfo(ReportFileName);
 | 
						||
        //        Response.Clear();
 | 
						||
        //        Response.Charset = "GB2312";
 | 
						||
        //        Response.ContentEncoding = System.Text.Encoding.UTF8;
 | 
						||
        //        // 添加头信息,为"文件下载/另存为"对话框指定默认文件名
 | 
						||
        //        Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("管道焊接工作记录.xlsx"));
 | 
						||
        //        // 添加头信息,指定文件大小,让浏览器能够显示下载进度
 | 
						||
        //        Response.AddHeader("Content-Length", filet.Length.ToString());
 | 
						||
        //        // 指定返回的是一个不能被客户端读取的流,必须被下载
 | 
						||
        //        Response.ContentType = "application/ms-excel";
 | 
						||
        //        // 把文件流发送到客户端
 | 
						||
        //        Response.WriteFile(filet.FullName);
 | 
						||
        //        // 停止页面的执行
 | 
						||
        //        Response.End();
 | 
						||
        //    }
 | 
						||
        //    else
 | 
						||
        //    {
 | 
						||
        //        Alert.ShowInTop("无数据!", MessageBoxIcon.Warning);
 | 
						||
        //    }
 | 
						||
 | 
						||
        //}
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// 导出方法
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="grid"></param>
 | 
						||
        /// <returns></returns>
 | 
						||
        private string GetGridTableHtml(Grid grid)
 | 
						||
        {
 | 
						||
            StringBuilder sb = new StringBuilder();
 | 
						||
            sb.Append("<meta http-equiv=\"content-type\" content=\"application/excel; charset=UTF-8\"/>");
 | 
						||
            sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
 | 
						||
            sb.Append("<tr>");
 | 
						||
            foreach (GridColumn column in grid.Columns)
 | 
						||
            {
 | 
						||
                if (column.HeaderText != Resources.Lan.SerialNumber)
 | 
						||
                {
 | 
						||
                    sb.AppendFormat("<td>{0}</td>", column.HeaderText);
 | 
						||
                }
 | 
						||
            }
 | 
						||
            sb.Append("</tr>");
 | 
						||
            foreach (GridRow row in grid.Rows)
 | 
						||
            {
 | 
						||
                sb.Append("<tr>");
 | 
						||
                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("<td>{0}</td>", html);
 | 
						||
                    }
 | 
						||
                    //sb.AppendFormat("<td>{0}</td>", html);
 | 
						||
                }
 | 
						||
 | 
						||
                sb.Append("</tr>");
 | 
						||
            }
 | 
						||
 | 
						||
            sb.Append("</table>");
 | 
						||
 | 
						||
            return sb.ToString();
 | 
						||
        }
 | 
						||
        #endregion
 | 
						||
 | 
						||
        #region 选择要显示列
 | 
						||
        /// <summary>
 | 
						||
        /// 选择显示列
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="sender"></param>
 | 
						||
        /// <param name="e"></param>
 | 
						||
        protected void btnSelectColumn_Click(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            PageContext.RegisterStartupScript(Window4.GetShowReference(String.Format("JointShowColumn.aspx", "显示列 - ")));
 | 
						||
        }
 | 
						||
        #endregion
 | 
						||
 | 
						||
        #region 格式化字符串
 | 
						||
        /// <summary>
 | 
						||
        /// 转换探伤类型
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="pt"></param>
 | 
						||
        /// <returns></returns>
 | 
						||
        protected string ConvertDetectionType(object detectionType)
 | 
						||
        {
 | 
						||
            string detectionTypeName = string.Empty;
 | 
						||
            if (detectionType != null)
 | 
						||
            {
 | 
						||
                string[] ndtList = detectionType.ToString().Split('|');
 | 
						||
                foreach (string r in ndtList)
 | 
						||
                {
 | 
						||
                    var q = BLL.Base_DetectionTypeService.GetDetectionTypeByDetectionTypeId(r);
 | 
						||
                    if (q != null)
 | 
						||
                    {
 | 
						||
                        detectionTypeName = detectionTypeName + q.DetectionTypeCode + ",";
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            }
 | 
						||
            if (detectionTypeName.Length > 0)
 | 
						||
            {
 | 
						||
                detectionTypeName = detectionTypeName.Substring(0, detectionTypeName.Length - 1);
 | 
						||
            }
 | 
						||
            return detectionTypeName;
 | 
						||
        }
 | 
						||
 | 
						||
        protected string ConvertWeldSilkCode(object WeldSilkId)
 | 
						||
        {
 | 
						||
            string weldSilkCode = string.Empty;
 | 
						||
            if (WeldSilkId != null)
 | 
						||
            {
 | 
						||
                weldSilkCode = BLL.Pipeline_WeldingDailyService.GetWeldSilkCode(WeldSilkId.ToString());
 | 
						||
            }
 | 
						||
            return weldSilkCode;
 | 
						||
        }
 | 
						||
        #endregion
 | 
						||
 | 
						||
        #region 显示列
 | 
						||
        protected void Window4_Close(object sender, WindowCloseEventArgs e)
 | 
						||
        {
 | 
						||
            this.BindGrid();
 | 
						||
            //显示列
 | 
						||
            Model.Sys_UserShowColumns c = BLL.UserShowColumnsService.GetColumnsByUserId(this.CurrUser.UserId, "Joint");
 | 
						||
            if (c != null)
 | 
						||
            {
 | 
						||
                this.GetShowColumn(c.Columns);
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// 显示的列
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="column"></param>
 | 
						||
        private void GetShowColumn(string column)
 | 
						||
        {
 | 
						||
            if (!string.IsNullOrEmpty(column))
 | 
						||
            {
 | 
						||
                this.Grid1.Columns[1].Hidden = true;
 | 
						||
                this.Grid1.Columns[2].Hidden = true;
 | 
						||
                this.Grid1.Columns[3].Hidden = true;
 | 
						||
                this.Grid1.Columns[4].Hidden = true;
 | 
						||
                this.Grid1.Columns[5].Hidden = true;
 | 
						||
                this.Grid1.Columns[6].Hidden = true;
 | 
						||
                this.Grid1.Columns[7].Hidden = true;
 | 
						||
                this.Grid1.Columns[8].Hidden = true;
 | 
						||
                this.Grid1.Columns[9].Hidden = true;
 | 
						||
                this.Grid1.Columns[10].Hidden = true;
 | 
						||
                this.Grid1.Columns[11].Hidden = true;
 | 
						||
                this.Grid1.Columns[12].Hidden = true;
 | 
						||
                this.Grid1.Columns[13].Hidden = true;
 | 
						||
                this.Grid1.Columns[14].Hidden = true;
 | 
						||
                this.Grid1.Columns[15].Hidden = true;
 | 
						||
                this.Grid1.Columns[16].Hidden = true;
 | 
						||
                this.Grid1.Columns[17].Hidden = true;
 | 
						||
                this.Grid1.Columns[18].Hidden = true;
 | 
						||
                this.Grid1.Columns[19].Hidden = true;
 | 
						||
                this.Grid1.Columns[20].Hidden = true;
 | 
						||
                this.Grid1.Columns[21].Hidden = true;
 | 
						||
                this.Grid1.Columns[22].Hidden = true;
 | 
						||
                this.Grid1.Columns[23].Hidden = true;
 | 
						||
                this.Grid1.Columns[24].Hidden = true;
 | 
						||
                this.Grid1.Columns[25].Hidden = true;
 | 
						||
                this.Grid1.Columns[26].Hidden = true;
 | 
						||
                this.Grid1.Columns[27].Hidden = true;
 | 
						||
                this.Grid1.Columns[28].Hidden = true;
 | 
						||
                this.Grid1.Columns[29].Hidden = true;
 | 
						||
                this.Grid1.Columns[30].Hidden = true;
 | 
						||
                this.Grid1.Columns[31].Hidden = true;
 | 
						||
                this.Grid1.Columns[32].Hidden = true;
 | 
						||
                List<string> columns = column.Split(',').ToList();
 | 
						||
                foreach (var item in columns)
 | 
						||
                {
 | 
						||
                    if (!string.IsNullOrEmpty(item))
 | 
						||
                    {
 | 
						||
                        this.Grid1.Columns[Convert.ToInt32(item)].Hidden = false;
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            }
 | 
						||
        }
 | 
						||
        #endregion
 | 
						||
 | 
						||
        #region 私有方法
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// 获取某一列的所有值
 | 
						||
        /// </summary>
 | 
						||
        /// <typeparam name="T">列数据类型</typeparam>
 | 
						||
        /// <param name="dtSource">数据表</param>
 | 
						||
        /// <param name="filedName">列名</param>
 | 
						||
        /// <returns></returns>
 | 
						||
        public static List<T> GetColumnValues<T>(DataTable dtSource, string filedName)
 | 
						||
        {
 | 
						||
            return (from r in dtSource.AsEnumerable() select r.Field<T>(filedName)).ToList<T>();
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// 创建列
 | 
						||
        /// </summary>
 | 
						||
        /// <returns></returns>
 | 
						||
        private XSSFSheet ExcelCreateRow(XSSFSheet ws, XSSFWorkbook hssfworkbook, int sRows, int eRows, ICellStyle style, int cStart, int cEnd, bool istitle = false, bool isend = false, bool isnobk = false)
 | 
						||
        {
 | 
						||
            for (int i = sRows; i <= eRows; i++)
 | 
						||
            {
 | 
						||
                ws.CreateRow(i);
 | 
						||
                if (istitle)
 | 
						||
                {
 | 
						||
                    ws.GetRow(i).HeightInPoints =
 | 
						||
                        i <= (sRows + 5) ? 25f :
 | 
						||
                        19.95f;
 | 
						||
                }
 | 
						||
                else
 | 
						||
                {
 | 
						||
                    if (isnobk)
 | 
						||
                    {
 | 
						||
                        ws.GetRow(i).HeightInPoints = 16f;
 | 
						||
                    }
 | 
						||
                    else
 | 
						||
                    {
 | 
						||
                        ws.GetRow(i).HeightInPoints = isend ? 25f : 19.95f;
 | 
						||
                    }
 | 
						||
                }
 | 
						||
                for (int j = cStart; j <= cEnd; j++)
 | 
						||
                {
 | 
						||
                    ws.GetRow(i).CreateCell(j);
 | 
						||
 | 
						||
                    if (isnobk)
 | 
						||
                    {
 | 
						||
                        ws.GetRow(i).GetCell(j).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true, false);
 | 
						||
                    }
 | 
						||
                    else
 | 
						||
                    {
 | 
						||
                        ws.GetRow(i).GetCell(j).CellStyle = style;
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            }
 | 
						||
            return ws;
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// 查询指定条数分页
 | 
						||
        /// </summary>
 | 
						||
        /// <returns></returns>
 | 
						||
        public static DataTable GetPageToTable(DataTable dt, int StartNum, int EndNum)
 | 
						||
        {
 | 
						||
            //0页代表每页数据,直接返回
 | 
						||
            if (EndNum == 0) return dt;
 | 
						||
            //数据源为空返回空DataTable
 | 
						||
            if (dt == null) return new DataTable();
 | 
						||
 | 
						||
            DataTable newdt = dt.Copy();
 | 
						||
            newdt.Clear();//copy dt的框架
 | 
						||
 | 
						||
            if (StartNum >= dt.Rows.Count)
 | 
						||
                return newdt;//源数据记录数小于等于要显示的记录,直接返回dt
 | 
						||
 | 
						||
            if (EndNum > dt.Rows.Count)
 | 
						||
                EndNum = dt.Rows.Count;
 | 
						||
            for (int i = StartNum; i <= EndNum - 1; i++)
 | 
						||
            {
 | 
						||
                DataRow newdr = newdt.NewRow();
 | 
						||
                DataRow dr = dt.Rows[i];
 | 
						||
                foreach (DataColumn column in dt.Columns)
 | 
						||
                {
 | 
						||
                    newdr[column.ColumnName] = dr[column.ColumnName];
 | 
						||
                }
 | 
						||
                newdt.Rows.Add(newdr);
 | 
						||
            }
 | 
						||
            return newdt;
 | 
						||
        }
 | 
						||
 | 
						||
        #endregion
 | 
						||
    }
 | 
						||
} |