프로젝트

일반

사용자정보

개정판 635a8747

ID635a8747eeff65f21de785b4208ca26039144193
상위 e00e891d
하위 3fcf23c8, 4bb0a307

gaqhf 이(가) 약 6년 전에 추가함

dev issue #000 : add Unitform, Template 기능

Change-Id: I2abf9aa4e444a91c789f7cece82dffea4990b060

차이점 보기:

DTI_PID/SPPIDConverter_AutoModeling/ConverterForm.Designer.cs
129 129
            this.layoutControl1.Name = "layoutControl1";
130 130
            this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(982, 292, 650, 400);
131 131
            this.layoutControl1.Root = this.Root;
132
            this.layoutControl1.Size = new System.Drawing.Size(1226, 471);
132
            this.layoutControl1.Size = new System.Drawing.Size(1226, 561);
133 133
            this.layoutControl1.TabIndex = 1;
134 134
            this.layoutControl1.Text = "layoutControl1";
135 135
            // 
......
183 183
            this.gridControlConverter.MainView = this.gridViewConverter;
184 184
            this.gridControlConverter.MenuManager = this.ribbonControl;
185 185
            this.gridControlConverter.Name = "gridControlConverter";
186
            this.gridControlConverter.Size = new System.Drawing.Size(904, 349);
186
            this.gridControlConverter.Size = new System.Drawing.Size(904, 439);
187 187
            this.gridControlConverter.TabIndex = 4;
188 188
            this.gridControlConverter.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
189 189
            this.gridViewConverter});
......
193 193
            this.gridViewConverter.GridControl = this.gridControlConverter;
194 194
            this.gridViewConverter.Name = "gridViewConverter";
195 195
            this.gridViewConverter.OptionsView.ShowGroupPanel = false;
196
            this.gridViewConverter.RowCellClick += new DevExpress.XtraGrid.Views.Grid.RowCellClickEventHandler(this.gridViewConverter_RowCellClick);
196 197
            // 
197 198
            // btnID2Project
198 199
            // 
......
219 220
            this.layoutControlGroupID2Project,
220 221
            this.splitterItem1});
221 222
            this.Root.Name = "Root";
222
            this.Root.Size = new System.Drawing.Size(1226, 471);
223
            this.Root.Size = new System.Drawing.Size(1226, 561);
223 224
            this.Root.TextVisible = false;
224 225
            // 
225 226
            // layoutControlGroupSPPIDDB
......
351 352
            this.layoutControlItem6});
352 353
            this.layoutControlGroupAutoConverter.Location = new System.Drawing.Point(0, 0);
353 354
            this.layoutControlGroupAutoConverter.Name = "layoutControlGroupAutoConverter";
354
            this.layoutControlGroupAutoConverter.Size = new System.Drawing.Size(932, 451);
355
            this.layoutControlGroupAutoConverter.Size = new System.Drawing.Size(932, 541);
355 356
            this.layoutControlGroupAutoConverter.Text = "Auto Converter";
356 357
            // 
357 358
            // layoutControlItem1
......
359 360
            this.layoutControlItem1.Control = this.gridControlConverter;
360 361
            this.layoutControlItem1.Location = new System.Drawing.Point(0, 40);
361 362
            this.layoutControlItem1.Name = "layoutControlItem1";
362
            this.layoutControlItem1.Size = new System.Drawing.Size(908, 353);
363
            this.layoutControlItem1.Size = new System.Drawing.Size(908, 443);
363 364
            this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
364 365
            this.layoutControlItem1.TextVisible = false;
365 366
            // 
......
400 401
            this.emptySpaceItem1.AllowHotTrack = false;
401 402
            this.emptySpaceItem1.Location = new System.Drawing.Point(942, 368);
402 403
            this.emptySpaceItem1.Name = "emptySpaceItem1";
403
            this.emptySpaceItem1.Size = new System.Drawing.Size(264, 83);
404
            this.emptySpaceItem1.Size = new System.Drawing.Size(264, 173);
404 405
            this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
405 406
            // 
406 407
            // layoutControlGroupID2Project
......
482 483
            this.splitterItem1.AllowHotTrack = true;
483 484
            this.splitterItem1.Location = new System.Drawing.Point(932, 0);
484 485
            this.splitterItem1.Name = "splitterItem1";
485
            this.splitterItem1.Size = new System.Drawing.Size(10, 451);
486
            this.splitterItem1.Size = new System.Drawing.Size(10, 541);
486 487
            // 
487 488
            // xtraFolderBrowserDialog
488 489
            // 
......
499 500
            // 
500 501
            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
501 502
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
502
            this.ClientSize = new System.Drawing.Size(1226, 503);
503
            this.ClientSize = new System.Drawing.Size(1226, 593);
503 504
            this.Controls.Add(this.layoutControl1);
504 505
            this.Controls.Add(this.ribbonControl);
505 506
            this.Name = "ConverterForm";
DTI_PID/SPPIDConverter_AutoModeling/ConverterForm.cs
28 28
        private Dictionary<string, SPPID_Document> _DicDocuments = new Dictionary<string, SPPID_Document>();
29 29
        private DataTable _ConverterDT = new DataTable();
30 30
        private DataTable _SPPIDSymbolPathDT = new DataTable();
31
        private DataTable _SPPIDUnitDT = new DataTable();
31 32
        private RepositoryItemComboBox templateComboBox;
32 33

  
33 34

  
......
93 94

  
94 95
            templateComboBox = new RepositoryItemComboBox();
95 96
            templateComboBox.TextEditStyle = TextEditStyles.DisableTextEditor;
97
            templateComboBox.EditValueChanged += templateComboBox_EditValueChanged;
96 98
            gridControlConverter.RepositoryItems.Add(templateComboBox);
97 99
            gridViewConverter.Columns["colTemplate"].ColumnEdit = templateComboBox;
98 100

  
99
            RepositoryItemButtonEdit unitButton = new RepositoryItemButtonEdit();
100
            unitButton.ButtonClick += UnitButton_ButtonClick;
101
            unitButton.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;
102
            gridControlConverter.RepositoryItems.Add(unitButton);
103
            gridViewConverter.Columns["colUnit"].ColumnEdit = unitButton;
101
            //RepositoryItemButtonEdit unitButton = new RepositoryItemButtonEdit();
102
            //unitButton.ButtonClick += UnitButton_ButtonClick;
103
            //unitButton.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;
104
            //gridControlConverter.RepositoryItems.Add(unitButton);
105
            //gridViewConverter.Columns["colUnit"].ColumnEdit = unitButton;
104 106

  
107
            gridViewConverter.Columns["colUnit"].OptionsColumn.AllowEdit = false;
105 108
            gridViewConverter.Columns["colDrawingFileName"].OptionsColumn.AllowEdit = false;
106 109
            gridViewConverter.Columns["colUnit"].OptionsColumn.ReadOnly = true;
107 110
            gridViewConverter.Columns["colStatus"].OptionsColumn.AllowEdit = false;
......
111 114
            gridViewConverter.BestFitColumns();
112 115
            #endregion
113 116
        }
117
        private void templateComboBox_EditValueChanged(object sender, EventArgs e)
118
        {
119
            gridViewConverter.CloseEditor();
120
            gridViewConverter.UpdateCurrentRow();
121
        }
122

  
123
        private void gridViewConverter_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
124
        {
125
            if (e.Column.Name == "colcolTemplate")
126
            {
127
                gridViewConverter.ShowEditor();
128
                (gridViewConverter.ActiveEditor as ComboBoxEdit).ShowPopup();
129
            }
130
            else if (e.Column.Name == "colcolUnit")
131
            {
132
                UnitForm unitForm = new UnitForm(_SPPIDUnitDT);
133
                if (unitForm.ShowDialog() == DialogResult.OK)
134
                {
135
                    gridViewConverter.SetRowCellValue(e.RowHandle, e.Column, unitForm.SelectedUnit);
136
                    gridViewConverter.CloseEditor();
137
                    gridViewConverter.UpdateCurrentRow();
138
                }
139
            }
140
        }
114 141

  
115 142
        private void btnID2Project_ButtonClick(object sender, ButtonPressedEventArgs e)
116 143
        {
......
123 150
                Settings.Default.LatestProjectPath = xtraFolderBrowserDialog.SelectedPath;
124 151
                Settings.Default.Save();
125 152
                if (InitID2Project())
153
                {
126 154
                    MessageBox.Show(Msg.SuccessProjectSelect, Msg.Information, MessageBoxButtons.OK, MessageBoxIcon.Information);
155
                }
127 156
                else
128 157
                    MessageBox.Show(Msg.FailProjectSelect, Msg.Warning, MessageBoxButtons.OK, MessageBoxIcon.Warning);
129 158
            }
......
288 317
                    SPPID_DBInfo.Clear();
289 318
            }
290 319

  
320
            templateComboBox.Items.Clear();
291 321
            SPPID_DBInfo _SPPIDInfo = SPPID_DBInfo.GetInstance();
292 322
            if (_SPPIDInfo.Enable)
293 323
            {
......
295 325
                labelSPPIDPlantName.AppearanceItemCaption.ForeColor = Color.Blue;
296 326
                labelSPPIDDBStatus.Text = Msg.ConnectionSuccessful;
297 327
                labelSPPIDDBStatus.AppearanceItemCaption.ForeColor = Color.Blue;
298
                //SPPID_DB.get
328

  
329
                string TemplatePath = SPPID_DB.GetPlantPID_T_OPTIONSETTING_Value("PID Template Path");
330
                if (!string.IsNullOrEmpty(TemplatePath))
331
                    templateComboBox.Items.AddRange(Directory.GetFiles(TemplatePath, "*.pid").ToList().Select(filePath => Path.GetFileName(filePath)).ToList());
332

  
333
                _SPPIDUnitDT = SPPID_DB.GetUnitTree();
334

  
335
                layoutControlGroupAutoConverter.Enabled = true;
299 336
            }
300 337
            else
301 338
            {
......
304 341
                labelSPPIDDBStatus.Text = Msg.ConnectionFail;
305 342
                labelSPPIDDBStatus.AppearanceItemCaption.ForeColor = Color.Red;
306 343

  
344
                layoutControlGroupAutoConverter.Enabled = false;
307 345
            }
308 346

  
347
            _DicDocuments.Clear();
348
            _ConverterDT.Rows.Clear();
309 349
            InitSPPIDSymbolTreeTable();
310 350
        }
311 351

  
......
345 385
            }
346 386
        }
347 387

  
348
        private void UnitButton_ButtonClick(object sender, ButtonPressedEventArgs e)
349
        {
350
            //UnitForm unitForm = new UnitForm(dUnit);
351
            //if (unitForm.ShowDialog() == DialogResult.OK)
352
            //{
353
            //    ButtonEdit button = sender as ButtonEdit;
354
            //    button.EditValue = unitForm.SelectedUnit;
355
            //    gridViewConverter.CloseEditor();
356
            //    gridViewConverter.UpdateCurrentRow();
357
            //    gridViewConverter.BestFitColumns();
358
            //}
359
        }
360

  
361 388
        private void btnLoadFile_Click(object sender, EventArgs e)
362 389
        {
363 390
            Project_Info _ProjectInfo = Project_Info.GetInstance();
......
423 450
            form.ShowDialog();
424 451
            InitMapping();
425 452
        }
453

  
426 454
    }
427 455
}
DTI_PID/SPPIDConverter_AutoModeling/Form/UnitForm.Designer.cs
1
namespace Converter.AutoModeling.SPPID
2
{
3
    partial class UnitForm
4
    {
5
        /// <summary>
6
        /// Required designer variable.
7
        /// </summary>
8
        private System.ComponentModel.IContainer components = null;
9

  
10
        /// <summary>
11
        /// Clean up any resources being used.
12
        /// </summary>
13
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
14
        protected override void Dispose(bool disposing)
15
        {
16
            if (disposing && (components != null))
17
            {
18
                components.Dispose();
19
            }
20
            base.Dispose(disposing);
21
        }
22

  
23
        #region Windows Form Designer generated code
24

  
25
        /// <summary>
26
        /// Required method for Designer support - do not modify
27
        /// the contents of this method with the code editor.
28
        /// </summary>
29
        private void InitializeComponent()
30
        {
31
            this.ribbonControl = new DevExpress.XtraBars.Ribbon.RibbonControl();
32
            this.treeList1 = new DevExpress.XtraTreeList.TreeList();
33
            ((System.ComponentModel.ISupportInitialize)(this.ribbonControl)).BeginInit();
34
            ((System.ComponentModel.ISupportInitialize)(this.treeList1)).BeginInit();
35
            this.SuspendLayout();
36
            // 
37
            // ribbonControl
38
            // 
39
            this.ribbonControl.ExpandCollapseItem.Id = 0;
40
            this.ribbonControl.Items.AddRange(new DevExpress.XtraBars.BarItem[] {
41
            this.ribbonControl.ExpandCollapseItem});
42
            this.ribbonControl.Location = new System.Drawing.Point(0, 0);
43
            this.ribbonControl.MaxItemId = 1;
44
            this.ribbonControl.Name = "ribbonControl";
45
            this.ribbonControl.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.False;
46
            this.ribbonControl.ShowDisplayOptionsMenuButton = DevExpress.Utils.DefaultBoolean.False;
47
            this.ribbonControl.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.ShowOnMultiplePages;
48
            this.ribbonControl.ShowToolbarCustomizeItem = false;
49
            this.ribbonControl.Size = new System.Drawing.Size(386, 32);
50
            this.ribbonControl.Toolbar.ShowCustomizeItem = false;
51
            // 
52
            // treeList1
53
            // 
54
            this.treeList1.Dock = System.Windows.Forms.DockStyle.Fill;
55
            this.treeList1.Location = new System.Drawing.Point(0, 32);
56
            this.treeList1.Name = "treeList1";
57
            this.treeList1.Size = new System.Drawing.Size(386, 519);
58
            this.treeList1.TabIndex = 1;
59
            this.treeList1.DoubleClick += new System.EventHandler(this.treeList1_DoubleClick);
60
            // 
61
            // UnitForm
62
            // 
63
            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
64
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
65
            this.ClientSize = new System.Drawing.Size(386, 551);
66
            this.Controls.Add(this.treeList1);
67
            this.Controls.Add(this.ribbonControl);
68
            this.Name = "UnitForm";
69
            this.Ribbon = this.ribbonControl;
70
            this.ShowIcon = false;
71
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
72
            this.Text = "Select Unit";
73
            ((System.ComponentModel.ISupportInitialize)(this.ribbonControl)).EndInit();
74
            ((System.ComponentModel.ISupportInitialize)(this.treeList1)).EndInit();
75
            this.ResumeLayout(false);
76
            this.PerformLayout();
77

  
78
        }
79

  
80
        #endregion
81

  
82
        private DevExpress.XtraBars.Ribbon.RibbonControl ribbonControl;
83
        private DevExpress.XtraTreeList.TreeList treeList1;
84
    }
85
}
DTI_PID/SPPIDConverter_AutoModeling/Form/UnitForm.cs
1
using System;
2
using System.Collections.Generic;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Linq;
7
using System.Text;
8
using System.Threading.Tasks;
9
using System.Windows.Forms;
10
using DevExpress.XtraTreeList;
11
using DevExpress.XtraTreeList.Nodes;
12

  
13
namespace Converter.AutoModeling.SPPID
14
{
15
    public partial class UnitForm : DevExpress.XtraBars.Ribbon.RibbonForm
16
    {
17
        public string SelectedUnit { get; set; }
18
        public UnitForm(DataTable _UnitDT)
19
        {
20
            InitializeComponent();
21
            InitUnitTree(_UnitDT);
22
        }
23

  
24
        private void InitUnitTree(DataTable _UnitDT)
25
        {
26
            treeList1.DataSource = _UnitDT;
27
            treeList1.KeyFieldName = "SP_ID";
28
            treeList1.ParentFieldName = "PARENTID";
29
            treeList1.OptionsView.ShowIndicator = false;
30
            treeList1.OptionsView.ShowColumns = false;
31
            treeList1.OptionsView.ShowHorzLines = false;
32
            treeList1.OptionsView.ShowVertLines = false;
33
            treeList1.OptionsView.FocusRectStyle = DrawFocusRectStyle.None;
34
            treeList1.OptionsBehavior.Editable = false;
35

  
36
            treeList1.ExpandAll();
37
        }
38

  
39
        private void treeList1_DoubleClick(object sender, EventArgs e)
40
        {
41
            TreeList tree = sender as TreeList;
42
            TreeListHitInfo hit = tree.CalcHitInfo(tree.PointToClient(Control.MousePosition));
43
            if (hit.Node != null)
44
            {
45
                TreeListNode node = hit.Node;
46
                if (node.Level == 2)
47
                {
48
                    SelectedUnit = node.GetValue("NAME").ToString();
49
                    DialogResult = DialogResult.OK;
50
                }
51
            }
52
        }
53
    }
54
}
DTI_PID/SPPIDConverter_AutoModeling/Form/UnitForm.resx
1
<?xml version="1.0" encoding="utf-8"?>
2
<root>
3
  <!-- 
4
    Microsoft ResX Schema 
5
    
6
    Version 2.0
7
    
8
    The primary goals of this format is to allow a simple XML format 
9
    that is mostly human readable. The generation and parsing of the 
10
    various data types are done through the TypeConverter classes 
11
    associated with the data types.
12
    
13
    Example:
14
    
15
    ... ado.net/XML headers & schema ...
16
    <resheader name="resmimetype">text/microsoft-resx</resheader>
17
    <resheader name="version">2.0</resheader>
18
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23
        <value>[base64 mime encoded serialized .NET Framework object]</value>
24
    </data>
25
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27
        <comment>This is a comment</comment>
28
    </data>
29
                
30
    There are any number of "resheader" rows that contain simple 
