26.01.16
parent
2acdbded2c
commit
a4f85e968e
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,17 +1,17 @@
|
||||||
{
|
{
|
||||||
"Version": 1,
|
"Version": 1,
|
||||||
"WorkspaceRootPath": "C:\\Users\\YJH\\Desktop\\NSV\\Main\\MainUI\\",
|
"WorkspaceRootPath": "C:\\Users\\YJH\\Desktop\\NSV\\MainUI\\",
|
||||||
"Documents": [
|
"Documents": [
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|c:\\users\\yjh\\desktop\\nsv\\main\\mainui\\mainui\\mainform.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
"AbsoluteMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|c:\\users\\yjh\\desktop\\nsv\\mainui\\mainui\\isolationtabusercontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
"RelativeMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|solutionrelative:mainui\\mainform.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
"RelativeMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|solutionrelative:mainui\\isolationtabusercontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|C:\\Users\\YJH\\Desktop\\NSV\\Main\\MainUI\\mainui\\isolationusercontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
"AbsoluteMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|C:\\Users\\YJH\\Desktop\\NSV\\MainUI\\mainui\\isolationusercontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
"RelativeMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|solutionrelative:mainui\\isolationusercontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
"RelativeMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|solutionrelative:mainui\\isolationusercontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|C:\\Users\\YJH\\Desktop\\NSV\\Main\\MainUI\\mainui\\mainform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
"AbsoluteMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|c:\\users\\yjh\\desktop\\nsv\\mainui\\mainui\\mainform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
"RelativeMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|solutionrelative:mainui\\mainform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
"RelativeMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|solutionrelative:mainui\\mainform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
@ -27,39 +27,41 @@
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 0,
|
"DocumentIndex": 0,
|
||||||
"Title": "MainForm.Designer.cs",
|
"Title": "IsolationTabUserControl.cs",
|
||||||
"DocumentMoniker": "C:\\Users\\YJH\\Desktop\\NSV\\Main\\MainUI\\MainUI\\MainForm.Designer.cs",
|
"DocumentMoniker": "C:\\Users\\YJH\\Desktop\\NSV\\MainUI\\MainUI\\IsolationTabUserControl.cs",
|
||||||
"RelativeDocumentMoniker": "MainUI\\MainForm.Designer.cs",
|
"RelativeDocumentMoniker": "MainUI\\IsolationTabUserControl.cs",
|
||||||
"ToolTip": "C:\\Users\\YJH\\Desktop\\NSV\\Main\\MainUI\\MainUI\\MainForm.Designer.cs",
|
"ToolTip": "C:\\Users\\YJH\\Desktop\\NSV\\MainUI\\MainUI\\IsolationTabUserControl.cs",
|
||||||
"RelativeToolTip": "MainUI\\MainForm.Designer.cs",
|
"RelativeToolTip": "MainUI\\IsolationTabUserControl.cs",
|
||||||
"ViewState": "AgIAABkAAAAAAAAAAAA3wDQAAABGAAAAAAAAAA==",
|
"ViewState": "AgIAALkAAAAAAAAAAAApwNEAAAAbAAAAAAAAAA==",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-11-11T07:55:44.649Z",
|
"WhenOpened": "2026-01-06T01:53:58.86Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 1,
|
"DocumentIndex": 1,
|
||||||
"Title": "IsolationUserControl.cs",
|
"Title": "IsolationUserControl.cs",
|
||||||
"DocumentMoniker": "C:\\Users\\YJH\\Desktop\\NSV\\Main\\MainUI\\MainUI\\IsolationUserControl.cs",
|
"DocumentMoniker": "C:\\Users\\YJH\\Desktop\\NSV\\MainUI\\MainUI\\IsolationUserControl.cs",
|
||||||
"RelativeDocumentMoniker": "MainUI\\IsolationUserControl.cs",
|
"RelativeDocumentMoniker": "MainUI\\IsolationUserControl.cs",
|
||||||
"ToolTip": "C:\\Users\\YJH\\Desktop\\NSV\\Main\\MainUI\\MainUI\\IsolationUserControl.cs",
|
"ToolTip": "C:\\Users\\YJH\\Desktop\\NSV\\MainUI\\MainUI\\IsolationUserControl.cs",
|
||||||
"RelativeToolTip": "MainUI\\IsolationUserControl.cs",
|
"RelativeToolTip": "MainUI\\IsolationUserControl.cs",
|
||||||
"ViewState": "AgIAAB8BAAAAAAAAAAAiwA8BAAAoAAAAAAAAAA==",
|
"ViewState": "AgIAALIAAAAAAAAAAAAqwMsAAAAAAAAAAAAAAA==",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-11-05T01:12:05.729Z"
|
"WhenOpened": "2025-11-05T01:12:05.729Z",
|
||||||
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 2,
|
"DocumentIndex": 2,
|
||||||
"Title": "MainForm.cs",
|
"Title": "MainForm.cs",
|
||||||
"DocumentMoniker": "C:\\Users\\YJH\\Desktop\\NSV\\Main\\MainUI\\MainUI\\MainForm.cs",
|
"DocumentMoniker": "C:\\Users\\YJH\\Desktop\\NSV\\MainUI\\MainUI\\MainForm.cs",
|
||||||
"RelativeDocumentMoniker": "MainUI\\MainForm.cs",
|
"RelativeDocumentMoniker": "MainUI\\MainForm.cs",
|
||||||
"ToolTip": "C:\\Users\\YJH\\Desktop\\NSV\\Main\\MainUI\\MainUI\\MainForm.cs",
|
"ToolTip": "C:\\Users\\YJH\\Desktop\\NSV\\MainUI\\MainUI\\MainForm.cs",
|
||||||
"RelativeToolTip": "MainUI\\MainForm.cs",
|
"RelativeToolTip": "MainUI\\MainForm.cs",
|
||||||
"ViewState": "AgIAAMcAAAAAAAAAAMBAwMEBAAARAAAAAAAAAA==",
|
"ViewState": "AgIAAGMAAAAAAAAAAAAAAAMBAAAvAAAAAAAAAA==",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-11-04T00:39:57.377Z"
|
"WhenOpened": "2025-11-04T00:39:57.377Z",
|
||||||
|
"EditorCaption": ""
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,18 @@
|
||||||
{
|
{
|
||||||
"Version": 1,
|
"Version": 1,
|
||||||
"WorkspaceRootPath": "C:\\Users\\YJH\\Desktop\\NSV\\Main\\MainUI\\",
|
"WorkspaceRootPath": "C:\\Users\\YJH\\Desktop\\NSV\\MainUI\\",
|
||||||
"Documents": [
|
"Documents": [
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|C:\\Users\\YJH\\Desktop\\NSV\\Main\\MainUI\\mainui\\mainform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
"AbsoluteMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|c:\\users\\yjh\\desktop\\nsv\\mainui\\mainui\\isolationtabusercontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
"RelativeMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|solutionrelative:mainui\\mainform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
"RelativeMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|solutionrelative:mainui\\isolationtabusercontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|C:\\Users\\YJH\\Desktop\\NSV\\Main\\MainUI\\mainui\\isolationusercontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
"AbsoluteMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|C:\\Users\\YJH\\Desktop\\NSV\\MainUI\\mainui\\isolationusercontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
"RelativeMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|solutionrelative:mainui\\isolationusercontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
"RelativeMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|solutionrelative:mainui\\isolationusercontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"AbsoluteMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|c:\\users\\yjh\\desktop\\nsv\\mainui\\mainui\\mainform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
|
"RelativeMoniker": "D:0:0:{40919679-C172-452C-B5A9-8F94C7FE8312}|MainUI\\MainUI.csproj|solutionrelative:mainui\\mainform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"DocumentGroupContainers": [
|
"DocumentGroupContainers": [
|
||||||
|
|
@ -18,30 +22,43 @@
|
||||||
"DocumentGroups": [
|
"DocumentGroups": [
|
||||||
{
|
{
|
||||||
"DockedWidth": 200,
|
"DockedWidth": 200,
|
||||||
"SelectedChildIndex": 1,
|
"SelectedChildIndex": 0,
|
||||||
"Children": [
|
"Children": [
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 0,
|
||||||
|
"Title": "IsolationTabUserControl.cs",
|
||||||
|
"DocumentMoniker": "C:\\Users\\YJH\\Desktop\\NSV\\MainUI\\MainUI\\IsolationTabUserControl.cs",
|
||||||
|
"RelativeDocumentMoniker": "MainUI\\IsolationTabUserControl.cs",
|
||||||
|
"ToolTip": "C:\\Users\\YJH\\Desktop\\NSV\\MainUI\\MainUI\\IsolationTabUserControl.cs",
|
||||||
|
"RelativeToolTip": "MainUI\\IsolationTabUserControl.cs",
|
||||||
|
"ViewState": "AgIAALkAAAAAAAAAAAApwNEAAAAbAAAAAAAAAA==",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
|
"WhenOpened": "2026-01-06T01:53:58.86Z",
|
||||||
|
"EditorCaption": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 1,
|
"DocumentIndex": 1,
|
||||||
"Title": "IsolationUserControl.cs",
|
"Title": "IsolationUserControl.cs",
|
||||||
"DocumentMoniker": "C:\\Users\\YJH\\Desktop\\NSV\\Main\\MainUI\\MainUI\\IsolationUserControl.cs",
|
"DocumentMoniker": "C:\\Users\\YJH\\Desktop\\NSV\\MainUI\\MainUI\\IsolationUserControl.cs",
|
||||||
"RelativeDocumentMoniker": "MainUI\\IsolationUserControl.cs",
|
"RelativeDocumentMoniker": "MainUI\\IsolationUserControl.cs",
|
||||||
"ToolTip": "C:\\Users\\YJH\\Desktop\\NSV\\Main\\MainUI\\MainUI\\IsolationUserControl.cs",
|
"ToolTip": "C:\\Users\\YJH\\Desktop\\NSV\\MainUI\\MainUI\\IsolationUserControl.cs",
|
||||||
"RelativeToolTip": "MainUI\\IsolationUserControl.cs",
|
"RelativeToolTip": "MainUI\\IsolationUserControl.cs",
|
||||||
"ViewState": "AgIAAJgAAAAAAAAAAAAAACQAAAAYAAAAAAAAAA==",
|
"ViewState": "AgIAALIAAAAAAAAAAAAqwMsAAAAAAAAAAAAAAA==",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-11-05T01:12:05.729Z",
|
"WhenOpened": "2025-11-05T01:12:05.729Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 0,
|
"DocumentIndex": 2,
|
||||||
"Title": "MainForm.cs",
|
"Title": "MainForm.cs",
|
||||||
"DocumentMoniker": "C:\\Users\\YJH\\Desktop\\NSV\\Main\\MainUI\\MainUI\\MainForm.cs",
|
"DocumentMoniker": "C:\\Users\\YJH\\Desktop\\NSV\\MainUI\\MainUI\\MainForm.cs",
|
||||||
"RelativeDocumentMoniker": "MainUI\\MainForm.cs",
|
"RelativeDocumentMoniker": "MainUI\\MainForm.cs",
|
||||||
"ToolTip": "C:\\Users\\YJH\\Desktop\\NSV\\Main\\MainUI\\MainUI\\MainForm.cs",
|
"ToolTip": "C:\\Users\\YJH\\Desktop\\NSV\\MainUI\\MainUI\\MainForm.cs",
|
||||||
"RelativeToolTip": "MainUI\\MainForm.cs",
|
"RelativeToolTip": "MainUI\\MainForm.cs",
|
||||||
"ViewState": "AgIAAO8BAAAAAAAAAAA1wDUAAAAoAAAAAAAAAA==",
|
"ViewState": "AgIAAGMAAAAAAAAAAAAAAAMBAAAvAAAAAAAAAA==",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-11-04T00:39:57.377Z",
|
"WhenOpened": "2025-11-04T00:39:57.377Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,336 @@
|
||||||
|
|
||||||
|
using DevExpress.Utils.Layout;
|
||||||
|
using DevExpress.XtraEditors;
|
||||||
|
|
||||||
|
namespace MainUI
|
||||||
|
{
|
||||||
|
partial class IsolationTabUserControl
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 필수 디자이너 변수입니다.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 사용 중인 모든 리소스를 정리합니다.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 구성 요소 디자이너에서 생성한 코드
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 디자이너 지원에 필요한 메서드입니다.
|
||||||
|
/// 이 메서드의 내용을 코드 편집기로 수정하지 마세요.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.tablePanel1 = new DevExpress.Utils.Layout.TablePanel();
|
||||||
|
this.tablePanel2 = new DevExpress.Utils.Layout.TablePanel();
|
||||||
|
this.btn_Table = new System.Windows.Forms.Button();
|
||||||
|
this.btn_Update = new System.Windows.Forms.Button();
|
||||||
|
this.btn_Del = new System.Windows.Forms.Button();
|
||||||
|
this.btn_Report = new System.Windows.Forms.Button();
|
||||||
|
this.btn_Add = new System.Windows.Forms.Button();
|
||||||
|
this.pictureEdit1 = new DevExpress.XtraEditors.PictureEdit();
|
||||||
|
this.listBoxControl1 = new DevExpress.XtraEditors.ListBoxControl();
|
||||||
|
this.panelControl1 = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.splitContainerControl1 = new DevExpress.XtraEditors.SplitContainerControl();
|
||||||
|
this.accordionControl1 = new DevExpress.XtraBars.Navigation.AccordionControl();
|
||||||
|
this.InformationTab = new DevExpress.XtraBars.Navigation.AccordionControlElement();
|
||||||
|
this.IsolationTab = new DevExpress.XtraBars.Navigation.AccordionControlElement();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.tablePanel1)).BeginInit();
|
||||||
|
this.tablePanel1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.tablePanel2)).BeginInit();
|
||||||
|
this.tablePanel2.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureEdit1.Properties)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.listBoxControl1)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.panelControl1)).BeginInit();
|
||||||
|
this.panelControl1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1.Panel1)).BeginInit();
|
||||||
|
this.splitContainerControl1.Panel1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1.Panel2)).BeginInit();
|
||||||
|
this.splitContainerControl1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.accordionControl1)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// tablePanel1
|
||||||
|
//
|
||||||
|
this.tablePanel1.Columns.AddRange(new DevExpress.Utils.Layout.TablePanelColumn[] {
|
||||||
|
new DevExpress.Utils.Layout.TablePanelColumn(DevExpress.Utils.Layout.TablePanelEntityStyle.Relative, 80F),
|
||||||
|
new DevExpress.Utils.Layout.TablePanelColumn(DevExpress.Utils.Layout.TablePanelEntityStyle.Relative, 20F)});
|
||||||
|
this.tablePanel1.Controls.Add(this.tablePanel2);
|
||||||
|
this.tablePanel1.Controls.Add(this.pictureEdit1);
|
||||||
|
this.tablePanel1.Controls.Add(this.listBoxControl1);
|
||||||
|
this.tablePanel1.Controls.Add(this.panelControl1);
|
||||||
|
this.tablePanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.tablePanel1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.tablePanel1.Name = "tablePanel1";
|
||||||
|
this.tablePanel1.Padding = new System.Windows.Forms.Padding(7);
|
||||||
|
this.tablePanel1.Rows.AddRange(new DevExpress.Utils.Layout.TablePanelRow[] {
|
||||||
|
new DevExpress.Utils.Layout.TablePanelRow(DevExpress.Utils.Layout.TablePanelEntityStyle.Relative, 70F),
|
||||||
|
new DevExpress.Utils.Layout.TablePanelRow(DevExpress.Utils.Layout.TablePanelEntityStyle.Absolute, 40F),
|
||||||
|
new DevExpress.Utils.Layout.TablePanelRow(DevExpress.Utils.Layout.TablePanelEntityStyle.Relative, 23F)});
|
||||||
|
this.tablePanel1.Size = new System.Drawing.Size(1432, 928);
|
||||||
|
this.tablePanel1.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// tablePanel2
|
||||||
|
//
|
||||||
|
this.tablePanel1.SetColumn(this.tablePanel2, 0);
|
||||||
|
this.tablePanel2.Columns.AddRange(new DevExpress.Utils.Layout.TablePanelColumn[] {
|
||||||
|
new DevExpress.Utils.Layout.TablePanelColumn(DevExpress.Utils.Layout.TablePanelEntityStyle.Absolute, 170F),
|
||||||
|
new DevExpress.Utils.Layout.TablePanelColumn(DevExpress.Utils.Layout.TablePanelEntityStyle.Relative, 45F),
|
||||||
|
new DevExpress.Utils.Layout.TablePanelColumn(DevExpress.Utils.Layout.TablePanelEntityStyle.Absolute, 145F),
|
||||||
|
new DevExpress.Utils.Layout.TablePanelColumn(DevExpress.Utils.Layout.TablePanelEntityStyle.Absolute, 145F),
|
||||||
|
new DevExpress.Utils.Layout.TablePanelColumn(DevExpress.Utils.Layout.TablePanelEntityStyle.Absolute, 145F)});
|
||||||
|
this.tablePanel2.Controls.Add(this.btn_Table);
|
||||||
|
this.tablePanel2.Controls.Add(this.btn_Update);
|
||||||
|
this.tablePanel2.Controls.Add(this.btn_Del);
|
||||||
|
this.tablePanel2.Controls.Add(this.btn_Report);
|
||||||
|
this.tablePanel2.Controls.Add(this.btn_Add);
|
||||||
|
this.tablePanel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.tablePanel2.Location = new System.Drawing.Point(7, 665);
|
||||||
|
this.tablePanel2.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.tablePanel2.Name = "tablePanel2";
|
||||||
|
this.tablePanel1.SetRow(this.tablePanel2, 1);
|
||||||
|
this.tablePanel2.Rows.AddRange(new DevExpress.Utils.Layout.TablePanelRow[] {
|
||||||
|
new DevExpress.Utils.Layout.TablePanelRow(DevExpress.Utils.Layout.TablePanelEntityStyle.Relative, 100F)});
|
||||||
|
this.tablePanel2.Size = new System.Drawing.Size(1134, 40);
|
||||||
|
this.tablePanel2.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// btn_Table
|
||||||
|
//
|
||||||
|
this.tablePanel2.SetColumn(this.btn_Table, 1);
|
||||||
|
this.btn_Table.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.btn_Table.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btn_Table.Location = new System.Drawing.Point(185, 0);
|
||||||
|
this.btn_Table.Margin = new System.Windows.Forms.Padding(15, 0, 0, 0);
|
||||||
|
this.btn_Table.Name = "btn_Table";
|
||||||
|
this.tablePanel2.SetRow(this.btn_Table, 0);
|
||||||
|
this.btn_Table.Size = new System.Drawing.Size(170, 40);
|
||||||
|
this.btn_Table.TabIndex = 5;
|
||||||
|
this.btn_Table.UseVisualStyleBackColor = true;
|
||||||
|
this.btn_Table.Click += new System.EventHandler(this.btn_CAD_Click);
|
||||||
|
//
|
||||||
|
// btn_Update
|
||||||
|
//
|
||||||
|
this.tablePanel2.SetColumn(this.btn_Update, 4);
|
||||||
|
this.btn_Update.Dock = System.Windows.Forms.DockStyle.Right;
|
||||||
|
this.btn_Update.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btn_Update.Location = new System.Drawing.Point(992, 0);
|
||||||
|
this.btn_Update.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
|
||||||
|
this.btn_Update.Name = "btn_Update";
|
||||||
|
this.tablePanel2.SetRow(this.btn_Update, 0);
|
||||||
|
this.btn_Update.Size = new System.Drawing.Size(139, 40);
|
||||||
|
this.btn_Update.TabIndex = 4;
|
||||||
|
this.btn_Update.UseVisualStyleBackColor = true;
|
||||||
|
this.btn_Update.Click += new System.EventHandler(this.Btn_Update_Click);
|
||||||
|
//
|
||||||
|
// btn_Del
|
||||||
|
//
|
||||||
|
this.tablePanel2.SetColumn(this.btn_Del, 3);
|
||||||
|
this.btn_Del.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.btn_Del.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btn_Del.Location = new System.Drawing.Point(847, 0);
|
||||||
|
this.btn_Del.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
|
||||||
|
this.btn_Del.Name = "btn_Del";
|
||||||
|
this.tablePanel2.SetRow(this.btn_Del, 0);
|
||||||
|
this.btn_Del.Size = new System.Drawing.Size(133, 40);
|
||||||
|
this.btn_Del.TabIndex = 1;
|
||||||
|
this.btn_Del.UseVisualStyleBackColor = true;
|
||||||
|
this.btn_Del.Click += new System.EventHandler(this.btn_Del_Click);
|
||||||
|
//
|
||||||
|
// btn_Report
|
||||||
|
//
|
||||||
|
this.btn_Report.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.btn_Report.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btn_Report.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.btn_Report.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.btn_Report.Name = "btn_Report";
|
||||||
|
this.btn_Report.Size = new System.Drawing.Size(170, 40);
|
||||||
|
this.btn_Report.TabIndex = 2;
|
||||||
|
this.btn_Report.UseVisualStyleBackColor = true;
|
||||||
|
this.btn_Report.Click += new System.EventHandler(this.btn_Report_Click);
|
||||||
|
//
|
||||||
|
// btn_Add
|
||||||
|
//
|
||||||
|
this.tablePanel2.SetColumn(this.btn_Add, 2);
|
||||||
|
this.btn_Add.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.btn_Add.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btn_Add.Location = new System.Drawing.Point(702, 0);
|
||||||
|
this.btn_Add.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
|
||||||
|
this.btn_Add.Name = "btn_Add";
|
||||||
|
this.tablePanel2.SetRow(this.btn_Add, 0);
|
||||||
|
this.btn_Add.Size = new System.Drawing.Size(133, 40);
|
||||||
|
this.btn_Add.TabIndex = 0;
|
||||||
|
this.btn_Add.UseVisualStyleBackColor = true;
|
||||||
|
this.btn_Add.Click += new System.EventHandler(this.btn_Add_Click);
|
||||||
|
//
|
||||||
|
// pictureEdit1
|
||||||
|
//
|
||||||
|
this.tablePanel1.SetColumn(this.pictureEdit1, 0);
|
||||||
|
this.pictureEdit1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.pictureEdit1.Location = new System.Drawing.Point(10, 708);
|
||||||
|
this.pictureEdit1.Name = "pictureEdit1";
|
||||||
|
this.pictureEdit1.Properties.ShowCameraMenuItem = DevExpress.XtraEditors.Controls.CameraMenuItemVisibility.Auto;
|
||||||
|
this.pictureEdit1.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Zoom;
|
||||||
|
this.tablePanel1.SetRow(this.pictureEdit1, 2);
|
||||||
|
this.pictureEdit1.Size = new System.Drawing.Size(1128, 210);
|
||||||
|
this.pictureEdit1.TabIndex = 4;
|
||||||
|
//
|
||||||
|
// listBoxControl1
|
||||||
|
//
|
||||||
|
this.listBoxControl1.Appearance.Font = new System.Drawing.Font("Tahoma", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.listBoxControl1.Appearance.Options.UseFont = true;
|
||||||
|
this.listBoxControl1.Appearance.Options.UseTextOptions = true;
|
||||||
|
this.listBoxControl1.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
|
||||||
|
this.listBoxControl1.Appearance.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Center;
|
||||||
|
this.tablePanel1.SetColumn(this.listBoxControl1, 1);
|
||||||
|
this.listBoxControl1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.listBoxControl1.Location = new System.Drawing.Point(1144, 10);
|
||||||
|
this.listBoxControl1.Name = "listBoxControl1";
|
||||||
|
this.tablePanel1.SetRow(this.listBoxControl1, 0);
|
||||||
|
this.tablePanel1.SetRowSpan(this.listBoxControl1, 3);
|
||||||
|
this.listBoxControl1.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
||||||
|
this.listBoxControl1.Size = new System.Drawing.Size(278, 908);
|
||||||
|
this.listBoxControl1.TabIndex = 3;
|
||||||
|
this.listBoxControl1.SelectedIndexChanged += new System.EventHandler(this.listBoxControl1_SelectedIndexChanged);
|
||||||
|
//
|
||||||
|
// panelControl1
|
||||||
|
//
|
||||||
|
this.tablePanel1.SetColumn(this.panelControl1, 0);
|
||||||
|
this.panelControl1.Controls.Add(this.splitContainerControl1);
|
||||||
|
this.panelControl1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.panelControl1.Location = new System.Drawing.Point(10, 10);
|
||||||
|
this.panelControl1.Name = "panelControl1";
|
||||||
|
this.tablePanel1.SetRow(this.panelControl1, 0);
|
||||||
|
this.panelControl1.Size = new System.Drawing.Size(1128, 652);
|
||||||
|
this.panelControl1.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// splitContainerControl1
|
||||||
|
//
|
||||||
|
this.splitContainerControl1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.splitContainerControl1.Location = new System.Drawing.Point(2, 2);
|
||||||
|
this.splitContainerControl1.Name = "splitContainerControl1";
|
||||||
|
this.splitContainerControl1.Padding = new System.Windows.Forms.Padding(5);
|
||||||
|
//
|
||||||
|
// splitContainerControl1.Panel1
|
||||||
|
//
|
||||||
|
this.splitContainerControl1.Panel1.Controls.Add(this.accordionControl1);
|
||||||
|
this.splitContainerControl1.Panel1.Text = "Panel1";
|
||||||
|
//
|
||||||
|
// splitContainerControl1.Panel2
|
||||||
|
//
|
||||||
|
this.splitContainerControl1.Panel2.Padding = new System.Windows.Forms.Padding(5);
|
||||||
|
this.splitContainerControl1.Panel2.Text = "Panel2";
|
||||||
|
this.splitContainerControl1.Size = new System.Drawing.Size(1124, 648);
|
||||||
|
this.splitContainerControl1.SplitterPosition = 257;
|
||||||
|
this.splitContainerControl1.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// accordionControl1
|
||||||
|
//
|
||||||
|
this.accordionControl1.Appearance.AccordionControl.BackColor = System.Drawing.Color.White;
|
||||||
|
this.accordionControl1.Appearance.AccordionControl.Options.UseBackColor = true;
|
||||||
|
this.accordionControl1.Appearance.Item.Default.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.accordionControl1.Appearance.Item.Default.Options.UseBackColor = true;
|
||||||
|
this.accordionControl1.Appearance.Item.Hovered.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
|
||||||
|
this.accordionControl1.Appearance.Item.Hovered.Options.UseBackColor = true;
|
||||||
|
this.accordionControl1.Appearance.Item.Pressed.BackColor = System.Drawing.SystemColors.MenuHighlight;
|
||||||
|
this.accordionControl1.Appearance.Item.Pressed.Options.UseBackColor = true;
|
||||||
|
this.accordionControl1.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.accordionControl1.Elements.AddRange(new DevExpress.XtraBars.Navigation.AccordionControlElement[] {
|
||||||
|
this.InformationTab,
|
||||||
|
this.IsolationTab});
|
||||||
|
this.accordionControl1.ItemHeight = 70;
|
||||||
|
this.accordionControl1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.accordionControl1.Name = "accordionControl1";
|
||||||
|
this.accordionControl1.Padding = new System.Windows.Forms.Padding(3);
|
||||||
|
this.accordionControl1.ScrollBarMode = DevExpress.XtraBars.Navigation.ScrollBarMode.Hidden;
|
||||||
|
this.accordionControl1.Size = new System.Drawing.Size(260, 638);
|
||||||
|
this.accordionControl1.TabIndex = 1;
|
||||||
|
this.accordionControl1.ElementClick += new DevExpress.XtraBars.Navigation.ElementClickEventHandler(this.accordionControl1_ElementClick);
|
||||||
|
//
|
||||||
|
// InformationTab
|
||||||
|
//
|
||||||
|
this.InformationTab.Appearance.Default.Font = new System.Drawing.Font("Tahoma", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.InformationTab.Appearance.Default.Options.UseFont = true;
|
||||||
|
this.InformationTab.Appearance.Default.Options.UseTextOptions = true;
|
||||||
|
this.InformationTab.Appearance.Default.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
|
||||||
|
this.InformationTab.Appearance.Default.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Center;
|
||||||
|
this.InformationTab.Appearance.Hovered.BackColor = System.Drawing.Color.SkyBlue;
|
||||||
|
this.InformationTab.Appearance.Hovered.Options.UseBackColor = true;
|
||||||
|
this.InformationTab.HeaderTemplate.AddRange(new DevExpress.XtraBars.Navigation.HeaderElementInfo[] {
|
||||||
|
new DevExpress.XtraBars.Navigation.HeaderElementInfo(DevExpress.XtraBars.Navigation.HeaderElementType.Text),
|
||||||
|
new DevExpress.XtraBars.Navigation.HeaderElementInfo(DevExpress.XtraBars.Navigation.HeaderElementType.Image),
|
||||||
|
new DevExpress.XtraBars.Navigation.HeaderElementInfo(DevExpress.XtraBars.Navigation.HeaderElementType.HeaderControl),
|
||||||
|
new DevExpress.XtraBars.Navigation.HeaderElementInfo(DevExpress.XtraBars.Navigation.HeaderElementType.ContextButtons)});
|
||||||
|
this.InformationTab.Name = "InformationTab";
|
||||||
|
this.InformationTab.Style = DevExpress.XtraBars.Navigation.ElementStyle.Item;
|
||||||
|
this.InformationTab.Tag = "Information";
|
||||||
|
this.InformationTab.Click += new System.EventHandler(this.InformationTab_Click);
|
||||||
|
//
|
||||||
|
// IsolationTab
|
||||||
|
//
|
||||||
|
this.IsolationTab.Appearance.Default.Font = new System.Drawing.Font("Tahoma", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.IsolationTab.Appearance.Default.Options.UseFont = true;
|
||||||
|
this.IsolationTab.Appearance.Default.Options.UseTextOptions = true;
|
||||||
|
this.IsolationTab.Appearance.Default.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
|
||||||
|
this.IsolationTab.Appearance.Default.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Center;
|
||||||
|
this.IsolationTab.Appearance.Hovered.BackColor = System.Drawing.Color.SkyBlue;
|
||||||
|
this.IsolationTab.Appearance.Hovered.Options.UseBackColor = true;
|
||||||
|
this.IsolationTab.Name = "IsolationTab";
|
||||||
|
this.IsolationTab.Style = DevExpress.XtraBars.Navigation.ElementStyle.Item;
|
||||||
|
this.IsolationTab.Click += new System.EventHandler(this.IsolationTab_Click);
|
||||||
|
//
|
||||||
|
// IsolationTabUserControl
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Controls.Add(this.tablePanel1);
|
||||||
|
this.Name = "IsolationTabUserControl";
|
||||||
|
this.Size = new System.Drawing.Size(1432, 928);
|
||||||
|
this.Load += new System.EventHandler(this.IsolationTab_Load);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.tablePanel1)).EndInit();
|
||||||
|
this.tablePanel1.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.tablePanel2)).EndInit();
|
||||||
|
this.tablePanel2.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureEdit1.Properties)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.listBoxControl1)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.panelControl1)).EndInit();
|
||||||
|
this.panelControl1.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1.Panel1)).EndInit();
|
||||||
|
this.splitContainerControl1.Panel1.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1.Panel2)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1)).EndInit();
|
||||||
|
this.splitContainerControl1.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.accordionControl1)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private TablePanel tablePanel1;
|
||||||
|
private TablePanel tablePanel2;
|
||||||
|
private System.Windows.Forms.Button btn_Table;
|
||||||
|
private System.Windows.Forms.Button btn_Update;
|
||||||
|
private System.Windows.Forms.Button btn_Del;
|
||||||
|
private System.Windows.Forms.Button btn_Report;
|
||||||
|
private System.Windows.Forms.Button btn_Add;
|
||||||
|
private PictureEdit pictureEdit1;
|
||||||
|
public ListBoxControl listBoxControl1;
|
||||||
|
private PanelControl panelControl1;
|
||||||
|
private SplitContainerControl splitContainerControl1;
|
||||||
|
private DevExpress.XtraBars.Navigation.AccordionControl accordionControl1;
|
||||||
|
private DevExpress.XtraBars.Navigation.AccordionControlElement InformationTab;
|
||||||
|
private DevExpress.XtraBars.Navigation.AccordionControlElement IsolationTab;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,443 @@
|
||||||
|
using MainUI.Model;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using NSVDataEdit;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MainUI
|
||||||
|
{
|
||||||
|
public partial class IsolationTabUserControl : UserControl
|
||||||
|
{
|
||||||
|
public InformationUserControl tab1;
|
||||||
|
public IsolationUserControl tab2;
|
||||||
|
|
||||||
|
public Information InformationData { get; private set; }
|
||||||
|
public Isolation IsolationData { get; private set; }
|
||||||
|
|
||||||
|
public List<EquipmentPackage> EquipmentData { get; set; } = new List<EquipmentPackage>();
|
||||||
|
|
||||||
|
//[0]. "ISOData.json" [1]. "WeightData.json", [2]. "DisplacementData.json" [3]. "DefaultQty.json"
|
||||||
|
List<(JObject Json, string FilePath)> jsonFiles = new List<(JObject, string)>();
|
||||||
|
|
||||||
|
public IsolationTabUserControl()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
JsonDataLoad();
|
||||||
|
|
||||||
|
tab1 = new InformationUserControl(jsonFiles[0].Json, jsonFiles[1].Json, jsonFiles[3].Json);
|
||||||
|
tab2 = new IsolationUserControl(jsonFiles[2].Json);
|
||||||
|
|
||||||
|
ChangedLanguage();
|
||||||
|
|
||||||
|
// 이벤트 구독
|
||||||
|
tab1.ModelItemsChanged += Tab1_ModelItemsChanged;
|
||||||
|
tab1.WeightChanged += Tab1_WeightChanged;
|
||||||
|
tab1.TypeSelectionChanged += Tab1_TypeSelectionChanged;
|
||||||
|
tab1.EquipmentTypeSelectionChanged += Tab1_EquipmentTypeSelectionChanged;
|
||||||
|
tab1.ISOQtyChanged += Tab1_ISOQtyChanged;
|
||||||
|
|
||||||
|
tab2.DiameterChanged += Tab2_DiameterChanged;
|
||||||
|
tab2.ModelNameChanged += Tab2_ModelNameChanged;
|
||||||
|
tab2.QtyCheckedChanged += Tab2_QtyCheckedChanged;
|
||||||
|
|
||||||
|
var types = jsonFiles[0].Json.Properties().Select(p => p.Name).ToList();
|
||||||
|
tab1.LoadEquipmentTypes(types);
|
||||||
|
|
||||||
|
tab1.Dock = DockStyle.Fill;
|
||||||
|
tab2.Dock = DockStyle.Fill;
|
||||||
|
|
||||||
|
string imagePath = Path.Combine(Application.StartupPath, "ModelImage", "VWM.jpg");
|
||||||
|
if (File.Exists(imagePath))
|
||||||
|
{
|
||||||
|
pictureEdit1.Image = Image.FromFile(imagePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void JsonDataLoad()
|
||||||
|
{
|
||||||
|
string[] fileNames = { "ISOData.json", "WeightData.json", "DisplacementData.json", "DefaultQty.json" };
|
||||||
|
|
||||||
|
foreach (var fileName in fileNames)
|
||||||
|
{
|
||||||
|
string fullPath = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, fileName));
|
||||||
|
if (!File.Exists(fullPath))
|
||||||
|
{
|
||||||
|
MessageBox.Show(fileName + "파일이 존재하지 않습니다.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
string json = File.ReadAllText(fullPath);
|
||||||
|
JObject obj = JObject.Parse(json);
|
||||||
|
jsonFiles.Add((obj, fullPath));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ChangedLanguage()
|
||||||
|
{
|
||||||
|
var rm = Properties.Resources.ResourceManager;
|
||||||
|
CultureInfo culture = Thread.CurrentThread.CurrentUICulture;
|
||||||
|
|
||||||
|
var font = new Font("Tahoma", 12F);
|
||||||
|
|
||||||
|
// 탭 / 버튼 리소스 적용 함수
|
||||||
|
string L(string key) => rm.GetString(key, culture) ?? key;
|
||||||
|
|
||||||
|
// --- Tabs ---
|
||||||
|
InformationTab.Text = L("General_Information");
|
||||||
|
IsolationTab.Text = L("Isolator_Information");
|
||||||
|
|
||||||
|
InformationTab.Appearance.Default.Font = font;
|
||||||
|
IsolationTab.Appearance.Default.Font = font;
|
||||||
|
|
||||||
|
// --- Buttons ---
|
||||||
|
btn_Add.Text = L("Add");
|
||||||
|
btn_Del.Text = L("Delete");
|
||||||
|
btn_Update.Text = L("Update");
|
||||||
|
btn_Report.Text = L("Print_Invoice");
|
||||||
|
btn_Table.Text = L("Print_Table");
|
||||||
|
|
||||||
|
btn_Add.Font = font;
|
||||||
|
btn_Del.Font = font;
|
||||||
|
btn_Update.Font = font;
|
||||||
|
btn_Report.Font = font;
|
||||||
|
btn_Table.Font = font;
|
||||||
|
|
||||||
|
tab1.ChangedLanguage();
|
||||||
|
tab2.ChangedLanguage();
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------- ControlEvent----------------------------------
|
||||||
|
//---------------------- ControlEvent----------------------------------
|
||||||
|
//---------------------- ControlEvent----------------------------------
|
||||||
|
|
||||||
|
private void InformationTab_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
splitContainerControl1.Panel2.Controls.Clear();
|
||||||
|
splitContainerControl1.Panel2.Controls.Add(tab1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void IsolationTab_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
splitContainerControl1.Panel2.Controls.Clear();
|
||||||
|
splitContainerControl1.Panel2.Controls.Add(tab2);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void IsolationTab_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
splitContainerControl1.Panel2.Controls.Clear();
|
||||||
|
splitContainerControl1.Panel2.Controls.Add(tab1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void accordionControl1_ElementClick(object sender, DevExpress.XtraBars.Navigation.ElementClickEventArgs e)
|
||||||
|
{
|
||||||
|
// 모든 아이템 색상 초기화
|
||||||
|
foreach (var element in accordionControl1.Elements)
|
||||||
|
{
|
||||||
|
element.Appearance.Normal.BackColor = Color.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 선택된 아이템만 색상 변경
|
||||||
|
e.Element.Appearance.Normal.BackColor = SystemColors.MenuHighlight;
|
||||||
|
|
||||||
|
// 선택 상태 유지
|
||||||
|
accordionControl1.SelectedElement = e.Element;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btn_Add_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string label = tab1.GetInformation().EQUIPMENTNUMBER.ToString();
|
||||||
|
|
||||||
|
foreach (string list in listBoxControl1.Items)
|
||||||
|
{
|
||||||
|
if (list == label)
|
||||||
|
{
|
||||||
|
MessageBox.Show($"{list}는 이미 존재 하는 장비 번호 입니다!", "데이터 추가 실패!", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EquipmentData.Add(new EquipmentPackage
|
||||||
|
{
|
||||||
|
Information = tab1.GetInformation(),
|
||||||
|
Isolation = tab2.GetIsolation()
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
listBoxControl1.Items.Add(label);
|
||||||
|
|
||||||
|
listBoxControl1.SelectedIndex = listBoxControl1.ItemCount - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btn_Report_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
foreach (var data in EquipmentData)
|
||||||
|
{
|
||||||
|
if (data.Information.TYPE == "")
|
||||||
|
{
|
||||||
|
data.Information.TYPE = data.Information.CATEGORY;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (data.Isolation.IBBASE == "0" && (data.Information.RPM == "" || data.Information.QUANTITY == "" ||
|
||||||
|
data.Isolation.DISCHARGEDIAMETER == "" || data.Isolation.SUCTIONDIAMETER == ""))
|
||||||
|
{
|
||||||
|
MessageBox.Show($"장비번호 {data.Information.EQUIPMENTNUMBER} 에 입력하지 않은 데이터가 존재합니다.", "내보내기 실패!", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
string baseDir = AppDomain.CurrentDomain.BaseDirectory;
|
||||||
|
string reportDir = Path.Combine(baseDir, "Report");
|
||||||
|
string exePath = Path.Combine(reportDir, "NSV_Report.exe");
|
||||||
|
string savePath1 = Path.Combine(Application.StartupPath, "equipment.json");
|
||||||
|
string savePath2 = Path.Combine(reportDir, "equipment.json");
|
||||||
|
|
||||||
|
string json = JsonConvert.SerializeObject(EquipmentData, Newtonsoft.Json.Formatting.Indented);
|
||||||
|
|
||||||
|
File.WriteAllText(savePath1, json, Encoding.UTF8);
|
||||||
|
File.WriteAllText(savePath2, json, Encoding.UTF8);
|
||||||
|
|
||||||
|
MessageBox.Show("저장 완료!", "저장 완료", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
|
||||||
|
|
||||||
|
var psi = new ProcessStartInfo
|
||||||
|
{
|
||||||
|
FileName = exePath,
|
||||||
|
WorkingDirectory = reportDir,
|
||||||
|
UseShellExecute = false,
|
||||||
|
Arguments = "0",
|
||||||
|
};
|
||||||
|
|
||||||
|
Process.Start(psi);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btn_CAD_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string savePath = Path.Combine(Application.StartupPath, "equipment.json");
|
||||||
|
string json = JsonConvert.SerializeObject(EquipmentData, Newtonsoft.Json.Formatting.Indented);
|
||||||
|
File.WriteAllText(savePath, json, Encoding.UTF8);
|
||||||
|
|
||||||
|
LoadEquipmentList.DllLoad();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void listBoxControl1_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
// 새 항목 표시
|
||||||
|
int idx = listBoxControl1.SelectedIndex;
|
||||||
|
if (idx < 0 || idx >= EquipmentData.Count)
|
||||||
|
return;
|
||||||
|
|
||||||
|
tab1.SetInformation(EquipmentData[idx].Information);
|
||||||
|
tab2.SetIsolation(EquipmentData[idx].Isolation);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void btn_Del_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
listBoxControl1.SelectedIndexChanged -= listBoxControl1_SelectedIndexChanged;
|
||||||
|
|
||||||
|
var indices = listBoxControl1.SelectedIndices.Cast<int>().OrderByDescending(i => i).ToList();
|
||||||
|
|
||||||
|
if (indices.Count == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
int lastIndex = indices.Last(); // 삭제 후 다시 선택할 기준 인덱스
|
||||||
|
|
||||||
|
// EquipmentData와 ListBoxControl 동기 삭제
|
||||||
|
foreach (int idx in indices)
|
||||||
|
{
|
||||||
|
if (idx >= 0 && idx < EquipmentData.Count)
|
||||||
|
EquipmentData.RemoveAt(idx);
|
||||||
|
if (idx >= 0 && idx < listBoxControl1.Items.Count)
|
||||||
|
listBoxControl1.Items.RemoveAt(idx);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 이벤트 다시 연결
|
||||||
|
listBoxControl1.SelectedIndexChanged += listBoxControl1_SelectedIndexChanged;
|
||||||
|
|
||||||
|
if (EquipmentData.Count == 0)
|
||||||
|
{
|
||||||
|
tab1.SetInformation(null);
|
||||||
|
tab2.SetIsolation(null);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 인덱스 계산 (현재 인덱스 - 1, 단 0 이하이면 0)
|
||||||
|
int newIndex = lastIndex - 1;
|
||||||
|
if (newIndex < 0) newIndex = 0;
|
||||||
|
|
||||||
|
EquipmentPackage selectedData = EquipmentData[newIndex];
|
||||||
|
if (selectedData == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
tab1.SetInformation(selectedData.Information);
|
||||||
|
tab2.SetIsolation(selectedData.Isolation);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Btn_Update_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
int idx = listBoxControl1.SelectedIndex;
|
||||||
|
if (idx < 0 || idx >= EquipmentData.Count)
|
||||||
|
{
|
||||||
|
MessageBox.Show("수정할 항목을 선택하세요.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 현재 탭의 내용으로 갱신
|
||||||
|
EquipmentData[idx].Information = tab1.GetInformation();
|
||||||
|
EquipmentData[idx].Isolation = tab2.GetIsolation();
|
||||||
|
|
||||||
|
// 리스트박스 항목 라벨도 갱신 (예: 장비번호 표시)
|
||||||
|
string newLabel = tab1.GetInformation().EQUIPMENTNUMBER.ToString();
|
||||||
|
listBoxControl1.Items[idx] = newLabel;
|
||||||
|
|
||||||
|
MessageBox.Show("선택된 항목이 수정되었습니다.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//---------------------- UserControlEvent----------------------------------
|
||||||
|
//---------------------- UserControlEvent----------------------------------
|
||||||
|
//---------------------- UserControlEvent----------------------------------
|
||||||
|
|
||||||
|
private void Tab1_TypeSelectionChanged(object sender, string selectedText)
|
||||||
|
{
|
||||||
|
bool cond = tab2.rg_ISO_IBBASE.SelectedIndex == 0 && (selectedText == "양흡입" || selectedText == "인라인");
|
||||||
|
|
||||||
|
tab2.text_ISO_pumpL2.Enabled = cond;
|
||||||
|
tab2.text_ISO_pumpW2.Enabled = cond;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Tab1_EquipmentTypeSelectionChanged(object sender, string selectedText)
|
||||||
|
{
|
||||||
|
tab2.EquipmentType = selectedText;
|
||||||
|
|
||||||
|
DevExpress.XtraEditors.ComboBoxEdit[] comboBoxes =
|
||||||
|
{
|
||||||
|
tab2.cb_ISO_FlexibleModel1,
|
||||||
|
tab2.cb_ISO_FlexibleModel2,
|
||||||
|
tab2.cb_ISO_FlexibleModel3
|
||||||
|
};
|
||||||
|
|
||||||
|
DevExpress.XtraEditors.TextEdit[] textEdits =
|
||||||
|
{
|
||||||
|
tab2.text_ISO_FlexibleDia1,
|
||||||
|
tab2.text_ISO_FlexibleDia2,
|
||||||
|
tab2.text_ISO_FlexibleDia3,
|
||||||
|
tab2.text_ISO_FlexibleQty1,
|
||||||
|
tab2.text_ISO_FlexibleQty2,
|
||||||
|
tab2.text_ISO_FlexibleQty3,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
int? index = null;
|
||||||
|
bool enabled = false;
|
||||||
|
|
||||||
|
if (selectedText == "냉각탑")
|
||||||
|
{
|
||||||
|
index = 0;
|
||||||
|
enabled = true;
|
||||||
|
}
|
||||||
|
else if (selectedText == "펌프" || selectedText == "냉동기")
|
||||||
|
{
|
||||||
|
index = 1;
|
||||||
|
enabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var combo in comboBoxes)
|
||||||
|
{
|
||||||
|
combo.Enabled = enabled;
|
||||||
|
if (index.HasValue)
|
||||||
|
combo.SelectedIndex = index.Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var text in textEdits)
|
||||||
|
{
|
||||||
|
text.Enabled = enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
string txt = tab2.cb_ISO_MODELNAME.Text ?? string.Empty;
|
||||||
|
string model = txt.Length >= 3 ? txt.Substring(0, 3) : txt;
|
||||||
|
|
||||||
|
if (selectedText == "펌프" && (model == "SMA" || model == "SMB"))
|
||||||
|
{
|
||||||
|
tab2.rg_ISO_IBBASE.SelectedIndex = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tab2.rg_ISO_IBBASE.SelectedIndex = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Tab1_ModelItemsChanged(List<string> model)
|
||||||
|
{
|
||||||
|
// tab1에서 선택한 값 → tab2에도 반영
|
||||||
|
tab2.cb_ISO_MODELNAME.Properties.Items.Clear();
|
||||||
|
tab2.cb_ISO_MODELNAME.Properties.Items.AddRange(model);
|
||||||
|
tab2.cb_ISO_MODELNAME.SelectedIndex = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Tab1_WeightChanged(string weight)
|
||||||
|
{
|
||||||
|
// tab1에서 선택한 값 → tab2에도 반영
|
||||||
|
tab2.Weight = weight;
|
||||||
|
tab2.FindDisPlacement();
|
||||||
|
tab2.FindCapacity();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Tab1_ISOQtyChanged(string qty)
|
||||||
|
{
|
||||||
|
// tab1에서 선택한 값 → tab2에도 반영
|
||||||
|
tab2.text_ISO_QUANTITY.Text = qty;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Tab2_DiameterChanged(string dimension)
|
||||||
|
{
|
||||||
|
tab1.Dimension = dimension;
|
||||||
|
tab1.SetWeight();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Tab2_ModelNameChanged(string model)
|
||||||
|
{
|
||||||
|
//이미지 변경
|
||||||
|
if (!string.IsNullOrEmpty(model) && model.Length >= 3 && model.Substring(0, 3) == "VWM")
|
||||||
|
{
|
||||||
|
model = "VWM";
|
||||||
|
}
|
||||||
|
|
||||||
|
string imagePath = Path.Combine(Application.StartupPath, "ModelImage", $"{model}.jpg");
|
||||||
|
|
||||||
|
if (File.Exists(imagePath))
|
||||||
|
{
|
||||||
|
pictureEdit1.Image = Image.FromFile(imagePath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Tab2_QtyCheckedChanged(bool ch)
|
||||||
|
{
|
||||||
|
if (ch)
|
||||||
|
tab1.SetISOQty();
|
||||||
|
else
|
||||||
|
tab2.text_ISO_QUANTITY.Text = string.Empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,120 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
|
|
@ -237,13 +237,13 @@ namespace MainUI
|
||||||
//
|
//
|
||||||
this.xtraTabPage1.Name = "IsoTabPage";
|
this.xtraTabPage1.Name = "IsoTabPage";
|
||||||
this.xtraTabPage1.Size = new System.Drawing.Size(1430, 902);
|
this.xtraTabPage1.Size = new System.Drawing.Size(1430, 902);
|
||||||
this.xtraTabPage1.Text = "xtraTabPage1";
|
this.xtraTabPage1.Text = "방진기 선정";
|
||||||
//
|
//
|
||||||
// xtraTabPage2
|
// xtraTabPage2
|
||||||
//
|
//
|
||||||
this.xtraTabPage2.Name = "MuffleTabPage";
|
this.xtraTabPage2.Name = "MuffleTabPage";
|
||||||
this.xtraTabPage2.Size = new System.Drawing.Size(298, 274);
|
this.xtraTabPage2.Size = new System.Drawing.Size(298, 274);
|
||||||
this.xtraTabPage2.Text = "xtraTabPage2";
|
this.xtraTabPage2.Text = "소음기 선정";
|
||||||
//
|
//
|
||||||
// MainForm
|
// MainForm
|
||||||
//
|
//
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ namespace MainUI
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<EquipmentPackage> EquipmentData { get; private set; } = new List<EquipmentPackage>();
|
public List<EquipmentPackage> EquipmentData { get; private set; } = new List<EquipmentPackage>();
|
||||||
|
public List<MufflePackage> MuffleData { get; private set; } = new List<MufflePackage>();
|
||||||
|
|
||||||
//[0]. "ISOData.json" [1]. "WeightData.json", [2]. "DisplacementData.json" [3]. "DefaultQty.json"
|
//[0]. "ISOData.json" [1]. "WeightData.json", [2]. "DisplacementData.json" [3]. "DefaultQty.json"
|
||||||
List<(JObject Json, string FilePath)> jsonFiles = new List<(JObject, string)>();
|
List<(JObject Json, string FilePath)> jsonFiles = new List<(JObject, string)>();
|
||||||
|
|
@ -78,9 +79,6 @@ namespace MainUI
|
||||||
|
|
||||||
public void OnOpen()
|
public void OnOpen()
|
||||||
{
|
{
|
||||||
var tab1 = isoTab.tab1;
|
|
||||||
var tab2 = isoTab.tab2;
|
|
||||||
|
|
||||||
using (var ofd = new OpenFileDialog
|
using (var ofd = new OpenFileDialog
|
||||||
{
|
{
|
||||||
Filter = "Excel 파일 (*.xlsx;*.xls)|*.xlsx;*.xls|JSON 파일 (*.json)|*.json", // 엑셀 또는 JSON 파일만
|
Filter = "Excel 파일 (*.xlsx;*.xls)|*.xlsx;*.xls|JSON 파일 (*.json)|*.json", // 엑셀 또는 JSON 파일만
|
||||||
|
|
@ -95,84 +93,153 @@ namespace MainUI
|
||||||
string fullPath = ofd.FileName;
|
string fullPath = ofd.FileName;
|
||||||
string extension = Path.GetExtension(fullPath).ToLower();
|
string extension = Path.GetExtension(fullPath).ToLower();
|
||||||
|
|
||||||
List<EquipmentPackage> equipmentData = new List<EquipmentPackage>();
|
if (xtraTabControl1.SelectedTabPageIndex == 0)
|
||||||
|
|
||||||
if (extension == ".xlsx" || extension == ".xls")
|
|
||||||
{
|
{
|
||||||
// 엑셀 읽기
|
var tab1 = isoTab.tab1;
|
||||||
equipmentData = ReadExcelToEquipmentPackage(fullPath);
|
var tab2 = isoTab.tab2;
|
||||||
|
|
||||||
|
List<EquipmentPackage> equipmentData = new List<EquipmentPackage>();
|
||||||
|
|
||||||
foreach (var data in equipmentData)
|
if (extension == ".xlsx" || extension == ".xls")
|
||||||
{
|
{
|
||||||
tab1.SetInformation(data.Information);
|
// 엑셀 읽기
|
||||||
tab2.text_ISO_FlexibleDia1.Text = data.Isolation.FLEXIBLE_DIA1;
|
equipmentData = ReadExcelToEquipmentPackage(fullPath);
|
||||||
tab2.text_ISO_FlexibleQty1.Text = data.Isolation.FLEXIBLE_QTY1;
|
|
||||||
tab2.text_ISO_FlexibleDia2.Text = data.Isolation.FLEXIBLE_DIA2;
|
|
||||||
tab2.text_ISO_FlexibleQty2.Text = data.Isolation.FLEXIBLE_QTY2;
|
|
||||||
tab2.text_ISO_FlexibleDia3.Text = data.Isolation.FLEXIBLE_DIA3;
|
|
||||||
tab2.text_ISO_FlexibleQty3.Text = data.Isolation.FLEXIBLE_QTY3;
|
|
||||||
|
|
||||||
data.Isolation = tab2.GetIsolation();
|
foreach (var data in equipmentData)
|
||||||
|
|
||||||
//리스트에 추가
|
|
||||||
EquipmentData.Add(new EquipmentPackage
|
|
||||||
{
|
{
|
||||||
Information = data.Information,
|
tab1.SetInformation(data.Information);
|
||||||
Isolation = data.Isolation
|
tab2.text_ISO_FlexibleDia1.Text = data.Isolation.FLEXIBLE_DIA1;
|
||||||
});
|
tab2.text_ISO_FlexibleQty1.Text = data.Isolation.FLEXIBLE_QTY1;
|
||||||
|
tab2.text_ISO_FlexibleDia2.Text = data.Isolation.FLEXIBLE_DIA2;
|
||||||
|
tab2.text_ISO_FlexibleQty2.Text = data.Isolation.FLEXIBLE_QTY2;
|
||||||
|
tab2.text_ISO_FlexibleDia3.Text = data.Isolation.FLEXIBLE_DIA3;
|
||||||
|
tab2.text_ISO_FlexibleQty3.Text = data.Isolation.FLEXIBLE_QTY3;
|
||||||
|
|
||||||
string label = data.Information.EQUIPMENTNUMBER.ToString();
|
data.Isolation = tab2.GetIsolation();
|
||||||
isoTab.listBoxControl1.Items.Add(label);
|
|
||||||
|
|
||||||
isoTab.listBoxControl1.SelectedIndex = isoTab.listBoxControl1.ItemCount - 1;
|
//리스트에 추가
|
||||||
|
EquipmentData.Add(new EquipmentPackage
|
||||||
|
{
|
||||||
|
Information = data.Information,
|
||||||
|
Isolation = data.Isolation
|
||||||
|
});
|
||||||
|
|
||||||
|
string label = data.Information.EQUIPMENTNUMBER.ToString();
|
||||||
|
isoTab.listBoxControl1.Items.Add(label);
|
||||||
|
|
||||||
|
isoTab.listBoxControl1.SelectedIndex = isoTab.listBoxControl1.ItemCount - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (extension == ".json")
|
||||||
|
{
|
||||||
|
string jsonText = File.ReadAllText(ofd.FileName);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// JSON을 C# 객체로 변환
|
||||||
|
equipmentData = JsonConvert.DeserializeObject<List<EquipmentPackage>>(jsonText);
|
||||||
|
}
|
||||||
|
catch (JsonSerializationException ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show("형식이 맞지 않는 JSON 파일입니다.",
|
||||||
|
"오류", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
foreach (var data in equipmentData)
|
||||||
|
{
|
||||||
|
tab1.SetInformation(data.Information);
|
||||||
|
tab2.SetIsolation(data.Isolation);
|
||||||
|
|
||||||
|
//리스트에 추가
|
||||||
|
EquipmentData.Add(new EquipmentPackage
|
||||||
|
{
|
||||||
|
Information = data.Information,
|
||||||
|
Isolation = data.Isolation
|
||||||
|
});
|
||||||
|
|
||||||
|
string label = data.Information.EQUIPMENTNUMBER.ToString();
|
||||||
|
isoTab.listBoxControl1.Items.Add(label);
|
||||||
|
|
||||||
|
isoTab.listBoxControl1.SelectedIndex = isoTab.listBoxControl1.ItemCount - 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isoTab.EquipmentData = EquipmentData;
|
||||||
}
|
}
|
||||||
else if (extension == ".json")
|
else if (xtraTabControl1.SelectedTabPageIndex == 1)
|
||||||
{
|
{
|
||||||
string jsonText = File.ReadAllText(ofd.FileName);
|
var tab1 = muffleTab.tab1;
|
||||||
|
var tab2 = muffleTab.tab2;
|
||||||
|
|
||||||
try
|
List<MufflePackage> muffleData = new List<MufflePackage>();
|
||||||
|
|
||||||
|
if (extension == ".xlsx" || extension == ".xls")
|
||||||
{
|
{
|
||||||
// JSON을 C# 객체로 변환
|
// 엑셀 읽기
|
||||||
equipmentData = JsonConvert.DeserializeObject<List<EquipmentPackage>>(jsonText);
|
muffleData = ReadExcelToMufflePackage(fullPath);
|
||||||
}
|
|
||||||
catch (JsonSerializationException ex)
|
|
||||||
{
|
|
||||||
MessageBox.Show("형식이 맞지 않는 JSON 파일입니다.",
|
|
||||||
"오류", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
||||||
|
|
||||||
return;
|
foreach (var data in muffleData)
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
foreach (var data in equipmentData)
|
|
||||||
{
|
|
||||||
tab1.SetInformation(data.Information);
|
|
||||||
tab2.SetIsolation(data.Isolation);
|
|
||||||
|
|
||||||
//리스트에 추가
|
|
||||||
EquipmentData.Add(new EquipmentPackage
|
|
||||||
{
|
{
|
||||||
Information = data.Information,
|
tab1.SetInformation(data.MuffleInformation);
|
||||||
Isolation = data.Isolation
|
tab2.SetDuctSystem(data.MuffleDuctSystem);
|
||||||
});
|
|
||||||
|
|
||||||
string label = data.Information.EQUIPMENTNUMBER.ToString();
|
//리스트에 추가
|
||||||
isoTab.listBoxControl1.Items.Add(label);
|
MuffleData.Add(new MufflePackage
|
||||||
|
{
|
||||||
|
MuffleInformation = data.MuffleInformation,
|
||||||
|
MuffleDuctSystem = data.MuffleDuctSystem
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
isoTab.listBoxControl1.SelectedIndex = isoTab.listBoxControl1.ItemCount - 1;
|
|
||||||
}
|
}
|
||||||
}
|
else if (extension == ".json")
|
||||||
|
{
|
||||||
|
string jsonText = File.ReadAllText(ofd.FileName);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// JSON을 C# 객체로 변환
|
||||||
|
muffleData = JsonConvert.DeserializeObject<List<MufflePackage>>(jsonText);
|
||||||
|
}
|
||||||
|
catch (JsonSerializationException ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show("형식이 맞지 않는 JSON 파일입니다.",
|
||||||
|
"오류", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
foreach (var data in muffleData)
|
||||||
|
{
|
||||||
|
tab1.SetInformation(data.MuffleInformation);
|
||||||
|
tab2.SetDuctSystem(data.MuffleDuctSystem);
|
||||||
|
|
||||||
|
//리스트에 추가
|
||||||
|
MuffleData.Add(new MufflePackage
|
||||||
|
{
|
||||||
|
MuffleInformation = data.MuffleInformation,
|
||||||
|
MuffleDuctSystem = data.MuffleDuctSystem
|
||||||
|
});
|
||||||
|
|
||||||
|
string label = data.MuffleInformation.EQUIPMENTNUMBER.ToString();
|
||||||
|
muffleTab.listBoxControl1.Items.Add(label);
|
||||||
|
|
||||||
|
muffleTab.listBoxControl1.SelectedIndex = muffleTab.listBoxControl1.ItemCount - 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
muffleTab.MuffleData = MuffleData;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
isoTab.EquipmentData = EquipmentData;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<EquipmentPackage> ReadExcelToEquipmentPackage(string filePath)
|
private List<EquipmentPackage> ReadExcelToEquipmentPackage(string filePath)
|
||||||
|
|
@ -255,7 +322,87 @@ namespace MainUI
|
||||||
return lst_data;
|
return lst_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<MufflePackage> ReadExcelToMufflePackage(string filePath)
|
||||||
|
{
|
||||||
|
List<MufflePackage> lst_data = new List<MufflePackage>();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var workbook = new XLWorkbook(filePath))
|
||||||
|
{
|
||||||
|
var sheet = workbook.Worksheet(1); // 첫 번째 시트
|
||||||
|
var rows = sheet.RangeUsed().RowsUsed().Skip(2); // 2행까지 헤더
|
||||||
|
|
||||||
|
foreach (var row in rows)
|
||||||
|
{
|
||||||
|
MufflePackage data = new MufflePackage();
|
||||||
|
|
||||||
|
string equipment = row.Cell(1).GetString().Trim();
|
||||||
|
if (string.IsNullOrEmpty(equipment)) continue;
|
||||||
|
|
||||||
|
|
||||||
|
var info = new MuffleInformation
|
||||||
|
{
|
||||||
|
PROJECT = row.Cell(2).GetString(),
|
||||||
|
EQUIPMENTNUMBER = row.Cell(3).GetString(),
|
||||||
|
LOCATION = row.Cell(4).GetString(),
|
||||||
|
USAGE = row.Cell(5).GetString(),
|
||||||
|
AIRVOLUME = row.Cell(6).GetString(),
|
||||||
|
PRESSURE = row.Cell(7).GetString(),
|
||||||
|
EFFICIENCY = row.Cell(8).GetString(),
|
||||||
|
HUBRATIO = row.Cell(9).GetString(),
|
||||||
|
DIA = row.Cell(10).GetString(),
|
||||||
|
FANTYPE = row.Cell(11).GetString(),
|
||||||
|
FANQTY = row.Cell(12).GetString(),
|
||||||
|
NOISESTANDARD = row.Cell(13).GetString(),
|
||||||
|
DUCTSIZE_W = row.Cell(14).GetString(),
|
||||||
|
DUCTSIZE_H = row.Cell(15).GetString(),
|
||||||
|
CHAMBERSIZE_W = row.Cell(16).GetString(),
|
||||||
|
CHAMBERSIZE_H = row.Cell(17).GetString(),
|
||||||
|
CHAMBERSIZE_L = row.Cell(18).GetString(),
|
||||||
|
NOISECHAMBERSIZE_W = row.Cell(19).GetString(),
|
||||||
|
NOISECHAMBERSIZE_H = row.Cell(20).GetString(),
|
||||||
|
NOISECHAMBERSIZE_L = row.Cell(21).GetString(),
|
||||||
|
};
|
||||||
|
|
||||||
|
var ductsystem = new MuffleDuctSystem
|
||||||
|
{
|
||||||
|
DUCTLENGTH = row.Cell(22).GetString(),
|
||||||
|
SQUAREELBOWQTY = row.Cell(23).GetString(),
|
||||||
|
ROUNDELBOWQTY = row.Cell(24).GetString(),
|
||||||
|
NOISEELBOWQTY = row.Cell(25).GetString(),
|
||||||
|
BRANCHAIRVOLUME = row.Cell(26).GetString(),
|
||||||
|
DIFFUSERTYPE = row.Cell(27).GetString(),
|
||||||
|
ND_W = row.Cell(28).GetString(),
|
||||||
|
ND_H = row.Cell(29).GetString(),
|
||||||
|
DUCTZOOMSIZE_W = row.Cell(30).GetString(),
|
||||||
|
DUCTZOOMSIZE_H = row.Cell(31).GetString(),
|
||||||
|
SAFERATE = row.Cell(32).GetString(),
|
||||||
|
MUFFLESIZE_W = row.Cell(33).GetString(),
|
||||||
|
MUFFLESIZE_H = row.Cell(34).GetString(),
|
||||||
|
MUFFLESIZE_L = row.Cell(35).GetString(),
|
||||||
|
NOISELEVEL_63 = row.Cell(36).GetString(),
|
||||||
|
NOISELEVEL_125 = row.Cell(37).GetString(),
|
||||||
|
NOISELEVEL_250 = row.Cell(38).GetString(),
|
||||||
|
NOISELEVEL_500 = row.Cell(39).GetString(),
|
||||||
|
NOISELEVEL_1000 = row.Cell(40).GetString(),
|
||||||
|
NOISELEVEL_2000 = row.Cell(41).GetString(),
|
||||||
|
NOISELEVEL_4000 = row.Cell(42).GetString(),
|
||||||
|
};
|
||||||
|
|
||||||
|
data.MuffleInformation = info;
|
||||||
|
data.MuffleDuctSystem = ductsystem;
|
||||||
|
lst_data.Add(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (System.IO.IOException ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show("파일이 이미 열려 있습니다. 닫은 후 다시 시도해주세요.", "파일 잠김", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||||
|
}
|
||||||
|
return lst_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void ChangedLanguage()
|
private void ChangedLanguage()
|
||||||
{
|
{
|
||||||
|
|
@ -295,9 +442,23 @@ namespace MainUI
|
||||||
|
|
||||||
private void barButtonItem_Export_ItemClick(object sender, ItemClickEventArgs e)
|
private void barButtonItem_Export_ItemClick(object sender, ItemClickEventArgs e)
|
||||||
{
|
{
|
||||||
string savePath = Path.Combine(Application.StartupPath, "equipment.json");
|
string savePath = "", json = "";
|
||||||
|
if (xtraTabControl1.SelectedTabPageIndex == 0)
|
||||||
|
{
|
||||||
|
savePath = Path.Combine(Application.StartupPath, "equipment.json");
|
||||||
|
EquipmentData = isoTab.EquipmentData;
|
||||||
|
|
||||||
string json = JsonConvert.SerializeObject(EquipmentData, Newtonsoft.Json.Formatting.Indented);
|
json = JsonConvert.SerializeObject(EquipmentData, Newtonsoft.Json.Formatting.Indented);
|
||||||
|
}
|
||||||
|
else if (xtraTabControl1.SelectedTabPageIndex == 1)
|
||||||
|
{
|
||||||
|
savePath = Path.Combine(Application.StartupPath, "MuffleData.json");
|
||||||
|
MuffleData = muffleTab.MuffleData;
|
||||||
|
|
||||||
|
json = JsonConvert.SerializeObject(MuffleData, Newtonsoft.Json.Formatting.Indented);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return;
|
||||||
|
|
||||||
File.WriteAllText(savePath, json, Encoding.UTF8);
|
File.WriteAllText(savePath, json, Encoding.UTF8);
|
||||||
|
|
||||||
|
|
@ -307,7 +468,7 @@ namespace MainUI
|
||||||
private void barButtonItem_DataEdit_ItemClick(object sender, ItemClickEventArgs e)
|
private void barButtonItem_DataEdit_ItemClick(object sender, ItemClickEventArgs e)
|
||||||
{
|
{
|
||||||
dataEditForm = new DataEditForm();
|
dataEditForm = new DataEditForm();
|
||||||
//dataEditForm
|
dataEditForm.Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void barButtonItem_Language_ItemClick(object sender, ItemClickEventArgs e)
|
private void barButtonItem_Language_ItemClick(object sender, ItemClickEventArgs e)
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,12 @@ namespace MainUI.Model
|
||||||
public Isolation Isolation { get; set; }
|
public Isolation Isolation { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class MufflePackage
|
||||||
|
{
|
||||||
|
public MuffleInformation MuffleInformation { get; set; }
|
||||||
|
public MuffleDuctSystem MuffleDuctSystem { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
public class Information
|
public class Information
|
||||||
{
|
{
|
||||||
public string PROJECT { get; set; } // 프로젝트
|
public string PROJECT { get; set; } // 프로젝트
|
||||||
|
|
@ -65,20 +71,28 @@ namespace MainUI.Model
|
||||||
|
|
||||||
public class MuffleInformation
|
public class MuffleInformation
|
||||||
{
|
{
|
||||||
|
public string PROJECT { get; set; } // 프로젝트
|
||||||
public string EQUIPMENTNUMBER { get; set; } // 장비번호
|
public string EQUIPMENTNUMBER { get; set; } // 장비번호
|
||||||
public string LOCATION { get; set; } // 설치위치
|
public string LOCATION { get; set; } // 설치위치
|
||||||
public string USAGE { get; set; } // 용도
|
public string USAGE { get; set; } // 용도
|
||||||
public string AIRVOLUME { get; set; } // 풍량
|
public string AIRVOLUME { get; set; } // 풍량
|
||||||
public string PRESSURE { get; set; } // 정압
|
public string PRESSURE { get; set; } // 정압
|
||||||
public string EFFICIENCY { get; set; } // 효율
|
public string EFFICIENCY { get; set; } // 효율
|
||||||
|
public string HUBRATIO { get; set; } // 효율
|
||||||
|
public string DIA { get; set; } // 효율
|
||||||
public string FANTYPE { get; set; } // FAN TYPE
|
public string FANTYPE { get; set; } // FAN TYPE
|
||||||
public string FANQTY { get; set; } // FAN 수량
|
public string FANQTY { get; set; } // FAN 수량
|
||||||
public string NOISESTANDARD { get; set; } // 소음기준
|
public string NOISESTANDARD { get; set; } // 소음기준
|
||||||
|
|
||||||
public string DUCTSIZE_W { get; set; } // 덕트 사이즈 W
|
public string DUCTSIZE_W { get; set; } // 덕트 사이즈 W
|
||||||
public string DUCTSIZE_H { get; set; } // 덕트 사이즈 H
|
public string DUCTSIZE_H { get; set; } // 덕트 사이즈 H
|
||||||
public string CHAMBERSIZE_W { get; set; } // 소음챔버 사이즈 W
|
public string CHAMBERSIZE_W { get; set; } // 일반챔버 사이즈 W
|
||||||
public string CHAMBERSIZE_H { get; set; } // 소음챔버 사이즈 H
|
public string CHAMBERSIZE_H { get; set; } // 일반챔버 사이즈 H
|
||||||
public string CHAMBERSIZE_L { get; set; } // 소음챔버 사이즈 L
|
public string CHAMBERSIZE_L { get; set; } // 일반챔버 사이즈 L
|
||||||
|
public string NOISECHAMBERSIZE_W { get; set; } // 소음챔버 사이즈 W
|
||||||
|
public string NOISECHAMBERSIZE_H { get; set; } // 소음챔버 사이즈 H
|
||||||
|
public string NOISECHAMBERSIZE_L { get; set; } // 소음챔버 사이즈 L
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class MuffleDuctSystem
|
public class MuffleDuctSystem
|
||||||
|
|
@ -88,11 +102,26 @@ namespace MainUI.Model
|
||||||
public string ROUNDELBOWQTY { get; set; } // 라운드엘보 수량
|
public string ROUNDELBOWQTY { get; set; } // 라운드엘보 수량
|
||||||
public string NOISEELBOWQTY { get; set; } // 소음엘보 수량
|
public string NOISEELBOWQTY { get; set; } // 소음엘보 수량
|
||||||
public string BRANCHAIRVOLUME { get; set; } // 분기풍량
|
public string BRANCHAIRVOLUME { get; set; } // 분기풍량
|
||||||
public string DIFUUSERTYPE { get; set; } // 디퓨저 종류
|
public string DIFFUSERTYPE { get; set; } // 디퓨저 종류
|
||||||
|
public string SAFERATE { get; set; } // 전체 시스템 안전율
|
||||||
|
|
||||||
public string ND_W { get; set; } // N.D (W)
|
public string ND_W { get; set; } // N.D (W)
|
||||||
public string ND_H { get; set; } // N.D (H)
|
public string ND_H { get; set; } // N.D (H)
|
||||||
public string DUCTZOOMSIZE_W { get; set; } // 덕트확대 사이즈 (W)
|
public string DUCTZOOMSIZE_W { get; set; } // 덕트확대 사이즈 (W)
|
||||||
public string DUCTZOOMSIZE_H { get; set; } // 덕트확대 사이즈 (H)
|
public string DUCTZOOMSIZE_H { get; set; } // 덕트확대 사이즈 (H)
|
||||||
|
public string SELECTIONNOISE { get; set; } // 발생소음선정 (큰:1, 작은:2)
|
||||||
|
public string INDOORNOISE { get; set; } // 실내 발생 소음 보정 (기준값:5)
|
||||||
|
public string MUFFLESIZE_W { get; set; } // 덕트확대 사이즈 (H)
|
||||||
|
public string MUFFLESIZE_H { get; set; } // 덕트확대 사이즈 (H)
|
||||||
|
public string MUFFLESIZE_L { get; set; } // 덕트확대 사이즈 (H)
|
||||||
|
public string NOISELEVEL_63 { get; set; } //발생 소음도 63
|
||||||
|
public string NOISELEVEL_125 { get; set; } //발생 소음도 125
|
||||||
|
public string NOISELEVEL_250 { get; set; } //발생 소음도 250
|
||||||
|
public string NOISELEVEL_500 { get; set; } //발생 소음도 500
|
||||||
|
public string NOISELEVEL_1000 { get; set; } //발생 소음도 1000
|
||||||
|
public string NOISELEVEL_2000 { get; set; } //발생 소음도 2000
|
||||||
|
public string NOISELEVEL_4000 { get; set; } //발생 소음도 4000
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,186 @@
|
||||||
|
using DevExpress.XtraEditors;
|
||||||
|
using MainUI.Model;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Resources;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MainUI
|
||||||
|
{
|
||||||
|
public partial class MuffleDuctSystemUserControl : UserControl
|
||||||
|
{
|
||||||
|
public MuffleDuctSystemUserControl()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MuffleDuctSystem GetDuctSystem()
|
||||||
|
{
|
||||||
|
return new MuffleDuctSystem
|
||||||
|
{
|
||||||
|
DUCTLENGTH = text_DuctLength.Text,
|
||||||
|
SQUAREELBOWQTY = text_SquareElbowQty.Text,
|
||||||
|
ROUNDELBOWQTY = text_RoundElbowQty.Text,
|
||||||
|
NOISEELBOWQTY = text_NoiseElbowQty.Text,
|
||||||
|
BRANCHAIRVOLUME = text_BranchAirVol.Text,
|
||||||
|
DIFFUSERTYPE = cb_DiffuserType.Text,
|
||||||
|
SAFERATE = text_SafeRate.Text.Substring(0, text_SafeRate.Text.Length - 1),
|
||||||
|
ND_W = text_ND_W.Text,
|
||||||
|
ND_H = text_ND_H.Text,
|
||||||
|
DUCTZOOMSIZE_W = text_DuctZoomSize_W.Text,
|
||||||
|
DUCTZOOMSIZE_H = text_DuctZoomSize_H.Text,
|
||||||
|
SELECTIONNOISE = cb_SelectionNoise.Text,
|
||||||
|
INDOORNOISE = text_IndoorNoise.Text.Substring(0, text_IndoorNoise.Text.Length - 2),
|
||||||
|
MUFFLESIZE_W = text_MuffleSize_W.Text,
|
||||||
|
MUFFLESIZE_H = text_MuffleSize_H.Text,
|
||||||
|
MUFFLESIZE_L = text_MuffleSize_L.Text,
|
||||||
|
NOISELEVEL_63 = text_63.Text,
|
||||||
|
NOISELEVEL_125 = text_125.Text,
|
||||||
|
NOISELEVEL_250 = text_250.Text,
|
||||||
|
NOISELEVEL_500 = text_500.Text,
|
||||||
|
NOISELEVEL_1000 = text_1000.Text,
|
||||||
|
NOISELEVEL_2000 = text_2000.Text,
|
||||||
|
NOISELEVEL_4000 = text_4000.Text
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetDuctSystem(MuffleDuctSystem ductSystem)
|
||||||
|
{
|
||||||
|
if (ductSystem == null)
|
||||||
|
{
|
||||||
|
text_DuctLength.Text = "";
|
||||||
|
text_SquareElbowQty.Text = "";
|
||||||
|
text_RoundElbowQty.Text = "";
|
||||||
|
text_NoiseElbowQty.Text = "";
|
||||||
|
text_BranchAirVol.Text = "";
|
||||||
|
cb_DiffuserType.SelectedIndex = 0;
|
||||||
|
text_SafeRate.Text = "";
|
||||||
|
text_ND_W.Text = "";
|
||||||
|
text_ND_H.Text = "";
|
||||||
|
text_DuctZoomSize_W.Text = "";
|
||||||
|
text_DuctZoomSize_H.Text = "";
|
||||||
|
cb_SelectionNoise.SelectedIndex = 0;
|
||||||
|
text_IndoorNoise.Text = "";
|
||||||
|
text_MuffleSize_W.Text = "";
|
||||||
|
text_MuffleSize_H.Text = "";
|
||||||
|
text_MuffleSize_L.Text = "";
|
||||||
|
text_63.Text = "";
|
||||||
|
text_125.Text = "";
|
||||||
|
text_250.Text = "";
|
||||||
|
text_500.Text = "";
|
||||||
|
text_1000.Text = "";
|
||||||
|
text_2000.Text = "";
|
||||||
|
text_4000.Text = "";
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
text_DuctLength.Text = ductSystem.DUCTLENGTH;
|
||||||
|
text_SquareElbowQty.Text = ductSystem.SQUAREELBOWQTY;
|
||||||
|
text_RoundElbowQty.Text = ductSystem.ROUNDELBOWQTY;
|
||||||
|
text_NoiseElbowQty.Text = ductSystem.NOISEELBOWQTY;
|
||||||
|
text_BranchAirVol.Text = ductSystem.BRANCHAIRVOLUME;
|
||||||
|
cb_DiffuserType.Text = ductSystem.DIFFUSERTYPE;
|
||||||
|
text_SafeRate.Text = ductSystem.SAFERATE;
|
||||||
|
text_ND_W.Text = ductSystem.ND_W;
|
||||||
|
text_ND_H.Text = ductSystem.ND_H;
|
||||||
|
text_DuctZoomSize_W.Text = ductSystem.DUCTZOOMSIZE_W;
|
||||||
|
text_DuctZoomSize_H.Text = ductSystem.DUCTZOOMSIZE_H;
|
||||||
|
cb_SelectionNoise.Text = ductSystem.SELECTIONNOISE;
|
||||||
|
text_IndoorNoise.Text = ductSystem.INDOORNOISE;
|
||||||
|
text_MuffleSize_W.Text = ductSystem.MUFFLESIZE_W;
|
||||||
|
text_MuffleSize_H.Text = ductSystem.MUFFLESIZE_H;
|
||||||
|
text_MuffleSize_L.Text = ductSystem.MUFFLESIZE_L;
|
||||||
|
text_63.Text = ductSystem.NOISELEVEL_63;
|
||||||
|
text_125.Text = ductSystem.NOISELEVEL_125;
|
||||||
|
text_250.Text = ductSystem.NOISELEVEL_250;
|
||||||
|
text_500.Text = ductSystem.NOISELEVEL_500;
|
||||||
|
text_1000.Text = ductSystem.NOISELEVEL_1000;
|
||||||
|
text_2000.Text = ductSystem.NOISELEVEL_2000;
|
||||||
|
text_4000.Text = ductSystem.NOISELEVEL_4000;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ChangedLanguage()
|
||||||
|
{
|
||||||
|
ResourceManager rm = Properties.Resources.ResourceManager;
|
||||||
|
var culture = System.Threading.Thread.CurrentThread.CurrentUICulture;
|
||||||
|
|
||||||
|
var font = new System.Drawing.Font("Tahoma", 14F);
|
||||||
|
|
||||||
|
// 리소스 키 - LabelControl 매핑
|
||||||
|
var labelMap = new Dictionary<string, LabelControl>
|
||||||
|
{
|
||||||
|
{ "Duct_Length", lb_DuctLength },
|
||||||
|
{ "SquareElbowQty", lb_SquareElbowQty },
|
||||||
|
{ "RoundElbowQty", lb_RoundElbowQty },
|
||||||
|
{ "NoiseElbowQty", lb_NoiseElbowQty },
|
||||||
|
{ "BranchAirVolume", lb_BranchAirVol },
|
||||||
|
{ "DiffuserType", lb_DiffuserType },
|
||||||
|
{ "SafeRate", lb_SafeRate },
|
||||||
|
{ "DuctZoomSize_W", lb_DuctZoomSize_W },
|
||||||
|
{ "DuctZoomSize_H", lb_DuctZoomSize_H },
|
||||||
|
{ "Selection_of_Noise", lb_SelectionNoise },
|
||||||
|
{ "IndoorNoise", lb_IndoorNoise },
|
||||||
|
{ "MuffleSize", lb_MuffleSize },
|
||||||
|
{ "Noise_Level", lb_NoiseLevel }
|
||||||
|
};
|
||||||
|
|
||||||
|
// 반복문으로 리소스와 폰트 적용
|
||||||
|
foreach (var pair in labelMap)
|
||||||
|
{
|
||||||
|
string key = pair.Key;
|
||||||
|
LabelControl label = pair.Value;
|
||||||
|
|
||||||
|
string text = rm.GetString(key, culture); // 문화권 반영
|
||||||
|
if (!string.IsNullOrEmpty(text))
|
||||||
|
label.Text = text;
|
||||||
|
|
||||||
|
label.Appearance.Font = font;
|
||||||
|
label.Appearance.Options.UseFont = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 예외 폰트 처리
|
||||||
|
lb_SafeRate.Font = new System.Drawing.Font("Tahoma", 11F);
|
||||||
|
lb_SquareElbowQty.Font = new System.Drawing.Font("Tahoma", 12F);
|
||||||
|
lb_RoundElbowQty.Font = new System.Drawing.Font("Tahoma", 12F);
|
||||||
|
lb_NoiseElbowQty.Font = new System.Drawing.Font("Tahoma", 12F);
|
||||||
|
lb_DuctZoomSize_W.Font = new System.Drawing.Font("Tahoma", 12F);
|
||||||
|
lb_DuctZoomSize_H.Font = new System.Drawing.Font("Tahoma", 12F);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MuffleDuctSystemUserControl_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void text_IndoorNoise_CustomDisplayText(object sender, DevExpress.XtraEditors.Controls.CustomDisplayTextEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Value == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
decimal value;
|
||||||
|
if (!decimal.TryParse(e.Value.ToString(), out value))
|
||||||
|
return;
|
||||||
|
|
||||||
|
e.DisplayText = value.ToString() + "dB";
|
||||||
|
}
|
||||||
|
|
||||||
|
private void text_SafeRate_CustomDisplayText(object sender, DevExpress.XtraEditors.Controls.CustomDisplayTextEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Value == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
decimal value;
|
||||||
|
if (!decimal.TryParse(e.Value.ToString(), out value))
|
||||||
|
return;
|
||||||
|
|
||||||
|
e.DisplayText = value.ToString() + "%";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,120 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,177 @@
|
||||||
|
using DevExpress.XtraEditors;
|
||||||
|
using MainUI.Model;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Resources;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MainUI
|
||||||
|
{
|
||||||
|
public partial class MuffleInformationUserControl : UserControl
|
||||||
|
{
|
||||||
|
|
||||||
|
public event Action<string> FanTypeChanged;
|
||||||
|
|
||||||
|
public MuffleInformationUserControl()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public MuffleInformation GetInformation()
|
||||||
|
{
|
||||||
|
return new MuffleInformation
|
||||||
|
{
|
||||||
|
PROJECT = text_Project.Text,
|
||||||
|
EQUIPMENTNUMBER = text_EquipmentNo.Text,
|
||||||
|
LOCATION = text_Location.Text,
|
||||||
|
USAGE = text_Usage.Text,
|
||||||
|
AIRVOLUME = text_AirVolume.Text,
|
||||||
|
PRESSURE = text_Pressure.Text,
|
||||||
|
EFFICIENCY = text_Efficiency.Text.Substring(0, text_Efficiency.Text.Length - 1),
|
||||||
|
HUBRATIO = text_HubRatio.Text.Substring(0, text_HubRatio.Text.Length - 1),
|
||||||
|
DIA = text_DIA.Text,
|
||||||
|
FANTYPE = cb_FanType.Text,
|
||||||
|
FANQTY = text_FanQty.Text,
|
||||||
|
NOISESTANDARD = cb_NoiseStandard.Text,
|
||||||
|
DUCTSIZE_W = text_DuctSize_W.Text,
|
||||||
|
DUCTSIZE_H = text_DuctSize_H.Text,
|
||||||
|
CHAMBERSIZE_W = text_ChamberSize_W.Text,
|
||||||
|
CHAMBERSIZE_H = text_ChamberSize_H.Text,
|
||||||
|
CHAMBERSIZE_L = text_ChamberSize_L.Text,
|
||||||
|
NOISECHAMBERSIZE_W = text_NoiseChamber_W.Text,
|
||||||
|
NOISECHAMBERSIZE_H = text_NoiseChamber_H.Text,
|
||||||
|
NOISECHAMBERSIZE_L = text_NoiseChamber_L.Text,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetInformation(MuffleInformation info)
|
||||||
|
{
|
||||||
|
if (info == null)
|
||||||
|
{
|
||||||
|
// 모든 컨트롤 초기화
|
||||||
|
text_Project.Text = "";
|
||||||
|
text_EquipmentNo.Text = "";
|
||||||
|
text_Location.Text = "";
|
||||||
|
text_Usage.Text = "";
|
||||||
|
text_AirVolume.Text= "";
|
||||||
|
text_Pressure.Text = "";
|
||||||
|
text_Efficiency.Text = "";
|
||||||
|
text_HubRatio.Text = "";
|
||||||
|
text_DIA.Text = "";
|
||||||
|
cb_FanType.SelectedIndex = 0;
|
||||||
|
text_FanQty.Text = "";
|
||||||
|
cb_NoiseStandard.SelectedIndex = 0;
|
||||||
|
text_DuctSize_W.Text = "";
|
||||||
|
text_DuctSize_H.Text = "";
|
||||||
|
text_ChamberSize_W.Text = "";
|
||||||
|
text_ChamberSize_H.Text = "";
|
||||||
|
text_ChamberSize_L.Text = "";
|
||||||
|
text_NoiseChamber_W.Text = "";
|
||||||
|
text_NoiseChamber_H.Text = "";
|
||||||
|
text_NoiseChamber_L.Text = "";
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
text_Project.Text = info.PROJECT;
|
||||||
|
text_EquipmentNo.Text = info.EQUIPMENTNUMBER;
|
||||||
|
text_Location.Text = info.LOCATION;
|
||||||
|
text_Usage.Text = info.USAGE;
|
||||||
|
text_AirVolume.Text = info.AIRVOLUME;
|
||||||
|
text_Pressure.Text = info.PRESSURE;
|
||||||
|
text_Efficiency.Text = info.EFFICIENCY;
|
||||||
|
text_HubRatio.Text = info.HUBRATIO;
|
||||||
|
text_DIA.Text = info.DIA;
|
||||||
|
cb_FanType.Text = info.FANTYPE;
|
||||||
|
text_FanQty.Text = info.FANQTY;
|
||||||
|
cb_NoiseStandard.Text = info.NOISESTANDARD;
|
||||||
|
text_DuctSize_W.Text = info.DUCTSIZE_W;
|
||||||
|
text_DuctSize_H.Text = info.DUCTSIZE_H;
|
||||||
|
text_ChamberSize_W.Text = info.CHAMBERSIZE_W;
|
||||||
|
text_ChamberSize_H.Text = info.CHAMBERSIZE_H;
|
||||||
|
text_ChamberSize_L.Text = info.CHAMBERSIZE_L;
|
||||||
|
text_NoiseChamber_W.Text = info.NOISECHAMBERSIZE_W;
|
||||||
|
text_NoiseChamber_H.Text = info.NOISECHAMBERSIZE_H;
|
||||||
|
text_NoiseChamber_L.Text = info.NOISECHAMBERSIZE_L;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ChangedLanguage()
|
||||||
|
{
|
||||||
|
ResourceManager rm = Properties.Resources.ResourceManager;
|
||||||
|
var culture = System.Threading.Thread.CurrentThread.CurrentUICulture;
|
||||||
|
|
||||||
|
var font = new System.Drawing.Font("Tahoma", 14F);
|
||||||
|
|
||||||
|
// 리소스 키 - LabelControl 매핑
|
||||||
|
var labelMap = new Dictionary<string, LabelControl>
|
||||||
|
{
|
||||||
|
{ "Project", lb_Project },
|
||||||
|
{ "ITEM_No", lb_EquipmentNo },
|
||||||
|
{ "Location", lb_InstallPoint },
|
||||||
|
{ "Service", lb_Usage },
|
||||||
|
{ "Air_Volume", lb_AirVolume },
|
||||||
|
{ "Pressure", lb_Pressure },
|
||||||
|
{ "Efficiency", lb_Efficiency },
|
||||||
|
{ "FAN_Qty", lb_FanQty },
|
||||||
|
{ "Noise_Standard", lb_NoiseStandard },
|
||||||
|
{ "Duct_Size", lb_DuctSize },
|
||||||
|
{ "Chamber_Size", lb_Chamber },
|
||||||
|
{ "NoiseChamber_Size", lb_NoiseChamber },
|
||||||
|
};
|
||||||
|
|
||||||
|
// 반복문으로 리소스와 폰트 적용
|
||||||
|
foreach (var pair in labelMap)
|
||||||
|
{
|
||||||
|
string key = pair.Key;
|
||||||
|
LabelControl label = pair.Value;
|
||||||
|
|
||||||
|
string text = rm.GetString(key, culture); // 문화권 반영
|
||||||
|
if (!string.IsNullOrEmpty(text))
|
||||||
|
label.Text = text;
|
||||||
|
|
||||||
|
label.Appearance.Font = font;
|
||||||
|
label.Appearance.Options.UseFont = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 예외 폰트 처리
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cb_FanType_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
FanTypeChanged?.Invoke(cb_FanType.Text ?? string.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void text_Efficiency_CustomDisplayText(object sender, DevExpress.XtraEditors.Controls.CustomDisplayTextEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Value == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
decimal value;
|
||||||
|
if (!decimal.TryParse(e.Value.ToString(), out value))
|
||||||
|
return;
|
||||||
|
|
||||||
|
e.DisplayText = value.ToString() + "%";
|
||||||
|
}
|
||||||
|
|
||||||
|
private void text_HubRatio_CustomDisplayText(object sender, DevExpress.XtraEditors.Controls.CustomDisplayTextEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Value == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
decimal value;
|
||||||
|
if (!decimal.TryParse(e.Value.ToString(), out value))
|
||||||
|
return;
|
||||||
|
|
||||||
|
e.DisplayText = value.ToString() + "%";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,120 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
|
|
@ -0,0 +1,315 @@
|
||||||
|
|
||||||
|
namespace MainUI
|
||||||
|
{
|
||||||
|
partial class MuffleTabUserControl
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 필수 디자이너 변수입니다.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 사용 중인 모든 리소스를 정리합니다.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 구성 요소 디자이너에서 생성한 코드
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 디자이너 지원에 필요한 메서드입니다.
|
||||||
|
/// 이 메서드의 내용을 코드 편집기로 수정하지 마세요.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.tablePanel1 = new DevExpress.Utils.Layout.TablePanel();
|
||||||
|
this.tablePanel2 = new DevExpress.Utils.Layout.TablePanel();
|
||||||
|
this.btn_Update = new System.Windows.Forms.Button();
|
||||||
|
this.btn_Del = new System.Windows.Forms.Button();
|
||||||
|
this.btn_Report = new System.Windows.Forms.Button();
|
||||||
|
this.btn_Add = new System.Windows.Forms.Button();
|
||||||
|
this.pictureEdit1 = new DevExpress.XtraEditors.PictureEdit();
|
||||||
|
this.listBoxControl1 = new DevExpress.XtraEditors.ListBoxControl();
|
||||||
|
this.panelControl1 = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.splitContainerControl1 = new DevExpress.XtraEditors.SplitContainerControl();
|
||||||
|
this.accordionControl1 = new DevExpress.XtraBars.Navigation.AccordionControl();
|
||||||
|
this.InformationTab = new DevExpress.XtraBars.Navigation.AccordionControlElement();
|
||||||
|
this.DuctSystemTab = new DevExpress.XtraBars.Navigation.AccordionControlElement();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.tablePanel1)).BeginInit();
|
||||||
|
this.tablePanel1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.tablePanel2)).BeginInit();
|
||||||
|
this.tablePanel2.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureEdit1.Properties)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.listBoxControl1)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.panelControl1)).BeginInit();
|
||||||
|
this.panelControl1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1.Panel1)).BeginInit();
|
||||||
|
this.splitContainerControl1.Panel1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1.Panel2)).BeginInit();
|
||||||
|
this.splitContainerControl1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.accordionControl1)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// tablePanel1
|
||||||
|
//
|
||||||
|
this.tablePanel1.Columns.AddRange(new DevExpress.Utils.Layout.TablePanelColumn[] {
|
||||||
|
new DevExpress.Utils.Layout.TablePanelColumn(DevExpress.Utils.Layout.TablePanelEntityStyle.Relative, 80F),
|
||||||
|
new DevExpress.Utils.Layout.TablePanelColumn(DevExpress.Utils.Layout.TablePanelEntityStyle.Relative, 20F)});
|
||||||
|
this.tablePanel1.Controls.Add(this.tablePanel2);
|
||||||
|
this.tablePanel1.Controls.Add(this.pictureEdit1);
|
||||||
|
this.tablePanel1.Controls.Add(this.listBoxControl1);
|
||||||
|
this.tablePanel1.Controls.Add(this.panelControl1);
|
||||||
|
this.tablePanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.tablePanel1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.tablePanel1.Name = "tablePanel1";
|
||||||
|
this.tablePanel1.Padding = new System.Windows.Forms.Padding(7);
|
||||||
|
this.tablePanel1.Rows.AddRange(new DevExpress.Utils.Layout.TablePanelRow[] {
|
||||||
|
new DevExpress.Utils.Layout.TablePanelRow(DevExpress.Utils.Layout.TablePanelEntityStyle.Relative, 70F),
|
||||||
|
new DevExpress.Utils.Layout.TablePanelRow(DevExpress.Utils.Layout.TablePanelEntityStyle.Absolute, 40F),
|
||||||
|
new DevExpress.Utils.Layout.TablePanelRow(DevExpress.Utils.Layout.TablePanelEntityStyle.Relative, 23F)});
|
||||||
|
this.tablePanel1.Size = new System.Drawing.Size(1432, 928);
|
||||||
|
this.tablePanel1.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// tablePanel2
|
||||||
|
//
|
||||||
|
this.tablePanel1.SetColumn(this.tablePanel2, 0);
|
||||||
|
this.tablePanel2.Columns.AddRange(new DevExpress.Utils.Layout.TablePanelColumn[] {
|
||||||
|
new DevExpress.Utils.Layout.TablePanelColumn(DevExpress.Utils.Layout.TablePanelEntityStyle.Absolute, 170F),
|
||||||
|
new DevExpress.Utils.Layout.TablePanelColumn(DevExpress.Utils.Layout.TablePanelEntityStyle.Relative, 45F),
|
||||||
|
new DevExpress.Utils.Layout.TablePanelColumn(DevExpress.Utils.Layout.TablePanelEntityStyle.Absolute, 145F),
|
||||||
|
new DevExpress.Utils.Layout.TablePanelColumn(DevExpress.Utils.Layout.TablePanelEntityStyle.Absolute, 145F),
|
||||||
|
new DevExpress.Utils.Layout.TablePanelColumn(DevExpress.Utils.Layout.TablePanelEntityStyle.Absolute, 145F)});
|
||||||
|
this.tablePanel2.Controls.Add(this.btn_Update);
|
||||||
|
this.tablePanel2.Controls.Add(this.btn_Del);
|
||||||
|
this.tablePanel2.Controls.Add(this.btn_Report);
|
||||||
|
this.tablePanel2.Controls.Add(this.btn_Add);
|
||||||
|
this.tablePanel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.tablePanel2.Location = new System.Drawing.Point(7, 665);
|
||||||
|
this.tablePanel2.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.tablePanel2.Name = "tablePanel2";
|
||||||
|
this.tablePanel1.SetRow(this.tablePanel2, 1);
|
||||||
|
this.tablePanel2.Rows.AddRange(new DevExpress.Utils.Layout.TablePanelRow[] {
|
||||||
|
new DevExpress.Utils.Layout.TablePanelRow(DevExpress.Utils.Layout.TablePanelEntityStyle.Relative, 100F)});
|
||||||
|
this.tablePanel2.Size = new System.Drawing.Size(1134, 40);
|
||||||
|
this.tablePanel2.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// btn_Update
|
||||||
|
//
|
||||||
|
this.tablePanel2.SetColumn(this.btn_Update, 4);
|
||||||
|
this.btn_Update.Dock = System.Windows.Forms.DockStyle.Right;
|
||||||
|
this.btn_Update.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btn_Update.Location = new System.Drawing.Point(992, 0);
|
||||||
|
this.btn_Update.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
|
||||||
|
this.btn_Update.Name = "btn_Update";
|
||||||
|
this.tablePanel2.SetRow(this.btn_Update, 0);
|
||||||
|
this.btn_Update.Size = new System.Drawing.Size(139, 40);
|
||||||
|
this.btn_Update.TabIndex = 4;
|
||||||
|
this.btn_Update.UseVisualStyleBackColor = true;
|
||||||
|
this.btn_Update.Click += new System.EventHandler(this.btn_Update_Click);
|
||||||
|
//
|
||||||
|
// btn_Del
|
||||||
|
//
|
||||||
|
this.tablePanel2.SetColumn(this.btn_Del, 3);
|
||||||
|
this.btn_Del.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.btn_Del.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btn_Del.Location = new System.Drawing.Point(847, 0);
|
||||||
|
this.btn_Del.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
|
||||||
|
this.btn_Del.Name = "btn_Del";
|
||||||
|
this.tablePanel2.SetRow(this.btn_Del, 0);
|
||||||
|
this.btn_Del.Size = new System.Drawing.Size(133, 40);
|
||||||
|
this.btn_Del.TabIndex = 1;
|
||||||
|
this.btn_Del.UseVisualStyleBackColor = true;
|
||||||
|
this.btn_Del.Click += new System.EventHandler(this.btn_Del_Click);
|
||||||
|
//
|
||||||
|
// btn_Report
|
||||||
|
//
|
||||||
|
this.btn_Report.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.btn_Report.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btn_Report.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.btn_Report.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.btn_Report.Name = "btn_Report";
|
||||||
|
this.btn_Report.Size = new System.Drawing.Size(170, 40);
|
||||||
|
this.btn_Report.TabIndex = 2;
|
||||||
|
this.btn_Report.UseVisualStyleBackColor = true;
|
||||||
|
this.btn_Report.Click += new System.EventHandler(this.btn_Report_Click);
|
||||||
|
//
|
||||||
|
// btn_Add
|
||||||
|
//
|
||||||
|
this.tablePanel2.SetColumn(this.btn_Add, 2);
|
||||||
|
this.btn_Add.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.btn_Add.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btn_Add.Location = new System.Drawing.Point(702, 0);
|
||||||
|
this.btn_Add.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
|
||||||
|
this.btn_Add.Name = "btn_Add";
|
||||||
|
this.tablePanel2.SetRow(this.btn_Add, 0);
|
||||||
|
this.btn_Add.Size = new System.Drawing.Size(133, 40);
|
||||||
|
this.btn_Add.TabIndex = 0;
|
||||||
|
this.btn_Add.UseVisualStyleBackColor = true;
|
||||||
|
this.btn_Add.Click += new System.EventHandler(this.btn_Add_Click);
|
||||||
|
//
|
||||||
|
// pictureEdit1
|
||||||
|
//
|
||||||
|
this.tablePanel1.SetColumn(this.pictureEdit1, 0);
|
||||||
|
this.pictureEdit1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.pictureEdit1.Location = new System.Drawing.Point(10, 708);
|
||||||
|
this.pictureEdit1.Name = "pictureEdit1";
|
||||||
|
this.pictureEdit1.Properties.ShowCameraMenuItem = DevExpress.XtraEditors.Controls.CameraMenuItemVisibility.Auto;
|
||||||
|
this.pictureEdit1.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Zoom;
|
||||||
|
this.tablePanel1.SetRow(this.pictureEdit1, 2);
|
||||||
|
this.pictureEdit1.Size = new System.Drawing.Size(1128, 210);
|
||||||
|
this.pictureEdit1.TabIndex = 4;
|
||||||
|
//
|
||||||
|
// listBoxControl1
|
||||||
|
//
|
||||||
|
this.listBoxControl1.Appearance.Font = new System.Drawing.Font("Tahoma", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.listBoxControl1.Appearance.Options.UseFont = true;
|
||||||
|
this.listBoxControl1.Appearance.Options.UseTextOptions = true;
|
||||||
|
this.listBoxControl1.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
|
||||||
|
this.listBoxControl1.Appearance.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Center;
|
||||||
|
this.tablePanel1.SetColumn(this.listBoxControl1, 1);
|
||||||
|
this.listBoxControl1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.listBoxControl1.Location = new System.Drawing.Point(1144, 10);
|
||||||
|
this.listBoxControl1.Name = "listBoxControl1";
|
||||||
|
this.tablePanel1.SetRow(this.listBoxControl1, 0);
|
||||||
|
this.tablePanel1.SetRowSpan(this.listBoxControl1, 3);
|
||||||
|
this.listBoxControl1.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
||||||
|
this.listBoxControl1.Size = new System.Drawing.Size(278, 908);
|
||||||
|
this.listBoxControl1.TabIndex = 3;
|
||||||
|
this.listBoxControl1.SelectedIndexChanged += new System.EventHandler(this.listBoxControl1_SelectedIndexChanged);
|
||||||
|
//
|
||||||
|
// panelControl1
|
||||||
|
//
|
||||||
|
this.tablePanel1.SetColumn(this.panelControl1, 0);
|
||||||
|
this.panelControl1.Controls.Add(this.splitContainerControl1);
|
||||||
|
this.panelControl1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.panelControl1.Location = new System.Drawing.Point(10, 10);
|
||||||
|
this.panelControl1.Name = "panelControl1";
|
||||||
|
this.tablePanel1.SetRow(this.panelControl1, 0);
|
||||||
|
this.panelControl1.Size = new System.Drawing.Size(1128, 652);
|
||||||
|
this.panelControl1.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// splitContainerControl1
|
||||||
|
//
|
||||||
|
this.splitContainerControl1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.splitContainerControl1.Location = new System.Drawing.Point(2, 2);
|
||||||
|
this.splitContainerControl1.Name = "splitContainerControl1";
|
||||||
|
this.splitContainerControl1.Padding = new System.Windows.Forms.Padding(5);
|
||||||
|
//
|
||||||
|
// splitContainerControl1.Panel1
|
||||||
|
//
|
||||||
|
this.splitContainerControl1.Panel1.Controls.Add(this.accordionControl1);
|
||||||
|
this.splitContainerControl1.Panel1.Text = "Panel1";
|
||||||
|
//
|
||||||
|
// splitContainerControl1.Panel2
|
||||||
|
//
|
||||||
|
this.splitContainerControl1.Panel2.Padding = new System.Windows.Forms.Padding(5);
|
||||||
|
this.splitContainerControl1.Panel2.Text = "Panel2";
|
||||||
|
this.splitContainerControl1.Size = new System.Drawing.Size(1124, 648);
|
||||||
|
this.splitContainerControl1.SplitterPosition = 257;
|
||||||
|
this.splitContainerControl1.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// accordionControl1
|
||||||
|
//
|
||||||
|
this.accordionControl1.Appearance.AccordionControl.BackColor = System.Drawing.Color.White;
|
||||||
|
this.accordionControl1.Appearance.AccordionControl.Options.UseBackColor = true;
|
||||||
|
this.accordionControl1.Appearance.Item.Default.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.accordionControl1.Appearance.Item.Default.Options.UseBackColor = true;
|
||||||
|
this.accordionControl1.Appearance.Item.Hovered.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
|
||||||
|
this.accordionControl1.Appearance.Item.Hovered.Options.UseBackColor = true;
|
||||||
|
this.accordionControl1.Appearance.Item.Pressed.BackColor = System.Drawing.SystemColors.MenuHighlight;
|
||||||
|
this.accordionControl1.Appearance.Item.Pressed.Options.UseBackColor = true;
|
||||||
|
this.accordionControl1.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.accordionControl1.Elements.AddRange(new DevExpress.XtraBars.Navigation.AccordionControlElement[] {
|
||||||
|
this.InformationTab,
|
||||||
|
this.DuctSystemTab});
|
||||||
|
this.accordionControl1.ItemHeight = 70;
|
||||||
|
this.accordionControl1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.accordionControl1.Name = "accordionControl1";
|
||||||
|
this.accordionControl1.Padding = new System.Windows.Forms.Padding(3);
|
||||||
|
this.accordionControl1.ScrollBarMode = DevExpress.XtraBars.Navigation.ScrollBarMode.Hidden;
|
||||||
|
this.accordionControl1.Size = new System.Drawing.Size(260, 638);
|
||||||
|
this.accordionControl1.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// InformationTab
|
||||||
|
//
|
||||||
|
this.InformationTab.Appearance.Default.Font = new System.Drawing.Font("Tahoma", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.InformationTab.Appearance.Default.Options.UseFont = true;
|
||||||
|
this.InformationTab.Appearance.Default.Options.UseTextOptions = true;
|
||||||
|
this.InformationTab.Appearance.Default.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
|
||||||
|
this.InformationTab.Appearance.Default.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Center;
|
||||||
|
this.InformationTab.Appearance.Hovered.BackColor = System.Drawing.Color.SkyBlue;
|
||||||
|
this.InformationTab.Appearance.Hovered.Options.UseBackColor = true;
|
||||||
|
this.InformationTab.HeaderTemplate.AddRange(new DevExpress.XtraBars.Navigation.HeaderElementInfo[] {
|
||||||
|
new DevExpress.XtraBars.Navigation.HeaderElementInfo(DevExpress.XtraBars.Navigation.HeaderElementType.Text),
|
||||||
|
new DevExpress.XtraBars.Navigation.HeaderElementInfo(DevExpress.XtraBars.Navigation.HeaderElementType.Image),
|
||||||
|
new DevExpress.XtraBars.Navigation.HeaderElementInfo(DevExpress.XtraBars.Navigation.HeaderElementType.HeaderControl),
|
||||||
|
new DevExpress.XtraBars.Navigation.HeaderElementInfo(DevExpress.XtraBars.Navigation.HeaderElementType.ContextButtons)});
|
||||||
|
this.InformationTab.Name = "InformationTab";
|
||||||
|
this.InformationTab.Style = DevExpress.XtraBars.Navigation.ElementStyle.Item;
|
||||||
|
this.InformationTab.Tag = "Information";
|
||||||
|
this.InformationTab.Click += new System.EventHandler(this.InformationTab_Click);
|
||||||
|
//
|
||||||
|
// DuctSystemTab
|
||||||
|
//
|
||||||
|
this.DuctSystemTab.Appearance.Default.Font = new System.Drawing.Font("Tahoma", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.DuctSystemTab.Appearance.Default.Options.UseFont = true;
|
||||||
|
this.DuctSystemTab.Appearance.Default.Options.UseTextOptions = true;
|
||||||
|
this.DuctSystemTab.Appearance.Default.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
|
||||||
|
this.DuctSystemTab.Appearance.Default.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Center;
|
||||||
|
this.DuctSystemTab.Appearance.Hovered.BackColor = System.Drawing.Color.SkyBlue;
|
||||||
|
this.DuctSystemTab.Appearance.Hovered.Options.UseBackColor = true;
|
||||||
|
this.DuctSystemTab.Name = "DuctSystemTab";
|
||||||
|
this.DuctSystemTab.Style = DevExpress.XtraBars.Navigation.ElementStyle.Item;
|
||||||
|
this.DuctSystemTab.Click += new System.EventHandler(this.DuctSystemTab_Click);
|
||||||
|
//
|
||||||
|
// MuffleTabUserControl
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Controls.Add(this.tablePanel1);
|
||||||
|
this.Name = "MuffleTabUserControl";
|
||||||
|
this.Size = new System.Drawing.Size(1432, 928);
|
||||||
|
this.Load += new System.EventHandler(this.MuffleTab_Load);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.tablePanel1)).EndInit();
|
||||||
|
this.tablePanel1.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.tablePanel2)).EndInit();
|
||||||
|
this.tablePanel2.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureEdit1.Properties)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.listBoxControl1)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.panelControl1)).EndInit();
|
||||||
|
this.panelControl1.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1.Panel1)).EndInit();
|
||||||
|
this.splitContainerControl1.Panel1.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1.Panel2)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1)).EndInit();
|
||||||
|
this.splitContainerControl1.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.accordionControl1)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private DevExpress.Utils.Layout.TablePanel tablePanel1;
|
||||||
|
private DevExpress.Utils.Layout.TablePanel tablePanel2;
|
||||||
|
private System.Windows.Forms.Button btn_Update;
|
||||||
|
private System.Windows.Forms.Button btn_Del;
|
||||||
|
private System.Windows.Forms.Button btn_Report;
|
||||||
|
private System.Windows.Forms.Button btn_Add;
|
||||||
|
private DevExpress.XtraEditors.PictureEdit pictureEdit1;
|
||||||
|
public DevExpress.XtraEditors.ListBoxControl listBoxControl1;
|
||||||
|
private DevExpress.XtraEditors.PanelControl panelControl1;
|
||||||
|
private DevExpress.XtraEditors.SplitContainerControl splitContainerControl1;
|
||||||
|
private DevExpress.XtraBars.Navigation.AccordionControl accordionControl1;
|
||||||
|
private DevExpress.XtraBars.Navigation.AccordionControlElement InformationTab;
|
||||||
|
private DevExpress.XtraBars.Navigation.AccordionControlElement DuctSystemTab;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,236 @@
|
||||||
|
using DevExpress.XtraEditors;
|
||||||
|
using MainUI.Model;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MainUI
|
||||||
|
{
|
||||||
|
public partial class MuffleTabUserControl : UserControl
|
||||||
|
{
|
||||||
|
public MuffleInformationUserControl tab1;
|
||||||
|
public MuffleDuctSystemUserControl tab2;
|
||||||
|
|
||||||
|
public List<MufflePackage> MuffleData { get; set; } = new List<MufflePackage>();
|
||||||
|
|
||||||
|
public MuffleTabUserControl()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
tab1 = new MuffleInformationUserControl();
|
||||||
|
tab2 = new MuffleDuctSystemUserControl();
|
||||||
|
tab1.Dock = DockStyle.Fill;
|
||||||
|
tab2.Dock = DockStyle.Fill;
|
||||||
|
ChangedLanguage();
|
||||||
|
|
||||||
|
tab1.FanTypeChanged += Tab1_FanTypeChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ChangedLanguage()
|
||||||
|
{
|
||||||
|
var rm = Properties.Resources.ResourceManager;
|
||||||
|
CultureInfo culture = Thread.CurrentThread.CurrentUICulture;
|
||||||
|
|
||||||
|
var font = new Font("Tahoma", 12F);
|
||||||
|
|
||||||
|
// 탭 / 버튼 리소스 적용 함수
|
||||||
|
string L(string key) => rm.GetString(key, culture) ?? key;
|
||||||
|
|
||||||
|
// --- Tabs ---
|
||||||
|
InformationTab.Text = L("Muffle_General_Information");
|
||||||
|
DuctSystemTab.Text = L("Duct_System");
|
||||||
|
|
||||||
|
InformationTab.Appearance.Default.Font = font;
|
||||||
|
DuctSystemTab.Appearance.Default.Font = font;
|
||||||
|
|
||||||
|
// --- Buttons ---
|
||||||
|
btn_Add.Text = L("Add");
|
||||||
|
btn_Del.Text = L("Delete");
|
||||||
|
btn_Update.Text = L("Update");
|
||||||
|
btn_Report.Text = L("Print_Invoice");
|
||||||
|
|
||||||
|
btn_Add.Font = font;
|
||||||
|
btn_Del.Font = font;
|
||||||
|
btn_Update.Font = font;
|
||||||
|
btn_Report.Font = font;
|
||||||
|
|
||||||
|
tab1.ChangedLanguage();
|
||||||
|
tab2.ChangedLanguage();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Tab1_FanTypeChanged(string fantype)
|
||||||
|
{
|
||||||
|
// tab1에서 선택한 값 → tab2에도 반영
|
||||||
|
if (fantype == "MAKER")
|
||||||
|
{
|
||||||
|
List<TextEdit> NoiseLevelText = new List<TextEdit>
|
||||||
|
{
|
||||||
|
tab2.text_63, tab2.text_125, tab2.text_250,
|
||||||
|
tab2.text_500, tab2.text_1000, tab2.text_2000, tab2.text_4000
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (var t in NoiseLevelText)
|
||||||
|
{
|
||||||
|
t.Enabled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------- ControlEvent----------------------------------
|
||||||
|
//---------------------- ControlEvent----------------------------------
|
||||||
|
//---------------------- ControlEvent----------------------------------
|
||||||
|
|
||||||
|
private void InformationTab_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
splitContainerControl1.Panel2.Controls.Clear();
|
||||||
|
splitContainerControl1.Panel2.Controls.Add(tab1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DuctSystemTab_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
splitContainerControl1.Panel2.Controls.Clear();
|
||||||
|
splitContainerControl1.Panel2.Controls.Add(tab2);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MuffleTab_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
splitContainerControl1.Panel2.Controls.Clear();
|
||||||
|
splitContainerControl1.Panel2.Controls.Add(tab1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btn_Report_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string baseDir = AppDomain.CurrentDomain.BaseDirectory;
|
||||||
|
string reportDir = Path.Combine(baseDir, "Report");
|
||||||
|
string exePath = Path.Combine(reportDir, "NSV_Report.exe");
|
||||||
|
string savePath1 = Path.Combine(Application.StartupPath, "MuffleData.json");
|
||||||
|
string savePath2 = Path.Combine(reportDir, "MuffleData.json");
|
||||||
|
|
||||||
|
string json = JsonConvert.SerializeObject(MuffleData, Newtonsoft.Json.Formatting.Indented);
|
||||||
|
|
||||||
|
File.WriteAllText(savePath1, json, Encoding.UTF8);
|
||||||
|
File.WriteAllText(savePath2, json, Encoding.UTF8);
|
||||||
|
|
||||||
|
MessageBox.Show("저장 완료!", "저장 완료", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
|
||||||
|
var psi = new ProcessStartInfo
|
||||||
|
{
|
||||||
|
FileName = exePath,
|
||||||
|
WorkingDirectory = reportDir,
|
||||||
|
UseShellExecute = false,
|
||||||
|
Arguments = "1",
|
||||||
|
};
|
||||||
|
|
||||||
|
Process.Start(psi);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btn_Add_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string label = tab1.GetInformation().EQUIPMENTNUMBER.ToString();
|
||||||
|
|
||||||
|
foreach (string list in listBoxControl1.Items)
|
||||||
|
{
|
||||||
|
if (list == label)
|
||||||
|
{
|
||||||
|
MessageBox.Show($"{list}는 이미 존재 하는 장비 번호 입니다!", "데이터 추가 실패!", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MuffleData.Add(new MufflePackage
|
||||||
|
{
|
||||||
|
MuffleInformation = tab1.GetInformation(),
|
||||||
|
MuffleDuctSystem = tab2.GetDuctSystem()
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
listBoxControl1.Items.Add(label);
|
||||||
|
|
||||||
|
listBoxControl1.SelectedIndex = listBoxControl1.ItemCount - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void listBoxControl1_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// 새 항목 표시
|
||||||
|
int idx = listBoxControl1.SelectedIndex;
|
||||||
|
if (idx < 0 || idx >= MuffleData.Count)
|
||||||
|
return;
|
||||||
|
|
||||||
|
tab1.SetInformation(MuffleData[idx].MuffleInformation);
|
||||||
|
tab2.SetDuctSystem(MuffleData[idx].MuffleDuctSystem);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btn_Del_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
listBoxControl1.SelectedIndexChanged -= listBoxControl1_SelectedIndexChanged;
|
||||||
|
|
||||||
|
var indices = listBoxControl1.SelectedIndices.Cast<int>().OrderByDescending(i => i).ToList();
|
||||||
|
|
||||||
|
if (indices.Count == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
int lastIndex = indices.Last(); // 삭제 후 다시 선택할 기준 인덱스
|
||||||
|
|
||||||
|
// MuffleData와 ListBoxControl 동기 삭제
|
||||||
|
foreach (int idx in indices)
|
||||||
|
{
|
||||||
|
if (idx >= 0 && idx < MuffleData.Count)
|
||||||
|
MuffleData.RemoveAt(idx);
|
||||||
|
if (idx >= 0 && idx < listBoxControl1.Items.Count)
|
||||||
|
listBoxControl1.Items.RemoveAt(idx);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 이벤트 다시 연결
|
||||||
|
listBoxControl1.SelectedIndexChanged += listBoxControl1_SelectedIndexChanged;
|
||||||
|
|
||||||
|
if (MuffleData.Count == 0)
|
||||||
|
{
|
||||||
|
tab1.SetInformation(null);
|
||||||
|
tab2.SetDuctSystem(null);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 인덱스 계산 (현재 인덱스 - 1, 단 0 이하이면 0)
|
||||||
|
int newIndex = lastIndex - 1;
|
||||||
|
if (newIndex < 0) newIndex = 0;
|
||||||
|
|
||||||
|
MufflePackage selectedData = MuffleData[newIndex];
|
||||||
|
if (selectedData == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
tab1.SetInformation(selectedData.MuffleInformation);
|
||||||
|
tab2.SetDuctSystem(selectedData.MuffleDuctSystem);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btn_Update_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
int idx = listBoxControl1.SelectedIndex;
|
||||||
|
if (idx < 0 || idx >= MuffleData.Count)
|
||||||
|
{
|
||||||
|
MessageBox.Show("수정할 항목을 선택하세요.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 현재 탭의 내용으로 갱신
|
||||||
|
MuffleData[idx].MuffleInformation = tab1.GetInformation();
|
||||||
|
MuffleData[idx].MuffleDuctSystem = tab2.GetDuctSystem();
|
||||||
|
|
||||||
|
// 리스트박스 항목 라벨도 갱신 (예: 장비번호 표시)
|
||||||
|
string newLabel = tab1.GetInformation().EQUIPMENTNUMBER.ToString();
|
||||||
|
listBoxControl1.Items[idx] = newLabel;
|
||||||
|
|
||||||
|
MessageBox.Show("선택된 항목이 수정되었습니다.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,120 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
|
|
@ -33,7 +33,8 @@ namespace NSVDataEdit
|
||||||
|
|
||||||
private DataSelectForm _dataSelectForm;
|
private DataSelectForm _dataSelectForm;
|
||||||
|
|
||||||
private string[] fileNames = { "ISOData.json", "WeightData.json", "DisplacementData.json", "DefaultQty.json" };
|
private string[] fileNames = { "ISOData.json", "WeightData.json", "DisplacementData.json", "DefaultQty.json",
|
||||||
|
"SPLData.json", "MuffleReduceData.json", "FanNoiseData.json", "BFIData.json" };
|
||||||
|
|
||||||
private bool InitializeGrid()
|
private bool InitializeGrid()
|
||||||
{
|
{
|
||||||
|
|
@ -88,6 +89,29 @@ namespace NSVDataEdit
|
||||||
columns.Add("장비구분"); columns.Add("타입"); columns.Add("입력값"); columns.Add("방진기수량");
|
columns.Add("장비구분"); columns.Add("타입"); columns.Add("입력값"); columns.Add("방진기수량");
|
||||||
FlattenDefaultQty(originalJson);
|
FlattenDefaultQty(originalJson);
|
||||||
break;
|
break;
|
||||||
|
case 4:
|
||||||
|
columns.Add("소음기준");
|
||||||
|
columns.Add("63Hz"); columns.Add("125Hz"); columns.Add("250Hz"); columns.Add("500Hz");
|
||||||
|
columns.Add("1000Hz"); columns.Add("2000Hz"); columns.Add("4000Hz");
|
||||||
|
FlattenSPLJson(originalJson);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
columns.Add("소음기 길이(L)");
|
||||||
|
columns.Add("63Hz"); columns.Add("125Hz"); columns.Add("250Hz"); columns.Add("500Hz");
|
||||||
|
columns.Add("1000Hz"); columns.Add("2000Hz"); columns.Add("4000Hz");
|
||||||
|
FlattenMuffleReduce(originalJson);
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
columns.Add("발생소음선정"); columns.Add("FanType"); columns.Add("인덱스");
|
||||||
|
columns.Add("63Hz"); columns.Add("125Hz"); columns.Add("250Hz"); columns.Add("500Hz");
|
||||||
|
columns.Add("1000Hz"); columns.Add("2000Hz"); columns.Add("4000Hz");
|
||||||
|
FlattenFanNoise(originalJson);
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
columns.Add("FanType"); columns.Add("63Hz"); columns.Add("125Hz"); columns.Add("250Hz"); columns.Add("500Hz");
|
||||||
|
columns.Add("1000Hz"); columns.Add("2000Hz"); columns.Add("4000Hz");
|
||||||
|
FlattenBFI(originalJson);
|
||||||
|
break;
|
||||||
//case 4:
|
//case 4:
|
||||||
// columns.Add("이름"); columns.Add("출력 명칭");
|
// columns.Add("이름"); columns.Add("출력 명칭");
|
||||||
// FlattenFullNameJson(originalJson);
|
// FlattenFullNameJson(originalJson);
|
||||||
|
|
@ -366,6 +390,236 @@ namespace NSVDataEdit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void FlattenSPLJson(JObject root)
|
||||||
|
{
|
||||||
|
table = new DataTable();
|
||||||
|
table.Columns.Clear();
|
||||||
|
|
||||||
|
// ✅ 컬럼 정의
|
||||||
|
table.Columns.Add("소음기준", typeof(string));
|
||||||
|
|
||||||
|
string[] freqCols = new string[]
|
||||||
|
{
|
||||||
|
"63Hz", "125Hz", "250Hz", "500Hz", "1000Hz", "2000Hz", "4000Hz"
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (string col in freqCols)
|
||||||
|
table.Columns.Add(col, typeof(string));
|
||||||
|
|
||||||
|
if (root == null) return;
|
||||||
|
|
||||||
|
foreach (var item in root.Properties())
|
||||||
|
{
|
||||||
|
string noise = item.Name;
|
||||||
|
|
||||||
|
JArray arr = item.Value as JArray;
|
||||||
|
if (arr == null) continue;
|
||||||
|
|
||||||
|
DataRow row = table.NewRow();
|
||||||
|
row["소음기준"] = noise;
|
||||||
|
|
||||||
|
for (int i = 0; i < freqCols.Length; i++)
|
||||||
|
{
|
||||||
|
row[freqCols[i]] = (i < arr.Count)
|
||||||
|
? arr[i].ToString()
|
||||||
|
: "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
table.Rows.Add(row);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void FlattenMuffleReduce(JObject root)
|
||||||
|
{
|
||||||
|
table = new DataTable();
|
||||||
|
table.Columns.Clear();
|
||||||
|
|
||||||
|
string[] freqCols = new string[]
|
||||||
|
{
|
||||||
|
"63Hz", "125Hz", "250Hz", "500Hz", "1000Hz", "2000Hz", "4000Hz"
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (string col in freqCols)
|
||||||
|
table.Columns.Add(col, typeof(string));
|
||||||
|
|
||||||
|
if (root == null) return;
|
||||||
|
|
||||||
|
foreach (var prop in root.Properties())
|
||||||
|
{
|
||||||
|
string rowKey = prop.Name;
|
||||||
|
|
||||||
|
JArray arr = prop.Value as JArray;
|
||||||
|
if (arr == null) continue;
|
||||||
|
|
||||||
|
DataRow row = table.NewRow();
|
||||||
|
row["RowKey"] = rowKey;
|
||||||
|
|
||||||
|
for (int i = 0; i < freqCols.Length; i++)
|
||||||
|
{
|
||||||
|
row[freqCols[i]] = (i < arr.Count)
|
||||||
|
? arr[i].ToString()
|
||||||
|
: "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
table.Rows.Add(row);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void FlattenFanNoise(JObject root)
|
||||||
|
{
|
||||||
|
table = new DataTable();
|
||||||
|
table.Columns.Clear();
|
||||||
|
|
||||||
|
// ✅ 기본 컬럼
|
||||||
|
table.Columns.Add("발생소음선정", typeof(string)); // datasetKey ("1","2" or NOISECODE)
|
||||||
|
table.Columns.Add("FanType", typeof(string));
|
||||||
|
table.Columns.Add("인덱스", typeof(int)); // rowIndex
|
||||||
|
|
||||||
|
// ✅ 주파수 컬럼
|
||||||
|
string[] freqCols = new string[]
|
||||||
|
{
|
||||||
|
"63Hz", "125Hz", "250Hz", "500Hz", "1000Hz", "2000Hz", "4000Hz"
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (string col in freqCols)
|
||||||
|
table.Columns.Add(col, typeof(string));
|
||||||
|
|
||||||
|
if (root == null) return;
|
||||||
|
|
||||||
|
foreach (var dsProp in root.Properties()) // "1", "2" or "NOISECODE_1"
|
||||||
|
{
|
||||||
|
string datasetKey = dsProp.Name;
|
||||||
|
|
||||||
|
JObject datasetObj = dsProp.Value as JObject;
|
||||||
|
if (datasetObj == null) continue;
|
||||||
|
|
||||||
|
foreach (var fanProp in datasetObj.Properties()) // "AIR FOIL" ...
|
||||||
|
{
|
||||||
|
string fanType = fanProp.Name;
|
||||||
|
|
||||||
|
JArray rows = fanProp.Value as JArray; // [ [..7..], [..7..] ]
|
||||||
|
if (rows == null) continue;
|
||||||
|
|
||||||
|
for (int r = 0; r < rows.Count; r++)
|
||||||
|
{
|
||||||
|
JArray vals = rows[r] as JArray;
|
||||||
|
if (vals == null) continue;
|
||||||
|
|
||||||
|
DataRow row = table.NewRow();
|
||||||
|
row["발생소음선정"] = datasetKey;
|
||||||
|
row["FanType"] = fanType;
|
||||||
|
row["인덱스"] = r;
|
||||||
|
|
||||||
|
for (int i = 0; i < freqCols.Length; i++)
|
||||||
|
{
|
||||||
|
row[freqCols[i]] = (i < vals.Count)
|
||||||
|
? vals[i].ToString()
|
||||||
|
: "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
table.Rows.Add(row);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void FlattenBFI(JObject root)
|
||||||
|
{
|
||||||
|
table = new DataTable();
|
||||||
|
|
||||||
|
// 배열 인덱스 -> 컬럼명 매핑
|
||||||
|
string[] freqCols = new string[]
|
||||||
|
{
|
||||||
|
"63Hz", "125Hz", "250Hz", "500Hz", "1000Hz", "2000Hz", "4000Hz"
|
||||||
|
};
|
||||||
|
|
||||||
|
if (root == null) return;
|
||||||
|
|
||||||
|
foreach (var prop in root.Properties())
|
||||||
|
{
|
||||||
|
string fanType = prop.Name;
|
||||||
|
|
||||||
|
JArray arr = prop.Value as JArray;
|
||||||
|
if (arr == null) continue;
|
||||||
|
|
||||||
|
DataRow row = table.NewRow();
|
||||||
|
row["FanType"] = fanType;
|
||||||
|
|
||||||
|
for (int i = 0; i < 7; i++)
|
||||||
|
{
|
||||||
|
row[freqCols[i]] = (i < arr.Count) ? arr[i].ToString() : "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
table.Rows.Add(row);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public JObject RebuildFanNoiseJson()
|
||||||
|
{
|
||||||
|
if (table == null) throw new Exception("Table이 비어 있습니다.");
|
||||||
|
|
||||||
|
JObject root = new JObject();
|
||||||
|
|
||||||
|
// ✅ 주파수 컬럼 순서(배열 인덱스와 1:1)
|
||||||
|
string[] freqCols = new string[]
|
||||||
|
{
|
||||||
|
"63Hz", "125Hz", "250Hz", "500Hz", "1000Hz", "2000Hz", "4000Hz"
|
||||||
|
};
|
||||||
|
|
||||||
|
var datasetGroups = table.AsEnumerable()
|
||||||
|
.GroupBy(r => r["발생소음선정"] == null ? "" : r["발생소음선정"].ToString())
|
||||||
|
.Where(g => !string.IsNullOrWhiteSpace(g.Key));
|
||||||
|
|
||||||
|
foreach (var dsGroup in datasetGroups)
|
||||||
|
{
|
||||||
|
string 발생소음선정 = dsGroup.Key; // "1", "2" 또는 "NOISECODE_1"
|
||||||
|
JObject datasetObj = new JObject();
|
||||||
|
|
||||||
|
var fanGroups = dsGroup
|
||||||
|
.GroupBy(r => r["FanType"] == null ? "" : r["FanType"].ToString())
|
||||||
|
.Where(g => !string.IsNullOrWhiteSpace(g.Key));
|
||||||
|
|
||||||
|
foreach (var fanGroup in fanGroups)
|
||||||
|
{
|
||||||
|
string fanType = fanGroup.Key;
|
||||||
|
|
||||||
|
var rowsOrdered = fanGroup
|
||||||
|
.OrderBy(r => Convert.ToInt32(r["인덱스"]))
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
JArray rowsArr = new JArray();
|
||||||
|
|
||||||
|
foreach (var row in rowsOrdered)
|
||||||
|
{
|
||||||
|
JArray vals = new JArray();
|
||||||
|
|
||||||
|
for (int i = 0; i < freqCols.Length; i++)
|
||||||
|
{
|
||||||
|
string col = freqCols[i];
|
||||||
|
|
||||||
|
string v = (table.Columns.Contains(col) && row[col] != null)
|
||||||
|
? row[col].ToString()
|
||||||
|
: "0";
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(v)) v = "0";
|
||||||
|
vals.Add(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
rowsArr.Add(vals);
|
||||||
|
}
|
||||||
|
|
||||||
|
datasetObj[fanType] = rowsArr;
|
||||||
|
}
|
||||||
|
|
||||||
|
root[발생소음선정] = datasetObj;
|
||||||
|
}
|
||||||
|
|
||||||
|
return root;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void FlattenFullNameJson(JObject root)
|
private void FlattenFullNameJson(JObject root)
|
||||||
{
|
{
|
||||||
table = new DataTable();
|
table = new DataTable();
|
||||||
|
|
@ -587,6 +841,123 @@ namespace NSVDataEdit
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public JObject RebuildSPLJson()
|
||||||
|
{
|
||||||
|
if (table == null)
|
||||||
|
throw new Exception("테이블이 비어 있습니다.");
|
||||||
|
|
||||||
|
JObject root = new JObject();
|
||||||
|
|
||||||
|
string[] freqCols = new string[]
|
||||||
|
{
|
||||||
|
"63Hz", "125Hz", "250Hz", "500Hz", "1000Hz", "2000Hz", "4000Hz"
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (DataRow r in table.Rows)
|
||||||
|
{
|
||||||
|
string noise = (table.Columns.Contains("소음기준") && r["소음기준"] != null)
|
||||||
|
? r["소음기준"].ToString()
|
||||||
|
: "";
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(noise)) continue;
|
||||||
|
|
||||||
|
// ✅ 주파수 컬럼을 순서대로 배열로 복원
|
||||||
|
JArray arr = new JArray();
|
||||||
|
for (int i = 0; i < freqCols.Length; i++)
|
||||||
|
{
|
||||||
|
string col = freqCols[i];
|
||||||
|
|
||||||
|
string v = (table.Columns.Contains(col) && r[col] != null)
|
||||||
|
? r[col].ToString()
|
||||||
|
: "0";
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(v)) v = "0";
|
||||||
|
arr.Add(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
root[noise] = arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return root;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JObject RebuildMuffleReduceJson()
|
||||||
|
{
|
||||||
|
if (table == null) throw new Exception("테이블이 비어 있습니다.");
|
||||||
|
|
||||||
|
JObject root = new JObject();
|
||||||
|
|
||||||
|
string keyCol = "소음기 길이(L)";
|
||||||
|
|
||||||
|
string[] freqCols = new string[]
|
||||||
|
{
|
||||||
|
"63Hz", "125Hz", "250Hz", "500Hz", "1000Hz", "2000Hz", "4000Hz"
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (DataRow r in table.Rows)
|
||||||
|
{
|
||||||
|
string rowKey = (table.Columns.Contains(keyCol) && r[keyCol] != null)
|
||||||
|
? r[keyCol].ToString()
|
||||||
|
: "";
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(rowKey)) continue;
|
||||||
|
|
||||||
|
JArray arr = new JArray();
|
||||||
|
for (int i = 0; i < freqCols.Length; i++)
|
||||||
|
{
|
||||||
|
string col = freqCols[i];
|
||||||
|
|
||||||
|
string v = (table.Columns.Contains(col) && r[col] != null)
|
||||||
|
? r[col].ToString()
|
||||||
|
: "0";
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(v)) v = "0";
|
||||||
|
arr.Add(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
root[rowKey] = arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return root;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JObject RebuildBFIJson()
|
||||||
|
{
|
||||||
|
if (table == null) throw new Exception("Table이 비어 있습니다.");
|
||||||
|
|
||||||
|
JObject root = new JObject();
|
||||||
|
|
||||||
|
// 배열 순서(인덱스) = 주파수 컬럼 순서
|
||||||
|
string[] freqCols = new string[]
|
||||||
|
{
|
||||||
|
"63Hz", "125Hz", "250Hz", "500Hz", "1000Hz", "2000Hz", "4000Hz"
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (DataRow r in table.Rows)
|
||||||
|
{
|
||||||
|
string fanType = r["FanType"] == null ? "" : r["FanType"].ToString();
|
||||||
|
if (string.IsNullOrWhiteSpace(fanType)) continue;
|
||||||
|
|
||||||
|
JArray arr = new JArray();
|
||||||
|
|
||||||
|
for (int i = 0; i < freqCols.Length; i++)
|
||||||
|
{
|
||||||
|
string col = freqCols[i];
|
||||||
|
|
||||||
|
string v = (table.Columns.Contains(col) && r[col] != null)
|
||||||
|
? r[col].ToString()
|
||||||
|
: "0";
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(v)) v = "0";
|
||||||
|
arr.Add(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
root[fanType] = arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return root;
|
||||||
|
}
|
||||||
|
|
||||||
private JObject RebuildFullNameJson()
|
private JObject RebuildFullNameJson()
|
||||||
{
|
{
|
||||||
JObject result = new JObject();
|
JObject result = new JObject();
|
||||||
|
|
@ -663,6 +1034,14 @@ namespace NSVDataEdit
|
||||||
newJson = RebuildSpecificationJson();
|
newJson = RebuildSpecificationJson();
|
||||||
else if (idx == 3)
|
else if (idx == 3)
|
||||||
newJson = RebuildDefaultQtyDataJson();
|
newJson = RebuildDefaultQtyDataJson();
|
||||||
|
else if (idx == 4)
|
||||||
|
newJson = RebuildSPLJson();
|
||||||
|
else if (idx == 5)
|
||||||
|
newJson = RebuildMuffleReduceJson();
|
||||||
|
else if (idx == 6)
|
||||||
|
newJson = RebuildFanNoiseJson();
|
||||||
|
else if (idx == 7)
|
||||||
|
newJson = RebuildBFIJson();
|
||||||
//else if (idx == 4)
|
//else if (idx == 4)
|
||||||
// newJson = RebuildFullNameJson();
|
// newJson = RebuildFullNameJson();
|
||||||
else return;
|
else return;
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,12 @@
|
||||||
global::NSVDataEdit.Properties.Resources.Isolator_of_Equipment,
|
global::NSVDataEdit.Properties.Resources.Isolator_of_Equipment,
|
||||||
global::NSVDataEdit.Properties.Resources.Weight_data_of_Equipment,
|
global::NSVDataEdit.Properties.Resources.Weight_data_of_Equipment,
|
||||||
global::NSVDataEdit.Properties.Resources.Isolator_Specification,
|
global::NSVDataEdit.Properties.Resources.Isolator_Specification,
|
||||||
global::NSVDataEdit.Properties.Resources.Quantity_data_of_Equipment});
|
global::NSVDataEdit.Properties.Resources.Quantity_data_of_Equipment,
|
||||||
|
global::NSVDataEdit.Properties.Resources.SPL_DATA,
|
||||||
|
global::NSVDataEdit.Properties.Resources.Muffle_Reduce_Amount,
|
||||||
|
global::NSVDataEdit.Properties.Resources.FanNoiseData,
|
||||||
|
global::NSVDataEdit.Properties.Resources.BFI_Data,
|
||||||
|
});
|
||||||
this.tablePanel1.SetRow(this.cb_opendata, 0);
|
this.tablePanel1.SetRow(this.cb_opendata, 0);
|
||||||
this.cb_opendata.Size = new System.Drawing.Size(263, 30);
|
this.cb_opendata.Size = new System.Drawing.Size(263, 30);
|
||||||
this.cb_opendata.TabIndex = 0;
|
this.cb_opendata.TabIndex = 0;
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,15 @@ namespace NSVDataEdit.Properties {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// BFI Data과(와) 유사한 지역화된 문자열을 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static string BFI_Data {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("BFI Data", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Delete Column과(와) 유사한 지역화된 문자열을 찾습니다.
|
/// Delete Column과(와) 유사한 지역화된 문자열을 찾습니다.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
@ -78,6 +87,15 @@ namespace NSVDataEdit.Properties {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// FanNoiseData과(와) 유사한 지역화된 문자열을 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static string FanNoiseData {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("FanNoiseData", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// File과(와) 유사한 지역화된 문자열을 찾습니다.
|
/// File과(와) 유사한 지역화된 문자열을 찾습니다.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
@ -105,6 +123,15 @@ namespace NSVDataEdit.Properties {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Muffle Reduce Amount과(와) 유사한 지역화된 문자열을 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Muffle_Reduce_Amount {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Muffle Reduce Amount", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Name of Isolator Model과(와) 유사한 지역화된 문자열을 찾습니다.
|
/// Name of Isolator Model과(와) 유사한 지역화된 문자열을 찾습니다.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
@ -141,6 +168,15 @@ namespace NSVDataEdit.Properties {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// SPL DATA과(와) 유사한 지역화된 문자열을 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static string SPL_DATA {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("SPL DATA", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Weight data of Equipment과(와) 유사한 지역화된 문자열을 찾습니다.
|
/// Weight data of Equipment과(와) 유사한 지역화된 문자열을 찾습니다.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
|
|
@ -120,9 +120,15 @@
|
||||||
<data name="Add Col" xml:space="preserve">
|
<data name="Add Col" xml:space="preserve">
|
||||||
<value>행 추가</value>
|
<value>행 추가</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="BFI Data" xml:space="preserve">
|
||||||
|
<value>BFI 데이터</value>
|
||||||
|
</data>
|
||||||
<data name="Del Col" xml:space="preserve">
|
<data name="Del Col" xml:space="preserve">
|
||||||
<value>행 삭제</value>
|
<value>행 삭제</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="FanNoiseData" xml:space="preserve">
|
||||||
|
<value>송풍기 발생소음</value>
|
||||||
|
</data>
|
||||||
<data name="File" xml:space="preserve">
|
<data name="File" xml:space="preserve">
|
||||||
<value>파일</value>
|
<value>파일</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
@ -132,6 +138,9 @@
|
||||||
<data name="Isolator Specification" xml:space="preserve">
|
<data name="Isolator Specification" xml:space="preserve">
|
||||||
<value>제품별 용량 및 변위</value>
|
<value>제품별 용량 및 변위</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Muffle Reduce Amount" xml:space="preserve">
|
||||||
|
<value>소음기 저감량</value>
|
||||||
|
</data>
|
||||||
<data name="Name of Isolator Model" xml:space="preserve">
|
<data name="Name of Isolator Model" xml:space="preserve">
|
||||||
<value>방진기 모델명</value>
|
<value>방진기 모델명</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
@ -144,6 +153,9 @@
|
||||||
<data name="Save" xml:space="preserve">
|
<data name="Save" xml:space="preserve">
|
||||||
<value>저장</value>
|
<value>저장</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="SPL Data" xml:space="preserve">
|
||||||
|
<value>실내허용소음레벨</value>
|
||||||
|
</data>
|
||||||
<data name="Weight data of Equipment" xml:space="preserve">
|
<data name="Weight data of Equipment" xml:space="preserve">
|
||||||
<value>장비 용량별 중량</value>
|
<value>장비 용량별 중량</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
||||||
|
|
@ -120,9 +120,15 @@
|
||||||
<data name="Add Col" xml:space="preserve">
|
<data name="Add Col" xml:space="preserve">
|
||||||
<value>Add Column</value>
|
<value>Add Column</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="BFI Data" xml:space="preserve">
|
||||||
|
<value>BFI Data</value>
|
||||||
|
</data>
|
||||||
<data name="Del Col" xml:space="preserve">
|
<data name="Del Col" xml:space="preserve">
|
||||||
<value>Delete Column</value>
|
<value>Delete Column</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="FanNoiseData" xml:space="preserve">
|
||||||
|
<value>FanNoiseData</value>
|
||||||
|
</data>
|
||||||
<data name="File" xml:space="preserve">
|
<data name="File" xml:space="preserve">
|
||||||
<value>File</value>
|
<value>File</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
@ -132,6 +138,9 @@
|
||||||
<data name="Isolator Specification" xml:space="preserve">
|
<data name="Isolator Specification" xml:space="preserve">
|
||||||
<value>Isolator Specification</value>
|
<value>Isolator Specification</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Muffle Reduce Amount" xml:space="preserve">
|
||||||
|
<value>Muffle Reduce Amount</value>
|
||||||
|
</data>
|
||||||
<data name="Name of Isolator Model" xml:space="preserve">
|
<data name="Name of Isolator Model" xml:space="preserve">
|
||||||
<value>Name of Isolator Model</value>
|
<value>Name of Isolator Model</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
@ -144,6 +153,9 @@
|
||||||
<data name="Save" xml:space="preserve">
|
<data name="Save" xml:space="preserve">
|
||||||
<value>Save</value>
|
<value>Save</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="SPL DATA" xml:space="preserve">
|
||||||
|
<value>SPL DATA</value>
|
||||||
|
</data>
|
||||||
<data name="Weight data of Equipment" xml:space="preserve">
|
<data name="Weight data of Equipment" xml:space="preserve">
|
||||||
<value>Weight data of Equipment</value>
|
<value>Weight data of Equipment</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1 +0,0 @@
|
||||||
1b1d9d0925e4a6705f75026ef8d23bfbe10b5bf0
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -97,103 +97,3 @@ C:\Users\YJH\Desktop\NSV\Main\MainUI\MainUI\NSVDataEdit\obj\Release\ko\NSVDataEd
|
||||||
C:\Users\YJH\Desktop\NSV\Main\MainUI\MainUI\NSVDataEdit\obj\Release\NSVDataEdit.csproj.CopyComplete
|
C:\Users\YJH\Desktop\NSV\Main\MainUI\MainUI\NSVDataEdit\obj\Release\NSVDataEdit.csproj.CopyComplete
|
||||||
C:\Users\YJH\Desktop\NSV\Main\MainUI\MainUI\NSVDataEdit\obj\Release\NSVDataEdit.exe
|
C:\Users\YJH\Desktop\NSV\Main\MainUI\MainUI\NSVDataEdit\obj\Release\NSVDataEdit.exe
|
||||||
C:\Users\YJH\Desktop\NSV\Main\MainUI\MainUI\NSVDataEdit\obj\Release\NSVDataEdit.pdb
|
C:\Users\YJH\Desktop\NSV\Main\MainUI\MainUI\NSVDataEdit\obj\Release\NSVDataEdit.pdb
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\NSVDataEdit.exe.config
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\NSVDataEdit.exe
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\NSVDataEdit.pdb
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ko\NSVDataEdit.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.BonusSkins.v21.2.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.Data.Desktop.v21.2.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.Data.v21.2.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.Printing.v21.2.Core.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.Sparkline.v21.2.Core.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.Utils.v21.2.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.XtraBars.v21.2.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.XtraEditors.v21.2.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.XtraGrid.v21.2.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\Newtonsoft.Json.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.Pdf.v21.2.Core.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.Pdf.v21.2.Drawing.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.XtraLayout.v21.2.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.XtraPrinting.v21.2.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.RichEdit.v21.2.Core.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.XtraTreeList.v21.2.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.Office.v21.2.Core.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.Data.Desktop.v21.2.xml
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.Data.v21.2.xml
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.Utils.v21.2.xml
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.Sparkline.v21.2.Core.xml
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.XtraBars.v21.2.xml
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.XtraEditors.v21.2.xml
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.Printing.v21.2.Core.xml
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.XtraGrid.v21.2.xml
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.Pdf.v21.2.Core.xml
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.Pdf.v21.2.Drawing.xml
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.XtraLayout.v21.2.xml
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.XtraPrinting.v21.2.xml
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.RichEdit.v21.2.Core.xml
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.XtraTreeList.v21.2.xml
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\DevExpress.Office.v21.2.Core.xml
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\de\DevExpress.Data.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\es\DevExpress.Data.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ja\DevExpress.Data.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ru\DevExpress.Data.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\de\DevExpress.Utils.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\es\DevExpress.Utils.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ja\DevExpress.Utils.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ru\DevExpress.Utils.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\de\DevExpress.Sparkline.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\es\DevExpress.Sparkline.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ja\DevExpress.Sparkline.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ru\DevExpress.Sparkline.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\de\DevExpress.XtraBars.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\es\DevExpress.XtraBars.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ja\DevExpress.XtraBars.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ru\DevExpress.XtraBars.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\de\DevExpress.XtraEditors.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\es\DevExpress.XtraEditors.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ja\DevExpress.XtraEditors.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ru\DevExpress.XtraEditors.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\de\DevExpress.Printing.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\es\DevExpress.Printing.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ja\DevExpress.Printing.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ru\DevExpress.Printing.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\de\DevExpress.XtraGrid.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\es\DevExpress.XtraGrid.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ja\DevExpress.XtraGrid.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ru\DevExpress.XtraGrid.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\de\DevExpress.Pdf.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\es\DevExpress.Pdf.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ja\DevExpress.Pdf.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ru\DevExpress.Pdf.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\de\DevExpress.XtraLayout.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\es\DevExpress.XtraLayout.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ja\DevExpress.XtraLayout.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ru\DevExpress.XtraLayout.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\de\DevExpress.XtraPrinting.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\es\DevExpress.XtraPrinting.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ja\DevExpress.XtraPrinting.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ru\DevExpress.XtraPrinting.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\de\DevExpress.RichEdit.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\es\DevExpress.RichEdit.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ja\DevExpress.RichEdit.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ru\DevExpress.RichEdit.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\de\DevExpress.XtraTreeList.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\es\DevExpress.XtraTreeList.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ja\DevExpress.XtraTreeList.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ru\DevExpress.XtraTreeList.v21.2.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\de\DevExpress.Office.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\es\DevExpress.Office.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ja\DevExpress.Office.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\bin\Release\ru\DevExpress.Office.v21.2.Core.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\obj\Release\NSVDataEdit.csproj.AssemblyReference.cache
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\obj\Release\NSVDataEdit.DataEditForm.resources
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\obj\Release\NSVDataEdit.DataSelectForm.resources
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\obj\Release\NSVDataEdit.Properties.Resources.resources
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\obj\Release\NSVDataEdit.Properties.Resources.ko.resources
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\obj\Release\NSVDataEdit.csproj.GenerateResource.cache
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\obj\Release\NSVDataEdit.exe.licenses
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\obj\Release\NSVDataEdit.csproj.CoreCompileInputs.cache
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\obj\Release\ko\NSVDataEdit.resources.dll
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\obj\Release\NSVDataEdit.csproj.CopyComplete
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\obj\Release\NSVDataEdit.exe
|
|
||||||
C:\Users\YJH\Desktop\NSV\MainUI\MainUI\NSVDataEdit\obj\Release\NSVDataEdit.pdb
|
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -247,25 +247,25 @@
|
||||||
<value>소음기 SIZE</value>
|
<value>소음기 SIZE</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Air_Volume" xml:space="preserve">
|
<data name="Air_Volume" xml:space="preserve">
|
||||||
<value>풍량</value>
|
<value>풍량(CMH)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Duct_Size" xml:space="preserve">
|
<data name="Duct_Size" xml:space="preserve">
|
||||||
<value>덕트 사이즈</value>
|
<value>덕트 사이즈</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Efficiency" xml:space="preserve">
|
<data name="Efficiency" xml:space="preserve">
|
||||||
<value>효율</value>
|
<value>효율(%)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FAN_Qty" xml:space="preserve">
|
<data name="FAN_Qty" xml:space="preserve">
|
||||||
<value>FAN 수량</value>
|
<value>FAN 수량</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NoiseChamber_Size" xml:space="preserve">
|
<data name="NoiseChamber_Size" xml:space="preserve">
|
||||||
<value>소음챔버 사이즈</value>
|
<value>소음 챔버 사이즈</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Noise_Standard" xml:space="preserve">
|
<data name="Noise_Standard" xml:space="preserve">
|
||||||
<value>소음기준(NC)</value>
|
<value>소음기준(NC)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Pressure" xml:space="preserve">
|
<data name="Pressure" xml:space="preserve">
|
||||||
<value>정압</value>
|
<value>정압(mmAq)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BranchAirVolume" xml:space="preserve">
|
<data name="BranchAirVolume" xml:space="preserve">
|
||||||
<value>분기풍량(CMH)</value>
|
<value>분기풍량(CMH)</value>
|
||||||
|
|
@ -277,7 +277,7 @@
|
||||||
<value>덕트 길이</value>
|
<value>덕트 길이</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NoiseElbowQty" xml:space="preserve">
|
<data name="NoiseElbowQty" xml:space="preserve">
|
||||||
<value>소음엘보 수량(EA)</value>
|
<value>소음 엘보 수량(EA)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RoundElbowQty" xml:space="preserve">
|
<data name="RoundElbowQty" xml:space="preserve">
|
||||||
<value>라운드엘보 수량(EA)</value>
|
<value>라운드엘보 수량(EA)</value>
|
||||||
|
|
@ -285,8 +285,8 @@
|
||||||
<data name="SquareElbowQty" xml:space="preserve">
|
<data name="SquareElbowQty" xml:space="preserve">
|
||||||
<value>사각엘보 수량(EA)</value>
|
<value>사각엘보 수량(EA)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DuctZoomSize" xml:space="preserve">
|
<data name="DuctZoomSize_W" xml:space="preserve">
|
||||||
<value>덕트확대 사이즈</value>
|
<value>덕트확대 사이즈(W)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuffleSize" xml:space="preserve">
|
<data name="MuffleSize" xml:space="preserve">
|
||||||
<value>소음기 SIZE</value>
|
<value>소음기 SIZE</value>
|
||||||
|
|
@ -294,4 +294,21 @@
|
||||||
<data name="Noise_Level" xml:space="preserve">
|
<data name="Noise_Level" xml:space="preserve">
|
||||||
<value>발생 소음도</value>
|
<value>발생 소음도</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Chamber_Size" xml:space="preserve">
|
||||||
|
<value>일반 챔버 SIZE</value>
|
||||||
|
</data>
|
||||||
|
<data name="DuctZoomSize_H" xml:space="preserve">
|
||||||
|
<value>덕트확대 사이즈(H)</value>
|
||||||
|
</data>
|
||||||
|
<data name="SafeRate" xml:space="preserve">
|
||||||
|
<value>전체 시스템 안전율(%)</value>
|
||||||
|
</data>
|
||||||
|
<data name="IndoorNoise" xml:space="preserve">
|
||||||
|
<value>실내 발생
|
||||||
|
소음 보정</value>
|
||||||
|
</data>
|
||||||
|
<data name="Selection_of_Noise" xml:space="preserve">
|
||||||
|
<value>발생소음선정
|
||||||
|
(큰:1, 작은:2)</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"AIR FOIL": ["0","0","3","0","0","0","0"],
|
||||||
|
"SIROCCO": ["0","0","0","2","0","0","0"],
|
||||||
|
"RADIAL BLADED": ["0","8","0","0","0","0","0"],
|
||||||
|
"VANE AXIAL": ["0","6","0","0","0","0","0"],
|
||||||
|
"TUBE AXIAL": ["7","0","0","0","0","0","0"],
|
||||||
|
"PROPELLER": ["5","0","0","0","0","0","0"],
|
||||||
|
"MAKER": ["0","0","0","0","0","0","0"],
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue