Alter table [dbo].[HJGL_Hard_Report] add [SortIndex] int Null,[Flag] int Null,[IsShow] bit Null Go CREATE PROCEDURE [dbo].[HJGL_SP_HardReport] ( @HardTrustID nvarchar(50) ) AS --通过委托id获取硬度委托单及硬度检验报告信息 BEGIN SELECT Project.ProjectName, Project.ProjectCode, Report.ProjectId, Report.InspectionNum, Report.CheckName, Report.HardnessMethod, Report.Standards, Report.HardnessRate, Report.AcceptStandard, Project.ProjectName, Project.ProjectCode, UnitWork.UnitWorkName, Unit.UnitName as TrustUnitName, Report.HardTrustUnit as ContractUnitName, '已完成' as HotProessState, Report.EquipmentModel, Trust.MaterialCode, '共检测'+CONVERT(nvarchar(10),item.pointCount)+'点,符合标准要求'+CONVERT(nvarchar(10),item.pointCount)+'点,不符合标准要求0点,具体检测部位详见单线图。' as testResult FROM dbo.HJGL_Hard_Trust AS Report LEFT JOIN dbo.Base_Project AS Project ON Project.ProjectId =Report.ProjectId LEFT JOIN dbo.Base_Unit AS Unit ON Unit.UnitId =Report.HardTrustUnit LEFT JOIN dbo.WBS_UnitWork AS UnitWork ON UnitWork.UnitWorkId=Report.UnitWorkId LEFT JOIN (SELECT COUNT(*)as pointCount,T.HardTrustID FROM HJGL_Hard_Report R LEFT JOIN dbo.HJGL_Hard_TrustItem T on T.HardTrustItemID=R.HardTrustItemID WHERE HardTrustID=@HardTrustID and IsShow=1 group by T.HardTrustID) AS item ON item.HardTrustID=Report.HardTrustID LEFT JOIN (SELECT top 1 Trust.HardTrustID,Mat.MaterialCode from dbo.HJGL_Hard_TrustItem Trust LEFT JOIN dbo.HJGL_WeldJoint Jot on Trust.WeldJointId=Jot.WeldJointId LEFT JOIN dbo.Base_Material Mat on Jot.Material1Id=Mat.MaterialId ) As Trust ON Trust.HardTrustID=Report.HardTrustID WHERE Report.HardTrustID = @HardTrustID END GO CREATE PROCEDURE [dbo].[HJGL_SP_HardReportItem] ( @HardTrustID nvarchar(50), @Flag CHAR(1) ) AS --通过委托id获取硬度委托单及硬度检验报告明细信息 BEGIN declare @n int,@rows int,@rows2 int,@rows3 int,@maxrows int declare @Number INT, @NewJOT_JointNoStr1 varchar(50), @HardNessValue1 varchar(100), @NewJOT_JointNoStr2 varchar(50), @HardNessValue2 varchar(100), @NewJOT_JointNoStr3 varchar(50), @HardNessValue3 varchar(100) select @rows=COUNT(*) from dbo.HJGL_Hard_Report R left join HJGL_Hard_TrustItem T on R.HardTrustItemID=T.HardTrustItemID WHERE T.HardTrustID = @HardTrustID AND Flag=1 select @rows2=COUNT(*) from dbo.HJGL_Hard_Report R left join HJGL_Hard_TrustItem T on R.HardTrustItemID=T.HardTrustItemID where T.HardTrustID = @HardTrustID AND Flag=2 select @rows3=COUNT(*) from dbo.HJGL_Hard_Report R left join HJGL_Hard_TrustItem T on R.HardTrustItemID=T.HardTrustItemID where T.HardTrustID = @HardTrustID AND Flag=3 set @maxrows=@rows if(@rows2>@maxrows) begin set @maxrows=@rows2 end if(@rows3>@maxrows) begin set @maxrows=@rows3 end create table #ttableName( Number INT, NewJOT_JointNoStr1 varchar(50), HardNessValue1 varchar(100), NewJOT_JointNoStr2 varchar(50), HardNessValue2 varchar(100), NewJOT_JointNoStr3 varchar(50), HardNessValue3 varchar(100) ) set @n=1 while @n<=@maxrows begin if(@n<=@rows) begin SELECT @NewJOT_JointNoStr1=a.NewJOT_JointNoStr,@HardNessValue1=a.HardNessValue from (SELECT ROW_NUMBER() over(order by (JointInfo.WeldJointCode+'-'+Item.TestingPointNo),Item.Remark) as RowNum, (case when Item.HardNessValue1 is null then '' else convert(varchar(100),Item.HardNessValue1)end)as HardNessValue, (JointInfo.WeldJointCode+'-'+Item.TestingPointNo) as NewJOT_JointNoStr FROM dbo.HJGL_Hard_Report AS Item LEFT JOIN HJGL_Hard_TrustItem T on Item.HardTrustItemID=T.HardTrustItemID LEFT JOIN dbo.HJGL_WeldJoint AS JointInfo ON JointInfo.WeldJointId =Item.WeldJointId WHERE T.HardTrustID = @HardTrustID and Item.Flag=1) a where a.RowNum=@n end else begin set @NewJOT_JointNoStr1=null set @HardNessValue1=null end if(@n<=@rows2) begin select @NewJOT_JointNoStr2=b.NewJOT_JointNoStr,@HardNessValue2=b.HardNessValue from (SELECT ROW_NUMBER() over(order by (JointInfo.WeldJointCode+'-'+Item.TestingPointNo),Item.Remark) as RowNum, (case when Item.HardNessValue1 is null then '' else convert(varchar(100),Item.HardNessValue1)end)as HardNessValue, (JointInfo.WeldJointCode+'-'+Item.TestingPointNo) as NewJOT_JointNoStr FROM dbo.HJGL_Hard_Report AS Item LEFT JOIN HJGL_Hard_TrustItem T on Item.HardTrustItemID=T.HardTrustItemID LEFT JOIN dbo.HJGL_WeldJoint AS JointInfo ON JointInfo.WeldJointId =Item.WeldJointId WHERE T.HardTrustID = @HardTrustID and Item.Flag=2) b where b.RowNum=@n end else begin set @NewJOT_JointNoStr2=null set @HardNessValue2=null end if(@n<=@rows3) begin select @NewJOT_JointNoStr3=c.NewJOT_JointNoStr,@HardNessValue3=c.HardNessValue from (SELECT ROW_NUMBER() over(order by (JointInfo.WeldJointCode+'-'+Item.TestingPointNo),Item.Remark) as RowNum, (case when Item.HardNessValue1 is null then '' else convert(varchar(100),Item.HardNessValue1)end)as HardNessValue, (JointInfo.WeldJointCode+'-'+Item.TestingPointNo) as NewJOT_JointNoStr FROM dbo.HJGL_Hard_Report AS Item LEFT JOIN HJGL_Hard_TrustItem T on Item.HardTrustItemID=T.HardTrustItemID LEFT JOIN dbo.HJGL_WeldJoint AS JointInfo ON JointInfo.WeldJointId =Item.WeldJointId WHERE T.HardTrustID = @HardTrustID and Item.Flag=3) c where c.RowNum=@n end else begin set @NewJOT_JointNoStr3=null set @HardNessValue3=null end insert into #ttableName(Number,NewJOT_JointNoStr1,HardNessValue1,NewJOT_JointNoStr2, HardNessValue2,NewJOT_JointNoStr3,HardNessValue3) VALUES(@n,@NewJOT_JointNoStr1,@HardNessValue1,@NewJOT_JointNoStr2, @HardNessValue2,@NewJOT_JointNoStr3,@HardNessValue3) select @n=@n+1 END IF(@Flag='1') BEGIN SELECT * from #ttableName WHERE Number<=18 END IF(@Flag='2') BEGIN SELECT * from #ttableName WHERE Number>18 END ELSE BEGIN SELECT * from #ttableName END drop table #ttableName END GO Create PROCEDURE [dbo].[SP_HJGL_HotProessReportItem] ( @HotProessTrustId varchar(50), @Flag CHAR(1) ) AS --管道焊接接头热处理日委托单明细表 IF(@Flag='1') BEGIN SELECT v.* FROM (SELECT ROW_NUMBER() OVER(ORDER BY WeldJoint.WeldJointCode,ReportItem.PointCount) AS Number, WeldJoint.WeldJointCode, Pipeline.PipelineCode, ReportItem.PointCount, ReportItem.RequiredT, ReportItem.ActualT, ReportItem.RequestTime, ReportItem.ActualTime, ReportItem.RecordChartNo, WeldJoint.Specification, --规格 Material.MaterialCode, --材质 Trust.ProessDate FROM HJGL_HotProess_Report AS ReportItem LEFT JOIN HJGL_HotProess_TrustItem AS TrustItem ON TrustItem.HotProessTrustItemId=ReportItem.HotProessTrustItemId LEFT JOIN HJGL_HotProess_Trust AS Trust ON Trust.HotProessTrustId=TrustItem.HotProessTrustId LEFT JOIN HJGL_WeldJoint AS WeldJoint ON WeldJoint.WeldJointId=TrustItem.WeldJointId LEFT JOIN HJGL_Pipeline AS Pipeline ON Pipeline.PipelineId=WeldJoint.PipelineId LEFT JOIN Base_Material AS Material ON Material.MaterialId=WeldJoint.Material1Id WHERE Trust.HotProessTrustId = @HotProessTrustId and Trust.ReportNo is not null and Trust.ReportNo!='') v WHERE v.Number<=7 END else IF(@Flag='2') BEGIN SELECT v.* FROM (SELECT ROW_NUMBER() OVER(ORDER BY WeldJoint.WeldJointCode,ReportItem.PointCount) AS Number, WeldJoint.WeldJointCode, Pipeline.PipelineCode, ReportItem.PointCount, ReportItem.RequiredT, ReportItem.ActualT, ReportItem.RequestTime, ReportItem.ActualTime, ReportItem.RecordChartNo, WeldJoint.Specification, --规格 Material.MaterialCode, --材质 Trust.ProessDate FROM HJGL_HotProess_Report AS ReportItem LEFT JOIN HJGL_HotProess_TrustItem AS TrustItem ON TrustItem.HotProessTrustItemId=ReportItem.HotProessTrustItemId LEFT JOIN HJGL_HotProess_Trust AS Trust ON Trust.HotProessTrustId=TrustItem.HotProessTrustId LEFT JOIN HJGL_WeldJoint AS WeldJoint ON WeldJoint.WeldJointId=TrustItem.WeldJointId LEFT JOIN HJGL_Pipeline AS Pipeline ON Pipeline.PipelineId=WeldJoint.PipelineId LEFT JOIN Base_Material AS Material ON Material.MaterialId=WeldJoint.Material1Id WHERE Trust.HotProessTrustId = @HotProessTrustId and Trust.ReportNo is not null and Trust.ReportNo!='') v WHERE v.Number>7 END ELSE BEGIN SELECT v.* FROM (SELECT ROW_NUMBER() OVER(ORDER BY WeldJoint.WeldJointCode,ReportItem.PointCount) AS Number, WeldJoint.WeldJointCode, Pipeline.PipelineCode, ReportItem.PointCount, ReportItem.RequiredT, ReportItem.ActualT, ReportItem.RequestTime, ReportItem.ActualTime, ReportItem.RecordChartNo, WeldJoint.Specification, --规格 Material.MaterialCode, --材质 Trust.ProessDate FROM HJGL_HotProess_Report AS ReportItem LEFT JOIN HJGL_HotProess_TrustItem AS TrustItem ON TrustItem.HotProessTrustItemId=ReportItem.HotProessTrustItemId LEFT JOIN HJGL_HotProess_Trust AS Trust ON Trust.HotProessTrustId=TrustItem.HotProessTrustId LEFT JOIN HJGL_WeldJoint AS WeldJoint ON WeldJoint.WeldJointId=TrustItem.WeldJointId LEFT JOIN HJGL_Pipeline AS Pipeline ON Pipeline.PipelineId=WeldJoint.PipelineId LEFT JOIN Base_Material AS Material ON Material.MaterialId=WeldJoint.Material1Id WHERE Trust.HotProessTrustId = @HotProessTrustId and Trust.ReportNo is not null and Trust.ReportNo!='') v END GO CREATE VIEW [dbo].[HJGL_View_HardReportItem] /*硬度检验报告明细表查询列表*/ AS SELECT Report.HardReportId, --硬度检验报告明细id Report.HardTrustItemID, JointInfo.WeldJointId, --焊口id Report.TestingPointNo, --试验部位 Report.HardNessValue1 AS HardNessValue1, Report2.HardNessValue1 AS HardNessValue2, Report3.HardNessValue1 AS HardNessValue3, Report.IsShow, JointInfo.WeldJointCode, Report.SortIndex, Report.Remark, Report.Flag FROM dbo.HJGL_WeldJoint AS JointInfo LEFT JOIN dbo.HJGL_Hard_TrustItem AS TrustItem ON JointInfo.WeldJointId=TrustItem.WeldJointId LEFT JOIN dbo.HJGL_Hard_Report AS Report ON Report.HardTrustItemID=TrustItem.HardTrustItemID LEFT JOIN dbo.HJGL_Hard_Report AS Report2 ON Report.WeldJointId=Report2.WeldJointId AND Report.HardTrustItemID=Report2.HardTrustItemID AND Report.SortIndex=Report2.SortIndex AND Report2.IsShow=0 LEFT JOIN dbo.HJGL_Hard_Report AS Report3 ON Report.WeldJointId=Report3.WeldJointId AND Report.HardTrustItemID=Report3.HardTrustItemID AND Report.SortIndex=Report3.SortIndex AND Report3.IsShow IS NULL WHERE Report.IsShow=1 GO ALTER PROCEDURE [dbo].[SP_HJGL_HotProessReportItem] ( @HotProessTrustId varchar(50), @Flag CHAR(1) ) AS --管道焊接接头热处理日委托单明细表 IF(@Flag='1') BEGIN SELECT v.* FROM (SELECT ROW_NUMBER() OVER(ORDER BY WeldJoint.WeldJointCode,ReportItem.PointCount) AS Number, WeldJoint.WeldJointCode, Pipeline.PipelineCode, ReportItem.PointCount, ReportItem.RequiredT, ReportItem.ActualT, ReportItem.RequestTime, ReportItem.ActualTime, ReportItem.RecordChartNo, WeldJoint.Specification, --规格 Material.MaterialCode, --材质 Trust.ProessDate, HardReport.InspectionNum FROM HJGL_HotProess_Report AS ReportItem LEFT JOIN HJGL_HotProess_TrustItem AS TrustItem ON TrustItem.HotProessTrustItemId=ReportItem.HotProessTrustItemId LEFT JOIN (SELECT InspectionNum,HotProessTrustItemId FROM HJGL_Hard_TrustItem AS Hard LEFT JOIN HJGL_Hard_Trust Trust ON Hard.HardTrustID=Trust.HardTrustID) as HardReport on HardReport.HotProessTrustItemId=TrustItem.HotProessTrustItemId LEFT JOIN HJGL_HotProess_Trust AS Trust ON Trust.HotProessTrustId=TrustItem.HotProessTrustId LEFT JOIN HJGL_WeldJoint AS WeldJoint ON WeldJoint.WeldJointId=TrustItem.WeldJointId LEFT JOIN HJGL_Pipeline AS Pipeline ON Pipeline.PipelineId=WeldJoint.PipelineId LEFT JOIN Base_Material AS Material ON Material.MaterialId=WeldJoint.Material1Id WHERE Trust.HotProessTrustId = @HotProessTrustId and Trust.ReportNo is not null and Trust.ReportNo!='') v WHERE v.Number<=7 END else IF(@Flag='2') BEGIN SELECT v.* FROM (SELECT ROW_NUMBER() OVER(ORDER BY WeldJoint.WeldJointCode,ReportItem.PointCount) AS Number, WeldJoint.WeldJointCode, Pipeline.PipelineCode, ReportItem.PointCount, ReportItem.RequiredT, ReportItem.ActualT, ReportItem.RequestTime, ReportItem.ActualTime, ReportItem.RecordChartNo, WeldJoint.Specification, --规格 Material.MaterialCode, --材质 Trust.ProessDate, HardReport.InspectionNum FROM HJGL_HotProess_Report AS ReportItem LEFT JOIN HJGL_HotProess_TrustItem AS TrustItem ON TrustItem.HotProessTrustItemId=ReportItem.HotProessTrustItemId LEFT JOIN (SELECT InspectionNum,HotProessTrustItemId FROM HJGL_Hard_TrustItem AS Hard LEFT JOIN HJGL_Hard_Trust Trust ON Hard.HardTrustID=Trust.HardTrustID) as HardReport on HardReport.HotProessTrustItemId=TrustItem.HotProessTrustItemId LEFT JOIN HJGL_HotProess_Trust AS Trust ON Trust.HotProessTrustId=TrustItem.HotProessTrustId LEFT JOIN HJGL_WeldJoint AS WeldJoint ON WeldJoint.WeldJointId=TrustItem.WeldJointId LEFT JOIN HJGL_Pipeline AS Pipeline ON Pipeline.PipelineId=WeldJoint.PipelineId LEFT JOIN Base_Material AS Material ON Material.MaterialId=WeldJoint.Material1Id WHERE Trust.HotProessTrustId = @HotProessTrustId and Trust.ReportNo is not null and Trust.ReportNo!='') v WHERE v.Number>7 END ELSE BEGIN SELECT v.* FROM (SELECT ROW_NUMBER() OVER(ORDER BY WeldJoint.WeldJointCode,ReportItem.PointCount) AS Number, WeldJoint.WeldJointCode, Pipeline.PipelineCode, ReportItem.PointCount, ReportItem.RequiredT, ReportItem.ActualT, ReportItem.RequestTime, ReportItem.ActualTime, ReportItem.RecordChartNo, WeldJoint.Specification, --规格 Material.MaterialCode, --材质 Trust.ProessDate, HardReport.InspectionNum FROM HJGL_HotProess_Report AS ReportItem LEFT JOIN HJGL_HotProess_TrustItem AS TrustItem ON TrustItem.HotProessTrustItemId=ReportItem.HotProessTrustItemId LEFT JOIN (SELECT InspectionNum,HotProessTrustItemId FROM HJGL_Hard_TrustItem AS Hard LEFT JOIN HJGL_Hard_Trust Trust ON Hard.HardTrustID=Trust.HardTrustID) as HardReport on HardReport.HotProessTrustItemId=TrustItem.HotProessTrustItemId LEFT JOIN HJGL_HotProess_Trust AS Trust ON Trust.HotProessTrustId=TrustItem.HotProessTrustId LEFT JOIN HJGL_WeldJoint AS WeldJoint ON WeldJoint.WeldJointId=TrustItem.WeldJointId LEFT JOIN HJGL_Pipeline AS Pipeline ON Pipeline.PipelineId=WeldJoint.PipelineId LEFT JOIN Base_Material AS Material ON Material.MaterialId=WeldJoint.Material1Id WHERE Trust.HotProessTrustId = @HotProessTrustId and Trust.ReportNo is not null and Trust.ReportNo!='') v END GO ALTER PROCEDURE [dbo].[HJGL_SP_HardReport] ( @HardTrustID nvarchar(50) ) AS --通过委托id获取硬度委托单及硬度检验报告信息 BEGIN SELECT Project.ProjectName, Project.ProjectCode, Report.ProjectId, Report.InspectionNum, Report.CheckName, Report.HardnessMethod, Report.Standards, Report.HardnessRate, Report.AcceptStandard, Project.ProjectName, Project.ProjectCode, UnitWork.UnitWorkName, HardTrustUnit.UnitName as TrustUnitName, Unit.UnitName as ContractUnitName, '已完成' as HotProessState, Report.EquipmentModel, Trust.MaterialCode, '共检测'+CONVERT(nvarchar(10),item.pointCount)+'点,符合标准要求'+CONVERT(nvarchar(10),item.pointCount)+'点,不符合标准要求0点,具体检测部位详见单线图。' as testResult FROM dbo.HJGL_Hard_Trust AS Report LEFT JOIN dbo.Base_Project AS Project ON Project.ProjectId =Report.ProjectId LEFT JOIN dbo.Base_Unit AS Unit ON Unit.UnitId =Report.CheckUnit LEFT JOIN dbo.Base_Unit AS HardTrustUnit ON HardTrustUnit.UnitId =Report.HardTrustUnit LEFT JOIN dbo.WBS_UnitWork AS UnitWork ON UnitWork.UnitWorkId=Report.UnitWorkId LEFT JOIN (SELECT COUNT(*)as pointCount,T.HardTrustID FROM HJGL_Hard_Report R LEFT JOIN dbo.HJGL_Hard_TrustItem T on T.HardTrustItemID=R.HardTrustItemID WHERE HardTrustID=@HardTrustID and IsShow=1 group by T.HardTrustID) AS item ON item.HardTrustID=Report.HardTrustID LEFT JOIN (SELECT top 1 Trust.HardTrustID,Mat.MaterialCode from dbo.HJGL_Hard_TrustItem Trust LEFT JOIN dbo.HJGL_WeldJoint Jot on Trust.WeldJointId=Jot.WeldJointId LEFT JOIN dbo.Base_Material Mat on Jot.Material1Id=Mat.MaterialId where HardTrustID=@HardTrustID) As Trust ON Trust.HardTrustID=Report.HardTrustID WHERE Report.HardTrustID = @HardTrustID END GO