31
    name/value pairs.
32
    
33
    Each data row contains a name, and value. The row also contains a 
34
    type or mimetype. Type corresponds to a .NET class that support 
35
    text/value conversion through the TypeConverter architecture. 
36
    Classes that don't support this are serialized and stored with the 
37
    mimetype set.
38
    
39
    The mimetype is used for serialized objects, and tells the 
40
    ResXResourceReader how to depersist the object. This is currently not 
41
    extensible. For a given mimetype the value must be set accordingly:
42
    
43
    Note - application/x-microsoft.net.object.binary.base64 is the format 
44
    that the ResXResourceWriter will generate, however the reader can 
45
    read any of the formats listed below.
46
    
47
    mimetype: application/x-microsoft.net.object.binary.base64
48
    value   : The object must be serialized with 
49
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50
            : and then encoded with base64 encoding.
51
    
52
    mimetype: application/x-microsoft.net.object.soap.base64
53
    value   : The object must be serialized with 
54
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55
            : and then encoded with base64 encoding.
56

  
57
    mimetype: application/x-microsoft.net.object.bytearray.base64
58
    value   : The object must be serialized into a byte array 
59
            : using a System.ComponentModel.TypeConverter
60
            : and then encoded with base64 encoding.
61
    -->
62
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64
    <xsd:element name="root" msdata:IsDataSet="true">
65
      <xsd:complexType>
66
        <xsd:choice maxOccurs="unbounded">
67
          <xsd:element name="metadata">
68
            <xsd:complexType>
69
              <xsd:sequence>
70
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
71
              </xsd:sequence>
72
              <xsd:attribute name="name" use="required" type="xsd:string" />
73
              <xsd:attribute name="type" type="xsd:string" />
74
              <xsd:attribute name="mimetype" type="xsd:string" />
75
              <xsd:attribute ref="xml:space" />
76
            </xsd:complexType>
77
          </xsd:element>
78
          <xsd:element name="assembly">
79
            <xsd:complexType>
80
              <xsd:attribute name="alias" type="xsd:string" />
81
              <xsd:attribute name="name" type="xsd:string" />
82
            </xsd:complexType>
83
          </xsd:element>
84
          <xsd:element name="data">
85
            <xsd:complexType>
86
              <xsd:sequence>
87
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89
              </xsd:sequence>
90
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93
              <xsd:attribute ref="xml:space" />
94
            </xsd:complexType>
95
          </xsd:element>
96
          <xsd:element name="resheader">
97
            <xsd:complexType>
98
              <xsd:sequence>
99
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100
              </xsd:sequence>
101
              <xsd:attribute name="name" type="xsd:string" use="required" />
102
            </xsd:complexType>
103
          </xsd:element>
104
        </xsd:choice>
105
      </xsd:complexType>
106
    </xsd:element>
107
  </xsd:schema>
108
  <resheader name="resmimetype">
109
    <value>text/microsoft-resx</value>
110
  </resheader>
111
  <resheader name="version">
112
    <value>2.0</value>
113
  </resheader>
114
  <resheader name="reader">
115
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116
  </resheader>
117
  <resheader name="writer">
118
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119
  </resheader>
120
</root>
DTI_PID/SPPIDConverter_AutoModeling/SPPIDConverter_AutoModeling.csproj
116 116
    <Compile Include="Form\SPPID_DB_SettingForm.Designer.cs">
117 117
      <DependentUpon>SPPID_DB_SettingForm.cs</DependentUpon>
118 118
    </Compile>
119
    <Compile Include="Form\UnitForm.cs">
120
      <SubType>Form</SubType>
121
    </Compile>
122
    <Compile Include="Form\UnitForm.Designer.cs">
123
      <DependentUpon>UnitForm.cs</DependentUpon>
124
    </Compile>
119 125
    <Compile Include="MainWrapper.cs">
120 126
      <SubType>UserControl</SubType>
121 127
    </Compile>
......
163 169
    <EmbeddedResource Include="Form\SPPID_DB_SettingForm.resx">
164 170
      <DependentUpon>SPPID_DB_SettingForm.cs</DependentUpon>
165 171
    </EmbeddedResource>
172
    <EmbeddedResource Include="Form\UnitForm.resx">
173
      <DependentUpon>UnitForm.cs</DependentUpon>
174
    </EmbeddedResource>
166 175
    <EmbeddedResource Include="Properties\licenses.licx" />
167 176
    <EmbeddedResource Include="Properties\Resources.resx">
168 177
      <Generator>ResXFileCodeGenerator</Generator>

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)