using BLL;
using System;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using Newtonsoft.Json.Linq;
using System.IO; 
namespace FineUIPro.Web.HJGL.TestPackageManage
{
    public partial class TestPackageImport : PageBase
    {/// 
     /// 未通过数
     /// 
        public int Count
        {
            get
            {
                return (int)ViewState["Count"];
            }
            set
            {
                ViewState["Count"] = value;
            }
        }
        public string PTP_ID
        {
            get
            {
                return (string)ViewState["PTP_ID"];
            }
            set
            {
                ViewState["PTP_ID"] = value;
            }
        }
        #region 加载
        /// 
        /// 加载页面
        /// 
        /// 
        /// 
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString();
                this.InitTreeMenu();//加载树
                this.GetButtonPower();
            }
        }
        #endregion
        #region 导入
        /// 
        /// 导入焊接日报
        /// 
        /// 
        /// 
        protected void btnImport_Click(object sender, EventArgs e)
        {
            if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.HJGL_TestPackageImportMenuId, BLL.Const.BtnSave))
            {
                PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TestPackageDataIn.aspx", "导入 - ")));
            }
            else
            {
                ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
            }
        }
        #endregion
        #region 加载树装置-单位-工作区
        /// 
        /// 加载树
        /// 
        private void InitTreeMenu()
        {
            this.tvControlItem.Nodes.Clear();
            TreeNode rootNode = new TreeNode();
            rootNode.Text = "单位-区域";
            rootNode.NodeID = "0";
            rootNode.Expanded = true;
            this.tvControlItem.Nodes.Add(rootNode);
            List units = null;
            var unit = BLL.ProjectUnitService.GetProjectUnitById(this.CurrUser.UnitId);
            if (unit == null || unit.UnitType == BLL.Const.ProjectUnitType_1 || unit.UnitType == BLL.Const.ProjectUnitType_3)
            {
                if (BLL.WorkAreaService.IsSupervisor(this.CurrUser.UnitId, this.CurrUser.LoginProjectId))
                {
                    units = (from x in Funs.DB.Base_Unit
                             join y in Funs.DB.ProjectData_WorkArea on x.UnitId equals y.UnitId
                             where (x.UnitId == this.CurrUser.UnitId || y.SupervisorUnitId == this.CurrUser.UnitId) && y.ProjectId == this.CurrUser.LoginProjectId
                             select x).Distinct().ToList();
                }
                else
                {
                    units = BLL.UnitService.GetUnitByProjectIdUnitTypeList(this.CurrUser.LoginProjectId, "2");
                }
            }
            else
            {
                units = (from x in Funs.DB.Base_Unit where x.UnitId == this.CurrUser.UnitId select x).ToList();
            }
            List testPackageLists = Funs.DB.TP_TestPackageImport.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).ToList(); ///试压包
            if (units != null)
            {
                foreach (var item in units)
                {
                    TreeNode rootUnitNode = new TreeNode();//定义根节点
                    rootUnitNode.Text = item.UnitName;
                    rootUnitNode.NodeID = item.UnitId;
                    rootUnitNode.Expanded = true;
                    rootUnitNode.ToolTip = "施工单位";
                    rootNode.Nodes.Add(rootUnitNode);
                    var lists = testPackageLists.Where(x => x.UnitId == item.UnitId).ToList();
                    this.BindNodes(rootUnitNode, lists);
                }
            }
            else
            {
                Alert.ShowInTop("请先增加施工单位!", MessageBoxIcon.Warning);
                return;
            }
        }
        #endregion
        #region 绑定树节点
        /// 
        ///  绑定树节点
        /// 
        /// 
        private void BindNodes(TreeNode node, List testPackageLists)
        {
            if (node.ToolTip == "施工单位")
            {
                var workareaId = (from x in testPackageLists select x.WorkAreaId).Distinct();
                if (workareaId.Count() > 0)
                {
                    var workareas = from x in Funs.DB.ProjectData_WorkArea where workareaId.Contains(x.WorkAreaId) orderby x.WorkAreaCode select x;
                    foreach (var q in workareas)
                    {
                        TreeNode newNode = new TreeNode();
                        newNode.Text = q.WorkAreaCode + q.WorkAreaName;
                        newNode.NodeID = q.WorkAreaId + "|" + node.NodeID; ;
                        newNode.ToolTip = "区域";
                        newNode.Expanded = true;
                        node.Nodes.Add(newNode);
                        this.BindNodes(newNode, testPackageLists);
                    }
                }
            }
            else if (node.ToolTip == "区域")
            {
                string installationId = Funs.GetStrListByStr(node.NodeID, '|')[0];
                var dReports = from x in testPackageLists
                               where x.WorkAreaId == installationId && x.UnitId == node.ParentNode.NodeID
                               orderby x.PTP_TestPackageNo descending
                               select x;
                foreach (var item in dReports)
                {
                    TreeNode newNode = new TreeNode();
                    if (!string.IsNullOrEmpty(item.PTP_TestPackageNo))
                    {
                        newNode.Text = item.PTP_TestPackageNo;
                    }
                    else
                    {
                        newNode.Text = "未知";
                    }
                    if (!item.PTP_AduditDate.HasValue || string.IsNullOrEmpty(item.PTP_Auditer))
                    {
                        newNode.Text = "" + newNode.Text + "";
                        node.Text = "" + node.Text + "";
                        node.ParentNode.Text = "" + node.ParentNode.Text + "";
                    }
                    newNode.NodeID = item.PTP_ID;
                    newNode.EnableClickEvent = true;
                    node.Nodes.Add(newNode);
                }
            }
        }
        #endregion
        protected void tvControlItem_NodeExpand(object sender, TreeNodeEventArgs e)
        {
        }
        #region 点击TreeView
        /// 
        /// 点击TreeView
        /// 
        /// 
        /// 
        protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
        {
            this.PTP_ID = this.tvControlItem.SelectedNodeID;
            this.BindGrid();
        }
        #endregion
        #region 数据绑定
        /// 
        /// 数据绑定
        /// 
        private void BindGrid()
        {
            var testPackage = Funs.DB.TP_TestPackageImport.FirstOrDefault(x => x.PTP_ID == this.tvControlItem.SelectedNodeID);
            if (testPackage != null)
            {
                if (this.GetButtonPower(BLL.Const.BtnAuditing))
                {
                    if (testPackage.PTP_AduditDate.HasValue)
                    {
                        this.btnCancelAudit.Hidden = false;
                        this.btnAudit.Hidden = true;
                        this.printType.Hidden = false;
                        this.btnPrint.Hidden = false;
                    }
                    else
                    {
                        this.btnCancelAudit.Hidden = true;
                        this.btnAudit.Hidden = false;
                        this.printType.Hidden = true;
                        this.btnPrint.Hidden = true;
                    }
                }
            }
            string strSql = @"select a.[PT_ID],a.[FluidCode],a.[OperPress],
                                    (select sum(e.JOT_Size) from PW_JointInfo e where   e.ISO_ID  = a.ISO_ID) JOT_DoneDia, 
                                    (select sum(e.JOT_Size) from PW_JointInfo e where e.DReportID is null and  e.ISO_ID  = a.ISO_ID)  JOT_NotDoneDia,  
                                a.[OperTemperature],a.[PipingGrade],a.[PAndID],a.[NDECode],a.[Size],a.[Caliber],a.[Start],
                                a.[End],a.[leakPress],a.[PurgeWay],a.[Remark], b.[ISO_IsoNo],c.PipingClassCode,
                                b.ISO_DesignPress,b.ISO_DesignTemperature,d.MediumName,b.ISO_TestPress,
                                b.ISO_TestTemperature,e.IsoInfoCount,e.IsoInfoCountT,e.CountS,e.CountU,e.NDTR_Name,e.NDTR_Rate,e.Ratio,e.RatioJ from  TP_IsoImportList a left join  PW_IsoInfo b on a.ISO_ID=b.ISO_ID
                                left join Base_PipingClass c on c.PipingClassId=b.PipingClassId
                                left join Base_TestMedium  d on d.TestMediumId = b.TestMediumId
                                left join View_TestPackageManageAudit e on a.ISO_ID = e.ISO_ID
                                where a.[PTP_ID] = '" + this.tvControlItem.SelectedNodeID + "'";
            if (!string.IsNullOrEmpty(txtJOT_JointNo.Text))
            {
                strSql += " and b.[ISO_IsoNo] like '%" + this.txtJOT_JointNo.Text + "%'";
            }
            strSql += " order by b.ISO_IsoNo   ";
            DataTable tb = SQLHelper.GetDataTableRunText(strSql, null);
            Count = 0;
            if (tb != null)
            {
                foreach (DataRow row in tb.Rows)
                {
                    if (!string.IsNullOrEmpty(row["JOT_NotDoneDia"].ToString()))
                    {
                        Count++;
                    }
                }
            }
            // 2.获取当前分页数据
            //var table = this.GetPagedDataTable(Grid1, tb1);
            Grid1.RecordCount = tb.Rows.Count;
            //tb = GetFilteredTable(Grid1.FilteredData, tb);
            var table = this.GetPagedDataTable(Grid1, tb);
            Grid1.DataSource = table;
            Grid1.DataBind();
        }
        #endregion
        #region 分页排序
        #region 页索引改变事件
        /// 
        /// 页索引改变事件
        /// 
        /// 
        /// 
        protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
        {
            BindGrid();
        }
        #endregion
        #region 排序
        /// 
        /// 排序
        /// 
        /// 
        /// 
        protected void Grid1_Sort(object sender, GridSortEventArgs e)
        {
            BindGrid();
        }
        #endregion
        #region 分页选择下拉改变事件
        /// 
        /// 分页选择下拉改变事件
        /// 
        /// 
        /// 
        protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
        {
            Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
            BindGrid();
        }
        #endregion
        #endregion
        #region 焊口信息 维护事件
        /// 
        /// Grid双击事件
        /// 
        /// 
        /// 
        //protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
        //{
        //    if (GetButtonPower(Const.BtnModify))
        //    {
        //        PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("CheckManageStaticEdit.aspx?CheckStaticId={0}", Grid1.SelectedRowID, "编辑 - ")));
        //    }
        //    else
        //    {
        //        Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
        //        return;
        //    }
        //}
        /// 
        /// 焊口信息编辑
        /// 
        /// 
        /// 
        protected void btnMenuEdit_Click(object sender, EventArgs e)
        {
            if (GetButtonPower(Const.BtnModify))
            {
                if (Grid1.SelectedRowIndexArray.Length == 0)
                {
                    Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning);
                    return;
                }
                PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("CheckManageStaticEdit.aspx?CheckStaticId={0}", Grid1.SelectedRowID, "维护 - ")));
            }
            else
            {
                Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
                return;
            }
        }
        #region Grid行绑定事件
        /// 
        /// Grid行绑定事件
        /// 
        /// 
        /// 
        protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
        {
            if (e.Values[3] != null && !string.IsNullOrEmpty(e.Values[3].ToString()))
            {
                e.RowCssClass = "color1";
            }
        }
        #endregion
        /// 
        /// 删除按钮
        /// 
        /// 
        /// 
        protected void btnDelete_Click(object sender, EventArgs e)
        {
            if (GetButtonPower(Const.BtnDelete))
            {
                if (string.IsNullOrEmpty(tvControlItem.SelectedNodeID))
                {
                    Alert.ShowInTop("请选择一个试验包!", MessageBoxIcon.Warning);
                    return;
                }
                var testPackage = Funs.DB.TP_TestPackageImport.FirstOrDefault(x => x.PTP_ID == tvControlItem.SelectedNodeID);
                if (testPackage != null && testPackage.PTP_AduditDate.HasValue)
                {
                    Alert.ShowInTop("此试压包已审核不能删除!", MessageBoxIcon.Warning);
                    return;
                }
                var isoImportList = Funs.DB.TP_IsoImportList.Where(x => x.PTP_ID == tvControlItem.SelectedNodeID).ToList();
                Funs.DB.TP_IsoImportList.DeleteAllOnSubmit(isoImportList);
                 Funs.DB.TP_TestPackageImport.DeleteOnSubmit(testPackage);
                Funs.DB.SubmitChanges();
                ShowNotify("删除成功!", MessageBoxIcon.Success);
                this.InitTreeMenu();
                this.BindGrid();
            }
            else
            {
                Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
            }
        }
        protected void btnMenuDelete_Click(object sender, EventArgs e)
        {
            if (this.GetButtonPower(BLL.Const.BtnDelete))
            {
                if (Grid1.SelectedRowIndexArray.Length == 0)
                {
                    Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning);
                    return;
                }
                foreach (int rowIndex in Grid1.SelectedRowIndexArray)
                {
                    string rowID = Grid1.DataKeys[rowIndex][0].ToString();
                    var testPackage =  Funs.DB.TP_TestPackageImport.FirstOrDefault(x => x.PTP_ID == tvControlItem.SelectedNodeID) ;
                    if (testPackage != null && testPackage.PTP_AduditDate.HasValue)
                    {
                        Alert.ShowInTop("此试压包已审核不能删除!", MessageBoxIcon.Warning);
                        return;
                    }
                    else
                    {
                        var isoImportList = Funs.DB.TP_IsoImportList.FirstOrDefault(x => x.PT_ID == rowID );
                        Funs.DB.TP_IsoImportList.DeleteOnSubmit(isoImportList); 
                    }
                }
                Funs.DB.SubmitChanges();
                this.InitTreeMenu();
                this.BindGrid();
            }
            else
            {
                Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
            }
        }
        #endregion
        #region 关闭弹出窗口及刷新页面
        /// 
        /// 关闭弹出窗口
        /// 
        /// 
        /// 
        protected void Window1_Close(object sender, WindowCloseEventArgs e)
        {
            this.InitTreeMenu();//加载树
            this.BindGrid();
        }
        /// 
        /// 查询
        /// 
        /// 
        /// 
        protected void TextBox_TextChanged(object sender, EventArgs e)
        {
            this.BindGrid();
        }
        /// 
        /// 查询
        /// 
        /// 
        /// 
        protected void Tree_TextChanged(object sender, EventArgs e)
        {
            this.InitTreeMenu();
            this.BindGrid();
        }
        #endregion
       
        #region 审核
        /// 
        /// 审核
        /// 
        /// 
        /// 
        protected void btnAudit_Click(object sender, EventArgs e)
        {
            if (this.GetButtonPower(BLL.Const.BtnAuditing))
            {
                if (!string.IsNullOrEmpty(this.tvControlItem.SelectedNodeID))
                {
                    var updateTestPackage = Funs.DB.TP_TestPackageImport.FirstOrDefault(x => x.PTP_ID == this.tvControlItem.SelectedNodeID);
                    if (updateTestPackage != null)
                    {
                        if (Count == 0)
                        {
                            updateTestPackage.PTP_AduditDate = DateTime.Now;
                            updateTestPackage.PTP_Auditer = this.CurrUser.UserId;
                            Funs.DB.SubmitChanges();
                            ShowNotify("审核完成!", MessageBoxIcon.Success);
                            this.btnCancelAudit.Hidden = false;
                            this.btnAudit.Hidden = true;
                            this.InitTreeMenu();
                        }
                        else
                        {
                            Alert.ShowInTop("管线未全部通过不允许审核操作!", MessageBoxIcon.Warning);
                            return;
                        }
                    }
                    else
                    {
                        Alert.ShowInTop("请选择要审核的单据!", MessageBoxIcon.Warning);
                        return;
                    }
                }
            }
            else
            {
                Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
            }
        }
        #endregion
        #region 取消审核
        /// 
        /// 取消审核
        /// 
        /// 
        /// 
        protected void btnCancelAudit_Click(object sender, EventArgs e)
        {
            if (this.GetButtonPower(BLL.Const.BtnAuditing))
            {
                if (!string.IsNullOrEmpty(this.tvControlItem.SelectedNodeID))
                {
                    var updateTestPackage = Funs.DB.TP_TestPackageImport.FirstOrDefault(x=>x.PTP_ID== this.tvControlItem.SelectedNodeID);
                    if (updateTestPackage != null)
                    {
                        updateTestPackage.PTP_Auditer = null;
                        updateTestPackage.PTP_AduditDate = null;
                        Funs.DB.SubmitChanges();
                       ShowNotify("取消审核完成!", MessageBoxIcon.Success);
                        this.InitTreeMenu();
                        this.btnAudit.Hidden = false;
                        this.btnCancelAudit.Hidden = true;
                    }
                }
            }
            else
            {
                Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
            }
        }
        #endregion
        #region 获取按钮权限
        /// 
        /// 获取按钮权限
        /// 
        /// 
        /// 
        private bool GetButtonPower(string button)
        {
            return BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.HJGL_TestPackageImportMenuId, button);
        }
        private void GetButtonPower()
        {
            var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.HJGL_TestPackageImportMenuId);
            if (buttonList.Count() > 0)
            {
                if (buttonList.Contains(BLL.Const.BtnAdd))
                {
                    this.btnImport.Hidden = false;
                }
                //if (buttonList.Contains(BLL.Const.BtnModify))
                //{
                //    this.btnMenuEdit.Hidden = false;
                //}
                if (buttonList.Contains(BLL.Const.BtnDelete))
                {
                    this.btnDelete.Hidden = false;
                    this.btnMenuDelete.Hidden = false;
                }
                //if (buttonList.Contains(BLL.Const.BtnSave))
                //{
                //    this.btnMenuEdit.Hidden = false;
                //}
                if (buttonList.Contains(BLL.Const.BtnAuditing))
                {
                    if (this.btnAudit.Hidden)
                        this.btnAudit.Hidden = false;
                    if (this.btnCancelAudit.Hidden)
                        this.btnCancelAudit.Hidden = false;
                }
            }
        }
        #endregion
        #region 查询
        /// 
        /// 查询
        /// 
        /// 
        /// 
        protected void txtJOT_JointNo_TextChanged(object sender, EventArgs e)
        {
            BindGrid();
        }
        #endregion
        protected void btnPrint_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(this.PTP_ID))
            {
                var updateTestPackage = Funs.DB.TP_TestPackageImport.FirstOrDefault(x=>x.PTP_ID==this.PTP_ID);
                if (updateTestPackage != null)
                {
                    if (Count == 0)
                    {
                        string initTemplatePath = "";
                        string rootPath = Server.MapPath("~/");
                        BLL.Common.FastReportService.ResetData();
                        initTemplatePath = GetFastReportItem(updateTestPackage, printType.SelectedValue).ReportPath;
                    //    switch (printType.SelectedValue)
                    //    {
                    //        case "0":// 试压包管线清单 
                    //            {
                    //                var iosList = BLL.TestPackageManageImportService.GetIsoInfosByPTP_ID(this.PTP_ID);
                    //                if (iosList.Count > 0)
                    //                {
                    //                    var q = iosList[0];
                    //                    var ids = string.Join(",", iosList.Select(x => x.UnitId).ToList());
                    //                    Dictionary keyValuePairs = new Dictionary();
                    //                    var workArea = BLL.WorkAreaService.getWorkAreaByWorkAreaId(q.WorkAreaId);
                    //                    var install = BLL.Project_InstallationService.GetInstallationByInstallationId(workArea.InstallationId);
                    //                    var unitNames = BLL.UnitService.getUnitNamesUnitIds(ids);
                    //                    var myNames = BLL.UnitService.getUnitNamesUnitIds(this.CurrUser.UnitId);
                    //                    keyValuePairs.Add("InstallationName", install.InstallationName);
                    //                    keyValuePairs.Add("workAreaName", workArea.WorkAreaName);
                    //                    keyValuePairs.Add("UnitNames", unitNames);
                    //                    keyValuePairs.Add("TestPackageNo", updateTestPackage.PTP_TestPackageNo);
                    //                    keyValuePairs.Add("EPCPC", myNames);
                    //                    BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
                    //                    DataTable dt = new DataTable();
                    //                    dt.TableName = "Data";
                    //                    dt.Columns.Add("ISO_IsoNo");
                    //                    dt.Columns.Add("ISO_DesignPress");
                    //                    dt.Columns.Add("ISO_TestPress");
                    //                    dt.Columns.Add("ISO_DesignTemperature");
                    //                    dt.Columns.Add("Index");
                    //                    for (int i = 0; i < iosList.Count; i++)
                    //                    {
                    //                        var newrow = dt.NewRow();
                    //                        newrow["Index"] = i + 1;
                    //                        newrow["ISO_IsoNo"] = iosList[i].ISO_IsoNo;
                    //                        newrow["ISO_DesignPress"] = iosList[i].ISO_DesignPress;
                    //                        newrow["ISO_TestPress"] = iosList[i].ISO_TestPress;
                    //                        newrow["ISO_DesignTemperature"] = iosList[i].ISO_DesignTemperature;
                    //                        dt.Rows.Add(newrow);
                    //                    }
                    //                    BLL.Common.FastReportService.AddFastreportTable(dt);
                    //                    initTemplatePath = "File\\Fastreport\\试压包管线清单.frx";
                    //                }
                    //            }
                    //            break;
                    //        case "1":// 管道焊接工作记录 
                    //            {
                    //                var iosList = BLL.TestPackageManageImportService.GetIsoInfosByPTP_ID(this.PTP_ID);
                    //                if (iosList.Count > 0)
                    //                {
                    //                    var q = iosList[0];
                    //                    var isoIds = string.Join("','", iosList.Select(x => x.ISO_ID).ToArray());
                    //                    Dictionary keyValuePairs = new Dictionary();
                    //                    var workArea = BLL.WorkAreaService.getWorkAreaByWorkAreaId(q.WorkAreaId);
                    //                    var install = BLL.Project_InstallationService.GetInstallationByInstallationId(workArea.InstallationId);
                    //                    keyValuePairs.Add("InstallationName", install.InstallationName);
                    //                    keyValuePairs.Add("WorkAreaName", workArea.WorkAreaName);
                    //                    keyValuePairs.Add("ProjectName", ProjectService.GetProjectNameByProjectId(this.CurrUser.LoginProjectId));
                    //                    BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
                    //                    string strSql = @"SELECT  '' WED_Code, '' WED_Name,'' JOT_WeldDate_Month,''JOT_WeldDate_Day,jointInfo.JOT_ID, 
                    //                    jointInfo.ProjectId, 
                    //                    jointInfo.JOT_JointNo, 
                    //                    jointInfo.is_hj, 
                    //                    jointInfo.JointStatusName, 
                    //                    jointInfo.JOT_TrustFlagName, 
                    //                    jointInfo.JOT_CheckFlagName, 
                    //                    jointInfo.ISO_ID, 
                    //                    jointInfo.ISO_IsoNo, 
                    //                    jointInfo.ISO_IsoNumber,
                    //                    jointInfo.WorkAreaId, 
                    //                    jointInfo.WorkAreaCode, 
                    //                    jointInfo.JOT_WeldDate, 
                    //                    jointInfo.JOT_DailyReportNo, 
                    //                    jointInfo.STE_Name1, 
                    //                    jointInfo.STE_Name2, 
                    //                    jointInfo.Component1, 
                    //                    jointInfo.Component2, 
                    //                    jointInfo.WED_Code1, 
                    //                    jointInfo.WED_Name1, 
                    //                    jointInfo.WED_Code2, 
                    //                    jointInfo.WED_Name2, 
                    //                    jointInfo.JOT_JointDesc, 
                    //                    jointInfo.JOT_Dia, 
                    //                    jointInfo.JOT_Size, 
                    //                    jointInfo.JOT_Sch, 
                    //                    jointInfo.JOT_FactSch, 
                    //                    jointInfo.GrooveTypeName, 
                    //                    jointInfo.JOTY_ID, 
                    //                    jointInfo.WeldTypeName, 
                    //                    jointInfo.WME_ID, 
                    //                    jointInfo.WeldingMethodName, 
                    //                    jointInfo.WeldSilk, 
                    //                    jointInfo.WeldMat, 
                    //                    jointInfo.WLO_Code, 
                    //                    jointInfo.WeldingLocationName, 
                    //                    jointInfo.JOT_DoneDin, 
                    //                    jointInfo.JOT_PrepareTemp, 
                    //                    jointInfo.JOT_JointAttribute, 
                    //                    jointInfo.JOT_CellTemp, 
                    //                    jointInfo.JOT_LastTemp, 
                    //                    jointInfo.JOT_HeartNo1, 
                    //                    jointInfo.JOT_HeartNo2, 
                    //                    jointInfo.PointDate, 
                    //                    jointInfo.PointNo, 
                    //                    jointInfo.CH_TrustCode, 
                    //                    jointInfo.CH_TrustDate, 
                    //                    jointInfo.JOT_FaceCheckResult, 
                    //                    jointInfo.JOT_FaceCheckDate, 
                    //                    jointInfo.JOT_FaceChecker, 
                    //                    jointInfo.IS_Proess, 
                    //                    jointInfo.JOT_BelongPipe, 
                    //                    jointInfo.JOT_Electricity, 
                    //                    jointInfo.JOT_Voltage, 
                    //                    jointInfo.JOT_ProessDate, 
                    //                    jointInfo.JOT_HotRpt, 
                    //                    jointInfo.JOT_Remark,jointInfo.JOT_Location"
                    //                    + @" from View_JointInfo as jointInfo "
                    //                                    + @" WHERE jointInfo.ProjectId= @projectId ";
                    //                    List listStr = new List
                    //{
                    //    new SqlParameter("@projectId", this.CurrUser.LoginProjectId),
                    //};
                    //                    strSql += "AND jointInfo.ISO_ID in ('" + isoIds + "')  order by jointInfo.ISO_ID ,JOT_JointNo ";
                    //                    SqlParameter[] parameter5 = listStr.ToArray();
                    //                    DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter5);
                    //                    tb.Columns.Add("index", typeof(System.Int16));
                    //                    foreach (DataRow row in tb.Rows)
                    //                    {
                    //                        try
                    //                        {
                    //                            row["index"] = int.Parse(System.Text.RegularExpressions.Regex.Replace(row["JOT_JointNo"].ToString(), @"[^0-9]+", ""));
                    //                        }
                    //                        catch (Exception ex)
                    //                        {
                    //                            row["index"] = 0;
                    //                        }
                    //                    }
                    //                    DataView dv = tb.DefaultView;//获取表视图
                    //                    dv.Sort = "index,JOT_JointNo ASC";//按照ID倒序排序
                    //                    tb = dv.ToTable();//转为表
                    //                    if (tb != null)
                    //                    {
                    //                        tb.TableName = "Table1";
                    //                        for (int i = 0; i < tb.Rows.Count; i++)
                    //                        {
                    //                            string WED_Name = "";
                    //                            if (!string.IsNullOrEmpty(tb.Rows[i]["WED_Code1"].ToString()))
                    //                                WED_Name += tb.Rows[i]["WED_Code1"].ToString();
                    //                            if (!string.IsNullOrEmpty(tb.Rows[i]["WED_Code2"].ToString()))
                    //                                WED_Name += "," + tb.Rows[i]["WED_Code1"].ToString();
                    //                            tb.Rows[i]["WED_Code"] = WED_Name;
                    //                        }
                    //                    }
                    //                    BLL.Common.FastReportService.AddFastreportTable(tb);
                    //                    initTemplatePath = "File\\Fastreport\\试压管道焊接工作记录.frx";
                    //                }
                    //            }
                    //            break;
                    //        case "2":// 管道无损检测结果汇总表 
                    //            {
                    //                var iosList = BLL.TestPackageManageImportService.GetIsoInfosByPTP_ID(this.PTP_ID);
                    //                if (iosList.Count > 0)
                    //                {
                    //                    var q = iosList[0];
                    //                    var isoNos = string.Join("','", iosList.Select(x => x.ISO_IsoNo).ToArray());
                    //                    var isoIds = string.Join("','", iosList.Select(x => x.ISO_ID).ToArray());
                    //                    var unitIds = string.Join("','", iosList.Select(x => x.UnitId).ToArray());
                    //                    Dictionary keyValuePairs = new Dictionary();
                    //                    var workArea = BLL.WorkAreaService.getWorkAreaByWorkAreaId(q.WorkAreaId);
                    //                    var install = BLL.Project_InstallationService.GetInstallationByInstallationId(workArea.InstallationId);
                    //                    var unitNames = BLL.UnitService.getUnitNamesUnitIds(unitIds);
                    //                    keyValuePairs.Add("installName", install.InstallationName);
                    //                    keyValuePairs.Add("workAreaName", workArea.WorkAreaName);
                    //                    keyValuePairs.Add("WorkAreaCode", workArea.WorkAreaCode);
                    //                    keyValuePairs.Add("UnitName2", unitNames);
                    //                    if (!string.IsNullOrEmpty(q.PipingClassId))
                    //                    {
                    //                        var PipingClass = BLL.Base_PipingClassService.GetPipingClassByPipingClassId(q.PipingClassId);
                    //                        if (PipingClass != null)
                    //                        {
                    //                            keyValuePairs.Add("ISOLevel", PipingClass.PipingClassName);
                    //                        }
                    //                    }
                    //                    keyValuePairs.Add("isoCode", isoNos);
                    //                    string sqlNDTCriteria = @"select distinct CH_NDTCriteria from CH_Trust a 
                    //                                            left join  CH_TrustItem b on a.CH_TrustID = b.CH_TrustID
                    //                                            left join PW_JointInfo c on b.JOT_ID = c.JOT_ID 
                    //                                            where c.ISO_ID in ('" + isoIds + "')";
                    //                    DataTable tbNDTCriteria = SQLHelper.GetDataTableRunText(sqlNDTCriteria, null);
                    //                    if (tbNDTCriteria != null)
                    //                    {
                    //                        string NDTCriteria = "";
                    //                        foreach (DataRow row in tbNDTCriteria.Rows)
                    //                        {
                    //                            NDTCriteria += row["CH_NDTCriteria"].ToString() + ",";
                    //                        }
                    //                        keyValuePairs.Add("CH_NDTCriteria", NDTCriteria.TrimEnd(','));
                    //                    }
                    //                    var Unit1 = BLL.UnitService.GetUnitByProjectIdUnitTypeList(this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_3);
                    //                    if (Unit1 != null)
                    //                    {
                    //                        var unitNames1 = string.Join(",", Unit1.Select(x => x.UnitName).ToArray());
                    //                        keyValuePairs.Add("UnitName1", unitNames1);
                    //                    }
                    //                    BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
                    //                    DataTable dt1 = new DataTable();
                    //                    dt1.TableName = "Customers";
                    //                    dt1.Columns.Add("detectType");
                    //                    var newrow = dt1.NewRow();
                    //                    newrow["detectType"] = "RT";
                    //                    dt1.Rows.Add(newrow);
                    //                    newrow = dt1.NewRow();
                    //                    newrow["detectType"] = "UT";
                    //                    dt1.Rows.Add(newrow);
                    //                    newrow = dt1.NewRow();
                    //                    newrow["detectType"] = "MT";
                    //                    dt1.Rows.Add(newrow);
                    //                    newrow = dt1.NewRow();
                    //                    newrow["detectType"] = "PT";
                    //                    dt1.Rows.Add(newrow);
                    //                    newrow = dt1.NewRow();
                    //                    newrow["detectType"] = "";
                    //                    dt1.Rows.Add(newrow);
                    //                    BLL.Common.FastReportService.AddFastreportTable(dt1);
                    //                    string sql3 = @"select   ISO_IsoNumber,JOT_JointNo,welder.WED_Code   JOT_CellWelder,CHT_CheckCode, 
                    //                                            case when e.CH_NDTMethod='296add43-e979-4cf3-b13e-a68bb00a75d2' or  e.CH_NDTMethod='a5e9c1bb-1fad-4e65-82bf-03003cc56ab4' then c.CHT_CheckResult end as CHT_CheckResult1,
                    //                                            case when e.CH_NDTMethod='296add43-e979-4cf3-b13e-a68bb00a75d2' or e.CH_NDTMethod='a5e9c1bb-1fad-4e65-82bf-03003cc56ab4' then c.CHT_CheckNo end as CHT_CheckNo1,
                    //                                            case when e.CH_NDTMethod='c1a39a7f-141f-4243-a23d-34f4c9026d5f' or e.CH_NDTMethod='2460a5e3-b5fb-40d6-942e-3092ddc11a72' then c.CHT_CheckResult end as CHT_CheckResult2,
                    //                                            case when e.CH_NDTMethod='c1a39a7f-141f-4243-a23d-34f4c9026d5f' or e.CH_NDTMethod='2460a5e3-b5fb-40d6-942e-3092ddc11a72' then c.CHT_CheckNo end as CHT_CheckNo2 
                    //                                            from PW_JointInfo a
                    //                                            left join PW_IsoInfo b on a.ISO_ID=b.ISO_ID
                    //                                            left join CH_CheckItem  c on c.JOT_ID=a.JOT_ID
                    //                                            left join CH_Check d on c.CHT_CheckID=d.CHT_CheckID
                    //                                            left join CH_Trust e on d.CH_TrustID=e.CH_TrustID  
                    //                                            left join BS_Welder as welder on welder.WED_ID=JOT_CellWelder 
                    //                                    where a.ISO_ID in ('" + isoIds + "')";
                    //                    DataTable dt = SQLHelper.GetDataTableRunText(sql3, null);
                    //                    dt.TableName = "DataTable2";
                    //                    BLL.Common.FastReportService.AddFastreportTable(dt);
                    //                    initTemplatePath = "File\\Fastreport\\试压管道无损检测结果汇总表.frx";
                    //                }
                    //            }
                    //            break;
                    //        case "3":// 弹簧支/吊架安装检验记录
                    //            {
                    //                var iosList = BLL.TestPackageManageImportService.GetIsoInfosByPTP_ID(this.PTP_ID);
                    //                if (iosList.Count > 0)
                    //                {
                    //                    var q = iosList[0];
                    //                    var isoIds = string.Join("','", iosList.Select(x => x.ISO_ID).ToArray());
                    //                    Dictionary keyValuePairs = new Dictionary();
                    //                    var workArea = BLL.WorkAreaService.getWorkAreaByWorkAreaId(q.WorkAreaId);
                    //                    var install = BLL.Project_InstallationService.GetInstallationByInstallationId(workArea.InstallationId);
                    //                    keyValuePairs.Add("InstallationName", install.InstallationName);
                    //                    keyValuePairs.Add("WorkAreaName", workArea.WorkAreaName);
                    //                    BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
                    //                    string sql3 = @"select   ISO_IsoNo  from
                    //                                             PW_IsoInfo 
                    //                                    where ISO_ID in ('" + isoIds + "')";
                    //                    DataTable dt = SQLHelper.GetDataTableRunText(sql3, null);
                    //                    dt.TableName = "Table1";
                    //                    BLL.Common.FastReportService.AddFastreportTable(dt);
                    //                    initTemplatePath = "File\\Fastreport\\试压弹簧支吊架安装检验记录.frx";
                    //                }
                    //            }
                    //            break;
                    //        case "4":// 滑动/固定管托安装检验
                    //            {
                    //                var iosList = BLL.TestPackageManageImportService.GetIsoInfosByPTP_ID(this.PTP_ID);
                    //                if (iosList.Count > 0)
                    //                {
                    //                    var q = iosList[0];
                    //                    var isoIds = string.Join("','", iosList.Select(x => x.ISO_ID).ToArray());
                    //                    Dictionary keyValuePairs = new Dictionary();
                    //                    var workArea = BLL.WorkAreaService.getWorkAreaByWorkAreaId(q.WorkAreaId);
                    //                    var install = BLL.Project_InstallationService.GetInstallationByInstallationId(workArea.InstallationId);
                    //                    keyValuePairs.Add("InstallationName", install.InstallationName);
                    //                    keyValuePairs.Add("WorkAreaName", workArea.WorkAreaName);
                    //                    BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
                    //                    string sql3 = @"select   ISO_IsoNo  from
                    //                                             PW_IsoInfo 
                    //                                    where ISO_ID in ('" + isoIds + "')";
                    //                    DataTable dt = SQLHelper.GetDataTableRunText(sql3, null);
                    //                    dt.TableName = "Table1";
                    //                    BLL.Common.FastReportService.AddFastreportTable(dt);
                    //                    initTemplatePath = "File\\Fastreport\\试压滑动固定管托安装检验.frx";
                    //                }
                    //            }
                    //            break;
                    //        case "5":// 管道补偿器安装检验记录
                    //            {
                    //                var iosList = BLL.TestPackageManageImportService.GetIsoInfosByPTP_ID(this.PTP_ID);
                    //                if (iosList.Count > 0)
                    //                {
                    //                    var q = iosList[0];
                    //                    var isoIds = string.Join("','", iosList.Select(x => x.ISO_ID).ToArray());
                    //                    var unitIds = string.Join("','", iosList.Select(x => x.UnitId).ToArray());
                    //                    Dictionary keyValuePairs = new Dictionary();
                    //                    var workArea = BLL.WorkAreaService.getWorkAreaByWorkAreaId(q.WorkAreaId);
                    //                    var install = BLL.Project_InstallationService.GetInstallationByInstallationId(workArea.InstallationId);
                    //                    var unitNames = BLL.UnitService.getUnitNamesUnitIds(unitIds);
                    //                    keyValuePairs.Add("installName", install.InstallationName);
                    //                    keyValuePairs.Add("workAreaName", workArea.WorkAreaName);
                    //                    BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
                    //                    DataTable dt = new DataTable();
                    //                    dt.Columns.Add("ISO_IsoNo");
                    //                    dt.TableName = "DataTable2";
                    //                    foreach (var item in iosList)
                    //                    {
                    //                        var newrow = dt.NewRow();
                    //                        newrow["ISO_IsoNo"] = item.ISO_IsoNo;
                    //                        dt.Rows.Add(newrow);
                    //                    }
                    //                    BLL.Common.FastReportService.AddFastreportTable(dt);
                    //                    initTemplatePath = "File\\Fastreport\\试压管道补偿器安装检验记录.frx";
                    //                }
                    //            }
                    //            break;
                    //        case "6":// 管道试压后安装、焊接及检验检查表
                    //            {
                    //                var iosList = BLL.TestPackageManageImportService.GetIsoInfosByPTP_ID(this.PTP_ID);
                    //                if (iosList.Count > 0)
                    //                {
                    //                    var q = iosList[0];
                    //                    var isoIds = string.Join("','", iosList.Select(x => x.ISO_ID).ToArray());
                    //                    Dictionary keyValuePairs = new Dictionary();
                    //                    keyValuePairs.Add("packageNum", updateTestPackage.PTP_TestPackageNo);
                    //                    BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
                    //                    string sql = @"select  b.ISO_IsoNo,a.JOT_JointNo,c.WED_Code WED_Code1,d.WED_Code   WED_Code2  from PW_JointInfo a left join PW_IsoInfo b on a.ISO_ID=b.ISO_ID
                    //                                            left join BS_Welder c on a.JOT_CellWelder = c.WED_ID
                    //                                            left join BS_Welder d on a.JOT_CellWelder = d.WED_ID where a.ISO_ID in ('" + isoIds + "')";
                    //                    DataTable dt = SQLHelper.GetDataTableRunText(sql, null);
                    //                    dt.TableName = "DataTable2";
                    //                    BLL.Common.FastReportService.AddFastreportTable(dt);
                    //                    initTemplatePath = "File\\Fastreport\\试压管道试压后安装焊接及检验检查表.frx";
                    //                }
                    //            }
                    //            break;
                    //        case "7":// 管道系统压力试验记录 
                    //            {
                    //                var iosList = BLL.TestPackageManageImportService.GetIsoInfosByPTP_ID(this.PTP_ID);
                    //                if (iosList.Count > 0)
                    //                {
                    //                    var q = iosList[0];
                    //                    var isoIds = string.Join("','", iosList.Select(x => x.ISO_ID).ToArray());
                    //                    var unitIds = string.Join("','", iosList.Select(x => x.UnitId).ToArray());
                    //                    Dictionary keyValuePairs = new Dictionary();
                    //                    var workArea = BLL.WorkAreaService.getWorkAreaByWorkAreaId(q.WorkAreaId);
                    //                    var install = BLL.Project_InstallationService.GetInstallationByInstallationId(workArea.InstallationId);
                    //                    var unitNames = BLL.UnitService.getUnitNamesUnitIds(unitIds);
                    //                    keyValuePairs.Add("installName", install.InstallationName);
                    //                    keyValuePairs.Add("workAreaName", workArea.WorkAreaName); ;
                    //                    BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
                    //                    string sql = @"select ISO_IsoNo, ISO_DesignPress,ISO_DesignTemperature,ISO_TestTemperature,ISO_TestPress,b.MediumName 
                    //                                          from PW_IsoInfo a left join Base_TestMedium b on a.MaterialId = b.TestMediumId where a.ISO_ID in ('" + isoIds + "')";
                    //                    DataTable dt = SQLHelper.GetDataTableRunText(sql, null);
                    //                    dt.TableName = "DataTable2";
                    //                    BLL.Common.FastReportService.AddFastreportTable(dt);
                    //                    initTemplatePath = "File\\Fastreport\\试压管道系统压力试验记录.frx";
                    //                }
                    //            }
                    //            break;
                    //    }
                        if (File.Exists(rootPath + initTemplatePath))
                        {
                            PageContext.RegisterStartupScript(Window6.GetShowReference(String.Format("../TrustManage/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath)));
                        }
                    }
                    else
                    {
                        Alert.ShowInTop("管线未全部通过不允许打印操作!", MessageBoxIcon.Warning);
                        return;
                    }
                }
                else
                {
                    Alert.ShowInTop("请选择要打印的单据!", MessageBoxIcon.Warning);
                    return;
                }
            }
        }
        protected Model.FastReportItem GetFastReportItem(Model.TP_TestPackageImport updateTestPackage,string printType)
        {
            string initTemplatePath = "";
            Model.FastReportItem fastReportItem = new Model.FastReportItem();
            switch (printType)
            {
                case "0":// 试压包管线清单 
                    {
                        var iosList = BLL.TestPackageManageImportService.GetIsoInfosByPTP_ID(this.PTP_ID);
                        if (iosList.Count > 0)
                        {
                            var q = iosList[0];
                            var ids = string.Join(",", iosList.Select(x => x.UnitId).ToList());
                            Dictionary keyValuePairs = new Dictionary();
                            var workArea = BLL.WorkAreaService.getWorkAreaByWorkAreaId(q.WorkAreaId);
                            var install = BLL.Project_InstallationService.GetInstallationByInstallationId(workArea.InstallationId);
                            var unitNames = BLL.UnitService.getUnitNamesUnitIds(ids);
                            var myNames = BLL.UnitService.getUnitNamesUnitIds(this.CurrUser.UnitId);
                            keyValuePairs.Add("InstallationName", install.InstallationName);
                            keyValuePairs.Add("workAreaName", workArea.WorkAreaName);
                            keyValuePairs.Add("UnitNames", unitNames);
                            keyValuePairs.Add("TestPackageNo", updateTestPackage.PTP_TestPackageNo);
                            keyValuePairs.Add("EPCPC", myNames);
                            BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
                            DataTable dt = new DataTable();
                            dt.TableName = "Data";
                            dt.Columns.Add("ISO_IsoNo");
                            dt.Columns.Add("ISO_DesignPress");
                            dt.Columns.Add("ISO_TestPress");
                            dt.Columns.Add("ISO_DesignTemperature");
                            dt.Columns.Add("Index");
                            for (int i = 0; i < iosList.Count; i++)
                            {
                                var newrow = dt.NewRow();
                                newrow["Index"] = i + 1;
                                newrow["ISO_IsoNo"] = iosList[i].ISO_IsoNo;
                                newrow["ISO_DesignPress"] = iosList[i].ISO_DesignPress;
                                newrow["ISO_TestPress"] = iosList[i].ISO_TestPress;
                                newrow["ISO_DesignTemperature"] = iosList[i].ISO_DesignTemperature;
                                dt.Rows.Add(newrow);
                            }
                            BLL.Common.FastReportService.AddFastreportTable(dt);
                            initTemplatePath = "File\\Fastreport\\试压包管线清单.frx";
                            List dataTables= new List();
                            dataTables.Add(dt);
                            fastReportItem.ReportPath = initTemplatePath;
                            fastReportItem.ParameterValues = keyValuePairs;
                            fastReportItem.DataTables = dataTables;
                        }
                    }
                    break;
                case "1":// 管道焊接工作记录 
                    {
                        var iosList = BLL.TestPackageManageImportService.GetIsoInfosByPTP_ID(this.PTP_ID);
                        if (iosList.Count > 0)
                        {
                            var q = iosList[0];
                            var isoIds = string.Join("','", iosList.Select(x => x.ISO_ID).ToArray());
                            Dictionary keyValuePairs = new Dictionary();
                            var workArea = BLL.WorkAreaService.getWorkAreaByWorkAreaId(q.WorkAreaId);
                            var install = BLL.Project_InstallationService.GetInstallationByInstallationId(workArea.InstallationId);
                            keyValuePairs.Add("InstallationName", install.InstallationName);
                            keyValuePairs.Add("WorkAreaName", workArea.WorkAreaName);
                            keyValuePairs.Add("ProjectName", ProjectService.GetProjectNameByProjectId(this.CurrUser.LoginProjectId));
                            BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
                            string strSql = @"SELECT  '' WED_Code, '' WED_Name,'' JOT_WeldDate_Month,''JOT_WeldDate_Day,jointInfo.JOT_ID, 
                                        jointInfo.ProjectId, 
                                        jointInfo.JOT_JointNo, 
                                        jointInfo.is_hj, 
                                        jointInfo.JointStatusName, 
                                        jointInfo.JOT_TrustFlagName, 
                                        jointInfo.JOT_CheckFlagName, 
                                        jointInfo.ISO_ID, 
                                        jointInfo.ISO_IsoNo, 
                                        jointInfo.ISO_IsoNumber,
                                        jointInfo.WorkAreaId, 
                                        jointInfo.WorkAreaCode, 
                                        jointInfo.JOT_WeldDate, 
                                        jointInfo.JOT_DailyReportNo, 
                                        jointInfo.STE_Name1, 
                                        jointInfo.STE_Name2, 
                                        jointInfo.Component1, 
                                        jointInfo.Component2, 
                                        jointInfo.WED_Code1, 
                                        jointInfo.WED_Name1, 
                                        jointInfo.WED_Code2, 
                                        jointInfo.WED_Name2, 
                                        jointInfo.JOT_JointDesc, 
                                        jointInfo.JOT_Dia, 
                                        jointInfo.JOT_Size, 
                                        jointInfo.JOT_Sch, 
                                        jointInfo.JOT_FactSch, 
                                        jointInfo.GrooveTypeName, 
                                        jointInfo.JOTY_ID, 
                                        jointInfo.WeldTypeName, 
                                        jointInfo.WME_ID, 
                                        jointInfo.WeldingMethodName, 
                                        jointInfo.WeldSilk, 
                                        jointInfo.WeldMat, 
                                        jointInfo.WLO_Code, 
                                        jointInfo.WeldingLocationName, 
                                        jointInfo.JOT_DoneDin, 
                                        jointInfo.JOT_PrepareTemp, 
                                        jointInfo.JOT_JointAttribute, 
                                        jointInfo.JOT_CellTemp, 
                                        jointInfo.JOT_LastTemp, 
                                        jointInfo.JOT_HeartNo1, 
                                        jointInfo.JOT_HeartNo2, 
                                        jointInfo.PointDate, 
                                        jointInfo.PointNo, 
                                        jointInfo.CH_TrustCode, 
                                        jointInfo.CH_TrustDate, 
                                        jointInfo.JOT_FaceCheckResult, 
                                        jointInfo.JOT_FaceCheckDate, 
                                        jointInfo.JOT_FaceChecker, 
                                        jointInfo.IS_Proess, 
                                        jointInfo.JOT_BelongPipe, 
                                        jointInfo.JOT_Electricity, 
                                        jointInfo.JOT_Voltage, 
                                        jointInfo.JOT_ProessDate, 
                                        jointInfo.JOT_HotRpt, 
                                        jointInfo.JOT_Remark,jointInfo.JOT_Location"
                            + @" from View_JointInfo as jointInfo "
                                            + @" WHERE jointInfo.ProjectId= @projectId ";
                            List listStr = new List
                            {
                                new SqlParameter("@projectId", this.CurrUser.LoginProjectId),
                            };
                            strSql += "AND jointInfo.ISO_ID in ('" + isoIds + "')  order by jointInfo.ISO_ID ,JOT_JointNo ";
                            SqlParameter[] parameter5 = listStr.ToArray();
                            DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter5);
                            tb.Columns.Add("index", typeof(System.Int16));
                            foreach (DataRow row in tb.Rows)
                            {
                                try
                                {
                                    row["index"] = int.Parse(System.Text.RegularExpressions.Regex.Replace(row["JOT_JointNo"].ToString(), @"[^0-9]+", ""));
                                }
                                catch (Exception ex)
                                {
                                    row["index"] = 0;
                                }
                            }
                            DataView dv = tb.DefaultView;//获取表视图
                            dv.Sort = "index,JOT_JointNo ASC";//按照ID倒序排序
                            tb = dv.ToTable();//转为表
                            if (tb != null)
                            {
                                tb.TableName = "Table1";
                                for (int i = 0; i < tb.Rows.Count; i++)
                                {
                                    string WED_Name = "";
                                    if (!string.IsNullOrEmpty(tb.Rows[i]["WED_Code1"].ToString()))
                                        WED_Name += tb.Rows[i]["WED_Code1"].ToString();
                                    if (!string.IsNullOrEmpty(tb.Rows[i]["WED_Code2"].ToString()))
                                        WED_Name += "," + tb.Rows[i]["WED_Code1"].ToString();
                                    tb.Rows[i]["WED_Code"] = WED_Name;
                                }
                            }
                            BLL.Common.FastReportService.AddFastreportTable(tb);
                            initTemplatePath = "File\\Fastreport\\试压管道焊接工作记录.frx";
                            List dataTables = new List();
                            dataTables.Add(tb);
                            fastReportItem.ReportPath = initTemplatePath;
                            fastReportItem.ParameterValues = keyValuePairs;
                            fastReportItem.DataTables = dataTables;
                        }
                    }
                    break;
                case "2":// 管道无损检测结果汇总表 
                    {
                        var iosList = BLL.TestPackageManageImportService.GetIsoInfosByPTP_ID(this.PTP_ID);
                        if (iosList.Count > 0)
                        {
                            var q = iosList[0];
                            var isoNos = string.Join("','", iosList.Select(x => x.ISO_IsoNo).ToArray());
                            var isoIds = string.Join("','", iosList.Select(x => x.ISO_ID).ToArray());
                            var unitIds = string.Join("','", iosList.Select(x => x.UnitId).ToArray());
                            Dictionary keyValuePairs = new Dictionary();
                            var workArea = BLL.WorkAreaService.getWorkAreaByWorkAreaId(q.WorkAreaId);
                            var install = BLL.Project_InstallationService.GetInstallationByInstallationId(workArea.InstallationId);
                            var unitNames = BLL.UnitService.getUnitNamesUnitIds(unitIds);
                            keyValuePairs.Add("installName", install.InstallationName);
                            keyValuePairs.Add("workAreaName", workArea.WorkAreaName);
                            keyValuePairs.Add("WorkAreaCode", workArea.WorkAreaCode);
                            keyValuePairs.Add("UnitName2", unitNames);
                            if (!string.IsNullOrEmpty(q.PipingClassId))
                            {
                                var PipingClass = BLL.Base_PipingClassService.GetPipingClassByPipingClassId(q.PipingClassId);
                                if (PipingClass != null)
                                {
                                    keyValuePairs.Add("ISOLevel", PipingClass.PipingClassName);
                                }
                            }
                            keyValuePairs.Add("isoCode", isoNos);
                            string sqlNDTCriteria = @"select distinct CH_NDTCriteria from CH_Trust a 
                                                                left join  CH_TrustItem b on a.CH_TrustID = b.CH_TrustID
                                                                left join PW_JointInfo c on b.JOT_ID = c.JOT_ID 
                                                                where c.ISO_ID in ('" + isoIds + "')";
                            DataTable tbNDTCriteria = SQLHelper.GetDataTableRunText(sqlNDTCriteria, null);
                            if (tbNDTCriteria != null)
                            {
                                string NDTCriteria = "";
                                foreach (DataRow row in tbNDTCriteria.Rows)
                                {
                                    NDTCriteria += row["CH_NDTCriteria"].ToString() + ",";
                                }
                                keyValuePairs.Add("CH_NDTCriteria", NDTCriteria.TrimEnd(','));
                            }
                            var Unit1 = BLL.UnitService.GetUnitByProjectIdUnitTypeList(this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_3);
                            if (Unit1 != null)
                            {
                                var unitNames1 = string.Join(",", Unit1.Select(x => x.UnitName).ToArray());
                                keyValuePairs.Add("UnitName1", unitNames1);
                            }
                            BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
                            string sqlStr = @"  select detectionType.DetectionTypeCode, weldType.WeldTypeName,  checkItem.CHT_CheckResult, 
                                                     sum(checkItem.CHT_TotalFilm) as TotalFilm,sum(checkItem.CHT_PassFilm) as PassFilm,sum(checkItem.CHT_TotalFilm-checkItem.CHT_PassFilm) as NoPassFilm ,count(distinct jointInfo.JOT_ID) as jotNum
                                                    from PW_JointInfo jointInfo left join Base_WeldType as weldType on weldType.WeldTypeId=jointInfo.JOTY_ID
                                                    left join dbo.CH_TrustItem as trustItem on trustItem.JOT_ID=jointInfo.JOT_ID
                                                    left join dbo.CH_Trust as trust on trust.CH_TrustID = trustItem.CH_TrustID
                                                    left join dbo.Base_DetectionType as detectionType on trust.CH_NDTMethod=detectionType.DetectionTypeId
                                                    left join TP_IsoList on TP_IsoList.ISO_ID =  jointInfo.ISO_ID 
                                                    LEFT JOIN dbo.CH_CheckItem as checkItem ON trustItem.JOT_ID = checkItem.JOT_ID
                                                    where weldType.WeldTypeName in('对接','角焊缝') and TP_IsoList.PTP_ID = '" + this.PTP_ID + @"'
                                                    group by weldType.WeldTypeName,detectionType.DetectionTypeCode,checkItem.CHT_CheckResult";
                            DataTable dt0 = SQLHelper.GetDataTableRunText(sqlStr, null);
                            //DataTable dt1 = new DataTable();
                            //dt1.TableName = "Customers";
                            //dt1.Columns.Add("detectType");
                            //var newrow = dt1.NewRow();
                            //newrow["detectType"] = "RT";
                            //dt1.Rows.Add(newrow);
                            //newrow = dt1.NewRow();
                            //newrow["detectType"] = "UT";
                            //dt1.Rows.Add(newrow);
                            //newrow = dt1.NewRow();
                            //newrow["detectType"] = "MT";
                            //dt1.Rows.Add(newrow);
                            //newrow = dt1.NewRow();
                            //newrow["detectType"] = "PT";
                            //dt1.Rows.Add(newrow);
                            //newrow = dt1.NewRow();
                            //newrow["detectType"] = "";
                            //dt1.Rows.Add(newrow);
                            DataTable dt1 = new DataTable();
                            dt1.TableName = "Customers";
                            dt1.Columns.Add("detectType");
                            dt1.Columns.Add("jot1");
                            dt1.Columns.Add("pic1");
                            dt1.Columns.Add("jot2");
                            dt1.Columns.Add("pic2");
                            dt1.Columns.Add("jot3");
                            dt1.Columns.Add("pic3");
                            dt1.Columns.Add("jot4");
                            dt1.Columns.Add("pic4");
                            var newrow = dt1.NewRow();
                            newrow["detectType"] = "RT";
                            int jot1 = 0;
                            int pic1 = 0;
                            int jot2 = 0;
                            int pic2 = 0;
                            int jot3 = 0;
                            int pic3 = 0;
                            int jot4 = 0;
                            int pic4 = 0;
                            DataRow[] rows = dt0.Select("DetectionTypeCode='RT'");
                            foreach (var row in rows)
                            {
                                var WeldTypeName = row["WeldTypeName"].ToString();
                                switch (WeldTypeName)
                                {
                                    case "对接":
                                        {
                                            var CHT_CheckResult = row["CHT_CheckResult"].ToString();
                                            switch (CHT_CheckResult)
                                            {
                                                case "合格":
                                                    try
                                                    {
                                                        jot1 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic1 += int.Parse(row["PassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                                case "不合格":
                                                    try
                                                    {
                                                        jot3 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic3 += int.Parse(row["NoPassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                            }
                                        }
                                        break;
                                    case "角焊缝":
                                        {
                                            var CHT_CheckResult = row["CHT_CheckResult"].ToString();
                                            switch (CHT_CheckResult)
                                            {
                                                case "合格":
                                                    try
                                                    {
                                                        jot2 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic2 += int.Parse(row["PassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                                case "不合格":
                                                    try
                                                    {
                                                        jot4 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic4 += int.Parse(row["NoPassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                            }
                                        }
                                        break;
                                }
                            }
                            if (jot1 > 0)
                            {
                                newrow["jot1"] = jot1;
                            }
                            if (pic1 > 0)
                            {
                                newrow["pic1"] = pic1;
                            }
                            if (jot1 > 0)
                            {
                                newrow["jot2"] = jot2;
                            }
                            if (pic1 > 0)
                            {
                                newrow["pic2"] = pic2;
                            }
                            if (jot3 > 0)
                            {
                                newrow["jot3"] = jot3;
                            }
                            if (pic3 > 0)
                            {
                                newrow["pic3"] = pic3;
                            }
                            if (jot4 > 0)
                            {
                                newrow["jot4"] = jot4;
                            }
                            if (pic4 > 0)
                            {
                                newrow["pic4"] = pic4;
                            }
                            dt1.Rows.Add(newrow);
                            newrow = dt1.NewRow();
                            newrow["detectType"] = "UT";
                            jot1 = 0;
                            pic1 = 0;
                            jot2 = 0;
                            pic2 = 0;
                            jot3 = 0;
                            pic3 = 0;
                            jot4 = 0;
                            pic4 = 0;
                            rows = dt0.Select("DetectionTypeCode='UT'");
                            foreach (var row in rows)
                            {
                                var WeldTypeName = row["WeldTypeName"].ToString();
                                switch (WeldTypeName)
                                {
                                    case "对接":
                                        {
                                            var CHT_CheckResult = row["CHT_CheckResult"].ToString();
                                            switch (CHT_CheckResult)
                                            {
                                                case "合格":
                                                    try
                                                    {
                                                        jot1 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic1 += int.Parse(row["PassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                                case "不合格":
                                                    try
                                                    {
                                                        jot3 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic3 += int.Parse(row["NoPassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                            }
                                        }
                                        break;
                                    case "角焊缝":
                                        {
                                            var CHT_CheckResult = row["CHT_CheckResult"].ToString();
                                            switch (CHT_CheckResult)
                                            {
                                                case "合格":
                                                    try
                                                    {
                                                        jot2 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic2 += int.Parse(row["PassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                                case "不合格":
                                                    try
                                                    {
                                                        jot4 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic4 += int.Parse(row["NoPassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                            }
                                        }
                                        break;
                                }
                            }
                            if (jot1 > 0)
                            {
                                newrow["jot1"] = jot1;
                            }
                            if (pic1 > 0)
                            {
                                newrow["pic1"] = pic1;
                            }
                            if (jot1 > 0)
                            {
                                newrow["jot2"] = jot2;
                            }
                            if (pic1 > 0)
                            {
                                newrow["pic2"] = pic2;
                            }
                            if (jot3 > 0)
                            {
                                newrow["jot3"] = jot3;
                            }
                            if (pic3 > 0)
                            {
                                newrow["pic3"] = pic3;
                            }
                            if (jot4 > 0)
                            {
                                newrow["jot4"] = jot4;
                            }
                            if (pic4 > 0)
                            {
                                newrow["pic4"] = pic4;
                            }
                            dt1.Rows.Add(newrow);
                            newrow = dt1.NewRow();
                            newrow["detectType"] = "MT";
                            jot1 = 0;
                            pic1 = 0;
                            jot2 = 0;
                            pic2 = 0;
                            jot3 = 0;
                            pic3 = 0;
                            jot4 = 0;
                            pic4 = 0;
                            rows = dt0.Select("DetectionTypeCode='MT'");
                            foreach (var row in rows)
                            {
                                var WeldTypeName = row["WeldTypeName"].ToString();
                                switch (WeldTypeName)
                                {
                                    case "对接":
                                        {
                                            var CHT_CheckResult = row["CHT_CheckResult"].ToString();
                                            switch (CHT_CheckResult)
                                            {
                                                case "合格":
                                                    try
                                                    {
                                                        jot1 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic1 += int.Parse(row["PassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                                case "不合格":
                                                    try
                                                    {
                                                        jot3 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic3 += int.Parse(row["NoPassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                            }
                                        }
                                        break;
                                    case "角焊缝":
                                        {
                                            var CHT_CheckResult = row["CHT_CheckResult"].ToString();
                                            switch (CHT_CheckResult)
                                            {
                                                case "合格":
                                                    try
                                                    {
                                                        jot2 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic2 += int.Parse(row["PassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                                case "不合格":
                                                    try
                                                    {
                                                        jot4 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic4 += int.Parse(row["NoPassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                            }
                                        }
                                        break;
                                }
                            }
                            if (jot1 > 0)
                            {
                                newrow["jot1"] = jot1;
                            }
                            if (pic1 > 0)
                            {
                                newrow["pic1"] = pic1;
                            }
                            if (jot1 > 0)
                            {
                                newrow["jot2"] = jot2;
                            }
                            if (pic1 > 0)
                            {
                                newrow["pic2"] = pic2;
                            }
                            if (jot3 > 0)
                            {
                                newrow["jot3"] = jot3;
                            }
                            if (pic3 > 0)
                            {
                                newrow["pic3"] = pic3;
                            }
                            if (jot4 > 0)
                            {
                                newrow["jot4"] = jot4;
                            }
                            if (pic4 > 0)
                            {
                                newrow["pic4"] = pic4;
                            }
                            dt1.Rows.Add(newrow);
                            newrow = dt1.NewRow();
                            newrow["detectType"] = "PT";
                            jot1 = 0;
                            pic1 = 0;
                            jot2 = 0;
                            pic2 = 0;
                            jot3 = 0;
                            pic3 = 0;
                            jot4 = 0;
                            pic4 = 0;
                            rows = dt0.Select("DetectionTypeCode='PT'");
                            foreach (var row in rows)
                            {
                                var WeldTypeName = row["WeldTypeName"].ToString();
                                switch (WeldTypeName)
                                {
                                    case "对接":
                                        {
                                            var CHT_CheckResult = row["CHT_CheckResult"].ToString();
                                            switch (CHT_CheckResult)
                                            {
                                                case "合格":
                                                    try
                                                    {
                                                        jot1 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic1 += int.Parse(row["PassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                                case "不合格":
                                                    try
                                                    {
                                                        jot3 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic3 += int.Parse(row["NoPassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                            }
                                        }
                                        break;
                                    case "角焊缝":
                                        {
                                            var CHT_CheckResult = row["CHT_CheckResult"].ToString();
                                            switch (CHT_CheckResult)
                                            {
                                                case "合格":
                                                    try
                                                    {
                                                        jot2 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic2 += int.Parse(row["PassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                                case "不合格":
                                                    try
                                                    {
                                                        jot4 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic4 += int.Parse(row["NoPassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                            }
                                        }
                                        break;
                                }
                            }
                            if (jot1 > 0)
                            {
                                newrow["jot1"] = jot1;
                            }
                            if (pic1 > 0)
                            {
                                newrow["pic1"] = pic1;
                            }
                            if (jot1 > 0)
                            {
                                newrow["jot2"] = jot2;
                            }
                            if (pic1 > 0)
                            {
                                newrow["pic2"] = pic2;
                            }
                            if (jot3 > 0)
                            {
                                newrow["jot3"] = jot3;
                            }
                            if (pic3 > 0)
                            {
                                newrow["pic3"] = pic3;
                            }
                            if (jot4 > 0)
                            {
                                newrow["jot4"] = jot4;
                            }
                            if (pic4 > 0)
                            {
                                newrow["pic4"] = pic4;
                            }
                            dt1.Rows.Add(newrow);
                            newrow = dt1.NewRow();
                            newrow["detectType"] = "TOFD";
                            jot1 = 0;
                            pic1 = 0;
                            jot2 = 0;
                            pic2 = 0;
                            jot3 = 0;
                            pic3 = 0;
                            jot4 = 0;
                            pic4 = 0;
                            rows = dt0.Select("DetectionTypeCode='TOFD'");
                            foreach (var row in rows)
                            {
                                var WeldTypeName = row["WeldTypeName"].ToString();
                                switch (WeldTypeName)
                                {
                                    case "对接":
                                        {
                                            var CHT_CheckResult = row["CHT_CheckResult"].ToString();
                                            switch (CHT_CheckResult)
                                            {
                                                case "合格":
                                                    try
                                                    {
                                                        jot1 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic1 += int.Parse(row["PassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                                case "不合格":
                                                    try
                                                    {
                                                        jot3 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic3 += int.Parse(row["NoPassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                            }
                                        }
                                        break;
                                    case "角焊缝":
                                        {
                                            var CHT_CheckResult = row["CHT_CheckResult"].ToString();
                                            switch (CHT_CheckResult)
                                            {
                                                case "合格":
                                                    try
                                                    {
                                                        jot2 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic2 += int.Parse(row["PassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                                case "不合格":
                                                    try
                                                    {
                                                        jot4 += int.Parse(row["jotNum"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    try
                                                    {
                                                        pic4 += int.Parse(row["NoPassFilm"].ToString());
                                                    }
                                                    catch (Exception ee) { }
                                                    break;
                                            }
                                        }
                                        break;
                                }
                            }
                            if (jot1 > 0)
                            {
                                newrow["jot1"] = jot1;
                            }
                            if (pic1 > 0)
                            {
                                newrow["pic1"] = pic1;
                            }
                            if (jot1 > 0)
                            {
                                newrow["jot2"] = jot2;
                            }
                            if (pic1 > 0)
                            {
                                newrow["pic2"] = pic2;
                            }
                            if (jot3 > 0)
                            {
                                newrow["jot3"] = jot3;
                            }
                            if (pic3 > 0)
                            {
                                newrow["pic3"] = pic3;
                            }
                            if (jot4 > 0)
                            {
                                newrow["jot4"] = jot4;
                            }
                            if (pic4 > 0)
                            {
                                newrow["pic4"] = pic4;
                            }
                            dt1.Rows.Add(newrow);
                            newrow = dt1.NewRow();
                            newrow["detectType"] = "";
                            dt1.Rows.Add(newrow);
                            BLL.Common.FastReportService.AddFastreportTable(dt1);
                            string sql3 = @"select b.ISO_IsoNo,  JOT_JointNo,welder.WED_Code   JOT_CellWelder,CHT_CheckCode,CH_TrustCode, 
                                                                case when e.CH_NDTMethod='296add43-e979-4cf3-b13e-a68bb00a75d2' or  e.CH_NDTMethod='a5e9c1bb-1fad-4e65-82bf-03003cc56ab4' then c.CHT_CheckResult end as CHT_CheckResult1,
                                                                case when e.CH_NDTMethod='296add43-e979-4cf3-b13e-a68bb00a75d2' or e.CH_NDTMethod='a5e9c1bb-1fad-4e65-82bf-03003cc56ab4' then c.CHT_CheckNo end as CHT_CheckNo1,
                                                                case when e.CH_NDTMethod='c1a39a7f-141f-4243-a23d-34f4c9026d5f' or e.CH_NDTMethod='2460a5e3-b5fb-40d6-942e-3092ddc11a72' then c.CHT_CheckResult end as CHT_CheckResult2,
                                                                case when e.CH_NDTMethod='c1a39a7f-141f-4243-a23d-34f4c9026d5f' or e.CH_NDTMethod='2460a5e3-b5fb-40d6-942e-3092ddc11a72' then c.CHT_CheckNo end as CHT_CheckNo2 
                                                                from CH_CheckItem c left join   PW_JointInfo a on a.JOT_ID = c.JOT_ID
                                                                left join PW_IsoInfo b on a.ISO_ID=b.ISO_ID                                                                 
                                                                left join CH_Check d on c.CHT_CheckID=d.CHT_CheckID
                                                                left join CH_Trust e on d.CH_TrustID=e.CH_TrustID  
                                                                left join BS_Welder as welder on welder.WED_ID=JOT_CellWelder 
                                                        where a.ISO_ID in ('" + isoIds + "')";
                            DataTable dt = SQLHelper.GetDataTableRunText(sql3, null);
                            dt.TableName = "DataTable2";
                            BLL.Common.FastReportService.AddFastreportTable(dt);
                            initTemplatePath = "File\\Fastreport\\试压管道无损检测结果汇总表.frx";
                            List dataTables = new List();
                            dataTables.Add(dt1);
                            dataTables.Add(dt);
                           
                            fastReportItem.ReportPath = initTemplatePath;
                            fastReportItem.ParameterValues = keyValuePairs;
                            fastReportItem.DataTables = dataTables;
                        }
                    }
                    break;
                case "3":// 弹簧支/吊架安装检验记录
                    {
                        var iosList = BLL.TestPackageManageImportService.GetIsoInfosByPTP_ID(this.PTP_ID);
                        if (iosList.Count > 0)
                        {
                            var q = iosList[0];
                            var isoIds = string.Join("','", iosList.Select(x => x.ISO_ID).ToArray());
                            Dictionary keyValuePairs = new Dictionary();
                            var workArea = BLL.WorkAreaService.getWorkAreaByWorkAreaId(q.WorkAreaId);
                            var install = BLL.Project_InstallationService.GetInstallationByInstallationId(workArea.InstallationId);
                            keyValuePairs.Add("InstallationName", install.InstallationName);
                            keyValuePairs.Add("WorkAreaName", workArea.WorkAreaName);
                            BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
                            string sql3 = @"select   ISO_IsoNo  from
                                                                 PW_IsoInfo 
                                                        where ISO_ID in ('" + isoIds + "')";
                            DataTable dt = SQLHelper.GetDataTableRunText(sql3, null);
                            dt.TableName = "Table1";
                            BLL.Common.FastReportService.AddFastreportTable(dt);
                            initTemplatePath = "File\\Fastreport\\试压弹簧支吊架安装检验记录.frx";
                            List dataTables = new List();
                            dataTables.Add(dt);
                            fastReportItem.ReportPath = initTemplatePath;
                            fastReportItem.ParameterValues = keyValuePairs;
                            fastReportItem.DataTables = dataTables;
                        }
                    }
                    break;
                case "4":// 滑动/固定管托安装检验
                    {
                        var iosList = BLL.TestPackageManageImportService.GetIsoInfosByPTP_ID(this.PTP_ID);
                        if (iosList.Count > 0)
                        {
                            var q = iosList[0];
                            var isoIds = string.Join("','", iosList.Select(x => x.ISO_ID).ToArray());
                            Dictionary keyValuePairs = new Dictionary();
                            var workArea = BLL.WorkAreaService.getWorkAreaByWorkAreaId(q.WorkAreaId);
                            var install = BLL.Project_InstallationService.GetInstallationByInstallationId(workArea.InstallationId);
                            keyValuePairs.Add("InstallationName", install.InstallationName);
                            keyValuePairs.Add("WorkAreaName", workArea.WorkAreaName);
                            BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
                            string sql3 = @"select   ISO_IsoNo  from
                                                                 PW_IsoInfo 
                                                        where ISO_ID in ('" + isoIds + "')";
                            DataTable dt = SQLHelper.GetDataTableRunText(sql3, null);
                            dt.TableName = "Table1";
                            BLL.Common.FastReportService.AddFastreportTable(dt);
                            initTemplatePath = "File\\Fastreport\\试压滑动固定管托安装检验.frx";
                            List dataTables = new List();
                            dataTables.Add(dt);
                            fastReportItem.ReportPath = initTemplatePath;
                            fastReportItem.ParameterValues = keyValuePairs;
                            fastReportItem.DataTables = dataTables;
                        }
                    }
                    break;
                case "5":// 管道补偿器安装检验记录
                    {
                        var iosList = BLL.TestPackageManageImportService.GetIsoInfosByPTP_ID(this.PTP_ID);
                        if (iosList.Count > 0)
                        {
                            var q = iosList[0];
                            var isoIds = string.Join("','", iosList.Select(x => x.ISO_ID).ToArray());
                            var unitIds = string.Join("','", iosList.Select(x => x.UnitId).ToArray());
                            Dictionary keyValuePairs = new Dictionary();
                            var workArea = BLL.WorkAreaService.getWorkAreaByWorkAreaId(q.WorkAreaId);
                            var install = BLL.Project_InstallationService.GetInstallationByInstallationId(workArea.InstallationId);
                            var unitNames = BLL.UnitService.getUnitNamesUnitIds(unitIds);
                            keyValuePairs.Add("installName", install.InstallationName);
                            keyValuePairs.Add("workAreaName", workArea.WorkAreaName);
                            BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
                            DataTable dt = new DataTable();
                            dt.Columns.Add("ISO_IsoNo");
                            dt.TableName = "DataTable2";
                            foreach (var item in iosList)
                            {
                                var newrow = dt.NewRow();
                                newrow["ISO_IsoNo"] = item.ISO_IsoNo;
                                dt.Rows.Add(newrow);
                            }
                            BLL.Common.FastReportService.AddFastreportTable(dt);
                            initTemplatePath = "File\\Fastreport\\试压管道补偿器安装检验记录.frx";
                            List dataTables = new List();
                            dataTables.Add(dt);
                            fastReportItem.ReportPath = initTemplatePath;
                            fastReportItem.ParameterValues = keyValuePairs;
                            fastReportItem.DataTables = dataTables;
                        }
                    }
                    break;
                case "6":// 管道试压后安装、焊接及检验检查表
                    {
                        var iosList = BLL.TestPackageManageImportService.GetIsoInfosByPTP_ID(this.PTP_ID);
                        if (iosList.Count > 0)
                        {
                            var q = iosList[0];
                            var isoIds = string.Join("','", iosList.Select(x => x.ISO_ID).ToArray());
                            Dictionary keyValuePairs = new Dictionary();
                            keyValuePairs.Add("packageNum", updateTestPackage.PTP_TestPackageNo);
                            BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
                            string sql = @"select  b.ISO_IsoNo,a.JOT_JointNo,c.WED_Code WED_Code1,d.WED_Code   WED_Code2  from PW_JointInfo a left join PW_IsoInfo b on a.ISO_ID=b.ISO_ID
                                                                left join BS_Welder c on a.JOT_CellWelder = c.WED_ID
                                                                left join BS_Welder d on a.JOT_CellWelder = d.WED_ID where a.ISO_ID in ('" + isoIds + "')";
                            DataTable dt = SQLHelper.GetDataTableRunText(sql, null);
                            dt.TableName = "DataTable2";
                            BLL.Common.FastReportService.AddFastreportTable(dt);
                            initTemplatePath = "File\\Fastreport\\试压管道试压后安装焊接及检验检查表.frx";
                            List dataTables = new List();
                            dataTables.Add(dt);
                            fastReportItem.ReportPath = initTemplatePath;
                            fastReportItem.ParameterValues = keyValuePairs;
                            fastReportItem.DataTables = dataTables;
                        }
                    }
                    break;
                case "7":// 管道系统压力试验记录 
                    {
                        var iosList = BLL.TestPackageManageImportService.GetIsoInfosByPTP_ID(this.PTP_ID);
                        if (iosList.Count > 0)
                        {
                            var q = iosList[0];
                            var isoIds = string.Join("','", iosList.Select(x => x.ISO_ID).ToArray());
                            var unitIds = string.Join("','", iosList.Select(x => x.UnitId).ToArray());
                            Dictionary keyValuePairs = new Dictionary();
                            var workArea = BLL.WorkAreaService.getWorkAreaByWorkAreaId(q.WorkAreaId);
                            var install = BLL.Project_InstallationService.GetInstallationByInstallationId(workArea.InstallationId);
                            var unitNames = BLL.UnitService.getUnitNamesUnitIds(unitIds);
                            keyValuePairs.Add("installName", install.InstallationName);
                            keyValuePairs.Add("workAreaName", workArea.WorkAreaName); ;
                            BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
                            string sql = @"select ISO_IsoNo, ISO_DesignPress,ISO_DesignTemperature,ISO_TestTemperature,ISO_TestPress,b.MediumName 
                                                              from PW_IsoInfo a left join Base_TestMedium b on a.MaterialId = b.TestMediumId where a.ISO_ID in ('" + isoIds + "')";
                            DataTable dt = SQLHelper.GetDataTableRunText(sql, null);
                            dt.TableName = "DataTable2";
                            BLL.Common.FastReportService.AddFastreportTable(dt);
                            initTemplatePath = "File\\Fastreport\\试压管道系统压力试验记录.frx";
                            List dataTables = new List();
                            dataTables.Add(dt);
                            fastReportItem.ReportPath = initTemplatePath;
                            fastReportItem.ParameterValues = keyValuePairs;
                            fastReportItem.DataTables = dataTables;
                        }
                    }
                    break;
            }
            return fastReportItem;
        }
        protected void exportWord()
        {
            if (!string.IsNullOrEmpty(this.PTP_ID))
            {
                var updateTestPackage = Funs.DB.TP_TestPackageImport.FirstOrDefault(x => x.PTP_ID == this.PTP_ID);
                if (updateTestPackage != null)
                {
                    if (Count == 0)
                    {
                        string rootPath = Server.MapPath("~/");
                        BLL.Common.FastReportService.ResetData();
                        ListItem[] list = new ListItem[8];
                        list[0] = new ListItem("0", "File\\Fastreport\\试压包管线清单.frx");
                        list[1] = new ListItem("1", "File\\Fastreport\\试压管道焊接工作记录.frx");
                        list[2] = new ListItem("2", "File\\Fastreport\\试压管道无损检测结果汇总表.frx");
                        list[3] = new ListItem("3", "File\\Fastreport\\试压弹簧支吊架安装检验记录.frx");
                        list[4] = new ListItem("4", "File\\Fastreport\\试压滑动固定管托安装检验.frx");
                        list[5] = new ListItem("5", "File\\Fastreport\\试压管道补偿器安装检验记录.frx");
                        list[6] = new ListItem("6", "File\\Fastreport\\试压管道试压后安装焊接及检验检查表.frx");
                        list[7] = new ListItem("7", "File\\Fastreport\\试压管道系统压力试验记录.frx");
                        List FastReportItemList = new List();
                        foreach (var item in list)
                        {
                            FastReportItemList.Add(GetFastReportItem(updateTestPackage, item.Text));
                        }
                        var Path = Funs.RootPath + "FileUpload/" + this.PTP_ID + ".pdf"; 
                        BLL.Common.FastReportService.ExportMergeReport(FastReportItemList, Path);
                        FileInfo info = new FileInfo(Path);
                        long fileSize = info.Length;
                        System.Web.HttpContext.Current.Response.Clear();
                        System.Web.HttpContext.Current.Response.ContentType = "application/x-zip-compressed";
                        System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("交工资料.pdf", System.Text.Encoding.UTF8));
                        System.Web.HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString());
                        System.Web.HttpContext.Current.Response.TransmitFile(Path, 0, fileSize);
                        System.Web.HttpContext.Current.Response.Flush();
                        System.Web.HttpContext.Current.Response.Close();
                        File.Delete(Path);
                    }
                    else
                    {
                        Alert.ShowInTop("管线未全部通过不允许打印操作!", MessageBoxIcon.Warning);
                        return;
                    }
                }
                else
                {
                    Alert.ShowInTop("请选择要打印的单据!", MessageBoxIcon.Warning);
                    return;
                }
            }
        }
        protected void btnAll_Click(object sender, EventArgs e)
        {
            exportWord();
        }
    }
}