From b1439ca797cab0e42fce81e57a78b6180a810bc8 Mon Sep 17 00:00:00 2001 From: "Harid Promsri (Bright)" Date: Thu, 12 Oct 2023 11:29:17 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=81=E0=B8=81=E0=B9=89=E0=B8=A3=E0=B8=B2?= =?UTF-8?q?=E0=B8=A2=E0=B8=87=E0=B8=B2=E0=B8=99=E0=B9=80=E0=B8=84=E0=B8=A3?= =?UTF-8?q?=E0=B8=B7=E0=B9=88=E0=B8=AD=E0=B8=87=E0=B8=A3=E0=B8=B2=E0=B8=8A?= =?UTF-8?q?=E0=B8=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BMA.EHR.Report.Service.csproj | 6 ++ .../Controllers/InsigniaReportController.cs | 57 +++++++++++++------ 2 files changed, 46 insertions(+), 17 deletions(-) diff --git a/BMA.EHR.Report.Service/BMA.EHR.Report.Service.csproj b/BMA.EHR.Report.Service/BMA.EHR.Report.Service.csproj index 2a290dd6..47b75761 100644 --- a/BMA.EHR.Report.Service/BMA.EHR.Report.Service.csproj +++ b/BMA.EHR.Report.Service/BMA.EHR.Report.Service.csproj @@ -340,6 +340,12 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + PreserveNewest diff --git a/BMA.EHR.Report.Service/Controllers/InsigniaReportController.cs b/BMA.EHR.Report.Service/Controllers/InsigniaReportController.cs index 75ffc858..b2cd8ed4 100644 --- a/BMA.EHR.Report.Service/Controllers/InsigniaReportController.cs +++ b/BMA.EHR.Report.Service/Controllers/InsigniaReportController.cs @@ -1,9 +1,12 @@ using BMA.EHR.Application.Repositories.Reports; using BMA.EHR.Domain.Common; +using BMA.EHR.Domain.Extensions; using BMA.EHR.Domain.Models.Insignias; using DocumentFormat.OpenXml.Drawing; +using DocumentFormat.OpenXml.EMMA; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.FileProviders; using Swashbuckle.AspNetCore.Annotations; using Telerik.Reporting; using Telerik.Reporting.Processing; @@ -441,14 +444,14 @@ namespace BMA.EHR.Report.Service.Controllers report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream); } report.ReportParameters["YearInsigniaPeriod"].Value = YearInsignalPeriod; - + var tbl1 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"]; var _Khr6List = new List(); foreach (var _data in data) { _Khr6List.Add(new { - RowNo = _Khr6List.Count + 1, + RowNo = (_Khr6List.Count + 1).ToString().ToThaiNumber(), DepartmentName = _data.GetType().GetProperty("DepartmentName").GetValue(_data), G1Male = _data.GetType().GetProperty("G1Male").GetValue(_data), G1Female = _data.GetType().GetProperty("G1Female").GetValue(_data), @@ -493,6 +496,7 @@ namespace BMA.EHR.Report.Service.Controllers { try { + var data = await _repository.GetCoinReport(id); var YearInsignalPeriod = await _repository.GetYearInsigniaPeriod(id); var mimeType = ""; @@ -502,35 +506,54 @@ namespace BMA.EHR.Report.Service.Controllers case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; } + var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา-1.trdp"); + var rptFile2 = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา-2.trdp"); - var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา.trdp"); ReportPackager reportPacker = new ReportPackager(); Telerik.Reporting.Report? report = null; + Telerik.Reporting.Report? report2 = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + using (var sourceStream2 = System.IO.File.OpenRead(rptFile2)) { report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream); + report2 = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream2); } - - report.ReportParameters["YearInsignalPeriod"].Value = YearInsignalPeriod; - - //var _Khr3List = new List(); - //int maxRows = 25; - //for (int i = 0; i < maxRows; i++) + string OCName = string.Empty; + //foreach (var info in data) //{ - // _Khr3List.Add(new - // { - // RowNo = i + 1, - // FullName = string.Empty - // }); + // OCName = info.GetType().GetProperty("OCName").GetValue(info); + // break; //} + report.ReportParameters["YearInsignalPeriod"].Value = YearInsignalPeriod; + report.ReportParameters["OCName"].Value = OCName; + var dataList = new List(data); + var detailList = new List(); - //var tbl1 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"]; - //tbl1.DataSource = _Khr3List; + var ChkInsigniaName = string.IsNullOrEmpty(dataList[0].GetType().GetProperty("InsigniaName").GetValue(dataList[0]))? string.Empty: dataList[0].GetType().GetProperty("InsigniaName").GetValue(dataList[0]); + for (int i = 0; i < dataList.Count; i++) + { + detailList.Add(new + { + row = detailList.Count+1, + Number = (detailList.Count+1).ToString().ToThaiNumber(), + InsigniaName = dataList[i].GetType().GetProperty("InsigniaName").GetValue(dataList[i]), + FullName = dataList[i].GetType().GetProperty("FullName").GetValue(dataList[i]), + InsigniaInitial = dataList[i].GetType().GetProperty("InsigniaInitial").GetValue(dataList[i]), + Male = dataList[i].GetType().GetProperty("Male").GetValue(dataList[i]), + Female = dataList[i].GetType().GetProperty("Female").GetValue(dataList[i]), + }); ; + } + report.DataSource = detailList; + + var reportBook = new ReportBook(); + reportBook.Reports.Add(report); + reportBook.Reports.Add(report2); System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); InstanceReportSource instanceReportSource = new InstanceReportSource() { - ReportDocument = report, + ReportDocument = reportBook, }; ReportProcessor reportProcessor = new ReportProcessor(_configuration); RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo);