From a8a0d6142f502162799c766e274ff5dad1b97d12 Mon Sep 17 00:00:00 2001 From: liyh Date: Sun, 12 May 2024 10:16:07 +0800 Subject: [PATCH 1/4] 111 --- .../WeldingProcess/PMI/PMIDetectionEntry.aspx | 177 +++++++++++ .../PMI/PMIDetectionEntry.aspx.cs | 298 ++++++++++++++++++ .../PMI/PMIDetectionEntry.aspx.designer.cs | 251 +++++++++++++++ 3 files changed, 726 insertions(+) create mode 100644 HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDetectionEntry.aspx create mode 100644 HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDetectionEntry.aspx.cs create mode 100644 HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDetectionEntry.aspx.designer.cs diff --git a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDetectionEntry.aspx b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDetectionEntry.aspx new file mode 100644 index 0000000..79410dd --- /dev/null +++ b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDetectionEntry.aspx @@ -0,0 +1,177 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PMIDetectionEntry.aspx.cs" Inherits="FineUIPro.Web.WeldingProcess.PMI.PMIDetectionEntry" %> + + + + + + + PMI检测录入 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDetectionEntry.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDetectionEntry.aspx.cs new file mode 100644 index 0000000..92ae0a2 --- /dev/null +++ b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDetectionEntry.aspx.cs @@ -0,0 +1,298 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using BLL; +using System.Web; +using System.Collections; +using Model; +using static System.Windows.Forms.VisualStyles.VisualStyleElement; + +namespace FineUIPro.Web.WeldingProcess.PMI +{ + public partial class PMIDetectionEntry : PageBase + { + #region 定义项 + /// + /// 检测单主键 + /// + public string PMIID + { + get + { + return (string)ViewState["PMIID"]; + } + set + { + ViewState["PMIID"] = value; + } + } + #endregion + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.txtNDEDateMonth.Text = string.Format("{0:yyyy-MM}", DateTime.Now); + this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString(); + this.PMIID = string.Empty; + this.InitTreeMenu();//加载树 + } + } + + #region 加载树 + /// + /// 加载树 + /// + private void InitTreeMenu() + { + if (!string.IsNullOrEmpty(this.txtNDEDateMonth.Text.Trim())) + { + DateTime startTime = Convert.ToDateTime(this.txtNDEDateMonth.Text.Trim() + "-01"); + DateTime endTime = startTime.AddMonths(1); + this.tvControlItem.Nodes.Clear(); + List units = new List(); + Model.Project_Unit pUnit = BLL.Project_UnitService.GetProject_UnitByProjectIdUnitId(this.CurrUser.LoginProjectId, this.CurrUser.UnitId); + if (pUnit == null || pUnit.UnitType == BLL.Const.UnitType_1 || pUnit.UnitType == BLL.Const.UnitType_2 + || pUnit.UnitType == BLL.Const.UnitType_3 || pUnit.UnitType == BLL.Const.UnitType_4 + || pUnit.UnitType == BLL.Const.UnitType_6) + { + units = (from x in Funs.DB.Base_Unit + join y in Funs.DB.Project_Unit on x.UnitId equals y.UnitId + where y.ProjectId == this.CurrUser.LoginProjectId && y.UnitType.Contains(BLL.Const.UnitType_5) + select x).ToList(); + } + else + { + units.Add(BLL.Base_UnitService.GetUnit(this.CurrUser.UnitId)); + } + if (units != null) + { + foreach (var unit in units) + { + TreeNode newNode = new TreeNode();//定义根节点 + newNode.Text = unit.UnitName; + newNode.NodeID = unit.UnitId; + newNode.Expanded = true; + newNode.ToolTip = "Unit"; + this.tvControlItem.Nodes.Add(newNode); + this.BindNodes(newNode); + } + } + else + { + Alert.ShowInTop(Resources.Lan.PleaseAddUnitFirst, MessageBoxIcon.Warning); + } + } + else + { + Alert.ShowInTop(Resources.Lan.PleaseSelectTrustMonth, MessageBoxIcon.Warning); + } + } + + /// + /// 绑定树节点 + /// + /// + private void BindNodes(TreeNode node) + { + if (node.ToolTip == "Unit") + { + ///装置 + var install = (from x in Funs.DB.Project_Installation + join y in Funs.DB.PMI_Delegation on x.InstallationId equals y.InstallationId + where y.UnitId == node.NodeID && x.ProjectId == this.CurrUser.LoginProjectId + orderby x.InstallationCode + select x).Distinct(); + foreach (var q in install) + { + TreeNode newNode = new TreeNode(); + newNode.Text = q.InstallationName; + newNode.NodeID = q.InstallationId + "|" + node.NodeID; + newNode.ToolTip = "Installation"; + node.Nodes.Add(newNode); + BindNodes(newNode); + } + } + else if (node.ToolTip == "Installation") + { + string[] unitAndInstallationArr= node.NodeID.Split('|'); + var ndt = from x in Funs.DB.PMI_Delegation where x.UnitId == unitAndInstallationArr[1] + && x.InstallationId == unitAndInstallationArr[0] + && x.ProjectId == this.CurrUser.LoginProjectId select x; + foreach (var q in ndt) + { + + TreeNode newNode = new TreeNode(); + newNode.Text = q.DelegationNo; + newNode.NodeID = q.Id; + newNode.ToolTip = "DelegationNo"; + newNode.EnableClickEvent = true; + node.Nodes.Add(newNode); + BindNodes(newNode); + } + } + } + #endregion + + #region 点击TreeView + /// + /// 点击TreeView + /// + /// + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + this.PMIID = tvControlItem.SelectedNodeID; + this.hdPMIId.Text = this.PMIID; + this.BindGrid(); + } + #endregion + + #region 数据绑定 + protected void TextBox_TextChanged(object sender, EventArgs e) + { + this.BindGrid(); + } + + /// + /// 数据绑定 + /// + private void BindGrid() + { + if (!string.IsNullOrWhiteSpace(this.hdPMIId.Text) && this.tvControlItem.SelectedNode.ToolTip == "DelegationNo") + { + this.SetTextTemp(); + this.PageInfoLoad(); ///页面输入提交信息 + + } + } + + #region 加载页面输入提交信息 + /// + /// 加载页面输入提交信息 + /// + private void PageInfoLoad() + { + this.SimpleForm1.Reset(); ///重置所有字段 + var pageInfo = (from x in Funs.DB.PMI_Delegation + join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId + join n in Funs.DB.Project_Installation on x.InstallationId equals n.InstallationId + join u in Funs.DB.Sys_User on x.DetectionStandard equals u.UserId into u1 //左连接查询 + from u in u1.DefaultIfEmpty() + where x.Id==hdPMIId.Text + select new { DelegationNo=x.DelegationNo, + DelegationDate=x.DelegationDate, + InstallationName=n.InstallationName, + UnitName=y.UnitName, + DetectionMethod="待定", + Tabler=x.Tabler, + Remark=x.Remark, + }).ToList(); + if (pageInfo.Count>0) + { + this.txtDelegationNo.Text = pageInfo[0].DelegationNo; + this.txtDelegationDate.Text = pageInfo[0].DelegationDate.ToString(); + this.txtInstallationName.Text = pageInfo[0].InstallationName; + this.txtUnitName.Text = pageInfo[0].UnitName; + this.txtDetectionMethod.Text = pageInfo[0].DetectionMethod; + this.txtTabler.Text = pageInfo[0].Tabler; + this.txtRemark.Text = pageInfo[0].Remark; + } + } + #endregion + + /// + /// 清空 + /// + private void SetTextTemp() + { + this.txtDelegationNo.Text = string.Empty; + this.txtDelegationDate.Text = string.Empty; + this.txtInstallationName.Text = string.Empty; + this.txtUnitName.Text = string.Empty; + this.txtDetectionMethod.Text = string.Empty; + this.txtTabler.Text = string.Empty; + this.txtRemark.Text = string.Empty; + } + #endregion + + #region 分页排序 + #region 页索引改变事件 + /// + /// 页索引改变事件 + /// + /// + /// + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) + { + BindGrid(); + } + #endregion + + #region 排序 + /// + /// 排序 + /// + /// + /// + protected void Grid1_Sort(object sender, GridSortEventArgs e) + { + BindGrid(); + } + #endregion + + #region 分页选择下拉改变事件 + /// + /// 分页选择下拉改变事件 + /// + /// + /// + protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) + { + Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); + BindGrid(); + } + #endregion + #endregion + + #region 关闭弹出窗口及刷新页面 + + /// + /// 查询 + /// + /// + /// + protected void Tree_TextChanged(object sender, EventArgs e) + { + this.InitTreeMenu(); + //this.BindGrid(); + } + #endregion + + #region 格式化字符串 + /// + /// 获取缺陷 + /// + /// + /// + protected string ConvertCheckDefects(object CheckDefects) + { + string str = string.Empty; + if (CheckDefects != null) + { + HttpCookie lanCookie = Request.Cookies["SelectLan"]; + if (lanCookie["lan"] == "zh-CN") //中文 + { + str = BLL.Base_DefectService.GetDefectNameStrByDefectIdStr(CheckDefects.ToString()); + } + else + { + str = BLL.Base_DefectService.GetDefectEngNameStrByDefectIdStr(CheckDefects.ToString()); + } + } + return str; + } + #endregion + } +} \ No newline at end of file diff --git a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDetectionEntry.aspx.designer.cs b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDetectionEntry.aspx.designer.cs new file mode 100644 index 0000000..76a035a --- /dev/null +++ b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDetectionEntry.aspx.designer.cs @@ -0,0 +1,251 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.WeldingProcess.PMI +{ + + + public partial class PMIDetectionEntry + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// panelLeftRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelLeftRegion; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// txtNDEDateMonth 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtNDEDateMonth; + + /// + /// Toolbar5 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar5; + + /// + /// txtSearchCode 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtSearchCode; + + /// + /// tvControlItem 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Tree tvControlItem; + + /// + /// panelCenterRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelCenterRegion; + + /// + /// Toolbar2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar2; + + /// + /// hdPMIId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hdPMIId; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// txtDelegationNo 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label txtDelegationNo; + + /// + /// txtDelegationDate 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label txtDelegationDate; + + /// + /// txtInstallationName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label txtInstallationName; + + /// + /// txtUnitName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label txtUnitName; + + /// + /// txtDetectionMethod 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label txtDetectionMethod; + + /// + /// txtDetectionStandard 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label txtDetectionStandard; + + /// + /// txtTabler 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label txtTabler; + + /// + /// txtRemark 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label txtRemark; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// ToolbarSeparator1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; + + /// + /// ToolbarText1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarText ToolbarText1; + + /// + /// ddlPageSize 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlPageSize; + } +} From 8929edac2c4ffe6562b1407c1874f54dbb9826d7 Mon Sep 17 00:00:00 2001 From: liyh Date: Sun, 12 May 2024 10:16:13 +0800 Subject: [PATCH 2/4] 111 --- HJGL/.vs/HJGL/config/applicationhost.config | 4 +-- HJGL/.vs/HJGL/v17/.suo | Bin 1040896 -> 976896 bytes HJGL/FineUIPro.Web/FineUIPro.Web.csproj.user | 5 ++- HJGL/FineUIPro.Web/Web.config | 2 +- .../WeldingReport/WeldDailyExport.aspx.cs | 30 +++++++++--------- 5 files changed, 20 insertions(+), 21 deletions(-) diff --git a/HJGL/.vs/HJGL/config/applicationhost.config b/HJGL/.vs/HJGL/config/applicationhost.config index b8c8efa..9292fa5 100644 --- a/HJGL/.vs/HJGL/config/applicationhost.config +++ b/HJGL/.vs/HJGL/config/applicationhost.config @@ -162,7 +162,7 @@ - + @@ -250,7 +250,7 @@ - + diff --git a/HJGL/.vs/HJGL/v17/.suo b/HJGL/.vs/HJGL/v17/.suo index 6d6b55e792c4adb36c1ff3aa87691ece3f9d6fbc..c5ac5e85f777581e23a57ea73fb707a4c771292c 100644 GIT binary patch delta 75315 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 R?0nq;+X?vxC(j{S{vQm5?#KWD diff --git a/HJGL/FineUIPro.Web/FineUIPro.Web.csproj.user b/HJGL/FineUIPro.Web/FineUIPro.Web.csproj.user index 6f3d27a..8d0cdf2 100644 --- a/HJGL/FineUIPro.Web/FineUIPro.Web.csproj.user +++ b/HJGL/FineUIPro.Web/FineUIPro.Web.csproj.user @@ -15,9 +15,8 @@ - - - CurrentPage + Login.aspx + SpecificPage True False False diff --git a/HJGL/FineUIPro.Web/Web.config b/HJGL/FineUIPro.Web/Web.config index baa8804..9ecdad1 100644 --- a/HJGL/FineUIPro.Web/Web.config +++ b/HJGL/FineUIPro.Web/Web.config @@ -9,7 +9,7 @@

