From 32139123ba410abdf41609ca7ee5349f95d50883 Mon Sep 17 00:00:00 2001 From: SHM Date: Wed, 3 Sep 2025 14:50:52 +0900 Subject: [PATCH] =?UTF-8?q?[=EC=84=B1=ED=98=84=EB=AA=A8]=20Grid=20?= =?UTF-8?q?=EC=9D=B8=EB=8D=B1=EC=8A=A4=20=EC=98=A4=EB=A5=98=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Web.Tra/Components/Module/TraGrid.razor | 79 +++++-------------- .../Web.Tra/Components/Pages/TRA.razor | 11 ++- .../WebClient/Web.Tra/Model/IDataModel.cs | 2 + .../WebClient/Web.Tra/Model/TestHistory.cs | 3 + 4 files changed, 34 insertions(+), 61 deletions(-) diff --git a/Projects/WebClient/Web.Tra/Components/Module/TraGrid.razor b/Projects/WebClient/Web.Tra/Components/Module/TraGrid.razor index d8a8254..57a8b05 100644 --- a/Projects/WebClient/Web.Tra/Components/Module/TraGrid.razor +++ b/Projects/WebClient/Web.Tra/Components/Module/TraGrid.razor @@ -2,7 +2,7 @@ @inject ContextMenuService ContextMenuService - @@ -82,78 +82,40 @@ [Parameter] public bool HostColumnMerge { get; set; } + [Parameter] + public int PageSize { get; set; } = 30; + private IList SelectedRow; private void CellRender(DataGridCellRenderEventArgs args) { - if (args.Column.Property == null) + if (args.Column.Property == null || !args.Column.Property.ToLower().Equals("testdate")) return; + int index = DataList.ToList().FindIndex(x => x.Equals(args.Data)); + //testdate 컬럼일때 날짜 병합 if (args.Column.Property.ToLower().Equals("testdate")) - { - var properties = typeof(TDataModel).GetProperties().ToList(); - - var testDate = properties.Find(x => x.Name.ToLower() == "testdate"); - var host = properties.Find(x => x.Name.ToLower() == "host"); - var section = properties.Find(x => x.Name.ToLower() == "section"); - - if (testDate != null && host != null && section != null) + { + int rowCount = 0; + var take = DataList.Skip(index).Take(((index / PageSize) + 1) * PageSize - index); + foreach (var r in take) { - var rowTestDate = testDate.GetValue(args.Data); - var rowHost = host.GetValue(args.Data); - var rowSection = section.GetValue(args.Data); - - var data = DataList.First(x => (DateTime?)testDate.GetValue(x) == (DateTime?)rowTestDate); - if (data != null) + if (r.TestDate.Value.Date == args.Data.TestDate.Value.Date) { - var dataTestDate = testDate.GetValue(data); - var dataHost = host.GetValue(data); - var dataSection = section.GetValue(data); - - if (rowHost == dataHost && rowSection == dataSection) + if (r.ModelName == args.Data.ModelName) { - int rowCount = DataList.Count(x => (DateTime?)testDate.GetValue(x) == (DateTime?)rowTestDate); - - args.Attributes.Add("rowspan", rowCount); + rowCount += 1; } } - } - } - - //host merge 옵션 - if (HostColumnMerge == true) - { - if (args.Column.Property.ToLower().Equals("host")) - { - var properties = typeof(TDataModel).GetProperties().ToList(); - - var testDate = properties.Find(x => x.Name.ToLower() == "testdate"); - var host = properties.Find(x => x.Name.ToLower() == "host"); - var section = properties.Find(x => x.Name.ToLower() == "section"); - - if (testDate != null && host != null && section != null) + else { - var rowTestDate = testDate.GetValue(args.Data); - var rowHost = host.GetValue(args.Data); - var rowSection = section.GetValue(args.Data); - - var data = DataList.First(x => host.GetValue(x).ToString() == rowHost.ToString()); - if (data != null) - { - var dataTestDate = testDate.GetValue(data); - var dataHost = host.GetValue(data); - var dataSection = section.GetValue(data); - - if (rowHost == dataHost && rowSection == dataSection) - { - int rowCount = DataList.Count(x => host.GetValue(x).ToString() == rowHost.ToString()); - - args.Attributes.Add("rowspan", rowCount); - } - } + break; } - } + } + args.Attributes.Clear(); + if (rowCount > 0) + args.Attributes.Add("rowspan", rowCount); } } @@ -183,7 +145,6 @@ private async Task SelectRow(TDataModel data) { await OnSelectRow.InvokeAsync(data); - StateHasChanged(); } private async Task OnRowDoublClick(DataGridRowMouseEventArgs args) diff --git a/Projects/WebClient/Web.Tra/Components/Pages/TRA.razor b/Projects/WebClient/Web.Tra/Components/Pages/TRA.razor index b09558f..bdad16d 100644 --- a/Projects/WebClient/Web.Tra/Components/Pages/TRA.razor +++ b/Projects/WebClient/Web.Tra/Components/Pages/TRA.razor @@ -1,4 +1,6 @@ @page "/tra" +@rendermode InteractiveServer + @using Web.Tra.Services @inject CPXV2LogService CPXV2LogService @inject PopupService PopupService @@ -64,7 +66,11 @@ - + + + + + @@ -82,7 +88,7 @@ @if (tab.Key == EnumTabs.OverviewC1.ToString()) { + OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize"> } @@ -115,6 +121,7 @@ private string SelectionStepVersion = string.Empty; private bool IsMergePartNumberOption = false; + private int PageSize = 30; RadzenTabs tabs; int SelectedTabIndex = 0; diff --git a/Projects/WebClient/Web.Tra/Model/IDataModel.cs b/Projects/WebClient/Web.Tra/Model/IDataModel.cs index 941c3dd..f7e4688 100644 --- a/Projects/WebClient/Web.Tra/Model/IDataModel.cs +++ b/Projects/WebClient/Web.Tra/Model/IDataModel.cs @@ -2,5 +2,7 @@ { public interface IDataModel { + public DateTime? TestDate { get; set; } + public string ModelName { get; set; } } } diff --git a/Projects/WebClient/Web.Tra/Model/TestHistory.cs b/Projects/WebClient/Web.Tra/Model/TestHistory.cs index c206e82..fea7625 100644 --- a/Projects/WebClient/Web.Tra/Model/TestHistory.cs +++ b/Projects/WebClient/Web.Tra/Model/TestHistory.cs @@ -2,6 +2,9 @@ { public class TestHistory : IDataModel { + public DateTime? TestDate { get; set; } + public string ModelName { get; set; } + public long No { get; set; } public DateTime TestDateTime { get; set; } public string StationName { get; set; }