From 93be33cb2f16304f5643d169c478bd1444363577 Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Mon, 16 Mar 2026 16:51:55 +0800 Subject: [PATCH] =?UTF-8?q?20260316=20=E4=BA=A4=E5=B7=A5=E8=B5=84=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Fastreport/JGZL/管件宏观检查记录表.frx | 4 +- .../File/Fastreport/JGZL/钢管检查验收记录.frx | 7 +- ...rialIdentificationInspectionRecord.aspx.cs | 23 ++- .../JGZL/PipeFittingInspectionRecord.aspx | 20 ++- .../JGZL/PipeFittingInspectionRecord.aspx.cs | 49 ++++++ ...peFittingInspectionRecord.aspx.designer.cs | 18 ++ .../JGZL/SteelPipeCheckRecord.aspx | 10 +- .../JGZL/SteelPipeCheckRecord.aspx.cs | 158 ++++++++++++------ .../SteelPipeCheckRecord.aspx.designer.cs | 54 ------ .../common/WelderManage/WelderSave.aspx.cs | 2 +- 10 files changed, 223 insertions(+), 122 deletions(-) diff --git a/HJGL_DS/FineUIPro.Web/File/Fastreport/JGZL/管件宏观检查记录表.frx b/HJGL_DS/FineUIPro.Web/File/Fastreport/JGZL/管件宏观检查记录表.frx index d610e5e..8376793 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/Fastreport/JGZL/钢管检查验收记录.frx b/HJGL_DS/FineUIPro.Web/File/Fastreport/JGZL/钢管检查验收记录.frx index a04804e..fb76dd6 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; @@ -72,7 +72,7 @@ namespace FastReport } - + @@ -105,7 +105,6 @@ namespace FastReport - @@ -259,7 +258,7 @@ namespace FastReport - + diff --git a/HJGL_DS/FineUIPro.Web/JGZL/MaterialIdentificationInspectionRecord.aspx.cs b/HJGL_DS/FineUIPro.Web/JGZL/MaterialIdentificationInspectionRecord.aspx.cs index b2285ca..aed03b3 100644 --- a/HJGL_DS/FineUIPro.Web/JGZL/MaterialIdentificationInspectionRecord.aspx.cs +++ b/HJGL_DS/FineUIPro.Web/JGZL/MaterialIdentificationInspectionRecord.aspx.cs @@ -7,6 +7,7 @@ using System.Data; using System.Data.SqlClient; using System.IO; using System.Linq; +using System.Web; namespace FineUIPro.Web.JGZL @@ -93,7 +94,11 @@ namespace FineUIPro.Web.JGZL { newReport.STE_ID = BLL.HJGL_MaterialService.GetSteelBySteID(item.STE_ID).STE_Code; } - newReport.Specifications = item.Specification; + newReport.Specifications = HttpUtility.HtmlDecode((from x in Funs.DB.HJGL_PW_JointInfo where x.ISO_ID == item.ISO_ID select x.JOT_JointDesc).FirstOrDefault()); + newReport.TubeIdentificationStatus = "清晰"; + newReport.PipeFittingName = "/"; + newReport.PipeFittingStatus = "/"; + newReport.Conclusion = "合格"; reportLists.Add(newReport); } } @@ -117,7 +122,11 @@ namespace FineUIPro.Web.JGZL { newReport.STE_ID = BLL.HJGL_MaterialService.GetSteelBySteID(iso.STE_ID).STE_Code; } - newReport.Specifications = iso.Specification; + newReport.Specifications = HttpUtility.HtmlDecode((from x in Funs.DB.HJGL_PW_JointInfo where x.ISO_ID == iso.ISO_ID select x.JOT_JointDesc).FirstOrDefault()); + newReport.TubeIdentificationStatus = "清晰"; + newReport.PipeFittingName = "/"; + newReport.PipeFittingStatus = "/"; + newReport.Conclusion = "合格"; items.Add(newReport); } @@ -374,10 +383,10 @@ namespace FineUIPro.Web.JGZL { "STE_Code", "" }, { "Specifications", "" }, { "PrescribedColor", "" }, - { "TubeIdentificationStatus", "" }, - { "PipeFittingName", "" }, - { "PipeFittingStatus", "" }, - { "Conclusion", "" }, + { "TubeIdentificationStatus", "清晰" }, + { "PipeFittingName", "/" }, + { "PipeFittingStatus", "/" }, + { "Conclusion", "合格" }, { "Delete3", String.Format("", @@ -436,7 +445,7 @@ namespace FineUIPro.Web.JGZL ProjectId = this.ProjectId, ISO_Id = values.Value("ISO_Id"), STE_ID = values.Value("STE_ID"), - Specifications = values.Value("Specifications"), + Specifications = HttpUtility.HtmlDecode(values.Value("Specifications")), PrescribedColor = values.Value("PrescribedColor"), TubeIdentificationStatus = values.Value("TubeIdentificationStatus"), PipeFittingName = values.Value("PipeFittingName"), diff --git a/HJGL_DS/FineUIPro.Web/JGZL/PipeFittingInspectionRecord.aspx b/HJGL_DS/FineUIPro.Web/JGZL/PipeFittingInspectionRecord.aspx index 8d4087c..518e266 100644 --- a/HJGL_DS/FineUIPro.Web/JGZL/PipeFittingInspectionRecord.aspx +++ b/HJGL_DS/FineUIPro.Web/JGZL/PipeFittingInspectionRecord.aspx @@ -79,7 +79,7 @@ - + @@ -105,7 +105,7 @@ - + @@ -154,6 +154,9 @@ FieldType="String" HeaderTextAlign="Center" TextAlign="Left" Width="140px" Hidden="true"> + + + @@ -176,6 +179,19 @@ Target="Top" EnableResize="true" runat="server" IsModal="true" Width="1024px" Height="600px"> + + + + + diff --git a/HJGL_DS/FineUIPro.Web/JGZL/PipeFittingInspectionRecord.aspx.cs b/HJGL_DS/FineUIPro.Web/JGZL/PipeFittingInspectionRecord.aspx.cs index 53f1f4a..003d84b 100644 --- a/HJGL_DS/FineUIPro.Web/JGZL/PipeFittingInspectionRecord.aspx.cs +++ b/HJGL_DS/FineUIPro.Web/JGZL/PipeFittingInspectionRecord.aspx.cs @@ -414,5 +414,54 @@ namespace FineUIPro.Web.JGZL } } #endregion + + protected void btnCopy_Click(object sender, EventArgs e) + { + if (!string.IsNullOrEmpty(this.tvControlItem.SelectedNodeID)) + { + JArray teamGroupData = Grid1.GetMergedData(); + List list = new List(); + foreach (JObject teamGroupRow in teamGroupData) + { + JObject values = teamGroupRow.Value("values"); + list.Add(values); + } + int index = Grid1.SelectedRowIndex; + JObject defaultObj = new JObject + { + { "RecordId", Guid.NewGuid() }, + { "Name", Grid1.Rows[index].Values[1].ToString()}, + { "ContractNo", Grid1.Rows[index].Values[2].ToString()}, + { "ArrivalUnit", Grid1.Rows[index].Values[4].ToString() }, + { "ArrivalNum", Grid1.Rows[index].Values[5].ToString() }, + { "MaterialCertificateNumber", Grid1.Rows[index].Values[6].ToString() }, + { "Material", Grid1.Rows[index].Values[7].ToString() }, + { "Specifications", Grid1.Rows[index].Values[8].ToString() }, + { "InspectionNum", Grid1.Rows[index].Values[9].ToString()}, + { "ODVariation", Grid1.Rows[index].Values[11].ToString() }, + { "IDVariation", Grid1.Rows[index].Values[12].ToString() }, + { "WallVariation", Grid1.Rows[index].Values[13].ToString() }, + { "OtherVariation", Grid1.Rows[index].Values[14].ToString() }, + { "AppearanceQuality", Grid1.Rows[index].Values[15].ToString() }, + { "Result", Grid1.Rows[index].Values[16].ToString()}, + { + "Delete3", + String.Format("", + GetDeleteScriptGrid1(), IconHelper.GetResolvedIconUrl(Icon.Delete)) + } + }; + list.Add(defaultObj); + Grid1.DataSource = list; + Grid1.DataBind(); + } + else + { + Alert.ShowInTop("请选择项目!", MessageBoxIcon.Warning); + return; + } + } + + + } } \ No newline at end of file diff --git a/HJGL_DS/FineUIPro.Web/JGZL/PipeFittingInspectionRecord.aspx.designer.cs b/HJGL_DS/FineUIPro.Web/JGZL/PipeFittingInspectionRecord.aspx.designer.cs index 0cd82f6..b7f1d83 100644 --- a/HJGL_DS/FineUIPro.Web/JGZL/PipeFittingInspectionRecord.aspx.designer.cs +++ b/HJGL_DS/FineUIPro.Web/JGZL/PipeFittingInspectionRecord.aspx.designer.cs @@ -301,5 +301,23 @@ namespace FineUIPro.Web.JGZL /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window WindowPrint; + + /// + /// Menu1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Menu Menu1; + + /// + /// btnCopy 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnCopy; } } diff --git a/HJGL_DS/FineUIPro.Web/JGZL/SteelPipeCheckRecord.aspx b/HJGL_DS/FineUIPro.Web/JGZL/SteelPipeCheckRecord.aspx index 8a944af..b3079e1 100644 --- a/HJGL_DS/FineUIPro.Web/JGZL/SteelPipeCheckRecord.aspx +++ b/HJGL_DS/FineUIPro.Web/JGZL/SteelPipeCheckRecord.aspx @@ -1,4 +1,4 @@ -<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SteelPipeCheckRecord.aspx.cs" Inherits="FineUIPro.Web.JGZL.SteelPipeCheckRecord" %> +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SteelPipeCheckRecord.aspx.cs" Inherits="FineUIPro.Web.JGZL.SteelPipeCheckRecord" ValidateRequest="false" %> @@ -147,7 +147,7 @@ - + <%-- - - + --%> + <%-- - + --%> diff --git a/HJGL_DS/FineUIPro.Web/JGZL/SteelPipeCheckRecord.aspx.cs b/HJGL_DS/FineUIPro.Web/JGZL/SteelPipeCheckRecord.aspx.cs index 0e6a97e..3694115 100644 --- a/HJGL_DS/FineUIPro.Web/JGZL/SteelPipeCheckRecord.aspx.cs +++ b/HJGL_DS/FineUIPro.Web/JGZL/SteelPipeCheckRecord.aspx.cs @@ -1,4 +1,5 @@ using BLL; +using FastReport.DevComponents.DotNetBar; using Model; using Newtonsoft.Json.Linq; using System; @@ -7,6 +8,8 @@ using System.Data; using System.Data.SqlClient; using System.IO; using System.Linq; +using System.Web; +using System.Web.UI.WebControls; namespace FineUIPro.Web.JGZL { public partial class SteelPipeCheckRecord : PageBase @@ -46,6 +49,11 @@ namespace FineUIPro.Web.JGZL } } + /// + /// 定义集合 + /// + private static List items = new List(); + #endregion #region 加载页面 @@ -151,35 +159,91 @@ namespace FineUIPro.Web.JGZL if (report != null) { this.RecordId = report.RecordId; - this.txtContractCode.Text= report.ContractCode; - this.txtArrivalDate.Text =string.Format("{0:yyyy-MM-dd}",report.ArrivalDate); + this.txtContractCode.Text = report.ContractCode; + this.txtArrivalDate.Text = string.Format("{0:yyyy-MM-dd}", report.ArrivalDate); this.txtExecutionStandard.Text = report.ExecutionStandard; this.drpCrack.SelectedValue = report.Crack; this.drpSlagInclusion.SelectedValue = report.SlagInclusion; this.drpShrinkageHole.SelectedValue = report.ShrinkageHole; this.drpHeavyLeather.SelectedValue = report.HeavyLeather; this.drpOther.SelectedValue = report.Other; - this.imgPicture.ImageUrl = report.Remark; + //this.imgPicture.ImageUrl = report.Remark; + BindGrid(); } else { //默认 this.RecordId = string.Empty; - this.txtContractCode.Text = string.Empty; + this.txtContractCode.Text = BLL.Base_ProjectService.GetProjectCode(this.ProjectId); this.txtArrivalDate.Text = string.Empty; - this.txtExecutionStandard.Text = string.Empty; + this.txtExecutionStandard.Text = "SH/T3501-2021"; this.drpCrack.SelectedValue = "合格"; this.drpSlagInclusion.SelectedValue = "合格"; this.drpShrinkageHole.SelectedValue = "合格"; this.drpHeavyLeather.SelectedValue = "合格"; - this.drpOther.SelectedValue= "合格"; - this.imgPicture.ImageUrl = string.Empty; + this.drpOther.SelectedValue = "合格"; + //this.imgPicture.ImageUrl = string.Empty; + + InitGrid1(this.ProjectId); } - BindGrid(); BindGrid2(); } } + private void InitGrid1(string projectId) + { + var reportLists = (from x in Funs.DB.JGZL_SteelPipeCheckRecordItem1 + join y in Funs.DB.JGZL_SteelPipeCheckRecord on x.RecordId equals y.RecordId + where y.ProjectId == projectId + select x).ToList(); + if (reportLists.Count > 0) + { + var isoLists = BLL.HJGL_PW_IsoInfoService.GetIsoInfoByProjectId(projectId); + foreach (var item in isoLists) + { + var iso = (from x in Funs.DB.JGZL_SteelPipeCheckRecordItem1 + join y in Funs.DB.JGZL_SteelPipeCheckRecord on x.RecordId equals y.RecordId + join z in Funs.DB.HJGL_BS_Steel on x.Material equals z.STE_Code + where y.ProjectId == projectId && z.STE_ID == item.STE_ID + && x.Specifications == (from j in Funs.DB.HJGL_PW_JointInfo where j.ISO_ID == item.ISO_ID select j.JOT_JointDesc).FirstOrDefault() + select x).FirstOrDefault(); + if (iso == null) + { + Model.JGZL_SteelPipeCheckRecordItem1 newReport = new Model.JGZL_SteelPipeCheckRecordItem1(); + newReport.RecordItemId = SQLHelper.GetNewID(); + newReport.Name = "无缝钢管"; + if (!string.IsNullOrEmpty(item.STE_ID)) + { + newReport.Material = BLL.HJGL_MaterialService.GetSteelBySteID(item.STE_ID).STE_Code; + } + newReport.Specifications = HttpUtility.HtmlDecode((from x in Funs.DB.HJGL_PW_JointInfo where x.ProjectId == projectId && x.ISO_ID == item.ISO_ID select x.JOT_JointDesc).FirstOrDefault()); + reportLists.Add(newReport); + } + } + this.Grid1.DataSource = reportLists; + this.Grid1.DataBind(); + } + else + { + items.Clear(); + var isoLists = BLL.HJGL_PW_IsoInfoService.GetIsoInfoByProjectId(projectId); + foreach (var iso in isoLists) + { + Model.JGZL_SteelPipeCheckRecordItem1 newReport = new Model.JGZL_SteelPipeCheckRecordItem1(); + newReport.RecordItemId = SQLHelper.GetNewID(); + newReport.Name = "无缝钢管"; + if (!string.IsNullOrEmpty(iso.STE_ID)) + { + newReport.Material = BLL.HJGL_MaterialService.GetSteelBySteID(iso.STE_ID).STE_Code; + } + newReport.Specifications = HttpUtility.HtmlDecode((from x in Funs.DB.HJGL_PW_JointInfo where x.ProjectId == projectId && x.ISO_ID == iso.ISO_ID select x.JOT_JointDesc).FirstOrDefault()); + items.Add(newReport); + } + this.Grid1.DataSource = items; + this.Grid1.DataBind(); + } + } + /// /// 数据绑定 /// @@ -265,7 +329,7 @@ namespace FineUIPro.Web.JGZL dtMainData.Columns.Add("ShrinkageHole"); dtMainData.Columns.Add("HeavyLeather"); dtMainData.Columns.Add("Other"); - dtMainData.Columns.Add("ImageUrl"); + //dtMainData.Columns.Add("ImageUrl"); var newMainData = dtMainData.NewRow(); newMainData["ProjectName"] = BLL.Base_ProjectService.GetProjectByProjectId(this.ProjectId).ProjectName; @@ -278,10 +342,10 @@ namespace FineUIPro.Web.JGZL newMainData["ShrinkageHole"] = report.ShrinkageHole; newMainData["HeavyLeather"] = report.HeavyLeather; newMainData["Other"] = report.Other; - if (!string.IsNullOrEmpty(report.Remark)) - { - newMainData["ImageUrl"] = Funs.RootPath + report.Remark.Substring(report.Remark.IndexOf('/')); - } + //if (!string.IsNullOrEmpty(report.Remark)) + //{ + // newMainData["ImageUrl"] = Funs.RootPath + report.Remark.Substring(report.Remark.IndexOf('/')); + //} dtMainData.Rows.Add(newMainData); BLL.Common.FastReportService.AddFastreportTable(dtMainData); @@ -417,7 +481,7 @@ namespace FineUIPro.Web.JGZL JObject defaultObj = new JObject { { "RecordItemId", Guid.NewGuid() }, - { "Name", ""}, + { "Name", "无缝钢管"}, { "Material", "" }, { "Specifications", "" }, { "Quantity", "" }, @@ -523,24 +587,24 @@ namespace FineUIPro.Web.JGZL /// /// /// - protected void filePicture_FileSelected(object sender, EventArgs e) - { - if (filePicture.HasFile) - { - string fileName = filePicture.ShortFileName; - if (!ValidateFileType(fileName)) - { - ShowNotify("无效的文件类型!"); - return; - } - fileName = fileName.Replace(":", "_").Replace(" ", "_").Replace("\\", "_").Replace("/", "_"); - fileName = DateTime.Now.Ticks.ToString() + "_" + fileName; - filePicture.SaveAs(Server.MapPath("~/upload/" + fileName)); - imgPicture.ImageUrl = "~/upload/" + fileName; - // 清空文件上传组件 - filePicture.Reset(); - } - } + //protected void filePicture_FileSelected(object sender, EventArgs e) + //{ + // if (filePicture.HasFile) + // { + // string fileName = filePicture.ShortFileName; + // if (!ValidateFileType(fileName)) + // { + // ShowNotify("无效的文件类型!"); + // return; + // } + // fileName = fileName.Replace(":", "_").Replace(" ", "_").Replace("\\", "_").Replace("/", "_"); + // fileName = DateTime.Now.Ticks.ToString() + "_" + fileName; + // filePicture.SaveAs(Server.MapPath("~/upload/" + fileName)); + // imgPicture.ImageUrl = "~/upload/" + fileName; + // // 清空文件上传组件 + // filePicture.Reset(); + // } + //} #endregion #region 保存 @@ -563,22 +627,22 @@ namespace FineUIPro.Web.JGZL newReport.ShrinkageHole= this.drpShrinkageHole.SelectedValue; newReport.HeavyLeather = this.drpHeavyLeather.SelectedValue; newReport.Other = this.drpOther.SelectedValue; - newReport.Remark = imgPicture.ImageUrl;//图片 + //newReport.Remark = imgPicture.ImageUrl;//图片 if (!string.IsNullOrEmpty(this.RecordId)) { - var r = BLL.SteelPipeCheckRecordService.GetSteelPipeReportById(this.RecordId); - if (r != null) - { - if (!string.IsNullOrEmpty(r.Remark)) - { - string url = r.Remark.Substring(r.Remark.IndexOf('/')); - if (File.Exists(Funs.RootPath + url)) - { - //删除被覆盖的图片 - File.Delete(Funs.RootPath + url); - } - } - } + //var r = BLL.SteelPipeCheckRecordService.GetSteelPipeReportById(this.RecordId); + //if (r != null) + //{ + // if (!string.IsNullOrEmpty(r.Remark)) + // { + // string url = r.Remark.Substring(r.Remark.IndexOf('/')); + // if (File.Exists(Funs.RootPath + url)) + // { + // //删除被覆盖的图片 + // File.Delete(Funs.RootPath + url); + // } + // } + //} newReport.RecordId = this.RecordId; BLL.SteelPipeCheckRecordService.UpdateSteelPipeReport(newReport); } @@ -606,7 +670,7 @@ namespace FineUIPro.Web.JGZL RecordId = this.RecordId, Name = values.Value("Name"), Material = values.Value("Material"), - Specifications = values.Value("Specifications"), + Specifications = HttpUtility.HtmlDecode(values.Value("Specifications")), Quantity = values.Value("Quantity"), MaterialCertificateCode = values.Value("MaterialCertificateCode"), HeatCode = values.Value("HeatCode"), diff --git a/HJGL_DS/FineUIPro.Web/JGZL/SteelPipeCheckRecord.aspx.designer.cs b/HJGL_DS/FineUIPro.Web/JGZL/SteelPipeCheckRecord.aspx.designer.cs index 73cd57d..47ade58 100644 --- a/HJGL_DS/FineUIPro.Web/JGZL/SteelPipeCheckRecord.aspx.designer.cs +++ b/HJGL_DS/FineUIPro.Web/JGZL/SteelPipeCheckRecord.aspx.designer.cs @@ -293,60 +293,6 @@ namespace FineUIPro.Web.JGZL /// protected global::FineUIPro.DropDownList drpOther; - /// - /// Label1 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Label Label1; - - /// - /// imgPicture 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Image imgPicture; - - /// - /// Label2 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Label Label2; - - /// - /// Label3 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Label Label3; - - /// - /// filePicture 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.FileUpload filePicture; - - /// - /// Label4 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Label Label4; - /// /// Grid2 控件。 /// diff --git a/HJGL_DS/FineUIPro.Web/common/WelderManage/WelderSave.aspx.cs b/HJGL_DS/FineUIPro.Web/common/WelderManage/WelderSave.aspx.cs index 83c2a9e..4c02372 100644 --- a/HJGL_DS/FineUIPro.Web/common/WelderManage/WelderSave.aspx.cs +++ b/HJGL_DS/FineUIPro.Web/common/WelderManage/WelderSave.aspx.cs @@ -159,7 +159,7 @@ } if (!string.IsNullOrEmpty(person.PhotoUrl)) { - imgPhoto1.ImageUrl = "~/" + person.PhotoUrl; + imgPhoto1.ImageUrl = person.PhotoUrl; } } else