แก้ report เครื่องราช
This commit is contained in:
parent
5065ad3269
commit
99598ffd2a
7 changed files with 83 additions and 47 deletions
|
|
@ -1,12 +1,8 @@
|
|||
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;
|
||||
|
|
@ -453,6 +449,7 @@ namespace BMA.EHR.Report.Service.Controllers
|
|||
{
|
||||
RowNo = (_Khr6List.Count + 1).ToString().ToThaiNumber(),
|
||||
DepartmentName = _data.GetType().GetProperty("DepartmentName").GetValue(_data),
|
||||
InsigniaInitial = _data.GetType().GetProperty("InsigniaInitial").GetValue(_data),
|
||||
G1Male = _data.GetType().GetProperty("G1Male").GetValue(_data),
|
||||
G1Female = _data.GetType().GetProperty("G1Female").GetValue(_data),
|
||||
G2Male = _data.GetType().GetProperty("G2Male").GetValue(_data),
|
||||
|
|
@ -496,6 +493,7 @@ namespace BMA.EHR.Report.Service.Controllers
|
|||
{
|
||||
try
|
||||
{
|
||||
//Guid ids = Guid.Parse(id);
|
||||
var data = await _repository.GetCoinReport(id);
|
||||
var YearInsignalPeriod = await _repository.GetYearInsigniaPeriod(id);
|
||||
var mimeType = "";
|
||||
|
|
@ -535,7 +533,7 @@ namespace BMA.EHR.Report.Service.Controllers
|
|||
{
|
||||
status = status,
|
||||
row = detailList.Count + 1,
|
||||
Number = (detailList.Count + 1).ToString().ToThaiNumber(),
|
||||
//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]),
|
||||
|
|
@ -559,20 +557,54 @@ namespace BMA.EHR.Report.Service.Controllers
|
|||
var left = detailList.Where(x => x.status == false);
|
||||
var right = detailList.Where(x => x.status == true);
|
||||
var mergeList = new List<object>();
|
||||
var InsigniaName = string.Empty;
|
||||
var range = string.Empty;
|
||||
var male = 0;
|
||||
var female = 0;
|
||||
var start = 0;
|
||||
var stop = 0;
|
||||
var colLeft = 0;
|
||||
var colRight = 0;
|
||||
for (int i = 0; i < detailList.Count / 2; i++)
|
||||
{
|
||||
if (InsigniaName != (string)left.ElementAt(i).GetType().GetProperty("InsigniaName").GetValue(left.ElementAt(i)))
|
||||
{
|
||||
InsigniaName = (string)left.ElementAt(i).GetType().GetProperty("InsigniaName").GetValue(left.ElementAt(i));
|
||||
male = left.Count(x => x.Male == 1 && x.InsigniaName == InsigniaName) + right.Count(x => x.Male == 1 && x.InsigniaName == InsigniaName);
|
||||
female = left.Count(x => x.Female == 1 && x.InsigniaName == InsigniaName) + right.Count(x => x.Female == 1 && x.InsigniaName == InsigniaName);
|
||||
//find coin group range
|
||||
var countGroup = detailList.Count(x => x.InsigniaName == InsigniaName);
|
||||
var countGroupTemp = detailList.Count(x => x.InsigniaName == InsigniaName && x.FullName == "");
|
||||
start = i == 0 ? (mergeList.Count + 1) : (stop + 1);
|
||||
stop = i == 0 ? (mergeList.Count) + (countGroup - countGroupTemp) : (countGroup - countGroupTemp) == 1 ? start : start + (countGroup - countGroupTemp);
|
||||
range = countGroup - countGroupTemp != 1 ? $"{start} - {stop}" : $"{start}";
|
||||
//set column left and right when start
|
||||
colLeft = start;
|
||||
colRight = start + 25;
|
||||
}
|
||||
mergeList.Add(new
|
||||
{
|
||||
row = mergeList.Count + 1,
|
||||
RowLeft = left.ElementAt(i).GetType().GetProperty("Number").GetValue(left.ElementAt(i)),
|
||||
//RowLeft = left.ElementAt(i).GetType().GetProperty("Number").GetValue(left.ElementAt(i)),
|
||||
ColLeft = colLeft.ToString().ToThaiNumber(),
|
||||
NameLeft = left.ElementAt(i).GetType().GetProperty("FullName").GetValue(left.ElementAt(i)),
|
||||
RowRight = right.ElementAt(i).GetType().GetProperty("Number").GetValue(right.ElementAt(i)),
|
||||
//RowRight = right.ElementAt(i).GetType().GetProperty("Number").GetValue(right.ElementAt(i)),
|
||||
ColRight = colRight.ToString().ToThaiNumber(),
|
||||
NameRight = right.ElementAt(i).GetType().GetProperty("FullName").GetValue(right.ElementAt(i)),
|
||||
InsigniaInitial = left.ElementAt(i).GetType().GetProperty("InsigniaInitial").GetValue(left.ElementAt(i)),
|
||||
InsigniaName = left.ElementAt(i).GetType().GetProperty("InsigniaName").GetValue(left.ElementAt(i)),
|
||||
Male = left.ElementAt(i).GetType().GetProperty("Male").GetValue(left.ElementAt(i)) + right.ElementAt(i).GetType().GetProperty("Male").GetValue(right.ElementAt(i)),
|
||||
Female = left.ElementAt(i).GetType().GetProperty("Female").GetValue(left.ElementAt(i)) + right.ElementAt(i).GetType().GetProperty("Female").GetValue(right.ElementAt(i)),
|
||||
Range = range.ToThaiNumber(),
|
||||
Male = male.ToString().ToThaiNumber(),
|
||||
Female = female.ToString().ToThaiNumber(),
|
||||
});
|
||||
if (mergeList.Count % 25 == 0)
|
||||
{
|
||||
//set column when new page
|
||||
colLeft = colRight;
|
||||
colRight = colLeft + 25;
|
||||
}
|
||||
colLeft++;
|
||||
colRight++;
|
||||
}
|
||||
report.DataSource = mergeList;
|
||||
}
|
||||
|
|
@ -634,6 +666,7 @@ namespace BMA.EHR.Report.Service.Controllers
|
|||
report.ReportParameters["Position"].Value = profile.GetType().GetProperty("Position").GetValue(profile);
|
||||
report.ReportParameters["OCName"].Value = profile.GetType().GetProperty("OCName").GetValue(profile);
|
||||
report.ReportParameters["BirthDate"].Value = profile.GetType().GetProperty("BirthDate").GetValue(profile);
|
||||
report.ReportParameters["DateAppoint"].Value = profile.GetType().GetProperty("DateAppoint").GetValue(profile);
|
||||
|
||||
var historysalary = new List<dynamic>();
|
||||
foreach (var _data in data)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue