diff --git a/DataBase/版本日志/SGGLDB_V2025-07-10-001-bwj.sql b/DataBase/版本日志/SGGLDB_V2025-07-10-001-bwj.sql new file mode 100644 index 00000000..8b7c1f05 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2025-07-10-001-bwj.sql @@ -0,0 +1,9 @@ + +insert into Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed) +values('244F69AE-EBD0-4DFA-A959-E13CE8D85968','ѹ','HJGL/TestPackage/TestPackageData.aspx',60,'A24B7926-EF69-456E-8A24-936D30384680','Menu_HJGL',0,1,1) +go + +alter table [dbo].[PTP_TestPackage] add PrintState int +go +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ӡ״̬δӡһ......δӡ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'PTP_TestPackage', @level2type=N'COLUMN',@level2name=N'PrintState' +GO \ No newline at end of file diff --git a/SGGL/BLL/BLL.csproj b/SGGL/BLL/BLL.csproj index 0c75a797..7495a1d5 100644 --- a/SGGL/BLL/BLL.csproj +++ b/SGGL/BLL/BLL.csproj @@ -56,6 +56,10 @@ ..\packages\EmitMapper.1.0.0\lib\EmitMapper.dll + + False + bin\Debug\FastReport.dll + False ..\FineUIPro\FineUIPro.dll diff --git a/SGGL/BLL/Common/FastReport.cs b/SGGL/BLL/Common/FastReport.cs index e4e7aef1..a044c483 100644 --- a/SGGL/BLL/Common/FastReport.cs +++ b/SGGL/BLL/Common/FastReport.cs @@ -1,6 +1,12 @@ -using System.Collections.Generic; +using System.Web; +using System.Web.Security; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; using System.Data; -using System.Web; +using FastReport; + namespace BLL { public static class FastReportService @@ -30,5 +36,58 @@ namespace BLL } + /// + /// 合并报表后打印 + /// + /// 报表实体集 + /// 导出的路径 + public static void ExportMergeReport(List fastReportItems, string path, string printType) + { + Report report = new Report(); + report.PrintSettings.ShowDialog = false; //隐藏弹窗 + FastReport.EnvironmentSettings settings = new EnvironmentSettings(); + settings.ReportSettings.ShowProgress = false; //隐藏进度条 + for (int i = 0; i < fastReportItems.Count; i++) + { + report.Load(Funs.RootPath + fastReportItems[i].ReportPath); //加载报表 + + List dataTables = fastReportItems[i].DataTables; + Dictionary ParameterValues = fastReportItems[i].ParameterValues; + if (dataTables != null && dataTables.Count > 0) + { + for (int j = 0; j < dataTables.Count; j++) + { + report.RegisterData(dataTables[j], dataTables[j].TableName);//绑定数据源 + } + } + if (ParameterValues.Count > 0) + { + foreach (KeyValuePair kvp in ParameterValues) + { + report.SetParameterValue(kvp.Key, kvp.Value);//绑定参数 + } + } + if (i == 0) + { + report.Prepare(); + } + else + { + report.Prepare(true); + } + } + if (printType == "1") + { + FastReport.Export.Pdf.PDFExport exp = new FastReport.Export.Pdf.PDFExport(); + report.Export(exp, path); + } + else if (printType == "2") + { + FastReport.Export.OoXML.Word2007Export exportBase = new FastReport.Export.OoXML.Word2007Export(); + report.Export(export: exportBase, fileName: path.Replace(oldValue: "pdf", newValue: "docx")); + } + } + + } } diff --git a/SGGL/FineUIPro.Web/File/Fastreport/JGZL/管道压力包文件资料目录.frx b/SGGL/FineUIPro.Web/File/Fastreport/JGZL/管道压力包文件资料目录.frx new file mode 100644 index 00000000..42f0ebf2 --- /dev/null +++ b/SGGL/FineUIPro.Web/File/Fastreport/JGZL/管道压力包文件资料目录.frx @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/File/Fastreport/JGZL/管道压力试验技术要求.frx b/SGGL/FineUIPro.Web/File/Fastreport/JGZL/管道压力试验技术要求.frx new file mode 100644 index 00000000..dc0a28f4 --- /dev/null +++ b/SGGL/FineUIPro.Web/File/Fastreport/JGZL/管道压力试验技术要求.frx @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/File/Fastreport/JGZL/管道系统压力试验条件确认记录.frx b/SGGL/FineUIPro.Web/File/Fastreport/JGZL/管道系统压力试验条件确认记录.frx new file mode 100644 index 00000000..5abb8cb5 --- /dev/null +++ b/SGGL/FineUIPro.Web/File/Fastreport/JGZL/管道系统压力试验条件确认记录.frx @@ -0,0 +1,293 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/File/Fastreport/JGZL/管道系统压力试验记录.frx b/SGGL/FineUIPro.Web/File/Fastreport/JGZL/管道系统压力试验记录.frx new file mode 100644 index 00000000..f29c6508 --- /dev/null +++ b/SGGL/FineUIPro.Web/File/Fastreport/JGZL/管道系统压力试验记录.frx @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/File/Fastreport/JGZL/管道试压包尾项清单.frx b/SGGL/FineUIPro.Web/File/Fastreport/JGZL/管道试压包尾项清单.frx new file mode 100644 index 00000000..56cc5f45 --- /dev/null +++ b/SGGL/FineUIPro.Web/File/Fastreport/JGZL/管道试压包尾项清单.frx @@ -0,0 +1,175 @@ + + + using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Windows.Forms; +using System.Drawing; +using System.Data; +using FastReport; +using FastReport.Data; +using FastReport.Dialog; +using FastReport.Barcode; +using FastReport.Table; +using FastReport.Utils; + +namespace FastReport +{ + public class ReportScript + { + + private void Table2_ManualBuild(object sender, EventArgs e) + { + DataSourceBase rowData = Report.GetDataSource("Data"); + // init the data source + rowData.Init(); + + // print the first table row - it is a header + + // now enumerate the data source and print the table body + while (rowData.HasMoreRows) + { + // print the table body + Table2.PrintRow(0); + Table2.PrintColumns(); + + // go next data source row + rowData.Next(); + } + } + } +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/File/Fastreport/JGZL/管道试压包文件资料.frx b/SGGL/FineUIPro.Web/File/Fastreport/JGZL/管道试压包文件资料.frx new file mode 100644 index 00000000..9af7e298 --- /dev/null +++ b/SGGL/FineUIPro.Web/File/Fastreport/JGZL/管道试压包文件资料.frx @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj index 1f8781f0..1e0adbfb 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj @@ -307,6 +307,9 @@ + + + @@ -1612,6 +1615,7 @@ + @@ -10991,6 +10995,13 @@ TestPackageCompleteEdit.aspx + + TestPackageData.aspx + ASPXCodeBehind + + + TestPackageData.aspx + TestPackageEdit.aspx ASPXCodeBehind diff --git a/SGGL/FineUIPro.Web/HJGL/TestPackage/TestPackageData.aspx b/SGGL/FineUIPro.Web/HJGL/TestPackage/TestPackageData.aspx new file mode 100644 index 00000000..b3b7b4df --- /dev/null +++ b/SGGL/FineUIPro.Web/HJGL/TestPackage/TestPackageData.aspx @@ -0,0 +1,92 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestPackageData.aspx.cs" Inherits="FineUIPro.Web.HJGL.TestPackage.TestPackageData" %> + + + + + + + 试压包资料 + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/HJGL/TestPackage/TestPackageData.aspx.cs b/SGGL/FineUIPro.Web/HJGL/TestPackage/TestPackageData.aspx.cs new file mode 100644 index 00000000..11b62de9 --- /dev/null +++ b/SGGL/FineUIPro.Web/HJGL/TestPackage/TestPackageData.aspx.cs @@ -0,0 +1,522 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Data.SqlClient; +using System.Data; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.IO; +using Model; + +namespace FineUIPro.Web.HJGL.TestPackage +{ + public partial class TestPackageData : PageBase + { + #region 定义项 + /// + /// 试压包主键 + /// + public string PTP_ID + { + get + { + return (string)ViewState["PTP_ID"]; + } + set + { + ViewState["PTP_ID"] = value; + } + } + + /// + /// 单位工程Id + /// + public string UnitWorkId + { + get + { + return (string)ViewState["UnitWorkId"]; + } + set + { + ViewState["UnitWorkId"] = value; + } + } + #endregion + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString(); + this.InitTreeMenu();//加载树 + } + } + + #region 加载树装置-单位-工作区 + /// + /// 加载树 + /// + private void InitTreeMenu() + { + this.tvControlItem.Nodes.Clear(); + + TreeNode rootNode1 = new TreeNode(); + rootNode1.NodeID = "1"; + rootNode1.Text = "建筑工程"; + rootNode1.CommandName = "建筑工程"; + rootNode1.Selectable = false; + rootNode1.EnableClickEvent = true; + this.tvControlItem.Nodes.Add(rootNode1); + + TreeNode rootNode2 = new TreeNode(); + rootNode2.NodeID = "2"; + rootNode2.Text = "安装工程"; + rootNode2.CommandName = "安装工程"; + rootNode2.Expanded = true; + rootNode2.EnableClickEvent = true; + this.tvControlItem.Nodes.Add(rootNode2); + var pUnits = (from x in Funs.DB.Project_ProjectUnit where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList(); + // 获取当前用户所在单位 + var currUnit = pUnits.FirstOrDefault(x => x.UnitId == this.CurrUser.UnitId); + + var unitWorkList = (from x in Funs.DB.WBS_UnitWork + where x.ProjectId == this.CurrUser.LoginProjectId + && x.SuperUnitWork == null && x.UnitId != null && x.ProjectType != null + select x).ToList(); + //List testPackageLists = (from x in Funs.DB.PTP_TestPackage + //where x.ProjectId == this.CurrUser.LoginProjectId + //select x).ToList(); + List unitWork1 = null; + List unitWork2 = null; + + //// 当前为施工单位,只能操作本单位的数据 + //if (currUnit != null && currUnit.UnitType == Const.ProjectUnitType_2) + //{ + // unitWork1 = (from x in unitWorkList + // where x.UnitId == this.CurrUser.UnitId && x.ProjectType == "1" + // select x).ToList(); + // unitWork2 = (from x in unitWorkList + // where x.UnitId == this.CurrUser.UnitId && x.ProjectType == "2" + // select x).ToList(); + //} + //else + //{ + unitWork1 = (from x in unitWorkList where x.ProjectType == "1" select x).ToList(); + unitWork2 = (from x in unitWorkList where x.ProjectType == "2" select x).ToList(); + //} + + if (unitWork1.Count() > 0) + { + foreach (var q in unitWork1) + { + var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId); + TreeNode tn1 = new TreeNode(); + tn1.NodeID = q.UnitWorkId; + tn1.Text = q.UnitWorkName; + tn1.ToolTip = "施工单位:" + unitNamesUnitIds; + tn1.CommandName = "单位工程"; + tn1.EnableClickEvent = true; + rootNode1.Nodes.Add(tn1); + //var testPackageUnitList = testPackageLists.Where(x => x.UnitWorkId == q.UnitWorkId).ToList(); + //BindNodes(tn1, testPackageUnitList); + } + } + if (unitWork2.Count() > 0) + { + foreach (var q in unitWork2) + { + var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId); + TreeNode tn2 = new TreeNode(); + tn2.NodeID = q.UnitWorkId; + tn2.Text = q.UnitWorkName; + tn2.ToolTip = "施工单位:" + unitNamesUnitIds; + tn2.CommandName = "单位工程"; + tn2.EnableClickEvent = true; + rootNode2.Nodes.Add(tn2); + //var testPackageUnitList = testPackageLists.Where(x => x.UnitWorkId == q.UnitWorkId).ToList(); + //BindNodes(tn2, testPackageUnitList); + } + } + } + #endregion + + #region 点击TreeView + /// + /// 点击TreeView + /// + /// + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + this.UnitWorkId = tvControlItem.SelectedNodeID; + this.BindGrid(); + } + #endregion + + #region 数据绑定 + /// + /// 数据绑定 + /// + private void BindGrid() + { + string strSql = @" select t.PTP_ID, + t.ProjectId, + t.UnitId, + t.UnitWorkId, + t.TestPackageNo, + t.TestPackageName + from PTP_TestPackage t where t.ProjectId=@projectId and t.UnitWorkId=@unitWorkId"; + List listStr = new List(); + listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); + listStr.Add(new SqlParameter("@unitWorkId", this.UnitWorkId)); + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + // 2.获取当前分页数据 + //var table = this.GetPagedDataTable(Grid1, tb1); + Grid1.RecordCount = tb.Rows.Count; + var table = this.GetPagedDataTable(Grid1, tb); + Grid1.DataSource = table; + Grid1.DataBind(); + } + + #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 btnPrint_Click(object sender, EventArgs e) + { + if (!string.IsNullOrEmpty(this.Grid1.SelectedRowID)) + { + this.PTP_ID = this.Grid1.SelectedRowID; + exportWord("1"); + } + else + { + Alert.ShowInTop("请选择一条试压包", MessageBoxIcon.Warning); + return; + } + } + + protected void exportWord(string type) + { + if (!string.IsNullOrEmpty(this.PTP_ID)) + { + var updateTestPackage = Funs.DB.PTP_TestPackage.FirstOrDefault(x => x.PTP_ID == this.PTP_ID); + if (updateTestPackage != null) + { + string rootPath = Server.MapPath("~/"); + BLL.FastReportService.ResetData(); + + if (this.drpPrintType.SelectedValue == "1")//pdf格式 + { + ListItem[] list = new ListItem[10]; + list[0] = new ListItem("0", "File\\Fastreport\\JGZL\\管道试压包文件资料.frx"); + list[1] = new ListItem("1", "File\\Fastreport\\JGZL\\管道压力试验技术要求.frx"); + list[2] = new ListItem("2", "File\\Fastreport\\JGZL\\管道压力包文件资料目录.frx"); + list[3] = new ListItem("3", "File\\Fastreport\\JGZL\\管道系统压力试验条件确认记录.frx"); + list[4] = new ListItem("4", "File\\Fastreport\\JGZL\\管道试压包尾项清单.frx"); + //list[5] = new ListItem("5", "File\\Fastreport\\JGZL\\管道系统压力试验记录.frx"); + //list[6] = new ListItem("6", "File\\Fastreport\\JGZL\\管道材料材质标识检查记录.frx"); + //list[7] = new ListItem("7", "File\\Fastreport\\JGZL\\管道焊接工作记录.frx"); + //list[8] = new ListItem("8", "File\\Fastreport\\JGZL\\管道无损检测数量统计表.frx"); + //list[9] = new ListItem("9", "File\\Fastreport\\JGZL\\无损检测结果汇总表.frx"); + + List FastReportItemList = new List(); + foreach (var item in list) + { + FastReportItemList.Add(GetFastReportItem(updateTestPackage, item.Text)); + } + + var Path = Funs.RootPath + "FileUpload/" + this.PTP_ID + ".pdf"; + + BLL.FastReportService.ExportMergeReport(FastReportItemList, Path, this.drpPrintType.SelectedValue); + FileInfo info = new FileInfo(Path); + long fileSize = info.Length; + + System.Web.HttpContext.Current.Response.Clear(); + System.Web.HttpContext.Current.Response.ContentType = "application/x-zip-compressed"; + System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("交工资料.pdf", System.Text.Encoding.UTF8)); + System.Web.HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString()); + System.Web.HttpContext.Current.Response.TransmitFile(Path, 0, fileSize); + System.Web.HttpContext.Current.Response.Flush(); + System.Web.HttpContext.Current.Response.Close(); + File.Delete(Path); + } + else if (this.drpPrintType.SelectedValue == "2")//word格式 + { + ListItem[] list = new ListItem[3]; + list[0] = new ListItem("0", "File\\Fastreport\\JGZL\\管道试压包文件资料.frx"); + list[1] = new ListItem("1", "File\\Fastreport\\JGZL\\管道压力试验技术要求.frx"); + list[2] = new ListItem("2", "File\\Fastreport\\JGZL\\管道压力包文件资料目录.frx"); + + List FastReportItemList = new List(); + foreach (var item in list) + { + FastReportItemList.Add(GetFastReportItem(updateTestPackage, item.Text)); + } + var PathA = Funs.RootPath + "FileUpload/" + this.PTP_ID + ".docx"; + BLL.FastReportService.ExportMergeReport(FastReportItemList, PathA, this.drpPrintType.SelectedValue); + Aspose.Words.Document doc1 = new Aspose.Words.Document(PathA); + + ListItem[] list2 = new ListItem[1]; + list2[0] = new ListItem("3", "File\\Fastreport\\JGZL\\管道系统压力试验条件确认记录.frx"); + List FastReportItemList2 = new List(); + foreach (var item in list2) + { + FastReportItemList2.Add(GetFastReportItem(updateTestPackage, item.Text)); + } + var PathB = Funs.RootPath + "FileUpload/" + this.PTP_ID + "2.docx"; + BLL.FastReportService.ExportMergeReport(FastReportItemList2, PathB, this.drpPrintType.SelectedValue); + Aspose.Words.Document doc2 = new Aspose.Words.Document(PathB); + + // 合并 Word DOcx 文档 + doc1.AppendDocument(doc2, Aspose.Words.ImportFormatMode.KeepSourceFormatting); + + + ListItem[] list3 = new ListItem[1]; + list3[0] = new ListItem("4", "File\\Fastreport\\JGZL\\管道试压包尾项清单.frx"); + List FastReportItemList3 = new List(); + foreach (var item in list3) + { + FastReportItemList3.Add(GetFastReportItem(updateTestPackage, item.Text)); + } + var PathC = Funs.RootPath + "FileUpload/" + this.PTP_ID + "3.docx"; + BLL.FastReportService.ExportMergeReport(FastReportItemList3, PathC, this.drpPrintType.SelectedValue); + Aspose.Words.Document doc3 = new Aspose.Words.Document(PathC); + // 合并 Word DOcx 文档 + doc1.AppendDocument(doc3, Aspose.Words.ImportFormatMode.KeepSourceFormatting); + + ListItem[] list4 = new ListItem[2]; + list4[0] = new ListItem("5", "File\\Fastreport\\JGZL\\管道系统压力试验记录.frx"); + list4[1] = new ListItem("6", "File\\Fastreport\\JGZL\\管道材料材质标识检查记录.frx"); + List FastReportItemList4 = new List(); + foreach (var item in list4) + { + FastReportItemList4.Add(GetFastReportItem(updateTestPackage, item.Text)); + } + var PathD = Funs.RootPath + "FileUpload/" + this.PTP_ID + "4.docx"; + BLL.FastReportService.ExportMergeReport(FastReportItemList4, PathD, this.drpPrintType.SelectedValue); + Aspose.Words.Document doc4 = new Aspose.Words.Document(PathD); + // 合并 Word DOcx 文档 + doc1.AppendDocument(doc4, Aspose.Words.ImportFormatMode.KeepSourceFormatting); + + ListItem[] list5 = new ListItem[3]; + list5[0] = new ListItem("7", "File\\Fastreport\\JGZL\\管道焊接工作记录.frx"); + list5[1] = new ListItem("8", "File\\Fastreport\\JGZL\\管道无损检测数量统计表.frx"); + list5[2] = new ListItem("9", "File\\Fastreport\\JGZL\\无损检测结果汇总表.frx"); + List FastReportItemList5 = new List(); + foreach (var item in list5) + { + FastReportItemList5.Add(GetFastReportItem(updateTestPackage, item.Text)); + } + var PathE = Funs.RootPath + "FileUpload/" + this.PTP_ID + "5.docx"; + BLL.FastReportService.ExportMergeReport(FastReportItemList5, PathE, this.drpPrintType.SelectedValue); + Aspose.Words.Document doc5 = new Aspose.Words.Document(PathE); + // 合并 Word DOcx 文档 + doc1.AppendDocument(doc5, Aspose.Words.ImportFormatMode.KeepSourceFormatting); + + //将合并的文档保存为 DOCX 文件 + doc1.Save(Funs.RootPath + "FileUpload/doc.docx"); + + var Path = Funs.RootPath + "FileUpload/doc.docx"; + FileInfo info = new FileInfo(Path); + long fileSize = info.Length; + + System.Web.HttpContext.Current.Response.Clear(); + System.Web.HttpContext.Current.Response.ContentType = "application/x-zip-compressed"; + System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("交工资料.docx", System.Text.Encoding.UTF8)); + System.Web.HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString()); + System.Web.HttpContext.Current.Response.TransmitFile(Path, 0, fileSize); + System.Web.HttpContext.Current.Response.Flush(); + System.Web.HttpContext.Current.Response.Close(); + File.Delete(Path); + File.Delete(PathA); + File.Delete(PathB); + File.Delete(PathC); + File.Delete(PathD); + File.Delete(PathE); + } + } + } + else + { + Alert.ShowInTop("请选择要打印的单据!", MessageBoxIcon.Warning); + return; + } + } + + + protected Model.FastReportItem GetFastReportItem(Model.PTP_TestPackage updateTestPackage, string printType) + { + string initTemplatePath = ""; + Model.FastReportItem fastReportItem = new Model.FastReportItem(); + switch (printType) + { + case "0"://管道试压包文件资料 + { + Dictionary keyValuePairs = new Dictionary(); + var projectName = BLL.ProjectService.GetProjectNameByProjectId(this.CurrUser.LoginProjectId); + var InstallationName = BLL.UnitWorkService.getUnitWorkByUnitWorkId(updateTestPackage.UnitWorkId).UnitWorkName; + keyValuePairs.Add("ProjectName", projectName); + keyValuePairs.Add("InstallationName", projectName + InstallationName); + keyValuePairs.Add("TestPackageNo", updateTestPackage.TestPackageNo); + BLL.FastReportService.AddFastreportParameter(keyValuePairs); + + initTemplatePath = "File\\Fastreport\\JGZL\\管道试压包文件资料.frx"; + fastReportItem.ReportPath = initTemplatePath; + fastReportItem.ParameterValues = keyValuePairs; + } + break; + case "1"://管道压力试验技术要求 + { + Dictionary keyValuePairs = new Dictionary(); + BLL.FastReportService.AddFastreportParameter(keyValuePairs); + + initTemplatePath = "File\\Fastreport\\JGZL\\管道压力试验技术要求.frx"; + fastReportItem.ReportPath = initTemplatePath; + fastReportItem.ParameterValues = keyValuePairs; + } + break; + case "2"://管道压力包文件资料目录 + { + Dictionary keyValuePairs = new Dictionary(); + BLL.FastReportService.AddFastreportParameter(keyValuePairs); + + initTemplatePath = "File\\Fastreport\\JGZL\\管道压力包文件资料目录.frx"; + fastReportItem.ReportPath = initTemplatePath; + fastReportItem.ParameterValues = keyValuePairs; + } + break; + case "3"://管道系统压力试验条件确认记录 + { + Dictionary keyValuePairs = new Dictionary(); + var projectName = BLL.ProjectService.GetProjectNameByProjectId(this.CurrUser.LoginProjectId); + var InstallationName = BLL.UnitWorkService.getUnitWorkByUnitWorkId(updateTestPackage.UnitWorkId).UnitWorkName; + keyValuePairs.Add("ProjectName", projectName); + keyValuePairs.Add("InstallationName", InstallationName); + keyValuePairs.Add("TestPackageNo", updateTestPackage.TestPackageNo); + keyValuePairs.Add("TestPackageName", updateTestPackage.TestPackageName); + BLL.FastReportService.AddFastreportParameter(keyValuePairs); + + initTemplatePath = "File\\Fastreport\\JGZL\\管道系统压力试验条件确认记录.frx"; + fastReportItem.ReportPath = initTemplatePath; + fastReportItem.ParameterValues = keyValuePairs; + } + break; + case "4"://管道试压包尾项清单 + { + string sql = @"select PT_PipeId,PTP_ID,pipelineList.PipelineId,pipeline.PipelineCode from PTP_PipelineList as pipelineList + left join HJGL_Pipeline pipeline on pipeline.PipelineId = pipelineList.PipelineId + where PTP_ID=@ptp_id"; + List listStr = new List + { + new SqlParameter("@ptp_id", this.PTP_ID), + }; + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(sql, parameter); + + DataTable dt = new DataTable(); + dt.TableName = "Data"; + dt.Columns.Add("SortNumber"); + dt.Columns.Add("PipelineCode"); + + for (int i = 0; i < tb.Rows.Count; i++) + { + var newRows = dt.NewRow(); + newRows["SortNumber"] = (i + 1).ToString(); + newRows["PipelineCode"] = tb.Rows[i]["PipelineCode"].ToString(); + + dt.Rows.Add(newRows); + } + BLL.FastReportService.AddFastreportTable(dt); + + Dictionary keyValuePairs = new Dictionary(); + keyValuePairs.Add("TestPackageNo", updateTestPackage.TestPackageNo); + BLL.FastReportService.AddFastreportParameter(keyValuePairs); + + initTemplatePath = "File\\Fastreport\\JGZL\\管道试压包尾项清单.frx"; + + List dataTables = new List(); + dataTables.Add(dt); + fastReportItem.ReportPath = initTemplatePath; + fastReportItem.ParameterValues = keyValuePairs; + fastReportItem.DataTables = dataTables; + } + break; + case "5"://管道系统压力试验记录 + { + + } + break; + case "6"://管道材料材质标识检查记录 + { + + } + break; + case "7"://管道焊接工作记录 + { + + } + break; + case "8"://管道无损检测数量统计表 + { + + } + break; + case "9"://无损检测结果汇总表 + { + + } + break; + } + return fastReportItem; + } + #endregion + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/HJGL/TestPackage/TestPackageData.aspx.designer.cs b/SGGL/FineUIPro.Web/HJGL/TestPackage/TestPackageData.aspx.designer.cs new file mode 100644 index 00000000..a8573895 --- /dev/null +++ b/SGGL/FineUIPro.Web/HJGL/TestPackage/TestPackageData.aspx.designer.cs @@ -0,0 +1,152 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.HJGL.TestPackage +{ + + + public partial class TestPackageData + { + + /// + /// 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; + + /// + /// tvControlItem 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Tree tvControlItem; + + /// + /// hdPTP_ID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hdPTP_ID; + + /// + /// Panel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel2; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Toolbar2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar2; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// drpPrintType 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList drpPrintType; + + /// + /// btnPrint 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnPrint; + + /// + /// ToolbarSeparator1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; + + /// + /// ToolbarText1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarText ToolbarText1; + + /// + /// ddlPageSize 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlPageSize; + } +} diff --git a/SGGL/FineUIPro.Web/common/Menu_HJGL.xml b/SGGL/FineUIPro.Web/common/Menu_HJGL.xml index e966c088..8e91c0a5 100644 --- a/SGGL/FineUIPro.Web/common/Menu_HJGL.xml +++ b/SGGL/FineUIPro.Web/common/Menu_HJGL.xml @@ -14,10 +14,10 @@ - + - + @@ -26,7 +26,7 @@ - + @@ -64,6 +64,7 @@ + diff --git a/SGGL/Model/FastReportItem.cs b/SGGL/Model/FastReportItem.cs new file mode 100644 index 00000000..d5d8095a --- /dev/null +++ b/SGGL/Model/FastReportItem.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Model +{ + /// + /// + /// + public class FastReportItem + { + /// + /// Table数据源集 + /// + public List DataTables { get; set; } + + /// + /// 参数键值对 + /// + public Dictionary ParameterValues { get; set; } + + /// + /// 模板路径 + /// + public string ReportPath { get; set; } + } +} diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index dab0ae56..853cb7cc 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -218163,6 +218163,8 @@ namespace Model private System.Nullable _TestDate; + private System.Nullable _PrintState; + private EntitySet _PTP_ItemEndCheckList; private EntitySet _PTP_PipelineList; @@ -218241,6 +218243,8 @@ namespace Model partial void OnStateChanged(); partial void OnTestDateChanging(System.Nullable value); partial void OnTestDateChanged(); + partial void OnPrintStateChanging(System.Nullable value); + partial void OnPrintStateChanged(); #endregion public PTP_TestPackage() @@ -218905,6 +218909,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PrintState", DbType="Int")] + public System.Nullable PrintState + { + get + { + return this._PrintState; + } + set + { + if ((this._PrintState != value)) + { + this.OnPrintStateChanging(value); + this.SendPropertyChanging(); + this._PrintState = value; + this.SendPropertyChanged("PrintState"); + this.OnPrintStateChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_PTP_ItemEndCheckList_PTP_TestPackage", Storage="_PTP_ItemEndCheckList", ThisKey="PTP_ID", OtherKey="PTP_ID", DeleteRule="NO ACTION")] public EntitySet PTP_ItemEndCheckList { diff --git a/SGGL/Model/Model.csproj b/SGGL/Model/Model.csproj index 75f89168..3ae5354e 100644 --- a/SGGL/Model/Model.csproj +++ b/SGGL/Model/Model.csproj @@ -230,6 +230,7 @@ +