- + diff --git a/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/WeldDailyExport.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/WeldDailyExport.aspx.cs index 6c475bd..c0d8937 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/WeldDailyExport.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/WeldDailyExport.aspx.cs @@ -291,32 +291,32 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport ws.GetRow(rowIndex + 2).GetCell(19).SetCellValue("Remark"); ws.GetRow(rowIndex).Height = 69 * 20; - ws.GetRow(rowIndex + 1).Height = 12 * 20; - ws.GetRow(rowIndex + 2).Height = 24 * 20; + ws.GetRow(rowIndex + 1).Height = 15 * 20; + ws.GetRow(rowIndex + 2).Height = 30 * 20; ws.SetColumnWidth(0, 4 * 256); ws.SetColumnWidth(1, (int)(22.67 * 256)); ws.SetColumnWidth(2, (int)(9.78 * 256)); - ws.SetColumnWidth(3, (int)(6.78 * 256)); + ws.SetColumnWidth(3, (int)(5.33 * 256)); ws.SetColumnWidth(4, (int)(7.67 * 256)); ws.SetColumnWidth(5, (int)(8.33 * 256)); - ws.SetColumnWidth(6, (int)(6.33 * 256)); - ws.SetColumnWidth(7, (int)(9.11 * 256)); + ws.SetColumnWidth(6, (int)(4.42 * 256)); + ws.SetColumnWidth(7, (int)(10.82 * 256)); ws.SetColumnWidth(8, (int)(8.33 * 256)); ws.SetColumnWidth(9, (int)(8.40 * 256)); ws.SetColumnWidth(10, (int)(15.67 * 256)); - ws.SetColumnWidth(11, (int)(11.67 * 256)); + ws.SetColumnWidth(11, (int)(12 * 256)); ws.SetColumnWidth(12, (int)(8.22 * 256)); ws.SetColumnWidth(13, (int)(16.33 * 256)); - ws.SetColumnWidth(14, (int)(11.22 * 256)); - ws.SetColumnWidth(15, (int)(10.44 * 256)); - ws.SetColumnWidth(16, (int)(5.56 * 256)); - ws.SetColumnWidth(17, (int)(5.56 * 256)); - ws.SetColumnWidth(18, (int)(7.89 * 256)); + ws.SetColumnWidth(14, (int)(11.45 * 256)); + ws.SetColumnWidth(15, (int)(11.00 * 256)); + ws.SetColumnWidth(16, (int)(4.00 * 256)); + ws.SetColumnWidth(17, (int)(4.00 * 256)); + ws.SetColumnWidth(18, (int)(9.00 * 256)); ws.SetColumnWidth(19, (int)(9.33 * 256)); #endregion - - const int pageSize = 64; + + const int pageSize = 67; DataTable dt = GetDataTable(); var style3 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 9, false, false, "sans-serif"); @@ -370,7 +370,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport var distinctWelder = dt.AsEnumerable().GroupBy(row => row.Field("WelderCode")).Select(group => group.First()); decimal sumSize = decimal.Parse(dt.Compute("sum(Size)", "").ToString()); - ws.GetRow(dt.Rows.Count + 3).GetCell(0).SetCellValue("合计"); + ws.GetRow(dt.Rows.Count + 3).GetCell(0).SetCellValue("Total"); ws.GetRow(dt.Rows.Count + 3).GetCell(1).SetCellValue($"{distinctPipelineCode.Count().ToString()}"); ws.GetRow(dt.Rows.Count + 3).GetCell(3).SetCellValue($"{dt.Rows.Count}"); ws.GetRow(dt.Rows.Count + 3).GetCell(6).SetCellValue($"{sumSize}"); @@ -382,7 +382,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport #region 页脚部分 IFooter footer = ws.Footer; - string str = "CC7: 监理: Worley:"; + string str = " CC7: 监理: Worley:"; str += "\n\n第 &P 页,共 &N 页"; footer.Center = str; From ca5c5409bda84a201f845f7496f659bfe4e3440c Mon Sep 17 00:00:00 2001 From: liyh Date: Sun, 12 May 2024 10:37:46 +0800 Subject: [PATCH 3/4] 12 --- .../TestPackageManageAudit.aspx.cs | 206 ++++++++++++++++++ 1 file changed, 206 insertions(+) diff --git a/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx.cs index f4de55b..cc9719d 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx.cs @@ -4094,6 +4094,212 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage } + //24-TP-10-渗透&MT检测比例确认表 + private void template25_1(XSSFWorkbook hssfworkbook, XSSFSheet ws) + { + int rowIndex = 0; + var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 10, true, false, "Arial Unicode MS"); + #region 头部 + var style1 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Right, 10, true, false, "Arial Unicode MS"); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex, style1, 0, 20, true); + + //设置行宽度 + ws.SetColumnWidth(0, 13 * 256); + ws.SetColumnWidth(1, 3 * 256); + ws.SetColumnWidth(2, 10 * 256); + for (int i = 3; i < 20; i++) + { + ws.SetColumnWidth(1, 3 * 256); + } + ws.SetColumnWidth(20, 23 * 256); + + //设置行高度 + ws.GetRow(rowIndex).Height = 10 * 20; + ws.GetRow(rowIndex).GetCell(20).CellStyle = style1; + ws.GetRow(rowIndex).GetCell(20).SetCellValue("Form No. TP-10"); + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 2, style, 0, 20, true); + //设置行高度 + ws.GetRow(rowIndex + 1).Height = 10 * 20 * 9; + ws.GetRow(rowIndex + 2).Height = 10 * 20 * 3; + + //合并单元格和填充文本 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 0, 2)); + ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue(""); + + var style3 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 14, true, true, "Arial Unicode MS"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 3, 17)); + ws.GetRow(rowIndex + 1).GetCell(3).CellStyle = style3; + ws.GetRow(rowIndex + 1).GetCell(3).SetCellValue("管道焊接接头PMI检测比例确认表(一)\nPipeline Welding Joints PMI Examination Rate Confirmation Form(I)\n共 1 页 第 1 页"); + + var style2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 10, true, false, "Arial Unicode MS"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 18, 20)); + ws.GetRow(rowIndex + 1).GetCell(18).CellStyle = style2; + ws.GetRow(rowIndex + 1).GetCell(18).SetCellValue("\n 工程名称:巴斯夫(广东)一体化项目\n Project Name:BASF (Guangdong) Integrated Project\n 单元名称:Citral\n Unit Name:Citral"); + + ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("执行标准\nApplicable code"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 1, 5)); + ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue(""); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 6, 7)); + ws.GetRow(rowIndex + 2).GetCell(6).SetCellValue("检测方法\nExam. Method"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 8, 15)); + ws.GetRow(rowIndex + 2).GetCell(8).SetCellValue("PMI检测"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 16, 17)); + ws.GetRow(rowIndex + 2).GetCell(16).SetCellValue("检测比例\nExam. Rate"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 18, 20)); + ws.GetRow(rowIndex + 2).GetCell(18).SetCellValue("2%"); + + #endregion + + #region 表格部分 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 3, rowIndex + 13, style, 0, 20, true); + //设置高度和合并列填充文本 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 0, 1)); + ws.GetRow(rowIndex + 3).GetCell(0).SetCellValue("管道编号\nPipeline No."); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 2, 2)); + ws.GetRow(rowIndex + 3).GetCell(2).SetCellValue("材质\nMaterial"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 3, 4)); + ws.GetRow(rowIndex + 3).GetCell(3).SetCellValue("规 格/Size\n mm"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 5, 8)); + ws.GetRow(rowIndex + 3).GetCell(5).SetCellValue("管道焊接接头\nWelding Joints"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 9, 12)); + ws.GetRow(rowIndex + 3).GetCell(9).SetCellValue("施焊焊工\nWelder"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 13, 16)); + ws.GetRow(rowIndex + 3).GetCell(13).SetCellValue("检测焊接接头\nExanined Joints"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 5, 6)); + ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("总数\nTotal"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 7, 8)); + ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("固定口数\nField Joints"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 9, 10)); + ws.GetRow(rowIndex + 4).GetCell(9).SetCellValue("焊工代号\nWelder No."); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 11, 12)); + ws.GetRow(rowIndex + 4).GetCell(11).SetCellValue("施焊数量\nWelded Joints"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 13, 14)); + ws.GetRow(rowIndex + 4).GetCell(13).SetCellValue("总数\nTotal Joints"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 15, 16)); + ws.GetRow(rowIndex + 4).GetCell(15).SetCellValue("固定口数\nField Joints"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 17, 19)); + ws.GetRow(rowIndex + 3).GetCell(17).SetCellValue("实际检测比例\nActual exam. Rate"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 20, 20)); + ws.GetRow(rowIndex + 3).GetCell(20).SetCellValue("检测报告编号\nExamination Report No."); + + + for (int i = 3; i < 14; i++) + { + if (i == 3 || i == 4) + { + ws.GetRow(rowIndex + i).Height = 30 * 20; + continue; + } + + if (i == 13) + ws.GetRow(rowIndex + i).Height = 30 * 20; + else + ws.GetRow(rowIndex + i).Height = 19 * 20; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 0, 1)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 3, 4)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 5, 6)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 7, 8)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 9, 10)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 11, 12)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 13, 14)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 15, 16)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 17, 19)); + } + ws.GetRow(rowIndex + 13).GetCell(0).SetCellValue("小计\nTotal"); + #endregion + + #region 尾部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 14, rowIndex + 16, style, 0, 20, true); + //设置行高 + ws.GetRow(rowIndex + 14).Height = 20 * 20 * 2; + ws.GetRow(rowIndex + 15).Height = 20 * 20 * 2; + ws.GetRow(rowIndex + 16).Height = 20 * 20 * 7; + + ws.GetRow(rowIndex + 14).GetCell(0).SetCellValue("备注\nRemark"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 14, rowIndex + 14, 1, 20)); + + ws.GetRow(rowIndex + 14).GetCell(1).CellStyle = style2; + ws.GetRow(rowIndex + 14).GetCell(1).SetCellValue("焊口位置与检测焊口见管道单线图与无损检测报告。\nPlease refer to Pipeline Iso-drawing and NDE Report for joints position and examined joints."); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 0, 3)); + ws.GetRow(rowIndex + 15).GetCell(0).SetCellValue("建 设 / 监 理 单 位\nOwner/JianLi Company"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 4, 9)); + ws.GetRow(rowIndex + 15).GetCell(4).SetCellValue("总 承 包 单 位\nGeneral Contractor"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 10, 16)); + ws.GetRow(rowIndex + 15).GetCell(10).SetCellValue("检 测 单 位\nExamination Contractor"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 17, 20)); + ws.GetRow(rowIndex + 15).GetCell(17).SetCellValue("施 工 单 位\nConstruction Company"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 0, 3)); + ws.GetRow(rowIndex + 16).GetCell(0).CellStyle = style2; + ws.GetRow(rowIndex + 16).GetCell(0).SetCellValue("专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date: 年 月 日"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 4, 9)); + ws.GetRow(rowIndex + 16).GetCell(4).CellStyle = style2; + ws.GetRow(rowIndex + 16).GetCell(4).SetCellValue("专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date: 年 月 日"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 10, 16)); + ws.GetRow(rowIndex + 16).GetCell(10).CellStyle = style2; + ws.GetRow(rowIndex + 16).GetCell(10).SetCellValue("专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date: 年 月 日"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 17, 20)); + ws.GetRow(rowIndex + 16).GetCell(17).CellStyle = style2; + ws.GetRow(rowIndex + 16).GetCell(17).SetCellValue("专业工程师\n Discipline Engineer: \n\n 质量检查员:\n Quality Inspector:\n\n 制表:\n Prepared:\n\n 日期Date: 年 月 日"); + + #endregion + + ws.PrintSetup.FitWidth = 1; + ws.PrintSetup.FitHeight = 0; + ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; + + ws.FitToPage = true; + + //水平垂直居中 + ws.HorizontallyCenter = true; + ws.VerticallyCenter = true; + + //横向打印 + ws.PrintSetup.Landscape = true; + //垂直水平居中 + ws.VerticallyCenter = true; + ws.HorizontallyCenter = true; + //打印边距设置 厘米/3 + ws.SetMargin(MarginType.RightMargin, (double)2.4 / 3); + ws.SetMargin(MarginType.LeftMargin, (double)2.4 / 3); + ws.SetMargin(MarginType.TopMargin, (double)2.9 / 3); + ws.SetMargin(MarginType.BottomMargin, (double)2.4 / 3); + + //页眉页脚间距 + ws.SetMargin(MarginType.HeaderMargin, 0); + ws.SetMargin(MarginType.FooterMargin, 0); + + } + //25-管道无损检测结果汇总表SHT 3503-J412-2017 private void template25(XSSFWorkbook hssfworkbook, XSSFSheet ws) { From a69701f58700498a6ba2014a2bd41c5bcb41c0f9 Mon Sep 17 00:00:00 2001 From: liyh Date: Sun, 12 May 2024 10:39:14 +0800 Subject: [PATCH 4/4] 1111 --- .../WeldingProcess/WeldingReport/WeldDailyExport.aspx.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/WeldDailyExport.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/WeldDailyExport.aspx.cs index c0d8937..7e8748a 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/WeldDailyExport.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/WeldDailyExport.aspx.cs @@ -374,7 +374,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport ws.GetRow(dt.Rows.Count + 3).GetCell(1).SetCellValue($"{distinctPipelineCode.Count().ToString()}"); ws.GetRow(dt.Rows.Count + 3).GetCell(3).SetCellValue($"{dt.Rows.Count}"); ws.GetRow(dt.Rows.Count + 3).GetCell(6).SetCellValue($"{sumSize}"); - ws.GetRow(dt.Rows.Count + 3).GetCell(8).SetCellValue($"{distinctWelder.Count().ToString()}"); + ws.GetRow(dt.Rows.Count + 3).GetCell(8).SetCellValue($"{distinctWelder.Count().ToString()}");