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