From cab2bb840a76ee718e8d94b53c9c9aebf4974c50 Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Tue, 28 Apr 2026 09:46:17 +0800 Subject: [PATCH 1/7] =?UTF-8?q?20260428=20=E9=A1=B9=E7=9B=AE=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E9=87=8F=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../版本日志/HJGLDB_DS_2026-04-28_bwj.sql | 155 +++++++++++++++ HJGL_DS/BLL/Common/Const.cs | 5 + .../Fastreport/JGZL/无损检测人员登记表.frx | 4 +- .../Word/JGZL/合格焊工登记表导出模板.docx | Bin 21725 -> 21626 bytes .../Word/JGZL/无损检测人员登记表导出模板.docx | Bin 0 -> 14609 bytes .../HJGL/WeldingReport/IsoCmprehensive.aspx | 7 +- HJGL_DS/FineUIPro.Web/JGZL/NDTPerson.aspx | 3 + HJGL_DS/FineUIPro.Web/JGZL/NDTPerson.aspx.cs | 179 +++++++++++++++++- .../JGZL/NDTPerson.aspx.designer.cs | 9 + .../FineUIPro.Web/JGZL/QualifiedWelder.aspx | 1 + .../JGZL/QualifiedWelder.aspx.cs | 133 ++++++------- .../JGZL/QualifiedWelder.aspx.designer.cs | 9 + 12 files changed, 415 insertions(+), 90 deletions(-) create mode 100644 DataBase/版本日志/HJGLDB_DS_2026-04-28_bwj.sql create mode 100644 HJGL_DS/FineUIPro.Web/File/Word/JGZL/无损检测人员登记表导出模板.docx diff --git a/DataBase/版本日志/HJGLDB_DS_2026-04-28_bwj.sql b/DataBase/版本日志/HJGLDB_DS_2026-04-28_bwj.sql new file mode 100644 index 0000000..2e701b9 --- /dev/null +++ b/DataBase/版本日志/HJGLDB_DS_2026-04-28_bwj.sql @@ -0,0 +1,155 @@ + + +ALTER PROC [dbo].[HJGL_sp_rpt_iso_analyze] + @unitNo VARCHAR(400) = NULL, + @isono VARCHAR(100) = NULL, + @steel varchar(50) = NULL, + @projectId NVARCHAR(50) = NULL, + @StartDate datetime =null, + @EndDate datetime =null +AS +/*ӹͳ ܴ޸2020.03.06*/ +SELECT iso.ProjectId,iso.ISO_IsoNo,iso.PressureTestPackageNo,Unit.UnitCode AS bsu_unitcode, --λ + Unit.UnitName AS bsu_unitname, --λ + Project.ProjectCode as projectCode, --ʩ + Project.ProjectName as projectName, --Ŀ + ''+cast(cast(ISO_Dia as FLOAT) as nvarchar(50))+''+cast(cast(ISO_Sch as FLOAT) as nvarchar(50)) as IsoDesc, -- + v.ISO_ID,v.total_jot,v.total_din, + ISNULL(v1.finished_total_jot,0) AS finished_total_jot, + ISNULL(v1.finished_total_din,0) AS finished_total_din,v1.maxdate, + ISNULL(v1.total_film,0) AS total_film, + ISNULL(v1.pass_film,0) AS pass_film, + CAST(CASE ISNULL(v1.total_film ,0) WHEN 0 THEN 0 + ELSE 1.0*ISNULL(v1.pass_film,0) / (1.0 * v1.total_film) END AS DECIMAL(19,3)) + AS passrate, --ںϸ + ISNULL(v2.point_jot,0) AS point_jot, + ISNULL(v2.point_total_film,0) AS point_total_film, + ISNULL(v2.point_pass_film,0) AS point_pass_film, + CAST(CASE ISNULL(v2.point_total_film ,0) WHEN 0 THEN 0 + ELSE 1.0*ISNULL(v2.point_pass_film,0) / (1.0 * v2.point_total_film) END AS DECIMAL(19,3)) + AS point_passrate, --ںϸ + + ISNULL(v3.ext_jot,0) AS ext_jot, + ISNULL(v3.ext_total_film,0) AS ext_total_film, + ISNULL(v3.ext_pass_film,0) AS ext_pass_film, + CAST(CASE ISNULL(v3.ext_total_film ,0) WHEN 0 THEN 0 + ELSE 1.0*ISNULL(v3.ext_pass_film,0) / (1.0 * v3.ext_total_film) END AS DECIMAL(19,3)) + AS point_passrate, --͸ϸ + (ISNULL(v2.point_jot,0)+ISNULL(v3.ext_jot,0)) AS check_total_jot, + ISNULL(v4.total_repairjot,0) AS total_repairjot, + ISNULL(v5.trust_total_jot,0) AS trust_total_jot, + CAST(CASE ISNULL(v.total_jot,0) WHEN 0 THEN 0 + ELSE 1.0*ISNULL(v2.point_jot,0) / (1.0 * v.total_jot) END AS DECIMAL(19,3)) + AS trustrate, --ίб + CAST(CASE ISNULL(v.total_jot,0) WHEN 0 THEN 0 + ELSE 1.0*(ISNULL(v3.ext_jot,0) + ISNULL(v2.point_jot,0)) / (1.0 * v.total_jot) + END AS DECIMAL(19,3)) + AS checkrate, --̽ + ISNULL(v6.total_fjot,0) as total_fjot,--װ + ISNULL(v7.total_sjot,0) as total_sjot --Ԥƺ +FROM + (SELECT ISO_ID, COUNT(JOT_ID) AS total_jot,SUM(ISNULL(JOT_Size,0)) AS total_din + FROM dbo.HJGL_PW_JointInfo + GROUP BY ISO_ID) v + LEFT JOIN + (SELECT ISO_ID, COUNT(JOT_ID) AS finished_total_jot,SUM(ISNULL(JOT_Size,0)) AS finished_total_din, + max(weldreport.JOT_WeldDate) AS maxdate, SUM(ISNULL(jot.RT_FilmNum,0)) AS total_film, + SUM(ISNULL(jot.RT_FilmNum,0)-ISNULL(jot.RT1_RepairFilmNum,0)) AS pass_film + FROM dbo.HJGL_PW_JointInfo jot + LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID + WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null) + AND jot.DReportID is not null + GROUP BY ISO_ID) v1 ON v1.ISO_ID=v.ISO_ID + LEFT JOIN + (SELECT ISO_ID, COUNT(jot.JOT_ID) AS point_jot,SUM(ISNULL(jot.RT_FilmNum,0)) AS point_total_film, + SUM(ISNULL(jot.RT_FilmNum,0)-ISNULL(jot.RT1_RepairFilmNum,0)) AS point_pass_film + FROM dbo.HJGL_PW_JointInfo jot + LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID + WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null) + AND jot.DReportID is not NULL AND jot.PointType='' or ((select top 1 CH_TrustItemID from HJGL_CH_TrustItem ti where ti.JOT_ID=jot.JOT_ID) is not null and jot.PointType is null) + GROUP BY ISO_ID) v2 ON v2.ISO_ID=v.ISO_ID + LEFT JOIN + (SELECT ISO_ID, COUNT(jot.JOT_ID) AS ext_jot,SUM(ISNULL(jot.RT_FilmNum,0)) AS ext_total_film, + SUM(ISNULL(jot.RT_FilmNum,0)-ISNULL(jot.RT1_RepairFilmNum,0)) AS ext_pass_film + FROM dbo.HJGL_PW_JointInfo jot + LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID + WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null) + AND jot.DReportID is not NULL AND jot.PointType='͸' + GROUP BY ISO_ID) v3 ON v3.ISO_ID=v.ISO_ID + LEFT JOIN + (SELECT jot.ISO_ID, COUNT(distinct trust.JOT_ID) AS trust_total_jot --trust.CH_TrustItemID + FROM dbo.HJGL_CH_TrustItem trust + LEFT join dbo.HJGL_PW_JointInfo AS jot on jot.JOT_ID=trust.JOT_ID + LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID + WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null) + AND jot.DReportID is not NULL + GROUP BY jot.ISO_ID) v5 ON v5.ISO_ID=v.ISO_ID + LEFT JOIN + (SELECT ISO_ID,COUNT(DISTINCT(jot.JOT_ID)) AS total_repairjot + FROM dbo.HJGL_PW_JointInfo jot + LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID + WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null) + AND jot.DReportID is not NULL + AND(jot.RT1_RepairFilmNum IS NOT NULL OR jot.PTIsRepair1=1 OR jot.MTIsRepair1=1 OR jot.UTIsRepair1=1) + GROUP BY ISO_ID) v4 ON v4.ISO_ID=v.ISO_ID +--װ + LEFT JOIN + (SELECT ISO_ID,COUNT(jot.JOT_ID) AS total_fjot + FROM dbo.HJGL_PW_JointInfo jot + LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID + WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null) + AND jot.DReportID is not NULL + AND jot.WLO_Code='F' + GROUP BY ISO_ID) v6 ON v6.ISO_ID=v.ISO_ID +--Ԥƺ + LEFT JOIN + (SELECT ISO_ID,COUNT(jot.JOT_ID) AS total_sjot + FROM dbo.HJGL_PW_JointInfo jot + LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID + WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null) + AND jot.DReportID is not NULL + AND jot.WLO_Code='S' + GROUP BY ISO_ID) v7 ON v7.ISO_ID=v.ISO_ID + + LEFT JOIN dbo.HJGL_PW_IsoInfo iso ON iso.ISO_ID = v.ISO_ID + LEFT JOIN Base_Unit AS Unit ON Unit.UnitId = iso.BSU_ID + LEFT JOIN Base_Project AS Project ON Project.ProjectId = iso.ProjectId + WHERE (iso.ProjectId = @projectId OR @projectId IS NULL) + AND (iso.BSU_ID=@unitno OR @unitno IS NULL) + AND (iso.STE_ID=@steel OR @steel IS NULL) + AND (iso.ISO_IsoNo = @isono OR @isono IS NULL) + + + + + + +GO + + + +ALTER PROCEDURE [dbo].[sp_rpt_WelderQualified] +( + @projectId NVARCHAR(50), + @WED_Name nvarchar(50) = null +) +AS +/***********-ϸ񺸹ǼDZ*************/ +SELECT (ROW_NUMBER() OVER(ORDER BY pw.ProjectWelderId)) AS Number, +pw.ProjectWelderId, +w.WED_Code, +w.WED_Name, +w.WED_WorkCode as CertificateNo, +convert(varchar(10),wqp.LimitDate,111) as LimitDate, + STRING_AGG(wqp.QualifiedProjectCode, '') as QualifiedProjectCode +FROM Project_Welder pw +LEFT JOIN HJGL_BS_Welder w ON w.WED_ID = pw.WED_ID +left join HJGL_BS_WelderQualifiedProject wqp on wqp.WED_ID = pw.WED_ID +where pw.ProjectId=@projectId +and (w.WED_Name like @WED_Name or @WED_Name is null) +and wqp.LimitDate IS NOT NULL AND wqp.LimitDate> = GETDATE() +GROUP BY pw.ProjectWelderId,w.WED_Code,w.WED_Name,w.WED_WorkCode,wqp.LimitDate +order by w.WED_Code,wqp.LimitDate +GO + + diff --git a/HJGL_DS/BLL/Common/Const.cs b/HJGL_DS/BLL/Common/Const.cs index eca89e6..9dc044f 100644 --- a/HJGL_DS/BLL/Common/Const.cs +++ b/HJGL_DS/BLL/Common/Const.cs @@ -2544,6 +2544,11 @@ namespace BLL /// public const string JGZL_QualifiedWelderUrl = "File\\Word\\JGZL\\合格焊工登记表导出模板.docx"; + /// + /// 无损检测人员登记表导出模板 + /// + public const string JGZL_NDTPersonUrl = "File\\Word\\JGZL\\无损检测人员登记表导出模板.docx"; + /// /// 管道系统压力试验条件确认记录导出模板 /// diff --git a/HJGL_DS/FineUIPro.Web/File/Fastreport/JGZL/无损检测人员登记表.frx b/HJGL_DS/FineUIPro.Web/File/Fastreport/JGZL/无损检测人员登记表.frx index 8007f1b..6816dcd 100644 --- a/HJGL_DS/FineUIPro.Web/File/Fastreport/JGZL/无损检测人员登记表.frx +++ b/HJGL_DS/FineUIPro.Web/File/Fastreport/JGZL/无损检测人员登记表.frx @@ -1,5 +1,5 @@  - + using System; using System.Collections; using System.Collections.Generic; @@ -42,7 +42,7 @@ namespace FastReport } - + diff --git a/HJGL_DS/FineUIPro.Web/File/Word/JGZL/合格焊工登记表导出模板.docx b/HJGL_DS/FineUIPro.Web/File/Word/JGZL/合格焊工登记表导出模板.docx index 49ad41a066f790d9615f8e2bd673f09e6a28b549..297ced6232b1c012db079e154b01e788e8518631 100644 GIT binary patch delta 10748 zcmaKybx>SSwC8aPF2UX1E%@NBgFC?{Kwxkk9D>83!Civ~cL~8ExVr>*2)grHTyP5*2q5zw1kj3U$9Slf$Uy(y_Y-9}|Dz(ug5wIUIuB5EBM|RXu0ACLEMn6+ zPa;Cj9f8LgrHIQ>=ztU#!xc94*mtt^z;ogy+ZAh}x@J+g!pW=aOI8wS(2|*}C?|f#sk#WC9@U+=WY>6m!jR{R%4o6j7JK?RXK2x1DI6!bK)j?N+z}lrepGsl=`VG<)$a zD|uUOI{JVg0RJ3%OSJ+%66Y|zkhu4E^(&4ty}^G>I7>1q17sj`Tx`pOzk z(FUHcty0%H^2QYOGA-!(ed!yh`0QKKqD(R{CkjvwB8Fs~xP>!WU-xOW|IYaEB}vw6 zg65q~h?ne0!;7q3DR?P;+E0Lx_iJ`kChI{_daEV1StMyHKDUiN?zIb=Y`J6@*EL*a zEiw}9^l>gA($)rFF$3rKRzHQbq&9iSCLC=8bZ?EP4PJfB1~B#jS2fLB>;l6dphK@X z0qr?*A%^sR?geJ|pz`pdd|HD|diINR{ehyfwo;~Uv~Ss>iIJ4GmALlHd(5zpw$mI* z+Eor{(!>=coC^iFiiRy&zw7=52lD|eh41@&O%n6YBKYW2i2<(KT`n296E+vd+|W!{ zdAOB>h#R>>^t)1dTQ-A08SgFKM<*p+9v=Smuj3E|JkNLzau2giBoY?X@zaRatgpXe z#Dg@+j5tWr-n!m)mdeiHz7TmlITYcBAf1`vr$jPrQ&EVW3=HIudRJhl_4-U=FhUi2 zwkuungat*Xm=b}9%@C{(IlOKn=N%MVTa8V??XNG}By zU$$l9oz+?5spq5~i2LP`Go1*N1`RB%%f-Hh>x<^o?Ft0bR0a@~+;8_~HTiw*QKI4S ztT*teOknY8PnE9_q#VjG;wn*K&6TNWCIk89Z=p*g+Y1ACzDQXMj)XfgS4g1Z85ZLx zD>9k9z^HLT+0z*S1k*2#Bq%mk>TY>ge?~_zB{7m_RGra+TC6eNyDu_0ySR~FL?s}E1t=}t4{tl@2QAM6TeCff5gw7}L_@A!uh(|=ce2wHiXgh& zY*sk*)^7v_8sSOTFy>*Xam7vh#~68y2rW@ssq1Z%yfr3AC^lY{r*B``;)+>2d|Umv ztjOM8Z>QHkpN7~DU!*qF>8u(p=i0A%l<#B`j4{^SEps;G$qS!`7*D&Sn=}hhHs(}+ z7l4R+cdh4EDZP$Q*-d|5_Jye6>&BW?Ct1C%UEby5R8jjU(OB`(D8+LYyj&^z zzO?TbmdZycg1@sVX-f-zaa}3~YaPD^9QT@yQ+BChPACxGj3Q1nNFSPJg^wAygqQu4 zUI)ujV|>Mf@;OsSCpevx|C#~T*Yj0QwY%jWA9nmEnvyYhM4ifbE&(^TyFePBg56^C zjB4BGS6Ha(Q6pkJ64gG&kh#5;b03toaK%}!L)1TV8!IldGqye%N;pa-o!%PaZlBNS zD%MRtDCW1`4=n;7&s-da_vZJP|8|`?m$Q_%vw4I*)Ju4XZ;Cun8aRkpBbMThhkV9)RvM@}C@cEAepx5}SY1T~E3OtVVqlvjSy;&3!mj@X; zTH^a>iB^|TrAL~UOUsrsGZ+|{x3?-CWwm}T>`tYuFf(HVmK#4MS7YRk-YfxI#0UmmD-sfa=Kq9_;dQ%ht{eb zOVTjRe96kh6ESRPtw6{`kVv&bF1$XuHC@~_tW(CbYK-c0@>GCEk?!mv zY-44S3$N-+N;tbNZ;{x7Oy$uZV_ObQR<`pCF&(kxv!3@q032EUb^;89mID*^>V%85 zsZq*o&$C(COdPktze{%xU(%e0jJ9^BH8bzZq-nhfe_NymbKLocP%)x6uZGYQCCLK% z?1XHcqZFz7AlI$P8yLzfFkVQ+s$m)!M)h+(kvhsS4tw_JhLRNlvu8 zz*DA2Hbj{VR`IkiZ)`dEB36Ve>2Jd~r2oR_B>hF;2Cc@Ugsl7x4fOEyM6U>zdlM~l z6yPVuqNq;;Td;u4Y8+KEdi&9JihGn8`>)u7<)ERBH<3G=r~IQlf_cR$)GxX*2!I0( zg-+$4$D`6-@^A;O99|fPbRRj%mP*nHGdVb5JCHby1JO^n-_NAnGnCBkrD&{v>p_Vf z#;w|>fcy)8<3Hi6{sW)Ds`>v3Urhf02Y>D#_@=fK|G;;qs-ST6G=FDBO*mn}M+$w% zZCTn_ihP2jJShA=05qY7pXSqhbL_(PX6@v~N=8Bc-9G*igs?&L(xf6q_|z$tgcojf z){BciOhawKXUz8yy<#XzA6obHFZ>_>8~z=&hpT_{Kk$?O6TW@8tLbUs#J}(tvks)w zXy4vcCmMA+rGwoTq*B>Iop9EJM@}f{sF5MW17m^sw>MAx zn95qudlya*0P_Pkcc3oC+ZfB+@5ye{&p91N=U95}r`LE-DZ<|M>pABf)lHDkIl0dd z^%CT2Ib?B_r-Pt|mFnDFKYdEI*XP^rx0T%WT#ET2S_u(Ri^$V0xBKT^k8UxsEVJqw zy@=8Uy@RJUi~Gli8$VC~Hs6=WBfpo6Txf*g-K084{7~kM?IeZiBgnI1ooD%Y?bXL! z)bIOBx3|Ze&06+`X-)Hx?F1zK#-V$?Do*9W+1uUKi|q9AO@t)3&5vw%O~PoP{dj!m zeBJ1JGT=|`>V5mm;9J*ajml^5Et_r;GfGV7J0I8X)#JIjJD2qSeKX>NoZJnQ&gGgr zN^#=dPfe%IYiEzcPcxafuVmr%2S2hzjZlt{^^T((up)LI+s>PY`qv=+dSfWR%i7O9 zhZnFfk$HJP&ZI`#I=&JlB5P@d4tyScRE3W65+D z*_@g7G&i>vw14d(2FZ&&uKc5nOn0GLCD$tePhA(=~|t$+VpMV`Tz^}cKDuaiO`eM^z{L@+~+waR@;5> zkFTa-Sv}i<-M* z)s@INmMUaoJe==Vguoy2_{Znu#P1ZuXXH=TP~;|ZpsATvr+6OBD;`F*;WBL9s+DHx z0`;@4M&%Jk4{5s$Ooi3yX8Y)}Hd!%;6iDfdl zQ)g&I&F1cEbAuc4RmOg4740e~_JJbGGs_9494*a6cvNdHx_9G63y-{1Zp!II@0}0vPsb zF6|xjnV-QvqPlk@seAK5nnPl3<(;!D3@H7BUCc2iFkiqtJ!lXo5TEbUT6+CaC9O@v z;lyM)yKi=1acMnRo>L2VG(ia}qG$8DViwY>1?B*YrJQtd1M;%gT=lPNemN9mK%T@hdwrXo(cOn%0FeF%FBJu3a$KxysmaqaTrz z2A|8GHeLS!*0k(g;oDR;u8-q*mbC2H(4;B442}P+jv?!yC#nL?uQLiND+iqzvO;JT zVx$^nm&hdyD2pck4BKv`=+u3}nWXYM%^aU*azwX5w*vaT3sO{9jd@=X@2cxd@+%=a z?cDsObG9lFNKv&d)pIwYMF?P>k3ABZUgTm_{L(;~l@yY0)hIO#>jJ)ONNN_^&djdI zUu53)`ko`Cmsw8|o9G8^OZastUkYgyx3;a&+)(sZSVXIHwWqSJ0P_hX_h@&{lpGf6 z;FK6Le&=3E(2lp{TO=-QR1i)kYpWj-zWZ3UZA1}6zUPydP|HNI%acjX(q-NFF`>(a zOAJHn07)xLoYgyIyGpx(!q1%ur#G8AZd%FI$^`yQrIS}^#da?nxg;U#Sq(x>F`?uW z0rJnCorpy;NnRyBC990dk<(!vt#TZ5UlOg$arvs6oN=s=?VTYKU!*m`ghAnZp=%?j zEkG?e*lh1?Q5Ll@Lqv;dIOYQy=$E>5JdzC54JgGLsEtDY*yyEdU1@UwPWj5;PWHnE z*ERE9M$T+fD}1uhV6)|LNG9ZpXmHZwYf274k(uc%xp8+T3c2`iR2$lthuB^Z_$Zw& zDZVhT?NX1P-z?#m8x#xnp$!UNEvG! zVE>T(qUUFNK|DLicdZoQ_l?c0CS?{l%%2f~s@Wl}N&RsJ(UWTqiVS!F7kj{hItXwr zVcGkubU`jWm{@dj4K}rM)PZFa$=hsvL`s7#Wd=r7#lJztRa){1`g$GqI4(8r9wX3^ zk}~p-R=^JF_oh}JmJq_KQE~nh5hK0KSXF)HW0Ll~0zRftrjZ3B+#Y=$KXWnf=`w8I zW8?x7f__5@c8kCy_>CTEIg3OGqD90?4@^ENn|y5e<9<1_65n7PnlB4Dxx$0j!(B>XohRt@{{4 zV4{VZZvdk%3Fyl-Fy}sqsx8#`(4==s#ZM!?r_2U8MGBi+oHfZ};D_g8rer8CUDETa z*hex%oG5LiC<$Y5RG^4T@e;+BNh zVtU?NwwYwIF)C7nE&TURNg(FTpB<44DIDgES=wdoh^5WTKhm-s$mcvqrg$!k_3eq7 zm1O9t_ta!kWLYrKOQZD1QqNwhSl~2zT8ij&c}Z!%LEa^cO1$5f_|~-u>Xp`Ml$wh< z9Au%;aekXk&e3HXtg4`SZ;Mn`@iD>a6L z$Rp=8O&Z{m1Eo7KY3i}`8SD3?R;BKTwBy5qD;~@i7Q&P?Y!?zZg{|zh1bJNA+iZ(Q zHytKlNs4|DeQ~f91N|4}WZj0^T_?A3(iAJ06Fn<}vu%cY0hUYvE~BX6tEOg298hOj zh`_39gy{=~@;(IAs5MhIr6{-pJN!NeGCywDOg_so)R)2fjjQ8+)&-1Ah7JNRO2~eF&sYpHsr{c#zZM+K&Gm+WWO!>Q-T!>FG!u02kjzX z4nB=kXCu5)+tpjAgF((sb#MW5Q9^J|d2`uPcCX3^V_G489keh<*n@IVk^B$`;e>Y~ zU_Ess$8lj&qRG7h9egNf6$PH>ML!VB5=Y<{>D+!uuc#QU))O_yZ@AO>2#YrZd_ z@@wLdeFFvcr6)d3BBw0|J+ewu0gRT=9HWdak}$MyFz~p;5$&FlDn4U5k%uEle-eMFQ=o_R!Ub3 zrClBm*mxGi+~b){2M2BVmQ+t9Yh9C8Qp(3VK#az#ovkOnpBh`S=%vK~xnQxtTM~*| zL|eO8UUJg)n4PiQU$&ZjF7>WOCRFxf?>*M(_??6tDMDTDSE^N{)5`D-{XK%oZ;z7X z*&<`kEh{}S8}ax-aGKNr$Y$}9RzOyJM+ zu|`Cun?)?wsLk0U5!d1+2w-V_+FSi6^*S+iZFv+fsv^+sSRQTA5c1v_y;d_uj)G!e zYAKs}G9M#KWQNTCKB4e?di2q|JWR!UW<4cQi#7nvZ}CGHoj-8jl|k)lBAQG2rS&9P zebQW=10kvd)Lm*9s&hS}IBAJ<$|N(t9f2nDIZV@W6`2#-Uy4$cf5X86T)%CTN^7jRCb4%awB>Z(No_lS9-m+--BYs+t5A zrjrW5^%>C=J_SJjU2g*52)+mJp)4WWyc}PUUiz z6?jPR`IIt2PWD9)zvejTjK`{~APV@UO4tFIxq%BuAVMwMov4dji+p^}XE;Wosc%HQm@thrBq#JM# zH8fbcG~3J8ycyP>0MV_JiH$vwWvZ}%4Y#!E5M9HSRPM?%+nyj%U^SOkwyYLGf4ZK9>fxrocx9mp$)3KItfIPw(RsJ}ARBCR$TxW_}m__W=3%$^Camv02{spJwEEbc-{XO-K z8eavN819P98ZoLMqqKr)_iHf1VtB>oFE<^Clvt=N9O-G}66yxZu4NJs7tU|mSo0G0 zJ+X4}BeOzudQcKJOj9ajST}5V!Y-3CthHJZmD$x--BCmz9P#vUrY4;^SYeVd5uizd zhO;dT10xplrX~e8T4|>akh=gp%uI@#hA)OdE#hU+R;=^F_#w{69S9%29!tg32QLRv zM`rD$4gM_2Q-luvD=5%iXyY$eX?~W?HwH|6W9meHTth^h;t6_XLhG8I>|21B#l~cL z4wU>(f~I8IXeY#0pg~qUut!zAj0jMB)SInBt;WmCc$`p~3>{Hd>=#!5gzqWo|2Idu zVE`y^%3YGHRnRTV5QHfe#R$M$eK>@aCxyt^4D=FllSG*Z(a|9ymmS3>GE5r-W!bOf zoLD4cz0n^Kh2fKYXz6hdq$4@6!XlxtNPlyuLtn&hf@5MKZ8jGOcCc_POJR(3h9ZkB z2Oe_pL^TgBwqFHG#TyBlt!M<(zTBH&L`X764C-0gvWR?MS!5;Nh|6xEvMz)_z$dW{ zaSMkxU8`_K=5(^L5mDitGBSlfsS+vU*TlmE-3?fkqJ%sqzP@K1`f1PWDRu&d~8VINAh$(VBI{HpApBEX`Vt2 zyKhV^SOz>tk`&9@7=G@4{P+fuDr%!BDdDSB;ae*^c4D0v1k;6v6HGeP1Gdtu6;vj&XTxv!7wj(hlFkuGw%dFbSh#!KAA)CJHQwiM zY3o~We^eu23iS}yQI&^8kYK4WxKcETyW+Eesc&rm3&G{UBgs6NT(H4pmV^(=$}KN%ysFiB`&gLfHnh$XIs8*~1C#LKixjA0w-= z2nog5Ju-R{ku4;#)fg;FBP@a^QYm-eT*RPb>Y9!;XkqP=`3yB6$}e~(n-w6WEOT`- zQGC(OJ}j1?s6w)DFgS#X(nl$aT0R-Ya$g3@&l`(-mAxS)h&9{0Cu!$wgqkjD?NW=2tQOaDNo+f z+4j^)RMG&y!ac-|(B;M4h@qaNBi7{c(8itrDJC!*kHtfl;f(slctj8-($f|v@^wHY z@N;O?kw{~GYejvq3I@C^kgVA6sAXTyFG3$*7fvdHL(Zs$FwcMYW>01d+EPPssDG;+|`(OG`+Z@i+!) zyb>B34qamQSN8+0tST1ILrliw+0$I&MkdVrL_tDi&eOitC13xxRpGAHZNIk#@EYU} zdi>O0GkWwm_X@h*9R#xqFW{Kvb}e^j*EGf7=zVgMH-jh%xBK5J_&wg_IJcNO3S@t( zIY(+~`LOC7eY>`iNm%)k8DF^OxN`g3RD7@CxI0Gzv(xx}*E*yhaZ~Vq!)r2Z?0$hs z;x%;tCgQTX$#~E2<>A@+>FDJ0+bIO}wuSfW^ln>X<1`I6*Z7x7x~Mp)b@; zA*V61b)LD>>T52Hmx>A-@f9=EYJ8#j2fO~j zCeI3Fqmq>nrO{GLsf|R|x<=RA3kiLeQ8|>~4wq7%`_M{aO*_o&PXkuN6p{GsXd=TVquJ3qGjRkKN9zFf+W z1Se9Ynw4;aI8v}ox~}<6h(0EqeZ*)n#ZfaAx*B=3M0}hzHQ@P=Rr9sK+~JqexPoYz zp>-vaBA+tRt@=Hv%D-d*TDMB(lMErAvqq~LcZ$t{cz_c9;NmR9C^0SvIhv!ytk|FX z%6jC1yyyf98uOb%QJ3-a!KwR`VNT$Zd0Ig6Dh%}fu0tT&== z&Rny$vV4s$R;02q;n8#?&?gfH!G`t~vRwbmQ{e1kF{=-4paj{dFGm>e50Gtl(#{54 zccBI6b1qA%A|vr6ymN6_ea~npor^*Vwc-NZghCR|6*mAm@p=&m=0Ov6rf$%t@84zj z_cP>7I7rMPWHdNQ$Pp}S%R8ILVR|xt!^`eeOdsp$cLOVu!C2cqUgf83{0DnqMO_5M z$-L5cz76xLJg^XY3V;!jDnO$Im^=I67Lro4LhZ_wHjwA!ISspf>(51Sqqe{U+ z#_+OilhkVi;Cs7b?d7J?tKu%PR;K9mP+*@>^e8yGu48*hz7})BN`b^m3Ri$*l!G2J zte;GNM>A38SU%G-6)nTnIL05F>b0{gA1_cR3(V$zR)W|ORNzUVrG{+p**?~kfq9;y zYi{SE7MT2Z>ye?)+$-F?ds~PQ%ohx%x8?^566)+myP8WQR;nRT z<01Y$C@t+_Agb;ZG>np&zCvaXiLO>0oKZ)S%|R9rgTo&~+LNEMA7wSyM!8?clnW1z zL7Ya~YPZO4$LWog9So=f(Sn<#VrDdqcQr1QiJAr&56*z&*nW2rlRkGGNo zwb9u6Kg%37HTg;Zt&4z#fmwq84`KMPHvFH>7Mia~NBXaH|JT0p*N*#NrhlJk&`nJV zxN3YTwH71Y|J0ZN+w+*@ztm=EfDS3yKljSkUn}tMnneHY^|yD=2QAc+ffaxrYAM5t zLiw~s;ohX7U~PKRf8+D7|980m`Ht4mdTnu7ROqF)BrFn?M@Ito3lyxwNc!)o`a5It V?+on!YZo(UqYf<+w#Gk${|ohCv9tgH delta 10829 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 literal 0 HcmV?d00001 diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/IsoCmprehensive.aspx b/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/IsoCmprehensive.aspx index 6996051..24eb790 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/IsoCmprehensive.aspx +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/IsoCmprehensive.aspx @@ -112,13 +112,14 @@ - - <%-- - + + <%-- diff --git a/HJGL_DS/FineUIPro.Web/JGZL/NDTPerson.aspx b/HJGL_DS/FineUIPro.Web/JGZL/NDTPerson.aspx index 00346fe..867749b 100644 --- a/HJGL_DS/FineUIPro.Web/JGZL/NDTPerson.aspx +++ b/HJGL_DS/FineUIPro.Web/JGZL/NDTPerson.aspx @@ -43,6 +43,9 @@ + + diff --git a/HJGL_DS/FineUIPro.Web/JGZL/NDTPerson.aspx.cs b/HJGL_DS/FineUIPro.Web/JGZL/NDTPerson.aspx.cs index 82de6c7..18523a1 100644 --- a/HJGL_DS/FineUIPro.Web/JGZL/NDTPerson.aspx.cs +++ b/HJGL_DS/FineUIPro.Web/JGZL/NDTPerson.aspx.cs @@ -1,14 +1,16 @@ -using BLL; +using Aspose.Words; +using Aspose.Words.Tables; +using BLL; +using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; -using System.Data.SqlClient; using System.Data; +using System.Data.SqlClient; +using System.IO; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; -using System.IO; -using Newtonsoft.Json.Linq; namespace FineUIPro.Web.JGZL { @@ -548,6 +550,173 @@ namespace FineUIPro.Web.JGZL return; } } - #endregion + #endregion + + #region 导出按钮 + /// 导出按钮 + /// + /// + /// + protected void btnOut_Click(object sender, EventArgs e) + { + string rootPath = Server.MapPath("~/"); + string initTemplatePath = string.Empty; + string uploadfilepath = string.Empty; + string newUrl = string.Empty; + string filePath = string.Empty; + + int maxrowCount = 22; + + string projectId = this.tvControlItem.SelectedNodeID; + if (!string.IsNullOrEmpty(projectId)) + { + string strSql = @"SELECT * from JGZL_NDTPerson where ProjectId = @ProjectId"; + List listStr = new List(); + listStr.Add(new SqlParameter("@ProjectId", projectId)); + if (!string.IsNullOrEmpty(this.txtPersonNameS.Text)) + { + strSql += " and PersonName like @personName"; + listStr.Add(new SqlParameter("@personName", "%" + this.txtPersonNameS.Text + "%")); + } + strSql += " order by ValidityDate desc"; + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + + initTemplatePath = Const.JGZL_NDTPersonUrl; + uploadfilepath = rootPath + initTemplatePath; + + newUrl = uploadfilepath.Replace("无损检测人员登记表导出模板", "无损检测人员登记表"); + if (File.Exists(newUrl)) + { + File.Delete(newUrl); + } + File.Copy(uploadfilepath, newUrl); + //更新书签内容 + Document doc = new Aspose.Words.Document(newUrl); + DocumentBuilder builder = new DocumentBuilder(doc); + + Aspose.Words.Tables.Table table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, 0, true); + + Bookmark projectName = doc.Range.Bookmarks["ProjectName"]; + if (projectName != null) + { + projectName.Text = BLL.Base_ProjectService.GetProjectByProjectId(projectId).ProjectName; + } + + // 设置表头行重复显示 + table.Rows[0].RowFormat.HeadingFormat = true; + table.Rows[1].RowFormat.HeadingFormat = true; + + // 先记录页尾行,并从表格中移除 + Row footerRow = table.Rows[table.Rows.Count - 2]; + table.Rows.RemoveAt(table.Rows.Count - 2); + Row footerRow2 = table.Rows[table.Rows.Count - 1]; + table.Rows.RemoveAt(table.Rows.Count - 1); + + // 清空模板里的旧数据行,只保留2行表头(防止错位) + while (table.Rows.Count > 2) + { + table.Rows.RemoveAt(2); + } + Row headerRow = table.Rows[1]; // 字段名表头行 + double[] colWidths = new double[6]; + for (int i = 0; i < 6; i++) + { + colWidths[i] = headerRow.Cells[i].CellFormat.Width; + } + // 填充数据行 + for (int i = 0; i < tb.Rows.Count; i++) + { + Row row = new Row(doc); + row.Cells.Add(CreateCell((i + 1).ToString(), doc, colWidths[0], "楷体", "10.5")); + row.Cells.Add(CreateCell(tb.Rows[i]["PersonName"].ToString(), doc, colWidths[1], "楷体", "10.5")); + row.Cells.Add(CreateCell(tb.Rows[i]["CertificateNumber"].ToString(), doc, colWidths[2], "楷体", "10.5")); + row.Cells.Add(CreateCell(tb.Rows[i]["QualifiedProjectCode"].ToString(), doc, colWidths[3], "楷体", "10.5")); + row.Cells.Add(CreateCell(tb.Rows[i]["Levels"].ToString(), doc, colWidths[4], "楷体", "10.5")); + row.Cells.Add(CreateCell(tb.Rows[i]["ValidityDate"].ToString(), doc, colWidths[5], "楷体", "10.5")); + table.Rows.Add(row); + } + // 不满一页,自动填充空白行 + int realDataCount = tb.Rows.Count; + int needBlankRows = maxrowCount - realDataCount; + if (needBlankRows > 0) + { + for (int i = 0; i < needBlankRows; i++) + { + Row blankRow = new Row(doc); + blankRow.Cells.Add(CreateCell("", doc, colWidths[0], "楷体", "10.5")); + blankRow.Cells.Add(CreateCell("", doc, colWidths[1], "楷体", "10.5")); + blankRow.Cells.Add(CreateCell("", doc, colWidths[2], "楷体", "10.5")); + blankRow.Cells.Add(CreateCell("", doc, colWidths[3], "楷体", "10.5")); + blankRow.Cells.Add(CreateCell("", doc, colWidths[4], "楷体", "10.5")); + blankRow.Cells.Add(CreateCell("", doc, colWidths[5], "楷体", "10.5")); + table.Rows.Add(blankRow); + } + } + + //把页尾行重新加回表格最后 + table.Rows.Add(footerRow); + table.Rows.Add(footerRow2); + + // 设置表格格式 + table.AutoFit(AutoFitBehavior.FixedColumnWidths); + table.Alignment = TableAlignment.Center; + table.SetBorders(Aspose.Words.LineStyle.Single, 1, System.Drawing.Color.Black); + + // 强制刷新所有单元格宽度,防止个别单元格宽度不生效 + foreach (Row r in table.Rows) + { + foreach (Cell c in r.Cells) + { + c.CellFormat.Width = colWidths[c.ParentRow.Cells.IndexOf(c)]; + } + } + doc.Save(newUrl); + + string fileName = Path.GetFileName(newUrl); + FileInfo info = new FileInfo(newUrl); + long fileSize = info.Length; + Response.Clear(); + Response.ContentType = "application/x-zip-compressed"; + Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); + Response.AddHeader("Content-Length", fileSize.ToString()); + Response.TransmitFile(newUrl, 0, fileSize); + Response.Flush(); + Response.Close(); + File.Delete(newUrl); + } + else + { + Alert.ShowInTop("请选择项目!", MessageBoxIcon.Warning); + return; + } + } + /// + /// 创建带字体、宽度的表格单元格 + /// + private Cell CreateCell(string text, Document doc, double width, string fontName, string fontSize) + { + Cell cell = new Cell(doc); + cell.CellFormat.Width = width; + cell.CellFormat.LeftPadding = 2; + cell.CellFormat.RightPadding = 2; + cell.CellFormat.TopPadding = 2; + cell.CellFormat.BottomPadding = 2; + + Paragraph para = new Paragraph(doc); + para.ParagraphFormat.Alignment = ParagraphAlignment.Center; // 居中 + para.ParagraphFormat.SpaceAfter = 0; + para.ParagraphFormat.SpaceBefore = 0; + + Run run = new Run(doc, text); + run.Font.Name = fontName; // 字体 + run.Font.Size = Convert.ToDouble(fontSize); // 字号 + + para.AppendChild(run); + cell.AppendChild(para); + + return cell; + } + #endregion } } \ No newline at end of file diff --git a/HJGL_DS/FineUIPro.Web/JGZL/NDTPerson.aspx.designer.cs b/HJGL_DS/FineUIPro.Web/JGZL/NDTPerson.aspx.designer.cs index ff6f01b..e85ca76 100644 --- a/HJGL_DS/FineUIPro.Web/JGZL/NDTPerson.aspx.designer.cs +++ b/HJGL_DS/FineUIPro.Web/JGZL/NDTPerson.aspx.designer.cs @@ -140,6 +140,15 @@ namespace FineUIPro.Web.JGZL /// protected global::FineUIPro.Button btnPrint; + /// + /// btnOut 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnOut; + /// /// Grid1 控件。 /// diff --git a/HJGL_DS/FineUIPro.Web/JGZL/QualifiedWelder.aspx b/HJGL_DS/FineUIPro.Web/JGZL/QualifiedWelder.aspx index d3353f2..9407050 100644 --- a/HJGL_DS/FineUIPro.Web/JGZL/QualifiedWelder.aspx +++ b/HJGL_DS/FineUIPro.Web/JGZL/QualifiedWelder.aspx @@ -37,6 +37,7 @@ + diff --git a/HJGL_DS/FineUIPro.Web/JGZL/QualifiedWelder.aspx.cs b/HJGL_DS/FineUIPro.Web/JGZL/QualifiedWelder.aspx.cs index b018ee7..47a0934 100644 --- a/HJGL_DS/FineUIPro.Web/JGZL/QualifiedWelder.aspx.cs +++ b/HJGL_DS/FineUIPro.Web/JGZL/QualifiedWelder.aspx.cs @@ -105,6 +105,10 @@ namespace FineUIPro.Web.JGZL { List listStr = new List(); listStr.Add(new SqlParameter("@projectId", this.tvControlItem.SelectedNodeID)); + if (!string.IsNullOrEmpty(this.txtName.Text.Trim())) + { + listStr.Add(new SqlParameter("@WED_Name", "%" + this.txtName.Text.Trim() + "%")); + } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = BLL.SQLHelper.GetDataTableRunProc("sp_rpt_WelderQualified", parameter); @@ -172,6 +176,10 @@ namespace FineUIPro.Web.JGZL List listStr = new List(); listStr.Add(new SqlParameter("@projectId", projectId)); + if (!string.IsNullOrEmpty(this.txtName.Text.Trim())) + { + listStr.Add(new SqlParameter("@WED_Name", "%" + this.txtName.Text.Trim() + "%")); + } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = BLL.SQLHelper.GetDataTableRunProc("sp_rpt_WelderQualified", parameter); @@ -230,14 +238,15 @@ namespace FineUIPro.Web.JGZL string newUrl = string.Empty; string filePath = string.Empty; - //每页显示的固定数据行数 - int rowsPerPage = 36; - string projectId = this.tvControlItem.SelectedNodeID; if (!string.IsNullOrEmpty(projectId)) { List listStr = new List(); listStr.Add(new SqlParameter("@projectId", projectId)); + if (!string.IsNullOrEmpty(this.txtName.Text.Trim())) + { + listStr.Add(new SqlParameter("@WED_Name", "%" + this.txtName.Text.Trim() + "%")); + } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = BLL.SQLHelper.GetDataTableRunProc("sp_rpt_WelderQualified", parameter); @@ -266,49 +275,48 @@ namespace FineUIPro.Web.JGZL table.Rows[0].RowFormat.HeadingFormat = true; table.Rows[1].RowFormat.HeadingFormat = true; - //// 先记录页尾行,并从表格中移除 - //Row footerRow = table.Rows[table.Rows.Count - 1]; - //table.Rows.RemoveAt(table.Rows.Count - 1); + // 先记录页尾行,并从表格中移除 + Row footerRow = table.Rows[table.Rows.Count-2]; + table.Rows.RemoveAt(table.Rows.Count-2); + Row footerRow2 = table.Rows[table.Rows.Count - 1]; + table.Rows.RemoveAt(table.Rows.Count - 1); + + // 清空模板里的旧数据行,只保留2行表头(防止错位) + while (table.Rows.Count > 2) + { + table.Rows.RemoveAt(2); + } + + // 单位:磅 1.69cm ≈ 48磅 + double col1 = 0.93 * 28.35; // 序号 + double col2 = 1.7 * 28.35; // 焊工姓名 + double col3 = 2.19 * 28.35; // 焊工代号 + double col4 = 3.95 * 28.35; // 证书编号 + double col5 = 6.04 * 28.35; // 合格项目代号 + double col6 = 2.27 * 28.35; // 有效日期 for (int i = 0; i < tb.Rows.Count; i++) { //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell((i + 1).ToString(), doc, 26.37, "", "")); - row.Cells.Add(CreateCell(tb.Rows[i]["WED_Name"].ToString(), doc, 48.2, "", "")); - row.Cells.Add(CreateCell(tb.Rows[i]["WED_Code"].ToString(), doc,62, "", "")); - row.Cells.Add(CreateCell(tb.Rows[i]["CertificateNo"].ToString(), doc, 111.98, "", "")); - row.Cells.Add(CreateCell(tb.Rows[i]["QualifiedProjectCode"].ToString(), doc, 171.23, "", "")); - row.Cells.Add(CreateCell(tb.Rows[i]["LimitDate"].ToString(), doc, 64.3545, "", "")); - table.Rows.Insert(i + 2, row); - } - //// 计算并插入空白行,填满整页 - //// 计算总数据行数 - //int totalDataRows = tb.Rows.Count; - //// 计算需要补充的空白行数量 - //int remainder = totalDataRows % rowsPerPage; - //int needBlankRows = remainder == 0 ? 0 : rowsPerPage - remainder; + row.Cells.Add(CreateCell((i + 1).ToString(), doc, col1, "", "")); + row.Cells.Add(CreateCell(tb.Rows[i]["WED_Name"].ToString(), doc, col2, "", "")); + row.Cells.Add(CreateCell(tb.Rows[i]["WED_Code"].ToString(), doc, col3, "", "")); + row.Cells.Add(CreateCell(tb.Rows[i]["CertificateNo"].ToString(), doc, col4, "", "")); + row.Cells.Add(CreateCell(tb.Rows[i]["QualifiedProjectCode"].ToString(), doc, col5, "", "")); + row.Cells.Add(CreateCell(tb.Rows[i]["LimitDate"].ToString(), doc, col6, "", "")); + table.Rows.Add(row); + } - // 插入空白行(和数据行格式保持一致,仅内容为空) - //for (int i = 0; i < needBlankRows - 1; i++) - //{ - // Row blankRow = new Row(doc); - // // 空白行的单元格宽度和数据行保持一致 - // blankRow.Cells.Add(CreateCell("", doc, 27, "", "")); - // blankRow.Cells.Add(CreateCell("", doc, 118, "", "")); - // blankRow.Cells.Add(CreateCell("", doc, 261.3, "", "")); - // blankRow.Cells.Add(CreateCell("", doc, 74, "", "")); - // blankRow.Cells.Add(CreateCell("", doc, 74, "", "")); - // blankRow.Cells.Add(CreateCell("", doc, 74, "", "")); - // // 插入到表格最后一行 - // table.Rows.Add(blankRow); - //} //把页尾行重新加回表格最后 - //table.Rows.Add(footerRow); + table.Rows.Add(footerRow); + table.Rows.Add(footerRow2); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); table.Alignment = TableAlignment.Center; + table.SetBorders(Aspose.Words.LineStyle.Single, 1, System.Drawing.Color.Black); + doc.Save(newUrl); @@ -329,55 +337,20 @@ namespace FineUIPro.Web.JGZL Alert.ShowInTop("请选择项目!", MessageBoxIcon.Warning); return; } - } - - public static Cell CreateCell(String value, Document doc, double cellWidth, string cellMerge = "", string CenterPage = "", string cellUnitLeft = "") + } + private Cell CreateCell(string text, Document doc, double width, string bgColor, string align) { Cell cell = new Cell(doc); - Paragraph p = new Paragraph(doc); - if (!string.IsNullOrEmpty(cellMerge)) - { - if (cellMerge == "0") - { - cell.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.First;//竖直方向合并的第一个单元格 - } - else - { - cell.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;//竖直方向合并的第一个单元格 - } - - } - else - { - cell.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; - } - if (!string.IsNullOrEmpty(CenterPage)) - { - //序号 - value = " " + value; - } - if (!string.IsNullOrEmpty(cellUnitLeft)) - { - p.ParagraphFormat.Alignment = ParagraphAlignment.Left;//表格中字体居左 - } - else - { - p.ParagraphFormat.Alignment = ParagraphAlignment.Center;//表格中字体居中 - } - - - p.AppendChild(new Run(doc, value)); - - cell.CellFormat.Width = cellWidth; - - cell.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center; - - cell.CellFormat.Borders.LineWidth = 0.75; - - cell.AppendChild(p); + cell.AppendChild(new Paragraph(doc)); + cell.FirstParagraph.AppendChild(new Run(doc, text)); + cell.CellFormat.Width = width; return cell; } - #endregion + + protected void txtName_TextChanged(object sender, EventArgs e) + { + BindGrid(); + } } } \ No newline at end of file diff --git a/HJGL_DS/FineUIPro.Web/JGZL/QualifiedWelder.aspx.designer.cs b/HJGL_DS/FineUIPro.Web/JGZL/QualifiedWelder.aspx.designer.cs index 3a4a601..0af31b6 100644 --- a/HJGL_DS/FineUIPro.Web/JGZL/QualifiedWelder.aspx.designer.cs +++ b/HJGL_DS/FineUIPro.Web/JGZL/QualifiedWelder.aspx.designer.cs @@ -95,6 +95,15 @@ namespace FineUIPro.Web.JGZL /// protected global::FineUIPro.Toolbar Toolbar2; + /// + /// txtName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtName; + /// /// ToolbarFill1 控件。 /// From 1f7e8e551dc7760d36c0edd965df97852eeb915c Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Tue, 28 Apr 2026 09:58:51 +0800 Subject: [PATCH 2/7] =?UTF-8?q?20260428=20=E9=A1=B9=E7=9B=AE=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E9=87=8F=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DataBase/版本日志/HJGLDB_DS_2026-04-28_bwj.sql | 9 ++------- .../HJGL/WeldingReport/IsoCmprehensive.aspx.cs | 9 ++++++++- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/DataBase/版本日志/HJGLDB_DS_2026-04-28_bwj.sql b/DataBase/版本日志/HJGLDB_DS_2026-04-28_bwj.sql index 2e701b9..86a0ba5 100644 --- a/DataBase/版本日志/HJGLDB_DS_2026-04-28_bwj.sql +++ b/DataBase/版本日志/HJGLDB_DS_2026-04-28_bwj.sql @@ -97,18 +97,13 @@ FROM (SELECT ISO_ID,COUNT(jot.JOT_ID) AS total_fjot FROM dbo.HJGL_PW_JointInfo jot LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID - WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null) - AND jot.DReportID is not NULL - AND jot.WLO_Code='F' + WHERE jot.WLO_Code='F' GROUP BY ISO_ID) v6 ON v6.ISO_ID=v.ISO_ID --Ԥƺ LEFT JOIN (SELECT ISO_ID,COUNT(jot.JOT_ID) AS total_sjot FROM dbo.HJGL_PW_JointInfo jot - LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID - WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null) - AND jot.DReportID is not NULL - AND jot.WLO_Code='S' + WHERE jot.WLO_Code='S' GROUP BY ISO_ID) v7 ON v7.ISO_ID=v.ISO_ID LEFT JOIN dbo.HJGL_PW_IsoInfo iso ON iso.ISO_ID = v.ISO_ID diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/IsoCmprehensive.aspx.cs b/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/IsoCmprehensive.aspx.cs index 6cdeb1a..8de4377 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/IsoCmprehensive.aspx.cs +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/IsoCmprehensive.aspx.cs @@ -76,6 +76,9 @@ int check_total_jot = 0; int total_repairjot = 0; + int total_sjot = 0; + int total_fjot = 0; + foreach (DataRow row in tb.Rows) { total_din += Convert.ToDouble(row["total_din"]); @@ -95,6 +98,8 @@ trust_total_jot += Convert.ToInt32(row["trust_total_jot"]); check_total_jot += Convert.ToInt32(row["check_total_jot"]); total_repairjot += Convert.ToInt32(row["total_repairjot"]); + total_sjot += Convert.ToInt32(row["total_sjot"]); + total_fjot += Convert.ToInt32(row["total_fjot"]); } todo_total_din = total_din - finished_total_din; @@ -126,6 +131,8 @@ summary.Add("trust_total_jot", trust_total_jot.ToString()); summary.Add("check_total_jot", check_total_jot.ToString()); summary.Add("total_repairjot", total_repairjot.ToString()); + summary.Add("total_sjot", total_sjot.ToString()); + summary.Add("total_fjot", total_fjot.ToString()); Grid1.SummaryData = summary; } @@ -196,7 +203,7 @@ //} this.Grid1.RecordCount = tb.Rows.Count; - tb = GetFilteredTable(Grid1.FilteredData, tb); + //tb = GetFilteredTable(Grid1.FilteredData, tb); var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); From 2e316c132f3cfb7e2c1e0d7a37d6c4b310454010 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Tue, 28 Apr 2026 10:51:29 +0800 Subject: [PATCH 3/7] 1 --- HJGL_DS/BLL/Common/ProjectSet/Project_UserService.cs | 12 ++++++++++++ HJGL_DS/FineUIPro.Web/Web.config | 2 +- .../common/ProjectSet/ProjectUser.aspx.cs | 7 +++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/HJGL_DS/BLL/Common/ProjectSet/Project_UserService.cs b/HJGL_DS/BLL/Common/ProjectSet/Project_UserService.cs index a0fb23c..f767046 100644 --- a/HJGL_DS/BLL/Common/ProjectSet/Project_UserService.cs +++ b/HJGL_DS/BLL/Common/ProjectSet/Project_UserService.cs @@ -107,6 +107,18 @@ namespace BLL return pUser; } + /// + /// 根据项目用户id获取用户 + /// + /// + /// + /// + public static Model.Project_User GetProject_UserByProjectUserId(string projectUserId) + { + var pUser = Funs.DB.Project_User.FirstOrDefault(x => x.ProjectUserId == projectUserId); + return pUser; + } + /// /// 根据项目Id删除一个项目参与单位信息 /// diff --git a/HJGL_DS/FineUIPro.Web/Web.config b/HJGL_DS/FineUIPro.Web/Web.config index 3c98f31..070a5f8 100644 --- a/HJGL_DS/FineUIPro.Web/Web.config +++ b/HJGL_DS/FineUIPro.Web/Web.config @@ -11,7 +11,7 @@ - + diff --git a/HJGL_DS/FineUIPro.Web/common/ProjectSet/ProjectUser.aspx.cs b/HJGL_DS/FineUIPro.Web/common/ProjectSet/ProjectUser.aspx.cs index df297c9..b8c64be 100644 --- a/HJGL_DS/FineUIPro.Web/common/ProjectSet/ProjectUser.aspx.cs +++ b/HJGL_DS/FineUIPro.Web/common/ProjectSet/ProjectUser.aspx.cs @@ -259,6 +259,13 @@ namespace FineUIPro.Web.common.ProjectSet foreach (int rowIndex in Grid1.SelectedRowIndexArray) { string projectUserId = Grid1.DataKeys[rowIndex][0].ToString(); + var project = BLL.Base_ProjectService.GetProjectByProjectId(this.tvProject.SelectedNodeID); + var projectUser = BLL.Project_UserService.GetProject_UserByProjectUserId(projectUserId); + if (project.CreateManId == projectUser.UserId) + { + Alert.ShowInTop("该用户为项目创建用户,无法删除!", MessageBoxIcon.Warning); + return; + } BLL.Project_UserService.DeleteProject_UserByProjectUserId(projectUserId); } BindGrid(); From e4111cee3c27ccb910678ffcad05a25ed7345a66 Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Tue, 28 Apr 2026 14:55:33 +0800 Subject: [PATCH 4/7] =?UTF-8?q?20260428=20=E6=89=B9=E9=87=8F=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=84=8A=E5=8F=A3=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj | 8 + .../HJGL/WeldingManage/JointInfo.aspx | 16 +- .../HJGL/WeldingManage/JointInfo.aspx.cs | 29 +++- .../WeldingManage/JointInfo.aspx.designer.cs | 146 ++++++++++-------- .../WeldingManage/JointInfoBatchUpdate.aspx | 96 ++++++++++++ .../JointInfoBatchUpdate.aspx.cs | 134 ++++++++++++++++ .../JointInfoBatchUpdate.aspx.designer.cs | 116 ++++++++++++++ 7 files changed, 475 insertions(+), 70 deletions(-) create mode 100644 HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchUpdate.aspx create mode 100644 HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchUpdate.aspx.cs create mode 100644 HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchUpdate.aspx.designer.cs diff --git a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj index 51ba817..b0302d0 100644 --- a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj +++ b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj @@ -1211,6 +1211,7 @@ + @@ -6270,6 +6271,13 @@ DetectionPoint.aspx + + JointInfoBatchUpdate.aspx + ASPXCodeBehind + + + JointInfoBatchUpdate.aspx + JointInfoCopy.aspx ASPXCodeBehind diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx index 81ddade..815a56a 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx @@ -62,15 +62,17 @@ - + - + - + - + - + + + @@ -373,6 +375,10 @@ Target="Parent" EnableResize="true" runat="server" IsModal="true" OnClose="Window8_Close" Width="600px" Height="300px"> + + /// 批量修改焊口属性 + /// + /// + /// + protected void btnBatchModify_Click(object sender, EventArgs e) + { + if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_JointInfoMenuId, Const.BtnModify)) + { + var isoInfo = BLL.HJGL_PW_IsoInfoService.GetIsoInfoByIsoInfoId(tvControlItem.SelectedNodeID); + if (isoInfo != null) + { + PageContext.RegisterStartupScript(Window9.GetShowReference(String.Format("JointInfoBatchUpdate.aspx?ISO_ID={0}", this.tvControlItem.SelectedNodeID, "新增 - "))); + } + else + { + Alert.ShowInTop("请先选择管线!", MessageBoxIcon.Warning); + } + } + else + { + Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } } diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.designer.cs b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.designer.cs index 46ff740..abb0406 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.designer.cs +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.designer.cs @@ -7,11 +7,13 @@ // //------------------------------------------------------------------------------ -namespace FineUIPro.Web.HJGL.WeldingManage { - - - public partial class JointInfo { - +namespace FineUIPro.Web.HJGL.WeldingManage +{ + + + public partial class JointInfo + { + /// /// Head1 控件。 /// @@ -20,7 +22,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlHead Head1; - + /// /// form1 控件。 /// @@ -29,7 +31,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlForm form1; - + /// /// PageManager1 控件。 /// @@ -38,7 +40,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.PageManager PageManager1; - + /// /// Panel1 控件。 /// @@ -47,7 +49,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Panel Panel1; - + /// /// panelLeftRegion 控件。 /// @@ -56,7 +58,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Panel panelLeftRegion; - + /// /// Toolbar1 控件。 /// @@ -65,7 +67,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar Toolbar1; - + /// /// txtIsono 控件。 /// @@ -74,7 +76,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtIsono; - + /// /// hdPageMax 控件。 /// @@ -83,7 +85,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.HiddenField hdPageMax; - + /// /// tvControlItem 控件。 /// @@ -92,7 +94,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Tree tvControlItem; - + /// /// panelCenterRegion 控件。 /// @@ -101,7 +103,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Panel panelCenterRegion; - + /// /// Toolbar3 控件。 /// @@ -110,7 +112,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar Toolbar3; - + /// /// lbTotalDine 控件。 /// @@ -119,7 +121,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Label lbTotalDine; - + /// /// lbDoneDine 控件。 /// @@ -128,7 +130,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Label lbDoneDine; - + /// /// lbHotNum 控件。 /// @@ -137,7 +139,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Label lbHotNum; - + /// /// lbHotOKNum 控件。 /// @@ -146,7 +148,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Label lbHotOKNum; - + /// /// ToolbarFill1 控件。 /// @@ -155,7 +157,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarFill ToolbarFill1; - + /// /// btnNew 控件。 /// @@ -164,7 +166,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnNew; - + /// /// btnBatchAdd 控件。 /// @@ -173,7 +175,16 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnBatchAdd; - + + /// + /// btnBatchModify 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnBatchModify; + /// /// btnBatchDel 控件。 /// @@ -182,7 +193,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnBatchDel; - + /// /// btnOut 控件。 /// @@ -191,7 +202,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnOut; - + /// /// btnFileName 控件。 /// @@ -200,7 +211,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnFileName; - + /// /// hdColumn 控件。 /// @@ -209,7 +220,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.HiddenField hdColumn; - + /// /// Toolbar2 控件。 /// @@ -218,7 +229,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar Toolbar2; - + /// /// lbMat 控件。 /// @@ -227,7 +238,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Label lbMat; - + /// /// lbDesignPress 控件。 /// @@ -236,7 +247,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Label lbDesignPress; - + /// /// lbDesignTemperature 控件。 /// @@ -245,7 +256,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Label lbDesignTemperature; - + /// /// lbSer 控件。 /// @@ -254,7 +265,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Label lbSer; - + /// /// ToolbarFill2 控件。 /// @@ -263,7 +274,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarFill ToolbarFill2; - + /// /// btnPrint 控件。 /// @@ -272,7 +283,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnPrint; - + /// /// btnPrintNew 控件。 /// @@ -281,7 +292,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnPrintNew; - + /// /// btnSelectColumn 控件。 /// @@ -290,7 +301,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnSelectColumn; - + /// /// Toolbar4 控件。 /// @@ -299,7 +310,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar Toolbar4; - + /// /// txtJOT_JointNo 控件。 /// @@ -308,7 +319,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtJOT_JointNo; - + /// /// rbIsHj 控件。 /// @@ -317,7 +328,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.RadioButtonList rbIsHj; - + /// /// rbHotProessResult 控件。 /// @@ -326,7 +337,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.RadioButtonList rbHotProessResult; - + /// /// Toolbar5 控件。 /// @@ -335,7 +346,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar Toolbar5; - + /// /// drpRTState 控件。 /// @@ -344,7 +355,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpRTState; - + /// /// drpUTState 控件。 /// @@ -353,7 +364,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpUTState; - + /// /// drpMTState 控件。 /// @@ -362,7 +373,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpMTState; - + /// /// drpPTState 控件。 /// @@ -371,7 +382,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpPTState; - + /// /// drpPAUTState 控件。 /// @@ -380,7 +391,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpPAUTState; - + /// /// Grid1 控件。 /// @@ -389,7 +400,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Grid Grid1; - + /// /// Label8 控件。 /// @@ -398,7 +409,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.WebControls.Label Label8; - + /// /// ToolbarSeparator1 控件。 /// @@ -407,7 +418,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; - + /// /// ToolbarText1 控件。 /// @@ -416,7 +427,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarText ToolbarText1; - + /// /// ddlPageSize 控件。 /// @@ -425,7 +436,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList ddlPageSize; - + /// /// Window1 控件。 /// @@ -434,7 +445,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window1; - + /// /// Window2 控件。 /// @@ -443,7 +454,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window2; - + /// /// Window3 控件。 /// @@ -452,7 +463,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window3; - + /// /// Window4 控件。 /// @@ -461,7 +472,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window4; - + /// /// Window5 控件。 /// @@ -470,7 +481,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window5; - + /// /// Window6 控件。 /// @@ -479,7 +490,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window6; - + /// /// Window7 控件。 /// @@ -488,7 +499,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window7; - + /// /// Window8 控件。 /// @@ -497,7 +508,16 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window8; - + + /// + /// Window9 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window9; + /// /// Menu1 控件。 /// @@ -506,7 +526,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Menu Menu1; - + /// /// btnMenuEdit 控件。 /// @@ -515,7 +535,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.MenuButton btnMenuEdit; - + /// /// btnMenuCopy 控件。 /// @@ -524,7 +544,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.MenuButton btnMenuCopy; - + /// /// btnMenuUpdate 控件。 /// @@ -533,7 +553,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.MenuButton btnMenuUpdate; - + /// /// btnMenuDelete 控件。 /// diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchUpdate.aspx b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchUpdate.aspx new file mode 100644 index 0000000..5634c43 --- /dev/null +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchUpdate.aspx @@ -0,0 +1,96 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JointInfoBatchUpdate.aspx.cs" Inherits="FineUIPro.Web.HJGL.WeldingManage.JointInfoBatchUpdate" %> + + + + + + + 批量修改焊口属性 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- + + + + + + + + + + + + + + + + + + --%> + + + + + + + + + + diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchUpdate.aspx.cs b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchUpdate.aspx.cs new file mode 100644 index 0000000..f64290d --- /dev/null +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchUpdate.aspx.cs @@ -0,0 +1,134 @@ +using BLL; +using Model; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Windows.Forms; + +namespace FineUIPro.Web.HJGL.WeldingManage +{ + public partial class JointInfoBatchUpdate : PageBase + { + /// + /// 定义集合 + /// + private static List jointInfoLists = new List(); + + /// + /// 加载页面 + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + //焊口属性 + //this.ddlJointAttribute.DataTextField = "Text"; + //this.ddlJointAttribute.DataValueField = "Value"; + //this.ddlJointAttribute.DataSource = BLL.DropListService.HJGL_JointAttributeItem(); + //this.ddlJointAttribute.DataBind(); + //Funs.FineUIPleaseSelect(this.ddlJointAttribute); + + lblIsoId.Text = Request.Params["ISO_ID"]; + if (!string.IsNullOrEmpty(lblIsoId.Text.Trim())) + { + var iso = BLL.HJGL_PW_IsoInfoService.GetIsoInfoByIsoInfoId(lblIsoId.Text.Trim()); + if (iso != null) + { + this.txtISONO.Text = iso.ISO_IsoNo; + if (!string.IsNullOrEmpty(iso.BSU_ID)) + { + this.lbUnitName.Text = BLL.Base_UnitService.GetUnitNameByUnitId(iso.BSU_ID); + } + } + BindGrid(); + } + } + } + + private void BindGrid() + { + string strSql = @"SELECT JOT_ID,ProjectId,JOT_JointNo,Sort1,Sort2,Sort3,Sort4,Sort5,JOTY_Group + ,ISO_ID,ISO_IsoNo,JOT_JointAttribute,Is_hj,(CASE WHEN STE_Name1 IS NOT NULL AND STE_Name2 IS NOT NULL and STE_Name1!=STE_Name2 THEN STE_Name1 + '/' + STE_Name2 + WHEN STE_Name1 IS NOT NULL THEN STE_Name1 ELSE ISNULL(STE_Name2,'') END) AS STE_Name,JOT_JointDesc,JOTY_Name,JST_Name,WME_Name,JOT_Dia,JOT_Size,JOT_Sch,WLO_Name + FROM HJGL_View_JointInfo WHERE ProjectId= @ProjectId"; + List listStr = new List(); + listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); + strSql += " AND ISO_ID =@ISO_ID"; + listStr.Add(new SqlParameter("@ISO_ID", this.lblIsoId.Text.Trim())); + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + + // 2.获取当前分页数据 + //var table = this.GetPagedDataTable(Grid1, tb1); + Grid1.RecordCount = tb.Rows.Count; + //this.Grid1.PageIndex = 0; + //tb = GetFilteredTable(Grid1.FilteredData, tb); + var table = this.GetPagedDataTable(Grid1, tb); + Grid1.DataSource = table; + Grid1.DataBind(); + } + + /// + /// 排序 + /// + /// + /// + protected void Grid1_Sort(object sender, GridSortEventArgs e) + { + BindGrid(); + } + + /// + /// 保存 + /// + /// + /// + protected void btnSave_Click(object sender, EventArgs e) + { + if (!string.IsNullOrEmpty(this.lblIsoId.Text.Trim())) + { + JArray teamGroupData = Grid1.GetMergedData(); + foreach (JObject teamGroupRow in teamGroupData) + { + JObject values = teamGroupRow.Value("values"); + //int rowIndex = teamGroupRow.Value("index"); + + string jotId = values.Value("JOT_ID"); + if (!string.IsNullOrEmpty(jotId)) + { + var jointInfo = BLL.HJGL_PW_JointInfoService.GetJointInfoByJotID(jotId); + if (jointInfo != null) + { + jointInfo.JOT_JointAttribute = values.Value("JOT_JointAttribute"); + if (jointInfo.JOT_JointAttribute == "固定") + { + if (jointInfo.JOT_JointNo.Last() != 'G') + { + jointInfo.JOT_JointNo = jointInfo.JOT_JointNo + "G"; + } + } + else + { + if (jointInfo.JOT_JointNo.Last() == 'G') + { + jointInfo.JOT_JointNo = jointInfo.JOT_JointNo.Replace("G", ""); + } + } + Funs.DB.SubmitChanges(); + } + } + } + ShowNotify("焊口属性修改成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + } + } +} \ No newline at end of file diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchUpdate.aspx.designer.cs b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchUpdate.aspx.designer.cs new file mode 100644 index 0000000..6115d71 --- /dev/null +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchUpdate.aspx.designer.cs @@ -0,0 +1,116 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.HJGL.WeldingManage +{ + + + public partial class JointInfoBatchUpdate + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// lbUnitName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lbUnitName; + + /// + /// txtISONO 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label txtISONO; + + /// + /// lblIsoId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblIsoId; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// ddlJointAttribute 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlJointAttribute; + } +} From e3bd4647151bc1112cd833bc4410ffbb04574ec9 Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Tue, 28 Apr 2026 17:10:12 +0800 Subject: [PATCH 5/7] =?UTF-8?q?20260428=20=E6=89=B9=E9=87=8F=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=84=8A=E5=8F=A3=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WeldingManage/JointInfoBatchEdit.aspx | 357 +++++++++--------- .../WeldingManage/JointInfoBatchEdit.aspx.cs | 68 +++- .../JointInfoBatchEdit.aspx.designer.cs | 138 ++++--- HJGL_DS/FineUIPro.Web/Web.config | 2 +- 4 files changed, 341 insertions(+), 224 deletions(-) diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchEdit.aspx b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchEdit.aspx index 80749f3..db761c1 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchEdit.aspx +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchEdit.aspx @@ -9,176 +9,193 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchEdit.aspx.cs b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchEdit.aspx.cs index 36a0af1..d5b24da 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchEdit.aspx.cs +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchEdit.aspx.cs @@ -131,6 +131,20 @@ this.ddlWeldMat.DataSource = BLL.HJGL_ConsumablesService.GetMaterialList("2"); this.ddlWeldMat.DataBind(); Funs.FineUIPleaseSelect(this.ddlWeldMat); + + ///组件1号 + this.ddlComponent1.DataTextField = "COM_Name"; + this.ddlComponent1.DataValueField = "COM_ID"; + this.ddlComponent1.DataSource = BLL.HJGL_ComponentsService.GetComponentNameList(); + this.ddlComponent1.DataBind(); + Funs.FineUIPleaseSelect(this.ddlComponent1); + + ///组件2号 + this.ddlComponent2.DataTextField = "COM_Name"; + this.ddlComponent2.DataValueField = "COM_ID"; + this.ddlComponent2.DataSource = BLL.HJGL_ComponentsService.GetComponentNameList(); + this.ddlComponent2.DataBind(); + Funs.FineUIPleaseSelect(this.ddlComponent2); } #endregion @@ -251,6 +265,16 @@ Alert.ShowInTop("请选择焊接方法!", MessageBoxIcon.Warning); return; } + if (this.drpNDTR_ID.SelectedValue==BLL.Const._Null) + { + Alert.ShowInTop("请选择探伤比例!", MessageBoxIcon.Warning); + return; + } + if (this.drpJOT_QualifiedLevel.SelectedValue==BLL.Const._Null) + { + Alert.ShowInTop("请选择合格等级!", MessageBoxIcon.Warning); + return; + } int startInt = Funs.GetNewIntOrZero(this.txtJointNo1.Text.Trim()); int endInt = Funs.GetNewIntOrZero(this.txtJointNo2.Text.Trim()); if (endInt < startInt) @@ -356,6 +380,24 @@ { newJointInfo.WeldL = Convert.ToInt32(this.txtWeldL.Text); } + if (this.ddlComponent1.SelectedValue != BLL.Const._Null) + { + newJointInfo.JOT_Component1 = this.ddlComponent1.SelectedValue; + } + if (this.ddlComponent2.SelectedValue != BLL.Const._Null) + { + newJointInfo.JOT_Component2 = this.ddlComponent2.SelectedValue; + } + newJointInfo.JOT_Voltage = this.txtVoltage.Text.Trim(); + if (this.drpIsGold.SelectedValue == "1") + { + newJointInfo.IsGold = true; + } + else + { + newJointInfo.IsGold = false; + } + for (int i = startInt; i <= endInt; i++) { //if (i < 10) @@ -406,14 +448,14 @@ BLL.Sys_LogService.AddLog(BLL.Const.System_3, this.CurrUser.LoginProjectId, this.CurrUser.UserId, "添加焊口信息!"); } catch - { - + { + } } } PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); ShowNotify("提交成功!", MessageBoxIcon.Success); - + } else { @@ -554,6 +596,10 @@ } this.txtPressureTestPackageNo.Text = jointInfo.PressureTestPackageNo; + this.drpIsGold.SelectedValue = jointInfo.IsGold.ToString(); + this.ddlComponent1.SelectedValue = jointInfo.JOT_Component1; + this.ddlComponent2.SelectedValue = jointInfo.JOT_Component2; + this.txtVoltage.Text = jointInfo.JOT_Voltage; } } } @@ -706,6 +752,22 @@ this.drpProessTypes.Hidden = true; } } + protected void drpIsGold_SelectedIndexChanged(object sender, EventArgs e) + { + if (this.drpIsGold.SelectedValue == "1") + { + this.drpNDTR_ID.SelectedValue = "e2612188-fc99-492a-937c-74c7a0151656"; //黄金口检测比例100% + this.drpNDTR_ID.Enabled = false; + this.txtJointNo.Text = this.txtJointNo.Text.Trim() + "H"; + } + else + { + this.drpNDTR_ID.SelectedValue = BLL.Const._Null; + this.drpNDTR_ID.Enabled = true; + this.txtJointNo.Text = this.txtJointNo.Text.Trim().Substring(0, this.txtJointNo.Text.Trim().Length - 1); + } + } #endregion + } } \ No newline at end of file diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchEdit.aspx.designer.cs b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchEdit.aspx.designer.cs index b11513f..6a2f25c 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchEdit.aspx.designer.cs +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchEdit.aspx.designer.cs @@ -7,11 +7,13 @@ // //------------------------------------------------------------------------------ -namespace FineUIPro.Web.HJGL.WeldingManage { - - - public partial class JointInfoBatchEdit { - +namespace FineUIPro.Web.HJGL.WeldingManage +{ + + + public partial class JointInfoBatchEdit + { + /// /// form1 控件。 /// @@ -20,7 +22,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlForm form1; - + /// /// PageManager1 控件。 /// @@ -29,7 +31,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.PageManager PageManager1; - + /// /// SimpleForm1 控件。 /// @@ -38,7 +40,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Form SimpleForm1; - + /// /// Toolbar1 控件。 /// @@ -47,7 +49,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar Toolbar1; - + /// /// txtJointNoS 控件。 /// @@ -56,7 +58,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtJointNoS; - + /// /// btnCopy 控件。 /// @@ -65,7 +67,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnCopy; - + /// /// ToolbarFill1 控件。 /// @@ -74,7 +76,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarFill ToolbarFill1; - + /// /// btnSave 控件。 /// @@ -83,7 +85,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnSave; - + /// /// txtJointNo 控件。 /// @@ -92,7 +94,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtJointNo; - + /// /// txtJointNo1 控件。 /// @@ -101,7 +103,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.NumberBox txtJointNo1; - + /// /// txtJointNo2 控件。 /// @@ -110,7 +112,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.NumberBox txtJointNo2; - + /// /// Label1 控件。 /// @@ -119,7 +121,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Label Label1; - + /// /// drpInstallationId 控件。 /// @@ -128,7 +130,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpInstallationId; - + /// /// ddlSTE1 控件。 /// @@ -137,7 +139,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList ddlSTE1; - + /// /// ddlSTE2 控件。 /// @@ -146,7 +148,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList ddlSTE2; - + /// /// ddlWLO_CODE 控件。 /// @@ -155,7 +157,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList ddlWLO_CODE; - + /// /// ddlJOTY_ID 控件。 /// @@ -164,7 +166,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList ddlJOTY_ID; - + /// /// ddlJST_ID 控件。 /// @@ -173,7 +175,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList ddlJST_ID; - + /// /// ddlJointAttribute 控件。 /// @@ -182,7 +184,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList ddlJointAttribute; - + /// /// ddlWME_ID 控件。 /// @@ -191,7 +193,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList ddlWME_ID; - + /// /// txtDia 控件。 /// @@ -200,7 +202,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.NumberBox txtDia; - + /// /// txtSize 控件。 /// @@ -209,7 +211,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.NumberBox txtSize; - + /// /// txtSch 控件。 /// @@ -218,7 +220,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.NumberBox txtSch; - + /// /// txtJointDesc 控件。 /// @@ -227,7 +229,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtJointDesc; - + /// /// txtLastTemp 控件。 /// @@ -236,7 +238,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.NumberBox txtLastTemp; - + /// /// txtCellTemp 控件。 /// @@ -245,7 +247,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.NumberBox txtCellTemp; - + /// /// txtPrepareTemp 控件。 /// @@ -254,7 +256,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.NumberBox txtPrepareTemp; - + /// /// txtElectricity 控件。 /// @@ -263,7 +265,34 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtElectricity; - + + /// + /// txtVoltage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtVoltage; + + /// + /// ddlComponent1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlComponent1; + + /// + /// ddlComponent2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlComponent2; + /// /// drpIsSpecial 控件。 /// @@ -272,7 +301,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpIsSpecial; - + /// /// drpNDTR_ID 控件。 /// @@ -281,7 +310,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpNDTR_ID; - + /// /// drpJOT_QualifiedLevel 控件。 /// @@ -290,7 +319,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpJOT_QualifiedLevel; - + /// /// txtHardQuaStandard 控件。 /// @@ -299,7 +328,16 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtHardQuaStandard; - + + /// + /// drpIsGold 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList drpIsGold; + /// /// ddlWeldSilk 控件。 /// @@ -308,7 +346,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList ddlWeldSilk; - + /// /// ddlWeldMat 控件。 /// @@ -317,7 +355,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList ddlWeldMat; - + /// /// drpIS_Proess 控件。 /// @@ -326,7 +364,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpIS_Proess; - + /// /// drpProessTypes 控件。 /// @@ -335,7 +373,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownBox drpProessTypes; - + /// /// SimpleForm3 控件。 /// @@ -344,7 +382,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.SimpleForm SimpleForm3; - + /// /// Label10 控件。 /// @@ -353,7 +391,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Label Label10; - + /// /// RadioButtonList1 控件。 /// @@ -362,7 +400,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.CheckBoxList RadioButtonList1; - + /// /// lb1 控件。 /// @@ -371,7 +409,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Label lb1; - + /// /// txtPressureTestPackageNo 控件。 /// @@ -380,7 +418,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtPressureTestPackageNo; - + /// /// txtWeldL 控件。 /// @@ -389,7 +427,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.NumberBox txtWeldL; - + /// /// lbDef 控件。 /// @@ -398,7 +436,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Label lbDef; - + /// /// SimpleForm2 控件。 /// @@ -407,7 +445,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Form SimpleForm2; - + /// /// lbUnitName 控件。 /// @@ -416,7 +454,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Label lbUnitName; - + /// /// txtISONO 控件。 /// diff --git a/HJGL_DS/FineUIPro.Web/Web.config b/HJGL_DS/FineUIPro.Web/Web.config index 070a5f8..3c98f31 100644 --- a/HJGL_DS/FineUIPro.Web/Web.config +++ b/HJGL_DS/FineUIPro.Web/Web.config @@ -11,7 +11,7 @@ - + From c5193c5ad596c3abd9390335c6e92cb6ca6f5e44 Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Wed, 29 Apr 2026 17:13:55 +0800 Subject: [PATCH 6/7] =?UTF-8?q?20260429=20=E6=8C=89=E7=84=8A=E7=BC=9D?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E8=87=AA=E5=8A=A8=E7=94=9F=E6=88=90=E7=84=8A?= =?UTF-8?q?=E5=8F=A3=E5=89=8D=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HJGL/WeldingManage/JointInfoEdit.aspx.cs | 42 +++++++++++++++++-- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoEdit.aspx.cs b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoEdit.aspx.cs index 63548d3..c218ce5 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoEdit.aspx.cs +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoEdit.aspx.cs @@ -918,7 +918,7 @@ var isoInfo = BLL.HJGL_PW_IsoInfoService.GetIsoInfoByIsoInfoId(this.ISO_ID); if (isoInfo != null) { - if (joty.JOTY_Group == "1") + if (joty.JOTY_Group == "1")//对接 { if (!string.IsNullOrEmpty(isoInfo.Joty_B_Rate)) { @@ -937,7 +937,7 @@ this.drpJOT_QualifiedLevel.SelectedValue = BLL.Const._Null; } } - else if (joty.JOTY_Group == "2") + else if (joty.JOTY_Group == "2")//角焊缝(承插) { if (!string.IsNullOrEmpty(isoInfo.Joty_C_Rate)) { @@ -955,8 +955,26 @@ { this.drpJOT_QualifiedLevel.SelectedValue = BLL.Const._Null; } + + //焊口号前自动加C + string jointNo = this.txtJointNo.Text.Trim(); + if (!string.IsNullOrEmpty(jointNo)) + { + if (char.IsDigit(jointNo[0])) + { + this.txtJointNo.Text = "C" + jointNo; + } + else + { + this.txtJointNo.Text = "C" + jointNo.Substring(1); + } + } + else + { + this.txtJointNo.Text = "C"; + } } - else if (joty.JOTY_Group == "3") + else if (joty.JOTY_Group == "3")//支管连接焊缝 { if (!string.IsNullOrEmpty(isoInfo.Joty_D_Rate)) { @@ -974,6 +992,24 @@ { this.drpJOT_QualifiedLevel.SelectedValue = BLL.Const._Null; } + + //焊口号前自动加D + string jointNo = this.txtJointNo.Text.Trim(); + if (!string.IsNullOrEmpty(jointNo)) + { + if (char.IsDigit(jointNo[0])) + { + this.txtJointNo.Text = "D" + jointNo; + } + else + { + this.txtJointNo.Text = "D" + jointNo.Substring(1); + } + } + else + { + this.txtJointNo.Text = "D"; + } } } } From 0686f516b6a0bea1a925aa8ece5b98c5daf70ab4 Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Thu, 7 May 2026 11:50:51 +0800 Subject: [PATCH 7/7] =?UTF-8?q?20260507=20=E6=96=B0=E5=A2=9E=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E7=84=8A=E6=8E=A5=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj | 8 + .../HJGL/WeldingManage/WeldReport.aspx | 350 +++++++++--------- .../HJGL/WeldingManage/WeldReport.aspx.cs | 17 +- .../WeldingManage/WeldReport.aspx.designer.cs | 92 +++-- .../HJGL/WeldingManage/WeldReportOut.aspx | 122 ++++++ .../HJGL/WeldingManage/WeldReportOut.aspx.cs | 218 +++++++++++ .../WeldReportOut.aspx.designer.cs | 107 ++++++ 7 files changed, 704 insertions(+), 210 deletions(-) create mode 100644 HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/WeldReportOut.aspx create mode 100644 HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/WeldReportOut.aspx.cs create mode 100644 HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/WeldReportOut.aspx.designer.cs diff --git a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj index b0302d0..08de06f 100644 --- a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj +++ b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj @@ -1255,6 +1255,7 @@ + @@ -6579,6 +6580,13 @@ JointInfoOut2.aspx + + WeldReportOut.aspx + ASPXCodeBehind + + + WeldReportOut.aspx + FeedbackResultSelect.aspx ASPXCodeBehind diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/WeldReport.aspx b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/WeldReport.aspx index 4851ece..11173df 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/WeldReport.aspx +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/WeldReport.aspx @@ -5,189 +5,195 @@ 焊接日报 - +
- - - - - - - - - - <%-- + + + + + + + + + <%-- - --%> - - - - - - - - - - - - - - - - - - - - - - - - --%> + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +