[성현모] TRA V2 삭제

This commit is contained in:
SHM
2025-03-20 08:38:05 +09:00
parent 773aa49a27
commit 5beffcfb23
437 changed files with 809105 additions and 172632 deletions

View File

@ -0,0 +1,351 @@
<?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>
<metadata name="contextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>22, 19</value>
</metadata>
<assembly alias="DevExpress.Data.v20.2" name="DevExpress.Data.v20.2, Version=20.2.11.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="simpleButtonDataMod.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABfAgAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAw
IDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJ
LlJlZHtmaWxsOiNEMTFDMUM7fQoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJLkdyZWVue2ZpbGw6IzAz
OUMyMzt9Cjwvc3R5bGU+DQogIDxnIGlkPSJXYXJuaW5nQ2lyY2xlZDEiPg0KICAgIDxwYXRoIGQ9Ik0x
NiwyQzguMywyLDIsOC4zLDIsMTZzNi4zLDE0LDE0LDE0czE0LTYuMywxNC0xNFMyMy43LDIsMTYsMnog
TTE2LDI0Yy0xLjEsMC0yLTAuOS0yLTJjMC0xLjEsMC45LTIsMi0yICAgczIsMC45LDIsMkMxOCwyMy4x
LDE3LjEsMjQsMTYsMjR6IE0xOCwxOGgtNFY4aDRWMTh6IiBjbGFzcz0iUmVkIiAvPg0KICA8L2c+DQo8
L3N2Zz4L
</value>
</data>
<data name="simpleButtonTestCode.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACcBwAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAw
IDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5Z
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuR3JlZW57ZmlsbDojMDM5
QzIzO30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9Cgkuc3Qwe29w
YWNpdHk6MC41O30KCS5zdDF7b3BhY2l0eTowLjc1O30KCS5zdDJ7b3BhY2l0eTowLjM1O30KCS5zdDN7
b3BhY2l0eTowLjY1O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlJhZGFyQXJlYV8yXyI+DQogICAgPGcgY2xh
c3M9InN0MiI+DQogICAgICA8cGF0aCBkPSJNMTYsMEM3LjIsMCwwLDcuMiwwLDE2czcuMiwxNiwxNiwx
NnMxNi03LjIsMTYtMTZTMjQuOCwwLDE2LDB6IE0xNiwzMEM4LjMsMzAsMiwyMy43LDIsMTZTOC4zLDIs
MTYsMiAgICBzMTQsNi4zLDE0LDE0UzIzLjcsMzAsMTYsMzB6IE0xNiw2QzEwLjUsNiw2LDEwLjUsNiwx
NmMwLDUuNSw0LjUsMTAsMTAsMTBzMTAtNC41LDEwLTEwQzI2LDEwLjUsMjEuNSw2LDE2LDZ6IE0xNiwy
NCAgICBjLTQuNCwwLTgtMy42LTgtOHMzLjYtOCw4LThzOCwzLjYsOCw4UzIwLjQsMjQsMTYsMjR6IE0x
NiwxMmMtMi4yLDAtNCwxLjgtNCw0YzAsMi4yLDEuOCw0LDQsNHM0LTEuOCw0LTRDMjAsMTMuOCwxOC4y
LDEyLDE2LDEyeiAgICAgTTE2LDE4Yy0xLjEsMC0yLTAuOS0yLTJjMC0xLjEsMC45LTIsMi0yczIsMC45
LDIsMkMxOCwxNy4xLDE3LjEsMTgsMTYsMTh6IiBjbGFzcz0iQmxhY2siIC8+DQogICAgPC9nPg0KICAg
IDxnIGNsYXNzPSJzdDEiPg0KICAgICAgPHBhdGggZD0iTTI0LDEwVjkuNWwwLjctMS44TDIyLjgsN2wt
MC40LDFoLTkuNGwtMC4yLTAuMkwxMi42LDhIMTJ2MC42bC01LDVMNi40LDEzTDUsMTQuNGwxMC44LDEw
LjhsLTAuMiwwLjUgICAgbDEuMSwwLjRsMS4xLDEuMWwxLjQtMS40bC0xLTFMMjMuOCwxMEgyNHoiIGNs
YXNzPSJCbHVlIiAvPg0KICAgIDwvZz4NCiAgICA8cGF0aCBkPSJNMjYsOWMwLTEuNy0xLjMtMy0zLTNj
LTEuMywwLTIuNCwwLjgtMi44LDJoLTQuNGMtMC40LTEuMi0xLjUtMi0yLjgtMmMtMS43LDAtMywxLjMt
MywzICAgYzAsMC41LDAuMSwwLjksMC4zLDEuM2wtMiwyQzcuOSwxMi4xLDcuNSwxMiw3LDEyYy0xLjcs
MC0zLDEuMy0zLDNzMS4zLDMsMywzYzAuNSwwLDAuOS0wLjEsMS4zLTAuM2w2LDZDMTQuMSwyNC4xLDE0
LDI0LjUsMTQsMjUgICBjMCwxLjcsMS4zLDMsMywzczMtMS4zLDMtM2MwLTAuOS0wLjQtMS44LTEuMS0y
LjNMMjMsMTJDMjQuNywxMiwyNiwxMC42LDI2LDl6IE0xNywyMmMtMC41LDAtMC45LDAuMS0xLjMsMC4z
bC02LTYgICBDOS45LDE1LjksMTAsMTUuNSwxMCwxNXMtMC4xLTAuOS0wLjMtMS4zbDItMmMwLjQsMC4y
LDAuOCwwLjMsMS4zLDAuM2MxLjMsMCwyLjQtMC44LDIuOC0yaDQuNGMwLjIsMC41LDAuNSwxLDEsMS4z
TDE3LDIyICAgQzE3LDIyLDE3LDIyLDE3LDIyeiIgY2xhc3M9IkJsdWUiIC8+DQogICAgPGNpcmNsZSBj
eD0iNyIgY3k9IjE1IiByPSIxIiBjbGFzcz0iV2hpdGUiIC8+DQogICAgPGNpcmNsZSBjeD0iMTciIGN5
PSIyNSIgcj0iMSIgY2xhc3M9IldoaXRlIiAvPg0KICAgIDxjaXJjbGUgY3g9IjIzIiBjeT0iOSIgcj0i
MSIgY2xhc3M9IldoaXRlIiAvPg0KICAgIDxjaXJjbGUgY3g9IjEzIiBjeT0iOSIgcj0iMSIgY2xhc3M9
IldoaXRlIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<data name="simpleButtonGroup.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACcBwAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAw
IDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5Z
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuR3JlZW57ZmlsbDojMDM5
QzIzO30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9Cgkuc3Qwe29w
YWNpdHk6MC41O30KCS5zdDF7b3BhY2l0eTowLjc1O30KCS5zdDJ7b3BhY2l0eTowLjM1O30KCS5zdDN7
b3BhY2l0eTowLjY1O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlJhZGFyQXJlYV8yXyI+DQogICAgPGcgY2xh
c3M9InN0MiI+DQogICAgICA8cGF0aCBkPSJNMTYsMEM3LjIsMCwwLDcuMiwwLDE2czcuMiwxNiwxNiwx
NnMxNi03LjIsMTYtMTZTMjQuOCwwLDE2LDB6IE0xNiwzMEM4LjMsMzAsMiwyMy43LDIsMTZTOC4zLDIs
MTYsMiAgICBzMTQsNi4zLDE0LDE0UzIzLjcsMzAsMTYsMzB6IE0xNiw2QzEwLjUsNiw2LDEwLjUsNiwx
NmMwLDUuNSw0LjUsMTAsMTAsMTBzMTAtNC41LDEwLTEwQzI2LDEwLjUsMjEuNSw2LDE2LDZ6IE0xNiwy
NCAgICBjLTQuNCwwLTgtMy42LTgtOHMzLjYtOCw4LThzOCwzLjYsOCw4UzIwLjQsMjQsMTYsMjR6IE0x
NiwxMmMtMi4yLDAtNCwxLjgtNCw0YzAsMi4yLDEuOCw0LDQsNHM0LTEuOCw0LTRDMjAsMTMuOCwxOC4y
LDEyLDE2LDEyeiAgICAgTTE2LDE4Yy0xLjEsMC0yLTAuOS0yLTJjMC0xLjEsMC45LTIsMi0yczIsMC45
LDIsMkMxOCwxNy4xLDE3LjEsMTgsMTYsMTh6IiBjbGFzcz0iQmxhY2siIC8+DQogICAgPC9nPg0KICAg
IDxnIGNsYXNzPSJzdDEiPg0KICAgICAgPHBhdGggZD0iTTI0LDEwVjkuNWwwLjctMS44TDIyLjgsN2wt
MC40LDFoLTkuNGwtMC4yLTAuMkwxMi42LDhIMTJ2MC42bC01LDVMNi40LDEzTDUsMTQuNGwxMC44LDEw
LjhsLTAuMiwwLjUgICAgbDEuMSwwLjRsMS4xLDEuMWwxLjQtMS40bC0xLTFMMjMuOCwxMEgyNHoiIGNs
YXNzPSJCbHVlIiAvPg0KICAgIDwvZz4NCiAgICA8cGF0aCBkPSJNMjYsOWMwLTEuNy0xLjMtMy0zLTNj
LTEuMywwLTIuNCwwLjgtMi44LDJoLTQuNGMtMC40LTEuMi0xLjUtMi0yLjgtMmMtMS43LDAtMywxLjMt
MywzICAgYzAsMC41LDAuMSwwLjksMC4zLDEuM2wtMiwyQzcuOSwxMi4xLDcuNSwxMiw3LDEyYy0xLjcs
MC0zLDEuMy0zLDNzMS4zLDMsMywzYzAuNSwwLDAuOS0wLjEsMS4zLTAuM2w2LDZDMTQuMSwyNC4xLDE0
LDI0LjUsMTQsMjUgICBjMCwxLjcsMS4zLDMsMywzczMtMS4zLDMtM2MwLTAuOS0wLjQtMS44LTEuMS0y
LjNMMjMsMTJDMjQuNywxMiwyNiwxMC42LDI2LDl6IE0xNywyMmMtMC41LDAtMC45LDAuMS0xLjMsMC4z
bC02LTYgICBDOS45LDE1LjksMTAsMTUuNSwxMCwxNXMtMC4xLTAuOS0wLjMtMS4zbDItMmMwLjQsMC4y
LDAuOCwwLjMsMS4zLDAuM2MxLjMsMCwyLjQtMC44LDIuOC0yaDQuNGMwLjIsMC41LDAuNSwxLDEsMS4z
TDE3LDIyICAgQzE3LDIyLDE3LDIyLDE3LDIyeiIgY2xhc3M9IkJsdWUiIC8+DQogICAgPGNpcmNsZSBj
eD0iNyIgY3k9IjE1IiByPSIxIiBjbGFzcz0iV2hpdGUiIC8+DQogICAgPGNpcmNsZSBjeD0iMTciIGN5
PSIyNSIgcj0iMSIgY2xhc3M9IldoaXRlIiAvPg0KICAgIDxjaXJjbGUgY3g9IjIzIiBjeT0iOSIgcj0i
MSIgY2xhc3M9IldoaXRlIiAvPg0KICAgIDxjaXJjbGUgY3g9IjEzIiBjeT0iOSIgcj0iMSIgY2xhc3M9
IldoaXRlIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<data name="simpleButtonUser.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACcBwAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAw
IDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5Z
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuR3JlZW57ZmlsbDojMDM5
QzIzO30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9Cgkuc3Qwe29w
YWNpdHk6MC41O30KCS5zdDF7b3BhY2l0eTowLjc1O30KCS5zdDJ7b3BhY2l0eTowLjM1O30KCS5zdDN7
b3BhY2l0eTowLjY1O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlJhZGFyQXJlYV8yXyI+DQogICAgPGcgY2xh
c3M9InN0MiI+DQogICAgICA8cGF0aCBkPSJNMTYsMEM3LjIsMCwwLDcuMiwwLDE2czcuMiwxNiwxNiwx
NnMxNi03LjIsMTYtMTZTMjQuOCwwLDE2LDB6IE0xNiwzMEM4LjMsMzAsMiwyMy43LDIsMTZTOC4zLDIs
MTYsMiAgICBzMTQsNi4zLDE0LDE0UzIzLjcsMzAsMTYsMzB6IE0xNiw2QzEwLjUsNiw2LDEwLjUsNiwx
NmMwLDUuNSw0LjUsMTAsMTAsMTBzMTAtNC41LDEwLTEwQzI2LDEwLjUsMjEuNSw2LDE2LDZ6IE0xNiwy
NCAgICBjLTQuNCwwLTgtMy42LTgtOHMzLjYtOCw4LThzOCwzLjYsOCw4UzIwLjQsMjQsMTYsMjR6IE0x
NiwxMmMtMi4yLDAtNCwxLjgtNCw0YzAsMi4yLDEuOCw0LDQsNHM0LTEuOCw0LTRDMjAsMTMuOCwxOC4y
LDEyLDE2LDEyeiAgICAgTTE2LDE4Yy0xLjEsMC0yLTAuOS0yLTJjMC0xLjEsMC45LTIsMi0yczIsMC45
LDIsMkMxOCwxNy4xLDE3LjEsMTgsMTYsMTh6IiBjbGFzcz0iQmxhY2siIC8+DQogICAgPC9nPg0KICAg
IDxnIGNsYXNzPSJzdDEiPg0KICAgICAgPHBhdGggZD0iTTI0LDEwVjkuNWwwLjctMS44TDIyLjgsN2wt
MC40LDFoLTkuNGwtMC4yLTAuMkwxMi42LDhIMTJ2MC42bC01LDVMNi40LDEzTDUsMTQuNGwxMC44LDEw
LjhsLTAuMiwwLjUgICAgbDEuMSwwLjRsMS4xLDEuMWwxLjQtMS40bC0xLTFMMjMuOCwxMEgyNHoiIGNs
YXNzPSJCbHVlIiAvPg0KICAgIDwvZz4NCiAgICA8cGF0aCBkPSJNMjYsOWMwLTEuNy0xLjMtMy0zLTNj
LTEuMywwLTIuNCwwLjgtMi44LDJoLTQuNGMtMC40LTEuMi0xLjUtMi0yLjgtMmMtMS43LDAtMywxLjMt
MywzICAgYzAsMC41LDAuMSwwLjksMC4zLDEuM2wtMiwyQzcuOSwxMi4xLDcuNSwxMiw3LDEyYy0xLjcs
MC0zLDEuMy0zLDNzMS4zLDMsMywzYzAuNSwwLDAuOS0wLjEsMS4zLTAuM2w2LDZDMTQuMSwyNC4xLDE0
LDI0LjUsMTQsMjUgICBjMCwxLjcsMS4zLDMsMywzczMtMS4zLDMtM2MwLTAuOS0wLjQtMS44LTEuMS0y
LjNMMjMsMTJDMjQuNywxMiwyNiwxMC42LDI2LDl6IE0xNywyMmMtMC41LDAtMC45LDAuMS0xLjMsMC4z
bC02LTYgICBDOS45LDE1LjksMTAsMTUuNSwxMCwxNXMtMC4xLTAuOS0wLjMtMS4zbDItMmMwLjQsMC4y
LDAuOCwwLjMsMS4zLDAuM2MxLjMsMCwyLjQtMC44LDIuOC0yaDQuNGMwLjIsMC41LDAuNSwxLDEsMS4z
TDE3LDIyICAgQzE3LDIyLDE3LDIyLDE3LDIyeiIgY2xhc3M9IkJsdWUiIC8+DQogICAgPGNpcmNsZSBj
eD0iNyIgY3k9IjE1IiByPSIxIiBjbGFzcz0iV2hpdGUiIC8+DQogICAgPGNpcmNsZSBjeD0iMTciIGN5
PSIyNSIgcj0iMSIgY2xhc3M9IldoaXRlIiAvPg0KICAgIDxjaXJjbGUgY3g9IjIzIiBjeT0iOSIgcj0i
MSIgY2xhc3M9IldoaXRlIiAvPg0KICAgIDxjaXJjbGUgY3g9IjEzIiBjeT0iOSIgcj0iMSIgY2xhc3M9
IldoaXRlIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<data name="simpleButtonHost.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACcBwAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAw
IDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5Z
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuR3JlZW57ZmlsbDojMDM5
QzIzO30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9Cgkuc3Qwe29w
YWNpdHk6MC41O30KCS5zdDF7b3BhY2l0eTowLjc1O30KCS5zdDJ7b3BhY2l0eTowLjM1O30KCS5zdDN7
b3BhY2l0eTowLjY1O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlJhZGFyQXJlYV8yXyI+DQogICAgPGcgY2xh
c3M9InN0MiI+DQogICAgICA8cGF0aCBkPSJNMTYsMEM3LjIsMCwwLDcuMiwwLDE2czcuMiwxNiwxNiwx
NnMxNi03LjIsMTYtMTZTMjQuOCwwLDE2LDB6IE0xNiwzMEM4LjMsMzAsMiwyMy43LDIsMTZTOC4zLDIs
MTYsMiAgICBzMTQsNi4zLDE0LDE0UzIzLjcsMzAsMTYsMzB6IE0xNiw2QzEwLjUsNiw2LDEwLjUsNiwx
NmMwLDUuNSw0LjUsMTAsMTAsMTBzMTAtNC41LDEwLTEwQzI2LDEwLjUsMjEuNSw2LDE2LDZ6IE0xNiwy
NCAgICBjLTQuNCwwLTgtMy42LTgtOHMzLjYtOCw4LThzOCwzLjYsOCw4UzIwLjQsMjQsMTYsMjR6IE0x
NiwxMmMtMi4yLDAtNCwxLjgtNCw0YzAsMi4yLDEuOCw0LDQsNHM0LTEuOCw0LTRDMjAsMTMuOCwxOC4y
LDEyLDE2LDEyeiAgICAgTTE2LDE4Yy0xLjEsMC0yLTAuOS0yLTJjMC0xLjEsMC45LTIsMi0yczIsMC45
LDIsMkMxOCwxNy4xLDE3LjEsMTgsMTYsMTh6IiBjbGFzcz0iQmxhY2siIC8+DQogICAgPC9nPg0KICAg
IDxnIGNsYXNzPSJzdDEiPg0KICAgICAgPHBhdGggZD0iTTI0LDEwVjkuNWwwLjctMS44TDIyLjgsN2wt
MC40LDFoLTkuNGwtMC4yLTAuMkwxMi42LDhIMTJ2MC42bC01LDVMNi40LDEzTDUsMTQuNGwxMC44LDEw
LjhsLTAuMiwwLjUgICAgbDEuMSwwLjRsMS4xLDEuMWwxLjQtMS40bC0xLTFMMjMuOCwxMEgyNHoiIGNs
YXNzPSJCbHVlIiAvPg0KICAgIDwvZz4NCiAgICA8cGF0aCBkPSJNMjYsOWMwLTEuNy0xLjMtMy0zLTNj
LTEuMywwLTIuNCwwLjgtMi44LDJoLTQuNGMtMC40LTEuMi0xLjUtMi0yLjgtMmMtMS43LDAtMywxLjMt
MywzICAgYzAsMC41LDAuMSwwLjksMC4zLDEuM2wtMiwyQzcuOSwxMi4xLDcuNSwxMiw3LDEyYy0xLjcs
MC0zLDEuMy0zLDNzMS4zLDMsMywzYzAuNSwwLDAuOS0wLjEsMS4zLTAuM2w2LDZDMTQuMSwyNC4xLDE0
LDI0LjUsMTQsMjUgICBjMCwxLjcsMS4zLDMsMywzczMtMS4zLDMtM2MwLTAuOS0wLjQtMS44LTEuMS0y
LjNMMjMsMTJDMjQuNywxMiwyNiwxMC42LDI2LDl6IE0xNywyMmMtMC41LDAtMC45LDAuMS0xLjMsMC4z
bC02LTYgICBDOS45LDE1LjksMTAsMTUuNSwxMCwxNXMtMC4xLTAuOS0wLjMtMS4zbDItMmMwLjQsMC4y
LDAuOCwwLjMsMS4zLDAuM2MxLjMsMCwyLjQtMC44LDIuOC0yaDQuNGMwLjIsMC41LDAuNSwxLDEsMS4z
TDE3LDIyICAgQzE3LDIyLDE3LDIyLDE3LDIyeiIgY2xhc3M9IkJsdWUiIC8+DQogICAgPGNpcmNsZSBj
eD0iNyIgY3k9IjE1IiByPSIxIiBjbGFzcz0iV2hpdGUiIC8+DQogICAgPGNpcmNsZSBjeD0iMTciIGN5
PSIyNSIgcj0iMSIgY2xhc3M9IldoaXRlIiAvPg0KICAgIDxjaXJjbGUgY3g9IjIzIiBjeT0iOSIgcj0i
MSIgY2xhc3M9IldoaXRlIiAvPg0KICAgIDxjaXJjbGUgY3g9IjEzIiBjeT0iOSIgcj0iMSIgY2xhc3M9
IldoaXRlIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<data name="simpleButtonModify1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC+AwAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkN1c3RvbWl6ZU1lcmdlRmllbGQiIHN0eWxlPSJlbmFibGUtYmFja2dy
b3VuZDpuZXcgMCAwIDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbGFja3tmaWxs
OiM3MjcyNzI7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5ZZWxsb3d7ZmlsbDojRkZCMTE1O30KPC9z
dHlsZT4NCiAgPHJlY3QgeD0iNiIgeT0iMTAiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiByeD0iMCIgcnk9
IjAiIGNsYXNzPSJZZWxsb3ciIC8+DQogIDxwYXRoIGQ9Ik0zMS41LDI4LjlsLTYuMS02LjFDMjUuOCwy
MS45LDI2LDIxLDI2LDIwYzAtMy4zLTIuNy02LTYtNmMtMSwwLTEuOSwwLjItMi43LDAuN2w0LjIsNC4y
ICBjMC43LDAuNywwLjcsMS45LDAsMi42Yy0wLjcsMC43LTEuOSwwLjctMi42LDBsLTQuMi00LjJDMTQu
MiwxOC4xLDE0LDE5LDE0LDIwYzAsMy4zLDIuNyw2LDYsNmMxLDAsMS45LTAuMiwyLjctMC43bDYuMSw2
LjEgIGMwLjcsMC43LDEuOSwwLjcsMi42LDBDMzIuMiwzMC44LDMyLjIsMjkuNiwzMS41LDI4Ljl6IiBj
bGFzcz0iQmx1ZSIgLz4NCiAgPHBhdGggZD0iTTI0LjYsMzBIMWMtMC41LDAtMS0wLjUtMS0xVjFjMC0w
LjUsMC41LTEsMS0xaDI0YzAuNSwwLDEsMC41LDEsMXYxMy43Yy0wLjYtMC43LTEuMi0xLjItMi0xLjZW
MkgydjI2aDIwLjYgIEwyNC42LDMweiBNMjAsNkg2djJoMTRWNnogTTE2LDE0SDZ2MmgxMFYxNHogTTEy
LDIySDZ2Mmg2VjIyeiBNMTIsMThINnYyaDZWMTh6IiBjbGFzcz0iQmxhY2siIC8+DQo8L3N2Zz4L
</value>
</data>
<data name="simpleButtonRegister1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABmBAAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAw
IDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbHVle2ZpbGw6IzExNzdENzt9Cgku
WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9CgkuR3JlZW57ZmlsbDojMDM5
QzIzO30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9Cgkuc3Qwe29w
YWNpdHk6MC41O30KCS5zdDF7b3BhY2l0eTowLjc1O30KCS5zdDJ7ZGlzcGxheTpub25lO30KCS5zdDN7
ZGlzcGxheTppbmxpbmU7ZmlsbDojRkZCMTE1O30KCS5zdDR7ZGlzcGxheTppbmxpbmU7fQoJLnN0NXtk
aXNwbGF5OmlubGluZTtvcGFjaXR5OjAuNzU7fQoJLnN0NntkaXNwbGF5OmlubGluZTtvcGFjaXR5OjAu
NTt9Cgkuc3Q3e2Rpc3BsYXk6aW5saW5lO2ZpbGw6IzAzOUMyMzt9Cgkuc3Q4e2Rpc3BsYXk6aW5saW5l
O2ZpbGw6I0QxMUMxQzt9Cgkuc3Q5e2Rpc3BsYXk6aW5saW5lO2ZpbGw6IzExNzdENzt9Cgkuc3QxMHtk
aXNwbGF5OmlubGluZTtmaWxsOiNGRkZGRkY7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRG9jdW1lbnRfMV8i
Pg0KICAgIDxwYXRoIGQ9Ik0xNSwyMGw5LTlsNSw1bC05LDlMMTUsMjB6IE0zMS43LDExLjlsLTMuNi0z
LjZjLTAuNC0wLjQtMS0wLjQtMS40LDBMMjUsMTBsNSw1bDEuNy0xLjcgICBDMzIuMSwxMi45LDMyLjEs
MTIuMywzMS43LDExLjl6IE0xNCwyNmg1bC01LTVWMjZ6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgICA8cGF0
aCBkPSJNMjQsMjMuOFYyOGgtNC4ySDEySDZWNGgxOHY0LjJsMi0yVjNjMC0wLjUtMC41LTEtMS0xSDVD
NC40LDIsNCwyLjUsNCwzdjI2YzAsMC41LDAuNSwxLDEsMWgyMCAgIGMwLjUsMCwxLTAuNSwxLTF2LTcu
MkwyNCwyMy44eiIgY2xhc3M9IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
</root>

View File

@ -140,7 +140,7 @@ namespace SystemX.Product.ALIS.UI.View.InfoList
//
this.textBoxSection.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxSection.Location = new System.Drawing.Point(231, 104);
this.textBoxSection.MaxLength = 8;
this.textBoxSection.MaxLength = 64;
this.textBoxSection.Name = "textBoxSection";
this.textBoxSection.Size = new System.Drawing.Size(161, 21);
this.textBoxSection.TabIndex = 2;
@ -149,7 +149,7 @@ namespace SystemX.Product.ALIS.UI.View.InfoList
//
this.textBoxHostID.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxHostID.Location = new System.Drawing.Point(231, 74);
this.textBoxHostID.MaxLength = 8;
this.textBoxHostID.MaxLength = 64;
this.textBoxHostID.Name = "textBoxHostID";
this.textBoxHostID.Size = new System.Drawing.Size(161, 21);
this.textBoxHostID.TabIndex = 1;

View File

@ -0,0 +1,438 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraGrid.Views.Grid;
using SystemX.Product.ALIS.UI.View.InfoList;
using System.Data.SqlClient;
using SystemX.Product.ALIS.Interface;
using static SystemX.Product.ALIS.UI.View.ViewCfg;
using DevExpress.XtraGrid.Columns;
using System.Reflection;
using SystemX.Product.ALIS.UI.Subs;
using System.Threading;
using static CpCommon.ExceptionHandler;
using static PsKGaudi.Parser.PsCCS;
using PsKGaudi.Parser.PsCCSSTDFn;
using CpApplication;
using CpApplication.Manager;
using CpCommon;
using CpTesterPlatform.CpLogUtil;
using static PsCommon.PsCommon;
using System.Xml.Linq;
using PsKGaudi.Parser.PsCCSArea;
using PsKGaudi;
using PsKGaudi.Parser.MacroModuleSkel;
using PsKGaudi.Parser.PsCCSSTDFn.Parameters;
using DevExpress.XtraGrid.Views.Base;
using PsKGaudi.Parser.PsCCSSTDFn;
using System.IO;
using static SystemX.Net.Platform.Common.Util.LogMessage;
using System.Diagnostics;
using SystemX.Common;
using SystemX.Common.Archive;
namespace SystemX.Product.ALIS.UI.View.InfoList
{
public class UcTestListViewVariantFullUpdateWorker
{
}
public partial class UcTestListView
{
private void RunAsyncVariantFullUpdateWorker(CVariantInformation GetUpdateInfo, int nProcessCnt)
{
loadForm.SetProgressValue(nProcessCnt);
workerTestListVariantFullUpdate.RunWorkerAsync(GetUpdateInfo);
stLoadFormWait.Restart();
loadForm.ShowDialog();
}
private void PerformTestListVariantFullUpdate(object sender, DoWorkEventArgs args)
{
CVariantInformation GetUpdateInfo = (CVariantInformation)((System.ComponentModel.DoWorkEventArgs)args).Argument;
bool bBinaryCompareResult = false;
bool bProcessResult = true;
Stopwatch stMeasTime = new Stopwatch();
stMeasTime.Start();
int igetMaxStepVersion = int.MaxValue;
try
{
//Binary 상태 비교
//동일한 파일(변경점이 없을시) 미진행
if (Commons.ByteArrayCompare(GetUpdateInfo.TestListLoadRawData, GetUpdateInfo.TestListSelectRawData) == true)
{
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @" PerformTestListVariantFullUpdate() ByteArrayCompare Result = true", ConsoleColor.Yellow, LogMessageLevel.DEBUG);
bBinaryCompareResult = true;
}
else
{
//기존 정보
PsCCSGaudiFile orgFile = TemporaryTestListLoad(GetUpdateInfo.TestListLoadRawData);
//새로운 정보
PsCCSGaudiFile newFile = TemporaryTestListLoad(GetUpdateInfo.TestListSelectRawData);
//새 정보에서의 차집합
List<PsCCSStdFnBase> fbaseNewChg = newFile.ListTestStep.Except(orgFile.ListTestStep, new PsCCSStdFnBaseDataCompare()).ToList();
//기존 정보에서의 차집합
List<PsCCSStdFnBase> fbaseOldChg = orgFile.ListTestStep.Except(newFile.ListTestStep, new PsCCSStdFnBaseDataCompare()).ToList();
//전체 변경 항목(추가/삭제 항목 포함)
List<PsCCSStdFnBase> changeAllItem = fbaseNewChg.Except(fbaseOldChg, new PsCCSStdFnBaseDataCompare()).ToList();
//삭제된 항목
List<PsCCSStdFnBase> deleteItem = fbaseOldChg.Except(fbaseNewChg, new PsCCSStdFnBaseDataCompare(false)).ToList();
//추가된 항목
List<PsCCSStdFnBase> newItem = fbaseNewChg.Except(fbaseOldChg, new PsCCSStdFnBaseDataCompare(false)).ToList();
//변경된 항목
List<PsCCSStdFnBase> setChgItem = changeAllItem.Except(newItem, new PsCCSStdFnBaseDataCompare()).ToList();
setChgItem = setChgItem.Except(deleteItem, new PsCCSStdFnBaseDataCompare()).ToList();
DateTime dtsetTime = DateTime.Now;
//수정 -> 삭제 -> 추가
//현재 마지막 버전 확인
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @" PerformTestListVariantFullUpdate() Get PROD_TestListNo", ConsoleColor.Yellow, LogMessageLevel.DEBUG);
int nTestListNo = GetUpdateInfo.VariantNo;
int nLastVersion = -1;
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @" PerformTestListVariantFullUpdate() PROD_TestListNo = " + nTestListNo, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
ctrlDB.GetConnSqlCmd().CommandText = "SELECT MAX(StepVersion) AS 'Latest Version' FROM VRFY_Release WHERE TestListNo = " + nTestListNo + ";";
nLastVersion = Convert.ToInt32(ctrlDB.GetConnSqlCmd().ExecuteScalar());
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @" PerformTestListVariantFullUpdate() Current Last StepVersion = " + nLastVersion, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
SetVRFYReleaseTableControl(eVRFYControlMode.Change, nTestListNo, dtsetTime, setChgItem, nLastVersion);
SetVRFYReleaseTableControl(eVRFYControlMode.Delete, nTestListNo, dtsetTime, deleteItem, nLastVersion);
SetVRFYReleaseTableControl(eVRFYControlMode.Insert, nTestListNo, dtsetTime, newItem, nLastVersion);
ctrlDB.GetConnSqlCmd().CommandText = "SELECT MAX(StepVersion) AS 'Latest Version' FROM VRFY_Release WHERE TestlistNo = " + nTestListNo + ";";
igetMaxStepVersion = Convert.ToInt32(ctrlDB.GetConnSqlCmd().ExecuteScalar());
ctrlDB.GetConnSqlCmd().CommandText = "UPDATE [HIST_LatestStepVersion] SET LatestStepVersion = " + igetMaxStepVersion +
"WHERE TestlistNo = " + nTestListNo + ";";
}
try
{
int EffectRows = ctrlDB.GetConnSqlCmd().ExecuteNonQuery();
}
catch (Exception ex)
{
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @" PerformTestListVariantFullUpdate() SqlCommand Update Error. " + ex.Message, ConsoleColor.Red, LogMessageLevel.FATAL);
throw;
}
}
catch (Exception error)
{
bProcessResult = false;
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @" PerformTestListVariantFullUpdate() Common Error. " + error.Message, ConsoleColor.Red, LogMessageLevel.FATAL);
}
finally
{
;//
}
try
{
var setResult = new Tuple<CVariantInformation, bool, bool, int>(GetUpdateInfo, bBinaryCompareResult, bProcessResult, igetMaxStepVersion);
args.Result = setResult;
}
catch (Exception error)
{
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @" PerformTestListVariantFullUpdate() Common Error. " + error.Message, ConsoleColor.Red, LogMessageLevel.FATAL);
}
finally
{
;//
}
long lMeasTime = stMeasTime.ElapsedMilliseconds;
}
private async void ReadingVariantFullUpdateCompleted(object sender, RunWorkerCompletedEventArgs args)
{
// Error Check
if (args.Error != null)
{
;//
}
// Worker Cancel
else if (args.Cancelled)
{
;//
}
// Success
else
{
var getResult = args.Result as Tuple<CVariantInformation, bool, bool, int>;
CVariantInformation GetUpdateInfo = getResult.Item1;
bool bGetCompareResult = getResult.Item2;
bool bGetProcessResult = getResult.Item3;
int iGetMaxStepVersion = getResult.Item4;
//정상 처리 상태 일때만.
if (bGetProcessResult)
{
//테스트 리스트 데이터가 같고 그외 내용이 변경되었거나 그대로일 경우 우선 업데이트 진행.
if (bGetCompareResult == true)
SqlFullUpdateProdTestListVariant(GetUpdateInfo, iGetMaxStepVersion);
//테스트 리스트 데이터 까지 변경
else
SqlFullUpdateProdTestListVariant(GetUpdateInfo, iGetMaxStepVersion, true);
}
}
if (stLoadFormWait.ElapsedMilliseconds <= 1000)
{
int iremainTime = 1000 - (int)stLoadFormWait.ElapsedMilliseconds;
await Task.Delay(iremainTime); //Thread.Sleep(iremainTime);
}
if (loadForm != null)
{
loadForm.Close();
loadForm = null;
}
}
/// <summary>
///
/// </summary>
/// <param name="GetUpdateInfo"></param>
/// <param name="iMaxStepVersion"></param>
/// <param name="bTestListDataShift"></param>
private void SqlFullUpdateProdTestListVariant(CVariantInformation GetUpdateInfo, int iMaxStepVersion, bool bTestListDataShift = false)
{
bool bUpdatedResult = true;
string strSetRegDT, strSetUpdateDT;
strSetRegDT = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
strSetUpdateDT = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
SqlCommand cmd = new SqlCommand();
string columns = string.Empty;
columns = "ProdNo_P,TestType,Version,ProdCode,FileName,UpdateDT,UpdateUser,GroupNo,Comment,Description,TestListData";
Type type = typeof(CVariantInformation);
FieldInfo[] f = type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
StringBuilder sb = new StringBuilder();
sb.Append("UPDATE [PROD_TestList] SET ");
foreach (string str in columns.Split(','))
{
int idx = -1;
idx = Array.FindIndex(f, x => x.Name.IndexOf(str) >= 0);
if (str == "TestListData")
{
byte[] ucWriteTestList = XDataArchive.CompressGZipByteToByte(GetUpdateInfo.TestListSelectRawData);
string strGetBytes = "0x" + string.Concat(Array.ConvertAll(ucWriteTestList, byt => byt.ToString("X2")));
sb.Append(str + " = " + strGetBytes + ", ");
}
else if (str == "RegDT" || str == "UpdateDT")
{
string strGetDateTime = ctrlDB.SetConvertDateTime(f[idx].GetValue(GetUpdateInfo).ToString());
sb.Append(str + " = '" + strGetDateTime + "', ");
if (str == "RegDT")
strSetRegDT = strGetDateTime;
else if (str == "UpdateDT")
strSetUpdateDT = strGetDateTime;
}
else
sb.Append(str + " = '" + f[idx].GetValue(GetUpdateInfo) + "', ");
}
sb = sb.Remove(sb.Length - 2, 1);
sb.Append("WHERE No = " + GetUpdateInfo.VariantNo + ";");
cmd = new SqlCommand(sb.ToString(), ctrlDB.GetConnSqlCmd().Connection);
try
{
int EffectRows = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
bUpdatedResult = false;
MessageBox.Show(ex.Message, "SqlFullUpdateProdTestListVariant [PROD_TestList] - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
//업데이트 결과가 정상이고 두번 이상의 업데이트가 일어났을때 HIST_TestList 등록 및 데이터 업데이트(쉬프트 시작)
if (bTestListDataShift == false)
return;
if (bUpdatedResult && iMaxStepVersion > 0)
{
string strQueryText = $"SELECT No, TestListNo, ProdNo_P FROM [HIST_TestList] WHERE TestListNo = {GetUpdateInfo.VariantNo} AND ProdNo_P = '{GetUpdateInfo.ProdNo_P}';";
DataTable dtQuery = ctrlDB.GetTable(strQueryText);
try
{
if (XCommons.isHasRow(dtQuery) == false)
{
strQueryText = $"INSERT INTO [HIST_TestList] (TestListNo, ProdNo_P) VALUES({GetUpdateInfo.VariantNo}, '{GetUpdateInfo.ProdNo_P}');";
cmd = new SqlCommand(strQueryText, ctrlDB.GetConnSqlCmd().Connection);
int EffectRows = cmd.ExecuteNonQuery();
}
}
catch (Exception ex)
{
bUpdatedResult = false;
MessageBox.Show(ex.Message, "SqlFullUpdateProdTestListVariant [HIST_TestList] - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
HistTestListVariantDataFullUpdate(GetUpdateInfo);
}
}
/// <summary>
/// 동일 정보 일괄 업데이트 용
/// [이전 테스트리스트 새 테스트 리스트 비교하여 처이점이 있을시 버전 업데이트 및 Release VRFY 반영]
/// * 2022/11/08 추가 : 변경점이 있는 테스트리스트 업데이트시 HIST_TestList 반영 버전 선택 및 버전 선택 다운로드 반영
/// * 2023/03/16 추가 : 동일 Variant 군 일괄 업데이트 기능
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private bool HistTestListVariantDataFullUpdate(CVariantInformation GetUpdateInfo)
{
bool bDataShiftResult = true;
SqlCommand cmd = new SqlCommand();
string columns = string.Empty;
string strQueryText = $"SELECT * FROM [HIST_TestList] WHERE TestListNo = {GetUpdateInfo.VariantNo} AND ProdNo_P = '{GetUpdateInfo.ProdNo_P}';";
DataTable dtQuery = ctrlDB.GetTable(strQueryText);
if (XCommons.isHasRow(dtQuery) == false)
return false;
int nAccessNo = Convert.ToInt32(dtQuery.Rows[0]["No"]);
bool[] bMoveData = new bool[5];
Array.Clear(bMoveData, 0, 5);
bMoveData[0] = true;
string[] strTestListDataName = { "TestListData1", "TestListData2", "TestListData3", "TestListData4", "TestListData5" };
string[] strArrGetBytes = new string[5];
//Data Check
for (int i = 0; i < 5; i++)
{
if (dtQuery.Rows[0][strTestListDataName[i]] is byte[])
{
if (i + 1 < 5) bMoveData[i + 1] = true;
}
else
continue;
byte[] ucWriteTestList = dtQuery.Rows[0][strTestListDataName[i]] as byte[];
strArrGetBytes[i] = "0x" + string.Concat(Array.ConvertAll(ucWriteTestList, byt => byt.ToString("X2")));
}
//Data Ready&Move
for (int i = 4; i >= 0; i--)
{
if (bMoveData[i] == false)
continue;
switch (i)
{
case 0:
{
byte[] ucWriteTestList = XDataArchive.CompressGZipByteToByte(GetUpdateInfo.TestListLoadRawData);
string strGetBytes = "0x" + string.Concat(Array.ConvertAll(ucWriteTestList, byt => byt.ToString("X2")));
strArrGetBytes[i] = strGetBytes;
}
break;
default:
strArrGetBytes[i] = strArrGetBytes[i - 1];
break;
}
}
//Data Update
columns = "TestListData1,TestListData2,TestListData3,TestListData4,TestListData5";
StringBuilder sb = new StringBuilder();
sb.Append("UPDATE [HIST_TestList] SET ");
int nPos = 0;
foreach (string str in columns.Split(','))
{
if (bMoveData[nPos] == false)
continue;
sb.Append(str + " = " + strArrGetBytes[nPos] + ", ");
nPos++;
}
sb = sb.Remove(sb.Length - 2, 1);
sb.Append("WHERE No = " + nAccessNo + ";");
cmd = new SqlCommand(sb.ToString(), ctrlDB.GetConnSqlCmd().Connection);
try
{
int EffectRows = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
bDataShiftResult = false;
MessageBox.Show(ex.Message, "HistTestListVariantDataFullUpdate [HIST_TestList][Data Update] - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return bDataShiftResult;
}
}
}

View File

@ -0,0 +1,342 @@
<?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>
<metadata name="contextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>31, 25</value>
</metadata>
<metadata name="defaultToolTipController.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>503, 27</value>
</metadata>
<metadata name="toolTipController.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>357, 27</value>
</metadata>
<assembly alias="DevExpress.Data.v20.2" name="DevExpress.Data.v20.2, Version=20.2.11.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="simpleButtonDataMod.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABfAgAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAw
IDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJ
LlJlZHtmaWxsOiNEMTFDMUM7fQoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJLkdyZWVue2ZpbGw6IzAz
OUMyMzt9Cjwvc3R5bGU+DQogIDxnIGlkPSJXYXJuaW5nQ2lyY2xlZDEiPg0KICAgIDxwYXRoIGQ9Ik0x
NiwyQzguMywyLDIsOC4zLDIsMTZzNi4zLDE0LDE0LDE0czE0LTYuMywxNC0xNFMyMy43LDIsMTYsMnog
TTE2LDI0Yy0xLjEsMC0yLTAuOS0yLTJjMC0xLjEsMC45LTIsMi0yICAgczIsMC45LDIsMkMxOCwyMy4x
LDE3LjEsMjQsMTYsMjR6IE0xOCwxOGgtNFY4aDRWMTh6IiBjbGFzcz0iUmVkIiAvPg0KICA8L2c+DQo8
L3N2Zz4L
</value>
</data>
<data name="simpleButtonTestListRel.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACcBwAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAw
IDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5Z
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuR3JlZW57ZmlsbDojMDM5
QzIzO30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9Cgkuc3Qwe29w
YWNpdHk6MC41O30KCS5zdDF7b3BhY2l0eTowLjc1O30KCS5zdDJ7b3BhY2l0eTowLjM1O30KCS5zdDN7
b3BhY2l0eTowLjY1O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlJhZGFyQXJlYV8yXyI+DQogICAgPGcgY2xh
c3M9InN0MiI+DQogICAgICA8cGF0aCBkPSJNMTYsMEM3LjIsMCwwLDcuMiwwLDE2czcuMiwxNiwxNiwx
NnMxNi03LjIsMTYtMTZTMjQuOCwwLDE2LDB6IE0xNiwzMEM4LjMsMzAsMiwyMy43LDIsMTZTOC4zLDIs
MTYsMiAgICBzMTQsNi4zLDE0LDE0UzIzLjcsMzAsMTYsMzB6IE0xNiw2QzEwLjUsNiw2LDEwLjUsNiwx
NmMwLDUuNSw0LjUsMTAsMTAsMTBzMTAtNC41LDEwLTEwQzI2LDEwLjUsMjEuNSw2LDE2LDZ6IE0xNiwy
NCAgICBjLTQuNCwwLTgtMy42LTgtOHMzLjYtOCw4LThzOCwzLjYsOCw4UzIwLjQsMjQsMTYsMjR6IE0x
NiwxMmMtMi4yLDAtNCwxLjgtNCw0YzAsMi4yLDEuOCw0LDQsNHM0LTEuOCw0LTRDMjAsMTMuOCwxOC4y
LDEyLDE2LDEyeiAgICAgTTE2LDE4Yy0xLjEsMC0yLTAuOS0yLTJjMC0xLjEsMC45LTIsMi0yczIsMC45
LDIsMkMxOCwxNy4xLDE3LjEsMTgsMTYsMTh6IiBjbGFzcz0iQmxhY2siIC8+DQogICAgPC9nPg0KICAg
IDxnIGNsYXNzPSJzdDEiPg0KICAgICAgPHBhdGggZD0iTTI0LDEwVjkuNWwwLjctMS44TDIyLjgsN2wt
MC40LDFoLTkuNGwtMC4yLTAuMkwxMi42LDhIMTJ2MC42bC01LDVMNi40LDEzTDUsMTQuNGwxMC44LDEw
LjhsLTAuMiwwLjUgICAgbDEuMSwwLjRsMS4xLDEuMWwxLjQtMS40bC0xLTFMMjMuOCwxMEgyNHoiIGNs
YXNzPSJCbHVlIiAvPg0KICAgIDwvZz4NCiAgICA8cGF0aCBkPSJNMjYsOWMwLTEuNy0xLjMtMy0zLTNj
LTEuMywwLTIuNCwwLjgtMi44LDJoLTQuNGMtMC40LTEuMi0xLjUtMi0yLjgtMmMtMS43LDAtMywxLjMt
MywzICAgYzAsMC41LDAuMSwwLjksMC4zLDEuM2wtMiwyQzcuOSwxMi4xLDcuNSwxMiw3LDEyYy0xLjcs
MC0zLDEuMy0zLDNzMS4zLDMsMywzYzAuNSwwLDAuOS0wLjEsMS4zLTAuM2w2LDZDMTQuMSwyNC4xLDE0
LDI0LjUsMTQsMjUgICBjMCwxLjcsMS4zLDMsMywzczMtMS4zLDMtM2MwLTAuOS0wLjQtMS44LTEuMS0y
LjNMMjMsMTJDMjQuNywxMiwyNiwxMC42LDI2LDl6IE0xNywyMmMtMC41LDAtMC45LDAuMS0xLjMsMC4z
bC02LTYgICBDOS45LDE1LjksMTAsMTUuNSwxMCwxNXMtMC4xLTAuOS0wLjMtMS4zbDItMmMwLjQsMC4y
LDAuOCwwLjMsMS4zLDAuM2MxLjMsMCwyLjQtMC44LDIuOC0yaDQuNGMwLjIsMC41LDAuNSwxLDEsMS4z
TDE3LDIyICAgQzE3LDIyLDE3LDIyLDE3LDIyeiIgY2xhc3M9IkJsdWUiIC8+DQogICAgPGNpcmNsZSBj
eD0iNyIgY3k9IjE1IiByPSIxIiBjbGFzcz0iV2hpdGUiIC8+DQogICAgPGNpcmNsZSBjeD0iMTciIGN5
PSIyNSIgcj0iMSIgY2xhc3M9IldoaXRlIiAvPg0KICAgIDxjaXJjbGUgY3g9IjIzIiBjeT0iOSIgcj0i
MSIgY2xhc3M9IldoaXRlIiAvPg0KICAgIDxjaXJjbGUgY3g9IjEzIiBjeT0iOSIgcj0iMSIgY2xhc3M9
IldoaXRlIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<data name="simpleButtonTestList.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACcBwAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAw
IDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5Z
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuR3JlZW57ZmlsbDojMDM5
QzIzO30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9Cgkuc3Qwe29w
YWNpdHk6MC41O30KCS5zdDF7b3BhY2l0eTowLjc1O30KCS5zdDJ7b3BhY2l0eTowLjM1O30KCS5zdDN7
b3BhY2l0eTowLjY1O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlJhZGFyQXJlYV8yXyI+DQogICAgPGcgY2xh
c3M9InN0MiI+DQogICAgICA8cGF0aCBkPSJNMTYsMEM3LjIsMCwwLDcuMiwwLDE2czcuMiwxNiwxNiwx
NnMxNi03LjIsMTYtMTZTMjQuOCwwLDE2LDB6IE0xNiwzMEM4LjMsMzAsMiwyMy43LDIsMTZTOC4zLDIs
MTYsMiAgICBzMTQsNi4zLDE0LDE0UzIzLjcsMzAsMTYsMzB6IE0xNiw2QzEwLjUsNiw2LDEwLjUsNiwx
NmMwLDUuNSw0LjUsMTAsMTAsMTBzMTAtNC41LDEwLTEwQzI2LDEwLjUsMjEuNSw2LDE2LDZ6IE0xNiwy
NCAgICBjLTQuNCwwLTgtMy42LTgtOHMzLjYtOCw4LThzOCwzLjYsOCw4UzIwLjQsMjQsMTYsMjR6IE0x
NiwxMmMtMi4yLDAtNCwxLjgtNCw0YzAsMi4yLDEuOCw0LDQsNHM0LTEuOCw0LTRDMjAsMTMuOCwxOC4y
LDEyLDE2LDEyeiAgICAgTTE2LDE4Yy0xLjEsMC0yLTAuOS0yLTJjMC0xLjEsMC45LTIsMi0yczIsMC45
LDIsMkMxOCwxNy4xLDE3LjEsMTgsMTYsMTh6IiBjbGFzcz0iQmxhY2siIC8+DQogICAgPC9nPg0KICAg
IDxnIGNsYXNzPSJzdDEiPg0KICAgICAgPHBhdGggZD0iTTI0LDEwVjkuNWwwLjctMS44TDIyLjgsN2wt
MC40LDFoLTkuNGwtMC4yLTAuMkwxMi42LDhIMTJ2MC42bC01LDVMNi40LDEzTDUsMTQuNGwxMC44LDEw
LjhsLTAuMiwwLjUgICAgbDEuMSwwLjRsMS4xLDEuMWwxLjQtMS40bC0xLTFMMjMuOCwxMEgyNHoiIGNs
YXNzPSJCbHVlIiAvPg0KICAgIDwvZz4NCiAgICA8cGF0aCBkPSJNMjYsOWMwLTEuNy0xLjMtMy0zLTNj
LTEuMywwLTIuNCwwLjgtMi44LDJoLTQuNGMtMC40LTEuMi0xLjUtMi0yLjgtMmMtMS43LDAtMywxLjMt
MywzICAgYzAsMC41LDAuMSwwLjksMC4zLDEuM2wtMiwyQzcuOSwxMi4xLDcuNSwxMiw3LDEyYy0xLjcs
MC0zLDEuMy0zLDNzMS4zLDMsMywzYzAuNSwwLDAuOS0wLjEsMS4zLTAuM2w2LDZDMTQuMSwyNC4xLDE0
LDI0LjUsMTQsMjUgICBjMCwxLjcsMS4zLDMsMywzczMtMS4zLDMtM2MwLTAuOS0wLjQtMS44LTEuMS0y
LjNMMjMsMTJDMjQuNywxMiwyNiwxMC42LDI2LDl6IE0xNywyMmMtMC41LDAtMC45LDAuMS0xLjMsMC4z
bC02LTYgICBDOS45LDE1LjksMTAsMTUuNSwxMCwxNXMtMC4xLTAuOS0wLjMtMS4zbDItMmMwLjQsMC4y
LDAuOCwwLjMsMS4zLDAuM2MxLjMsMCwyLjQtMC44LDIuOC0yaDQuNGMwLjIsMC41LDAuNSwxLDEsMS4z
TDE3LDIyICAgQzE3LDIyLDE3LDIyLDE3LDIyeiIgY2xhc3M9IkJsdWUiIC8+DQogICAgPGNpcmNsZSBj
eD0iNyIgY3k9IjE1IiByPSIxIiBjbGFzcz0iV2hpdGUiIC8+DQogICAgPGNpcmNsZSBjeD0iMTciIGN5
PSIyNSIgcj0iMSIgY2xhc3M9IldoaXRlIiAvPg0KICAgIDxjaXJjbGUgY3g9IjIzIiBjeT0iOSIgcj0i
MSIgY2xhc3M9IldoaXRlIiAvPg0KICAgIDxjaXJjbGUgY3g9IjEzIiBjeT0iOSIgcj0iMSIgY2xhc3M9
IldoaXRlIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<data name="simpleButtonModify1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC+AwAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkN1c3RvbWl6ZU1lcmdlRmllbGQiIHN0eWxlPSJlbmFibGUtYmFja2dy
b3VuZDpuZXcgMCAwIDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbGFja3tmaWxs
OiM3MjcyNzI7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5ZZWxsb3d7ZmlsbDojRkZCMTE1O30KPC9z
dHlsZT4NCiAgPHJlY3QgeD0iNiIgeT0iMTAiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiByeD0iMCIgcnk9
IjAiIGNsYXNzPSJZZWxsb3ciIC8+DQogIDxwYXRoIGQ9Ik0zMS41LDI4LjlsLTYuMS02LjFDMjUuOCwy
MS45LDI2LDIxLDI2LDIwYzAtMy4zLTIuNy02LTYtNmMtMSwwLTEuOSwwLjItMi43LDAuN2w0LjIsNC4y
ICBjMC43LDAuNywwLjcsMS45LDAsMi42Yy0wLjcsMC43LTEuOSwwLjctMi42LDBsLTQuMi00LjJDMTQu
MiwxOC4xLDE0LDE5LDE0LDIwYzAsMy4zLDIuNyw2LDYsNmMxLDAsMS45LTAuMiwyLjctMC43bDYuMSw2
LjEgIGMwLjcsMC43LDEuOSwwLjcsMi42LDBDMzIuMiwzMC44LDMyLjIsMjkuNiwzMS41LDI4Ljl6IiBj
bGFzcz0iQmx1ZSIgLz4NCiAgPHBhdGggZD0iTTI0LjYsMzBIMWMtMC41LDAtMS0wLjUtMS0xVjFjMC0w
LjUsMC41LTEsMS0xaDI0YzAuNSwwLDEsMC41LDEsMXYxMy43Yy0wLjYtMC43LTEuMi0xLjItMi0xLjZW
MkgydjI2aDIwLjYgIEwyNC42LDMweiBNMjAsNkg2djJoMTRWNnogTTE2LDE0SDZ2MmgxMFYxNHogTTEy
LDIySDZ2Mmg2VjIyeiBNMTIsMThINnYyaDZWMTh6IiBjbGFzcz0iQmxhY2siIC8+DQo8L3N2Zz4L
</value>
</data>
<data name="simpleButtonRegister1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABmBAAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAw
IDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbHVle2ZpbGw6IzExNzdENzt9Cgku
WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9CgkuR3JlZW57ZmlsbDojMDM5
QzIzO30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9Cgkuc3Qwe29w
YWNpdHk6MC41O30KCS5zdDF7b3BhY2l0eTowLjc1O30KCS5zdDJ7ZGlzcGxheTpub25lO30KCS5zdDN7
ZGlzcGxheTppbmxpbmU7ZmlsbDojRkZCMTE1O30KCS5zdDR7ZGlzcGxheTppbmxpbmU7fQoJLnN0NXtk
aXNwbGF5OmlubGluZTtvcGFjaXR5OjAuNzU7fQoJLnN0NntkaXNwbGF5OmlubGluZTtvcGFjaXR5OjAu
NTt9Cgkuc3Q3e2Rpc3BsYXk6aW5saW5lO2ZpbGw6IzAzOUMyMzt9Cgkuc3Q4e2Rpc3BsYXk6aW5saW5l
O2ZpbGw6I0QxMUMxQzt9Cgkuc3Q5e2Rpc3BsYXk6aW5saW5lO2ZpbGw6IzExNzdENzt9Cgkuc3QxMHtk
aXNwbGF5OmlubGluZTtmaWxsOiNGRkZGRkY7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRG9jdW1lbnRfMV8i
Pg0KICAgIDxwYXRoIGQ9Ik0xNSwyMGw5LTlsNSw1bC05LDlMMTUsMjB6IE0zMS43LDExLjlsLTMuNi0z
LjZjLTAuNC0wLjQtMS0wLjQtMS40LDBMMjUsMTBsNSw1bDEuNy0xLjcgICBDMzIuMSwxMi45LDMyLjEs
MTIuMywzMS43LDExLjl6IE0xNCwyNmg1bC01LTVWMjZ6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgICA8cGF0
aCBkPSJNMjQsMjMuOFYyOGgtNC4ySDEySDZWNGgxOHY0LjJsMi0yVjNjMC0wLjUtMC41LTEtMS0xSDVD
NC40LDIsNCwyLjUsNCwzdjI2YzAsMC41LDAuNSwxLDEsMWgyMCAgIGMwLjUsMCwxLTAuNSwxLTF2LTcu
MkwyNCwyMy44eiIgY2xhc3M9IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<data name="simpleButtonFilter.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABLAwAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAw
IDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5HcmVlbntmaWxsOiMwMzlDMjM7fQoJ
LkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9CgkuWWVsbG93e2ZpbGw6I0ZG
QjExNTt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9Cgkuc3Qwe29w
YWNpdHk6MC41O30KCS5zdDF7b3BhY2l0eTowLjc1O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkNvbHVtblRv
dGFsc1Bvc2l0aW9uIj4NCiAgICA8cGF0aCBkPSJNNiwxNkgwdi00aDZWMTZ6IE0xNCwxNkg4di00aDZW
MTZ6IE0yMiwxNmgtNnYtNGg2VjE2eiBNMTQsMEg4djRoNlYweiBNMjIsMGgtNnY0aDZWMHogTTMwLDBo
LTZ2NGg2VjB6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgICA8cGF0aCBkPSJNNiwzMkgwVjE4aDZWMzJ6IE0z
MCw2aC02djE0aDZWNnoiIGNsYXNzPSJHcmVlbiIgLz4NCiAgICA8ZyBjbGFzcz0ic3QwIj4NCiAgICAg
IDxwYXRoIGQ9Ik0xNCwzMkg4VjE4aDZWMzJ6IE0yMiwxOGgtNnYxNGg2VjE4eiBNMTQsNkg4djRoNlY2
eiBNMjIsNmgtNnY0aDZWNnoiIGNsYXNzPSJCbGFjayIgLz4NCiAgICA8L2c+DQogIDwvZz4NCjwvc3Zn
Pgs=
</value>
</data>
<data name="simpleButtonExportTestList.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADCAgAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAw
IDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5ZZWxsb3d7ZmlsbDojRkZCMTE1O30K
CS5SZWR7ZmlsbDojRDExQzFDO30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuR3JlZW57ZmlsbDojMDM5
QzIzO30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9Cgkuc3Qwe29w
YWNpdHk6MC43NTt9Cjwvc3R5bGU+DQogIDxnIGlkPSJJbXBvcnQiPg0KICAgIDxwYXRoIGQ9Ik0xMiwx
Mkg4VjZoNFYxMnogTTI0LDE3djF2OWMwLDAuNi0wLjQsMS0xLDFIM2MtMC42LDAtMS0wLjQtMS0xVjdj
MC0wLjYsMC40LTEsMS0xaDN2OGgxNEwyNCwxN3ogTTIwLDE4SDYgICB2NmgxNFYxOHoiIGNsYXNzPSJC
bGFjayIgLz4NCiAgICA8cG9seWdvbiBwb2ludHM9IjMyLDYgMjQsNiAyNCwyIDE2LDggMjQsMTQgMjQs
MTAgMzIsMTAgICIgY2xhc3M9IkdyZWVuIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<data name="simpleButtonViewVRFY.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABIAwAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAw
IDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5HcmVlbntmaWxsOiMwMzlDMjM7fQoJ
LkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9CgkuWWVsbG93e2ZpbGw6I0ZG
QjExNTt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9Cgkuc3Qwe29w
YWNpdHk6MC41O30KCS5zdDF7b3BhY2l0eTowLjc1O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlZhbHVlc1Bv
c2l0aW9uIj4NCiAgICA8cGF0aCBkPSJNNiwxNkgwdi00aDZWMTZ6IE02LDE4SDB2NGg2VjE4eiBNNiwy
NEgwdjRoNlYyNHoiIGNsYXNzPSJCbHVlIiAvPg0KICAgIDxnIGNsYXNzPSJzdDAiPg0KICAgICAgPHBh
dGggZD0iTTIyLDE2SDh2LTRoMTRWMTZ6IE0yMiwxOEg4djRoMTRWMTh6IE0yMiwyNEg4djRoMTRWMjR6
IE0zMCw2aC02djIyaDZWNnogTTE0LDEwSDhWNmg2VjEweiBNMjIsMTBoLTZWNmg2ICAgIFYxMHoiIGNs
YXNzPSJCbGFjayIgLz4NCiAgICA8L2c+DQogICAgPHBhdGggZD0iTTE0LDRIOFYwaDZWNHogTTIyLDBo
LTZ2NGg2VjB6IE0zMCwwaC02djRoNlYweiIgY2xhc3M9IkJsdWUiIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
</data>
<metadata name="folderBrowserDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>192, 27</value>
</metadata>
</root>

View File

@ -229,9 +229,9 @@ namespace SystemX.Product.ALIS.UI.View.InfoList
//bModifyFirstLoad = false;
string strGetQueryText = $"SELECT No FROM [PROD_Variant] WHERE ProdNo_P = '" + CopyTestListVariant.ProdNo_P + "' AND " +
$"TestListFileNo = " + CopyTestListVariant.TestListFileNo + " AND " +
$"GroupNo = " + CopyTestListVariant.GroupNo + ";";
string strGetQueryText = $"SELECT No FROM [PROD_Variant] WHERE ProdNo_P = '" + CopyTestListVariant.ProdNo_P + "' " +
$"AND TestListFileNo = " + CopyTestListVariant.TestListFileNo + " " +
$"AND GroupNo = " + CopyTestListVariant.GroupNo + ";";
DataTable dtResult = ctrlDB.GetTable(strGetQueryText);
@ -533,7 +533,8 @@ namespace SystemX.Product.ALIS.UI.View.InfoList
//Variant Duplicate Check
string strGetQueryText = "SELECT * FROM [PROD_Variant] WHERE No IN(SELECT No FROM [PROD_Variant] WHERE [ProdNo_P] = '" + strGetProdP + "' " +
"AND [TestListFileNo] = " + nSelectedTestListFileNo +
// TODO : 20241118 Variant Scan 조건 변경 > 전체 Variant 체크
//"AND [TestListFileNo] = " + nSelectedTestListFileNo +
") ORDER BY No ASC;";
DataTable dtVariantCheck = ctrlDB.GetTable(strGetQueryText);
@ -563,6 +564,11 @@ namespace SystemX.Product.ALIS.UI.View.InfoList
sb.AppendLine($"<Row : {nRowPos + 1}> [ProdNo_P]-[TestType]-[FileVersion]-[FileName] Combine Key is information that already exists. : " +
$"{strGetProdP}" + " " + $"{strGetTestType}" + " " + $"{strGetFileVersion}" + " " + $"{strGetFileName}");
/*
sb.AppendLine($"<Row : {nRowPos + 1}> [ProdNo_P]-[TestType]-[FileVersion]-[ProdCdoe]-[FileName] Combine Key is information that already exists. : " +
$"{strGetProdP}" + " " + $"{strGetTestType}" + " " + $"{strGetFileVersion}" + " " + $"{strGetProdCode}" + " " + $"{strGetFileName}");
*/
bCheckInformationResult = false;
}
}

View File

@ -0,0 +1,889 @@

namespace SystemX.Product.ALIS.UI.View.InfoList
{
partial class TestListVariantFullUpdateWizard
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
this.wizardControl = new DevExpress.XtraWizard.WizardControl();
this.welcomeWizardPage = new DevExpress.XtraWizard.WelcomeWizardPage();
this.panelModify = new System.Windows.Forms.Panel();
this.labelControl37 = new DevExpress.XtraEditors.LabelControl();
this.labelControl38 = new DevExpress.XtraEditors.LabelControl();
this.textBoxModify7 = new System.Windows.Forms.TextBox();
this.textBoxModify6 = new System.Windows.Forms.TextBox();
this.textBoxModify9 = new System.Windows.Forms.TextBox();
this.labelControl39 = new DevExpress.XtraEditors.LabelControl();
this.textBoxModify5 = new System.Windows.Forms.TextBox();
this.labelControl28 = new DevExpress.XtraEditors.LabelControl();
this.textBoxModify4 = new System.Windows.Forms.TextBox();
this.labelControl29 = new DevExpress.XtraEditors.LabelControl();
this.textBoxModify3 = new System.Windows.Forms.TextBox();
this.textBoxModify2 = new System.Windows.Forms.TextBox();
this.labelControl33 = new DevExpress.XtraEditors.LabelControl();
this.labelControl34 = new DevExpress.XtraEditors.LabelControl();
this.wizardPage = new DevExpress.XtraWizard.WizardPage();
this.labelDispCompareResult = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.UpdatetextBoxFileName = new System.Windows.Forms.TextBox();
this.labelControl5 = new DevExpress.XtraEditors.LabelControl();
this.UpdatetextBoxProdCode = new System.Windows.Forms.TextBox();
this.labelControl7 = new DevExpress.XtraEditors.LabelControl();
this.UpdatetextBoxFileVersion = new System.Windows.Forms.TextBox();
this.UpdatetextBoxTestType = new System.Windows.Forms.TextBox();
this.labelControl8 = new DevExpress.XtraEditors.LabelControl();
this.labelControl9 = new DevExpress.XtraEditors.LabelControl();
this.UpdatetextBoxItemDescription = new System.Windows.Forms.TextBox();
this.labelControl1 = new DevExpress.XtraEditors.LabelControl();
this.label3 = new System.Windows.Forms.Label();
this.label = new System.Windows.Forms.Label();
this.labelUpdateDispLoadResult = new System.Windows.Forms.Label();
this.buttonSelectUpdateFile = new System.Windows.Forms.Button();
this.richTextBoxTestList = new System.Windows.Forms.RichTextBox();
this.labelReadyViewInfo = new System.Windows.Forms.Label();
this.buttonExcept = new System.Windows.Forms.Button();
this.labelDispLoadResult = new System.Windows.Forms.Label();
this.textBoxItem8_Picker = new System.Windows.Forms.DateTimePicker();
this.textBoxItem12 = new System.Windows.Forms.TextBox();
this.labelControl14 = new DevExpress.XtraEditors.LabelControl();
this.textBoxItem9 = new System.Windows.Forms.TextBox();
this.labelControl12 = new DevExpress.XtraEditors.LabelControl();
this.labelControl11 = new DevExpress.XtraEditors.LabelControl();
this.textBoxItem5 = new System.Windows.Forms.TextBox();
this.labelControl6 = new DevExpress.XtraEditors.LabelControl();
this.textBoxItem4 = new System.Windows.Forms.TextBox();
this.labelControl3 = new DevExpress.XtraEditors.LabelControl();
this.textBoxItem3 = new System.Windows.Forms.TextBox();
this.textBoxItem2 = new System.Windows.Forms.TextBox();
this.labelControl4 = new DevExpress.XtraEditors.LabelControl();
this.labelControl2 = new DevExpress.XtraEditors.LabelControl();
this.dataGridViewReady = new System.Windows.Forms.DataGridView();
this.completionWizardPage1 = new DevExpress.XtraWizard.CompletionWizardPage();
this.dataGridViewResult = new System.Windows.Forms.DataGridView();
this.openFileDialogTestList = new System.Windows.Forms.OpenFileDialog();
((System.ComponentModel.ISupportInitialize)(this.wizardControl)).BeginInit();
this.wizardControl.SuspendLayout();
this.welcomeWizardPage.SuspendLayout();
this.panelModify.SuspendLayout();
this.wizardPage.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridViewReady)).BeginInit();
this.completionWizardPage1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridViewResult)).BeginInit();
this.SuspendLayout();
//
// wizardControl
//
this.wizardControl.Controls.Add(this.welcomeWizardPage);
this.wizardControl.Controls.Add(this.wizardPage);
this.wizardControl.Controls.Add(this.completionWizardPage1);
this.wizardControl.Dock = System.Windows.Forms.DockStyle.Fill;
this.wizardControl.Name = "wizardControl";
this.wizardControl.Pages.AddRange(new DevExpress.XtraWizard.BaseWizardPage[] {
this.welcomeWizardPage,
this.wizardPage,
this.completionWizardPage1});
this.wizardControl.Size = new System.Drawing.Size(1449, 732);
this.wizardControl.Text = "STAT Host";
this.wizardControl.WizardStyle = DevExpress.XtraWizard.WizardStyle.WizardAero;
this.wizardControl.CancelClick += new System.ComponentModel.CancelEventHandler(this.wizardControl_CancelClick);
this.wizardControl.FinishClick += new System.ComponentModel.CancelEventHandler(this.wizardControl_FinishClick);
this.wizardControl.NextClick += new DevExpress.XtraWizard.WizardCommandButtonClickEventHandler(this.wizardControl_NextClick);
this.wizardControl.CustomizeCommandButtons += new DevExpress.XtraWizard.WizardCustomizeCommandButtonsEventHandler(this.wizardControl_CustomizeCommandButtons);
//
// welcomeWizardPage
//
this.welcomeWizardPage.Controls.Add(this.panelModify);
this.welcomeWizardPage.Name = "welcomeWizardPage";
this.welcomeWizardPage.Size = new System.Drawing.Size(1389, 565);
this.welcomeWizardPage.Text = "Welcome to the STAT Host wizard!";
//
// panelModify
//
this.panelModify.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.panelModify.Controls.Add(this.labelControl37);
this.panelModify.Controls.Add(this.labelControl38);
this.panelModify.Controls.Add(this.textBoxModify7);
this.panelModify.Controls.Add(this.textBoxModify6);
this.panelModify.Controls.Add(this.textBoxModify9);
this.panelModify.Controls.Add(this.labelControl39);
this.panelModify.Controls.Add(this.textBoxModify5);
this.panelModify.Controls.Add(this.labelControl28);
this.panelModify.Controls.Add(this.textBoxModify4);
this.panelModify.Controls.Add(this.labelControl29);
this.panelModify.Controls.Add(this.textBoxModify3);
this.panelModify.Controls.Add(this.textBoxModify2);
this.panelModify.Controls.Add(this.labelControl33);
this.panelModify.Controls.Add(this.labelControl34);
this.panelModify.Location = new System.Drawing.Point(262, 105);
this.panelModify.Name = "panelModify";
this.panelModify.Size = new System.Drawing.Size(868, 346);
this.panelModify.TabIndex = 1;
//
// labelControl37
//
this.labelControl37.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl37.Appearance.Options.UseFont = true;
this.labelControl37.Location = new System.Drawing.Point(51, 214);
this.labelControl37.Name = "labelControl37";
this.labelControl37.Size = new System.Drawing.Size(72, 15);
this.labelControl37.TabIndex = 58;
this.labelControl37.Text = "Model Name";
//
// labelControl38
//
this.labelControl38.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl38.Appearance.Options.UseFont = true;
this.labelControl38.Location = new System.Drawing.Point(51, 182);
this.labelControl38.Name = "labelControl38";
this.labelControl38.Size = new System.Drawing.Size(71, 15);
this.labelControl38.TabIndex = 57;
this.labelControl38.Text = "Group Name";
//
// textBoxModify7
//
this.textBoxModify7.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxModify7.Location = new System.Drawing.Point(157, 209);
this.textBoxModify7.MaxLength = 64;
this.textBoxModify7.Name = "textBoxModify7";
this.textBoxModify7.ReadOnly = true;
this.textBoxModify7.Size = new System.Drawing.Size(349, 26);
this.textBoxModify7.TabIndex = 7;
this.textBoxModify7.TabStop = false;
//
// textBoxModify6
//
this.textBoxModify6.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxModify6.Location = new System.Drawing.Point(157, 177);
this.textBoxModify6.MaxLength = 16;
this.textBoxModify6.Name = "textBoxModify6";
this.textBoxModify6.ReadOnly = true;
this.textBoxModify6.Size = new System.Drawing.Size(349, 26);
this.textBoxModify6.TabIndex = 6;
this.textBoxModify6.TabStop = false;
//
// textBoxModify9
//
this.textBoxModify9.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxModify9.Location = new System.Drawing.Point(157, 241);
this.textBoxModify9.MaxLength = 256;
this.textBoxModify9.Multiline = true;
this.textBoxModify9.Name = "textBoxModify9";
this.textBoxModify9.ReadOnly = true;
this.textBoxModify9.Size = new System.Drawing.Size(670, 51);
this.textBoxModify9.TabIndex = 8;
this.textBoxModify9.TabStop = false;
//
// labelControl39
//
this.labelControl39.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl39.Appearance.Options.UseFont = true;
this.labelControl39.Location = new System.Drawing.Point(51, 257);
this.labelControl39.Name = "labelControl39";
this.labelControl39.Size = new System.Drawing.Size(62, 15);
this.labelControl39.TabIndex = 56;
this.labelControl39.Text = "Description";
//
// textBoxModify5
//
this.textBoxModify5.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxModify5.Location = new System.Drawing.Point(157, 49);
this.textBoxModify5.MaxLength = 64;
this.textBoxModify5.Name = "textBoxModify5";
this.textBoxModify5.ReadOnly = true;
this.textBoxModify5.Size = new System.Drawing.Size(349, 26);
this.textBoxModify5.TabIndex = 5;
this.textBoxModify5.TabStop = false;
//
// labelControl28
//
this.labelControl28.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl28.Appearance.Options.UseFont = true;
this.labelControl28.Location = new System.Drawing.Point(51, 54);
this.labelControl28.Name = "labelControl28";
this.labelControl28.Size = new System.Drawing.Size(57, 15);
this.labelControl28.TabIndex = 28;
this.labelControl28.Text = "File Name";
//
// textBoxModify4
//
this.textBoxModify4.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxModify4.Location = new System.Drawing.Point(157, 145);
this.textBoxModify4.MaxLength = 4;
this.textBoxModify4.Name = "textBoxModify4";
this.textBoxModify4.ReadOnly = true;
this.textBoxModify4.Size = new System.Drawing.Size(158, 26);
this.textBoxModify4.TabIndex = 4;
this.textBoxModify4.TabStop = false;
//
// labelControl29
//
this.labelControl29.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl29.Appearance.Options.UseFont = true;
this.labelControl29.Location = new System.Drawing.Point(51, 150);
this.labelControl29.Name = "labelControl29";
this.labelControl29.Size = new System.Drawing.Size(55, 15);
this.labelControl29.TabIndex = 27;
this.labelControl29.Text = "ProdCode";
//
// textBoxModify3
//
this.textBoxModify3.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxModify3.Location = new System.Drawing.Point(157, 113);
this.textBoxModify3.MaxLength = 4;
this.textBoxModify3.Name = "textBoxModify3";
this.textBoxModify3.ReadOnly = true;
this.textBoxModify3.Size = new System.Drawing.Size(158, 26);
this.textBoxModify3.TabIndex = 3;
this.textBoxModify3.TabStop = false;
//
// textBoxModify2
//
this.textBoxModify2.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxModify2.Location = new System.Drawing.Point(157, 81);
this.textBoxModify2.MaxLength = 8;
this.textBoxModify2.Name = "textBoxModify2";
this.textBoxModify2.ReadOnly = true;
this.textBoxModify2.Size = new System.Drawing.Size(158, 26);
this.textBoxModify2.TabIndex = 2;
this.textBoxModify2.TabStop = false;
//
// labelControl33
//
this.labelControl33.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl33.Appearance.Options.UseFont = true;
this.labelControl33.Location = new System.Drawing.Point(51, 118);
this.labelControl33.Name = "labelControl33";
this.labelControl33.Size = new System.Drawing.Size(61, 15);
this.labelControl33.TabIndex = 26;
this.labelControl33.Text = "FileVersion";
//
// labelControl34
//
this.labelControl34.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl34.Appearance.Options.UseFont = true;
this.labelControl34.Location = new System.Drawing.Point(51, 86);
this.labelControl34.Name = "labelControl34";
this.labelControl34.Size = new System.Drawing.Size(52, 15);
this.labelControl34.TabIndex = 23;
this.labelControl34.Text = "Test Type";
//
// wizardPage
//
this.wizardPage.Controls.Add(this.labelDispCompareResult);
this.wizardPage.Controls.Add(this.label1);
this.wizardPage.Controls.Add(this.UpdatetextBoxFileName);
this.wizardPage.Controls.Add(this.labelControl5);
this.wizardPage.Controls.Add(this.UpdatetextBoxProdCode);
this.wizardPage.Controls.Add(this.labelControl7);
this.wizardPage.Controls.Add(this.UpdatetextBoxFileVersion);
this.wizardPage.Controls.Add(this.UpdatetextBoxTestType);
this.wizardPage.Controls.Add(this.labelControl8);
this.wizardPage.Controls.Add(this.labelControl9);
this.wizardPage.Controls.Add(this.UpdatetextBoxItemDescription);
this.wizardPage.Controls.Add(this.labelControl1);
this.wizardPage.Controls.Add(this.label3);
this.wizardPage.Controls.Add(this.label);
this.wizardPage.Controls.Add(this.labelUpdateDispLoadResult);
this.wizardPage.Controls.Add(this.buttonSelectUpdateFile);
this.wizardPage.Controls.Add(this.richTextBoxTestList);
this.wizardPage.Controls.Add(this.labelReadyViewInfo);
this.wizardPage.Controls.Add(this.buttonExcept);
this.wizardPage.Controls.Add(this.labelDispLoadResult);
this.wizardPage.Controls.Add(this.textBoxItem8_Picker);
this.wizardPage.Controls.Add(this.textBoxItem12);
this.wizardPage.Controls.Add(this.labelControl14);
this.wizardPage.Controls.Add(this.textBoxItem9);
this.wizardPage.Controls.Add(this.labelControl12);
this.wizardPage.Controls.Add(this.labelControl11);
this.wizardPage.Controls.Add(this.textBoxItem5);
this.wizardPage.Controls.Add(this.labelControl6);
this.wizardPage.Controls.Add(this.textBoxItem4);
this.wizardPage.Controls.Add(this.labelControl3);
this.wizardPage.Controls.Add(this.textBoxItem3);
this.wizardPage.Controls.Add(this.textBoxItem2);
this.wizardPage.Controls.Add(this.labelControl4);
this.wizardPage.Controls.Add(this.labelControl2);
this.wizardPage.Controls.Add(this.dataGridViewReady);
this.wizardPage.DescriptionText = "Display information about the selected column in the table.";
this.wizardPage.Name = "wizardPage";
this.wizardPage.Size = new System.Drawing.Size(1389, 565);
this.wizardPage.Text = "STAT Host Information";
//
// labelDispCompareResult
//
this.labelDispCompareResult.BackColor = System.Drawing.Color.Silver;
this.labelDispCompareResult.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.labelDispCompareResult.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.labelDispCompareResult.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold);
this.labelDispCompareResult.Location = new System.Drawing.Point(500, 206);
this.labelDispCompareResult.Margin = new System.Windows.Forms.Padding(5);
this.labelDispCompareResult.Name = "labelDispCompareResult";
this.labelDispCompareResult.Padding = new System.Windows.Forms.Padding(3);
this.labelDispCompareResult.Size = new System.Drawing.Size(446, 41);
this.labelDispCompareResult.TabIndex = 129;
this.labelDispCompareResult.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label1
//
this.label1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(224)))), ((int)(((byte)(192)))));
this.label1.Location = new System.Drawing.Point(135, 282);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(764, 3);
this.label1.TabIndex = 128;
//
// UpdatetextBoxFileName
//
this.UpdatetextBoxFileName.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.UpdatetextBoxFileName.Location = new System.Drawing.Point(659, 99);
this.UpdatetextBoxFileName.MaxLength = 64;
this.UpdatetextBoxFileName.Name = "UpdatetextBoxFileName";
this.UpdatetextBoxFileName.ReadOnly = true;
this.UpdatetextBoxFileName.Size = new System.Drawing.Size(315, 21);
this.UpdatetextBoxFileName.TabIndex = 127;
this.UpdatetextBoxFileName.TabStop = false;
//
// labelControl5
//
this.labelControl5.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl5.Appearance.Options.UseFont = true;
this.labelControl5.Location = new System.Drawing.Point(500, 102);
this.labelControl5.Name = "labelControl5";
this.labelControl5.Size = new System.Drawing.Size(106, 15);
this.labelControl5.TabIndex = 126;
this.labelControl5.Text = "[Update] File Name";
//
// UpdatetextBoxProdCode
//
this.UpdatetextBoxProdCode.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.UpdatetextBoxProdCode.Location = new System.Drawing.Point(659, 180);
this.UpdatetextBoxProdCode.MaxLength = 4;
this.UpdatetextBoxProdCode.Name = "UpdatetextBoxProdCode";
this.UpdatetextBoxProdCode.ReadOnly = true;
this.UpdatetextBoxProdCode.Size = new System.Drawing.Size(315, 21);
this.UpdatetextBoxProdCode.TabIndex = 122;
this.UpdatetextBoxProdCode.TabStop = false;
//
// labelControl7
//
this.labelControl7.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl7.Appearance.Options.UseFont = true;
this.labelControl7.Location = new System.Drawing.Point(500, 183);
this.labelControl7.Name = "labelControl7";
this.labelControl7.Size = new System.Drawing.Size(104, 15);
this.labelControl7.TabIndex = 125;
this.labelControl7.Text = "[Update] ProdCode";
//
// UpdatetextBoxFileVersion
//
this.UpdatetextBoxFileVersion.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.UpdatetextBoxFileVersion.Location = new System.Drawing.Point(659, 153);
this.UpdatetextBoxFileVersion.MaxLength = 4;
this.UpdatetextBoxFileVersion.Name = "UpdatetextBoxFileVersion";
this.UpdatetextBoxFileVersion.ReadOnly = true;
this.UpdatetextBoxFileVersion.Size = new System.Drawing.Size(315, 21);
this.UpdatetextBoxFileVersion.TabIndex = 121;
this.UpdatetextBoxFileVersion.TabStop = false;
//
// UpdatetextBoxTestType
//
this.UpdatetextBoxTestType.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.UpdatetextBoxTestType.Location = new System.Drawing.Point(659, 126);
this.UpdatetextBoxTestType.MaxLength = 8;
this.UpdatetextBoxTestType.Name = "UpdatetextBoxTestType";
this.UpdatetextBoxTestType.ReadOnly = true;
this.UpdatetextBoxTestType.Size = new System.Drawing.Size(315, 21);
this.UpdatetextBoxTestType.TabIndex = 120;
this.UpdatetextBoxTestType.TabStop = false;
//
// labelControl8
//
this.labelControl8.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl8.Appearance.Options.UseFont = true;
this.labelControl8.Location = new System.Drawing.Point(500, 156);
this.labelControl8.Name = "labelControl8";
this.labelControl8.Size = new System.Drawing.Size(110, 15);
this.labelControl8.TabIndex = 124;
this.labelControl8.Text = "[Update] FileVersion";
//
// labelControl9
//
this.labelControl9.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl9.Appearance.Options.UseFont = true;
this.labelControl9.Location = new System.Drawing.Point(500, 129);
this.labelControl9.Name = "labelControl9";
this.labelControl9.Size = new System.Drawing.Size(101, 15);
this.labelControl9.TabIndex = 123;
this.labelControl9.Text = "[Update] Test Type";
//
// UpdatetextBoxItemDescription
//
this.UpdatetextBoxItemDescription.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.UpdatetextBoxItemDescription.Location = new System.Drawing.Point(134, 288);
this.UpdatetextBoxItemDescription.MaxLength = 256;
this.UpdatetextBoxItemDescription.Name = "UpdatetextBoxItemDescription";
this.UpdatetextBoxItemDescription.ReadOnly = true;
this.UpdatetextBoxItemDescription.Size = new System.Drawing.Size(767, 21);
this.UpdatetextBoxItemDescription.TabIndex = 119;
this.UpdatetextBoxItemDescription.TabStop = false;
//
// labelControl1
//
this.labelControl1.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl1.Appearance.Options.UseFont = true;
this.labelControl1.Location = new System.Drawing.Point(3, 291);
this.labelControl1.Name = "labelControl1";
this.labelControl1.Size = new System.Drawing.Size(111, 15);
this.labelControl1.TabIndex = 118;
this.labelControl1.Text = "[Update] Description";
//
// label3
//
this.label3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.label3.Location = new System.Drawing.Point(500, 12);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(446, 14);
this.label3.TabIndex = 117;
this.label3.Text = "Select test-list file to update";
//
// label
//
this.label.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.label.Location = new System.Drawing.Point(5, 12);
this.label.Name = "label";
this.label.Size = new System.Drawing.Size(444, 14);
this.label.TabIndex = 116;
this.label.Text = "Previously saved test-list";
//
// labelUpdateDispLoadResult
//
this.labelUpdateDispLoadResult.BackColor = System.Drawing.Color.Silver;
this.labelUpdateDispLoadResult.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.labelUpdateDispLoadResult.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.labelUpdateDispLoadResult.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold);
this.labelUpdateDispLoadResult.Location = new System.Drawing.Point(500, 31);
this.labelUpdateDispLoadResult.Margin = new System.Windows.Forms.Padding(5);
this.labelUpdateDispLoadResult.Name = "labelUpdateDispLoadResult";
this.labelUpdateDispLoadResult.Padding = new System.Windows.Forms.Padding(3);
this.labelUpdateDispLoadResult.Size = new System.Drawing.Size(446, 41);
this.labelUpdateDispLoadResult.TabIndex = 114;
this.labelUpdateDispLoadResult.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// buttonSelectUpdateFile
//
this.buttonSelectUpdateFile.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.buttonSelectUpdateFile.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonSelectUpdateFile.Location = new System.Drawing.Point(500, 73);
this.buttonSelectUpdateFile.Name = "buttonSelectUpdateFile";
this.buttonSelectUpdateFile.Size = new System.Drawing.Size(446, 23);
this.buttonSelectUpdateFile.TabIndex = 1;
this.buttonSelectUpdateFile.Text = "Select Update Test-List File";
this.buttonSelectUpdateFile.UseVisualStyleBackColor = false;
this.buttonSelectUpdateFile.Click += new System.EventHandler(this.buttonSelectFile_Click);
//
// richTextBoxTestList
//
this.richTextBoxTestList.BackColor = System.Drawing.SystemColors.InactiveBorder;
this.richTextBoxTestList.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.richTextBoxTestList.Dock = System.Windows.Forms.DockStyle.Right;
this.richTextBoxTestList.Location = new System.Drawing.Point(999, 0);
this.richTextBoxTestList.Name = "richTextBoxTestList";
this.richTextBoxTestList.ReadOnly = true;
this.richTextBoxTestList.Size = new System.Drawing.Size(390, 351);
this.richTextBoxTestList.TabIndex = 115;
this.richTextBoxTestList.TabStop = false;
this.richTextBoxTestList.Text = "";
//
// labelReadyViewInfo
//
this.labelReadyViewInfo.AutoSize = true;
this.labelReadyViewInfo.Location = new System.Drawing.Point(326, 327);
this.labelReadyViewInfo.Name = "labelReadyViewInfo";
this.labelReadyViewInfo.Size = new System.Drawing.Size(11, 12);
this.labelReadyViewInfo.TabIndex = 3;
this.labelReadyViewInfo.Text = "-";
//
// buttonExcept
//
this.buttonExcept.FlatAppearance.BorderColor = System.Drawing.Color.Blue;
this.buttonExcept.FlatAppearance.BorderSize = 2;
this.buttonExcept.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Snow;
this.buttonExcept.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Honeydew;
this.buttonExcept.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonExcept.Font = new System.Drawing.Font("Times New Roman", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.buttonExcept.Location = new System.Drawing.Point(7, 318);
this.buttonExcept.Name = "buttonExcept";
this.buttonExcept.Size = new System.Drawing.Size(188, 27);
this.buttonExcept.TabIndex = 2;
this.buttonExcept.Text = "Except";
this.buttonExcept.UseVisualStyleBackColor = true;
this.buttonExcept.Click += new System.EventHandler(this.buttonExcept_Click);
//
// labelDispLoadResult
//
this.labelDispLoadResult.BackColor = System.Drawing.Color.Silver;
this.labelDispLoadResult.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.labelDispLoadResult.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
this.labelDispLoadResult.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.labelDispLoadResult.Location = new System.Drawing.Point(5, 31);
this.labelDispLoadResult.Margin = new System.Windows.Forms.Padding(5);
this.labelDispLoadResult.Name = "labelDispLoadResult";
this.labelDispLoadResult.Padding = new System.Windows.Forms.Padding(3);
this.labelDispLoadResult.Size = new System.Drawing.Size(444, 41);
this.labelDispLoadResult.TabIndex = 100;
this.labelDispLoadResult.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// textBoxItem8_Picker
//
this.textBoxItem8_Picker.CustomFormat = "yyyy-MM-dd HH:mm:ss";
this.textBoxItem8_Picker.Enabled = false;
this.textBoxItem8_Picker.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxItem8_Picker.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.textBoxItem8_Picker.Location = new System.Drawing.Point(134, 207);
this.textBoxItem8_Picker.Name = "textBoxItem8_Picker";
this.textBoxItem8_Picker.Size = new System.Drawing.Size(200, 21);
this.textBoxItem8_Picker.TabIndex = 104;
this.textBoxItem8_Picker.TabStop = false;
//
// textBoxItem12
//
this.textBoxItem12.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxItem12.Location = new System.Drawing.Point(134, 258);
this.textBoxItem12.MaxLength = 256;
this.textBoxItem12.Name = "textBoxItem12";
this.textBoxItem12.ReadOnly = true;
this.textBoxItem12.Size = new System.Drawing.Size(767, 21);
this.textBoxItem12.TabIndex = 106;
this.textBoxItem12.TabStop = false;
//
// labelControl14
//
this.labelControl14.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl14.Appearance.Options.UseFont = true;
this.labelControl14.Location = new System.Drawing.Point(3, 264);
this.labelControl14.Name = "labelControl14";
this.labelControl14.Size = new System.Drawing.Size(62, 15);
this.labelControl14.TabIndex = 85;
this.labelControl14.Text = "Description";
//
// textBoxItem9
//
this.textBoxItem9.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxItem9.Location = new System.Drawing.Point(134, 234);
this.textBoxItem9.MaxLength = 32;
this.textBoxItem9.Name = "textBoxItem9";
this.textBoxItem9.ReadOnly = true;
this.textBoxItem9.Size = new System.Drawing.Size(315, 21);
this.textBoxItem9.TabIndex = 105;
this.textBoxItem9.TabStop = false;
//
// labelControl12
//
this.labelControl12.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl12.Appearance.Options.UseFont = true;
this.labelControl12.Location = new System.Drawing.Point(3, 237);
this.labelControl12.Name = "labelControl12";
this.labelControl12.Size = new System.Drawing.Size(69, 15);
this.labelControl12.TabIndex = 82;
this.labelControl12.Text = "Update User";
//
// labelControl11
//
this.labelControl11.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl11.Appearance.Options.UseFont = true;
this.labelControl11.Location = new System.Drawing.Point(3, 210);
this.labelControl11.Name = "labelControl11";
this.labelControl11.Size = new System.Drawing.Size(97, 15);
this.labelControl11.TabIndex = 81;
this.labelControl11.Text = "Update DateTime";
//
// textBoxItem5
//
this.textBoxItem5.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxItem5.Location = new System.Drawing.Point(134, 99);
this.textBoxItem5.MaxLength = 64;
this.textBoxItem5.Name = "textBoxItem5";
this.textBoxItem5.ReadOnly = true;
this.textBoxItem5.Size = new System.Drawing.Size(315, 21);
this.textBoxItem5.TabIndex = 101;
this.textBoxItem5.TabStop = false;
//
// labelControl6
//
this.labelControl6.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl6.Appearance.Options.UseFont = true;
this.labelControl6.Location = new System.Drawing.Point(3, 102);
this.labelControl6.Name = "labelControl6";
this.labelControl6.Size = new System.Drawing.Size(57, 15);
this.labelControl6.TabIndex = 76;
this.labelControl6.Text = "File Name";
//
// textBoxItem4
//
this.textBoxItem4.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxItem4.Location = new System.Drawing.Point(134, 180);
this.textBoxItem4.MaxLength = 4;
this.textBoxItem4.Name = "textBoxItem4";
this.textBoxItem4.ReadOnly = true;
this.textBoxItem4.Size = new System.Drawing.Size(315, 21);
this.textBoxItem4.TabIndex = 5;
this.textBoxItem4.TabStop = false;
//
// labelControl3
//
this.labelControl3.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl3.Appearance.Options.UseFont = true;
this.labelControl3.Location = new System.Drawing.Point(3, 183);
this.labelControl3.Name = "labelControl3";
this.labelControl3.Size = new System.Drawing.Size(55, 15);
this.labelControl3.TabIndex = 74;
this.labelControl3.Text = "ProdCode";
//
// textBoxItem3
//
this.textBoxItem3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxItem3.Location = new System.Drawing.Point(134, 153);
this.textBoxItem3.MaxLength = 4;
this.textBoxItem3.Name = "textBoxItem3";
this.textBoxItem3.ReadOnly = true;
this.textBoxItem3.Size = new System.Drawing.Size(315, 21);
this.textBoxItem3.TabIndex = 4;
this.textBoxItem3.TabStop = false;
//
// textBoxItem2
//
this.textBoxItem2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxItem2.Location = new System.Drawing.Point(134, 126);
this.textBoxItem2.MaxLength = 8;
this.textBoxItem2.Name = "textBoxItem2";
this.textBoxItem2.ReadOnly = true;
this.textBoxItem2.Size = new System.Drawing.Size(315, 21);
this.textBoxItem2.TabIndex = 3;
this.textBoxItem2.TabStop = false;
//
// labelControl4
//
this.labelControl4.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl4.Appearance.Options.UseFont = true;
this.labelControl4.Location = new System.Drawing.Point(3, 156);
this.labelControl4.Name = "labelControl4";
this.labelControl4.Size = new System.Drawing.Size(61, 15);
this.labelControl4.TabIndex = 70;
this.labelControl4.Text = "FileVersion";
//
// labelControl2
//
this.labelControl2.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelControl2.Appearance.Options.UseFont = true;
this.labelControl2.Location = new System.Drawing.Point(3, 129);
this.labelControl2.Name = "labelControl2";
this.labelControl2.Size = new System.Drawing.Size(52, 15);
this.labelControl2.TabIndex = 69;
this.labelControl2.Text = "Test Type";
//
// dataGridViewReady
//
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle1.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.dataGridViewReady.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
this.dataGridViewReady.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle2.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
dataGridViewCellStyle2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dataGridViewReady.DefaultCellStyle = dataGridViewCellStyle2;
this.dataGridViewReady.Dock = System.Windows.Forms.DockStyle.Bottom;
this.dataGridViewReady.Location = new System.Drawing.Point(0, 351);
this.dataGridViewReady.MultiSelect = false;
this.dataGridViewReady.Name = "dataGridViewReady";
this.dataGridViewReady.ReadOnly = true;
dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle3.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.dataGridViewReady.RowHeadersDefaultCellStyle = dataGridViewCellStyle3;
this.dataGridViewReady.RowTemplate.Height = 23;
this.dataGridViewReady.RowTemplate.ReadOnly = true;
this.dataGridViewReady.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dataGridViewReady.Size = new System.Drawing.Size(1389, 214);
this.dataGridViewReady.TabIndex = 9;
this.dataGridViewReady.TabStop = false;
this.dataGridViewReady.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridViewReady_CellClick);
this.dataGridViewReady.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridViewReady_CellDoubleClick);
this.dataGridViewReady.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.dataGridViewReady_KeyPress);
//
// completionWizardPage1
//
this.completionWizardPage1.Controls.Add(this.dataGridViewResult);
this.completionWizardPage1.Name = "completionWizardPage1";
this.completionWizardPage1.Size = new System.Drawing.Size(1389, 565);
//
// dataGridViewResult
//
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle4.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.dataGridViewResult.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4;
this.dataGridViewResult.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle5.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
dataGridViewCellStyle5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
dataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dataGridViewResult.DefaultCellStyle = dataGridViewCellStyle5;
this.dataGridViewResult.Dock = System.Windows.Forms.DockStyle.Fill;
this.dataGridViewResult.Location = new System.Drawing.Point(0, 0);
this.dataGridViewResult.Name = "dataGridViewResult";
dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle6.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
dataGridViewCellStyle6.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.dataGridViewResult.RowHeadersDefaultCellStyle = dataGridViewCellStyle6;
this.dataGridViewResult.RowTemplate.Height = 23;
this.dataGridViewResult.Size = new System.Drawing.Size(1389, 565);
this.dataGridViewResult.TabIndex = 43;
this.dataGridViewResult.TabStop = false;
//
// openFileDialogTestList
//
this.openFileDialogTestList.Filter = "TestList FIle|*.CpXv*";
this.openFileDialogTestList.Title = "Test List File Select.";
//
// TestListFullUpdateWizard
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1449, 732);
this.Controls.Add(this.wizardControl);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "TestListFullUpdateWizard";
this.ShowIcon = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
this.Text = "STAT Host";
this.TopMost = true;
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.TestListFullUpdateWizard_FormClosing);
this.Load += new System.EventHandler(this.TestListFullUpdateWizard_Load);
((System.ComponentModel.ISupportInitialize)(this.wizardControl)).EndInit();
this.wizardControl.ResumeLayout(false);
this.welcomeWizardPage.ResumeLayout(false);
this.panelModify.ResumeLayout(false);
this.panelModify.PerformLayout();
this.wizardPage.ResumeLayout(false);
this.wizardPage.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridViewReady)).EndInit();
this.completionWizardPage1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGridViewResult)).EndInit();
this.ResumeLayout(false);
}
#endregion
private DevExpress.XtraWizard.WizardControl wizardControl;
private DevExpress.XtraWizard.WelcomeWizardPage welcomeWizardPage;
private DevExpress.XtraWizard.CompletionWizardPage completionWizardPage1;
private DevExpress.XtraWizard.WizardPage wizardPage;
private System.Windows.Forms.DataGridView dataGridViewResult;
private System.Windows.Forms.DataGridView dataGridViewReady;
private System.Windows.Forms.Button buttonExcept;
private System.Windows.Forms.Label labelReadyViewInfo;
private System.Windows.Forms.DateTimePicker textBoxItem8_Picker;
private System.Windows.Forms.TextBox textBoxItem12;
private DevExpress.XtraEditors.LabelControl labelControl14;
private System.Windows.Forms.TextBox textBoxItem9;
private DevExpress.XtraEditors.LabelControl labelControl12;
private DevExpress.XtraEditors.LabelControl labelControl11;
private System.Windows.Forms.TextBox textBoxItem5;
private DevExpress.XtraEditors.LabelControl labelControl6;
private System.Windows.Forms.TextBox textBoxItem4;
private DevExpress.XtraEditors.LabelControl labelControl3;
private System.Windows.Forms.TextBox textBoxItem3;
private System.Windows.Forms.TextBox textBoxItem2;
private DevExpress.XtraEditors.LabelControl labelControl4;
private DevExpress.XtraEditors.LabelControl labelControl2;
private System.Windows.Forms.Label labelDispLoadResult;
private System.Windows.Forms.Panel panelModify;
private DevExpress.XtraEditors.LabelControl labelControl37;
private DevExpress.XtraEditors.LabelControl labelControl38;
private System.Windows.Forms.TextBox textBoxModify7;
private System.Windows.Forms.TextBox textBoxModify6;
private System.Windows.Forms.TextBox textBoxModify9;
private DevExpress.XtraEditors.LabelControl labelControl39;
private System.Windows.Forms.TextBox textBoxModify5;
private DevExpress.XtraEditors.LabelControl labelControl28;
private System.Windows.Forms.TextBox textBoxModify4;
private DevExpress.XtraEditors.LabelControl labelControl29;
private System.Windows.Forms.TextBox textBoxModify3;
private System.Windows.Forms.TextBox textBoxModify2;
private DevExpress.XtraEditors.LabelControl labelControl33;
private DevExpress.XtraEditors.LabelControl labelControl34;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label;
private System.Windows.Forms.Label labelUpdateDispLoadResult;
private System.Windows.Forms.Button buttonSelectUpdateFile;
private System.Windows.Forms.RichTextBox richTextBoxTestList;
private System.Windows.Forms.OpenFileDialog openFileDialogTestList;
private System.Windows.Forms.TextBox UpdatetextBoxItemDescription;
private DevExpress.XtraEditors.LabelControl labelControl1;
private System.Windows.Forms.TextBox UpdatetextBoxFileName;
private DevExpress.XtraEditors.LabelControl labelControl5;
private System.Windows.Forms.TextBox UpdatetextBoxProdCode;
private DevExpress.XtraEditors.LabelControl labelControl7;
private System.Windows.Forms.TextBox UpdatetextBoxFileVersion;
private System.Windows.Forms.TextBox UpdatetextBoxTestType;
private DevExpress.XtraEditors.LabelControl labelControl8;
private DevExpress.XtraEditors.LabelControl labelControl9;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label labelDispCompareResult;
}
}

View File

@ -0,0 +1,779 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Xml.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.ComboBox;
using SystemX.Product.ALIS.Interface;
using CpApplication;
using CpApplication.Manager;
using CpCommon;
using CpTesterPlatform.CpLogUtil;
using static PsCommon.PsCommon;
using PsKGaudi;
using PsKGaudi.Parser.PsCCSArea;
using PsKGaudi.Parser.PsCCSSTDFn;
using PsKGaudi.Parser.MacroModuleSkel;
using PsKGaudi.Parser.PsCCSSTDFn.Parameters;
using static PsKGaudi.Parser.PsCCS;
using static CpCommon.ExceptionHandler;
using SystemX.Common;
using static SystemX.Product.ALIS.UI.View.InfoList.UcTestListView;
using SystemX.Common.Archive;
using SystemX.Product.PTS.UI.View.Test_List.Infos;
using DevExpress.XtraWizard;
namespace SystemX.Product.ALIS.UI.View.InfoList
{
public partial class TestListVariantFullUpdateWizard : Form
{
public eSelectMode CurrentWizardMode { internal set; get; }
private CVariantInformation lstTargetUpdateTestList;
public List<CVariantInformation> lstUpdateSetTestList;
private CVariantInformation MakeInformation;
private DataTable dtCurrentDataTable;
private CpTestlistLoad loadTestListProc;
private bool bModifyFirstLoad;
/*
public int GetUpdateListSize()
{
return lstUpdateSetTestList.Count;
}
public IEnumerable<CVariantInformation> GetUpdateList()
{
foreach (CVariantInformation info in lstUpdateSetTestList)
{
yield return info;
}
}
*/
private IDataController ctrlDB;
private static object objInfoControlNextLock = new object();
public enum eSelectMode
{
Update = 0
}
private string strTitle = "PROD TestList-Variant [Select Variant Full Update]";
private string strWizardControl = "PROD TestList-Variant";
private string strWelcomeWizard = "Welcome to the PROD TestList-Variant [Select Variant Full Update] wizard!";
private string strWizardPage = "PROD TestList Information";
private int nReadyViewSelectRow { set; get; } = -1;
private bool GroupCheckResult { set; get; } = false;
private int nNowSelectGroupNo { set; get; } = -1;
private string strSelectGroupName { set; get; } = "";
private string strSelectModelName { set; get; } = "";
//
private StringBuilder sbOriginalVariant;
private psGaudiImformation UpdateTestListGaudiInfo = new psGaudiImformation();
private PsCCSGaudiFile getTestList;
private byte[] ucTestListByte;
public psGaudiImformation GetUpdateTestListGaudiInfo
{
get { return UpdateTestListGaudiInfo; }
set { UpdateTestListGaudiInfo = value; }
}
//
public void WizardCancelEvent(object sender, EventArgs e)
{
if (((bool)sender) == false)
this.DialogResult = DialogResult.Cancel;
}
private void RefreshReadyGridView()
{
dataGridViewReady.DataSource = dtCurrentDataTable;
dataGridViewReady.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dataGridViewReady.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dataGridViewReady.Refresh();
dataGridViewReady.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;
this.ActiveControl = buttonSelectUpdateFile;
buttonSelectUpdateFile.Focus();
/*if (string.IsNullOrEmpty(textBoxItem1.Text) == false)
{
textBoxItem1.SelectionStart = textBoxItem1.Text.Length;
textBoxItem1.SelectionLength = 0;
}*/
}
private void RefreshResultGridView()
{
dataGridViewResult.DataSource = dtCurrentDataTable;
dataGridViewResult.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dataGridViewResult.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dataGridViewResult.Refresh();
dataGridViewResult.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;
}
private void AddResultList(DataRow dr)
{
CVariantInformation InformationTemp = new CVariantInformation();
InformationTemp.VariantNo = dr.Field<int>("No");
InformationTemp.ProdNo_P = dr.Field<string>("ProdNo_P");
InformationTemp.TestType = dr.Field<string>("TestType");
InformationTemp.Version = dr.Field<string>("Version");
InformationTemp.ProdCode = dr.Field<string>("ProdCode");
InformationTemp.FileName = UpdateTestListGaudiInfo.psFileInfo.FileName; // dr.Field<string>("FileName");
InformationTemp.RegDT = DateTime.Now;
InformationTemp.RegUser = ctrlDB.GetLoginInfo().UserID;
InformationTemp.UpdateDT = DateTime.Now;
InformationTemp.UpdateUser = ctrlDB.GetLoginInfo().UserID;
InformationTemp.GroupNo = dr.Field<int>("GroupNo");
InformationTemp.Comment = dr.Field<string>("Comment");
InformationTemp.Description = getTestList.ListTestStep[0].Comment; //UpdatetextBoxItemDescription.Text;
//Origianl
/*InformationTemp.TestListSelectData = loadTestListProc.GetPsCCSTestList();
InformationTemp.TestListSelectRawData = new byte[loadTestListProc.GetTestListRawBytes().Length];
loadTestListProc.GetTestListRawBytes().CopyTo(InformationTemp.TestListSelectRawData, 0);*/
//Update
string strQueryText = $"SELECT X.No, X.TestListData FROM[CPX].[dbo].[PROD_TestList] AS X WHERE X.No = " + InformationTemp.VariantNo.ToString() + " ORDER BY No ASC;";
DataTable dtQuery = ctrlDB.GetTable(strQueryText);
if (XCommons.isHasRow(dtQuery) == false)
throw new Exception("There is information that the test list data cannot be found in the list. PROD_TestList -> No = " + InformationTemp.VariantNo);
InformationTemp.TestListLoadRawData = new byte[((byte[])dtQuery.Rows[0]["TestListData"]).Length];
((byte[])dtQuery.Rows[0]["TestListData"]).CopyTo(InformationTemp.TestListLoadRawData, 0);
InformationTemp.TestListLoadRawData = XDataArchive.DecompressGZipByteToByte(InformationTemp.TestListLoadRawData);
InformationTemp.TestListSelectData = getTestList;
InformationTemp.TestListSelectRawData = new byte[ucTestListByte.Length];
ucTestListByte.CopyTo(InformationTemp.TestListSelectRawData, 0);
lstUpdateSetTestList.Add(InformationTemp);
}
public TestListVariantFullUpdateWizard(IDataController ctrlDB, eSelectMode setMode,
CVariantInformation getSelTestListInfo,
DataTable dtGetUpdateInfo)
{
InitializeComponent();
this.Text = strTitle;
wizardControl.Text = strWizardControl;
welcomeWizardPage.Text = strWelcomeWizard;
wizardPage.Text = strWizardPage;
CurrentWizardMode = setMode;
lstTargetUpdateTestList = getSelTestListInfo.Clone() as CVariantInformation;
//lstTargetUpdateTestList = getSelTestListInfo.ToList();
lstUpdateSetTestList = new List<CVariantInformation>();
this.ctrlDB = ctrlDB;
switch (CurrentWizardMode)
{
case eSelectMode.Update:
welcomeWizardPage.IntroductionText = "This is the procedure to copy and paste into the " + strWizardControl + " table.";
wizardControl.Text = strTitle + " - Information";
this.Text = strTitle + " - Information";
break;
}
CheckGroupInfo("SELECT * FROM PROD_Group WHERE No = " + lstTargetUpdateTestList.GroupNo + " ORDER BY No ASC;");
MakeInformation = new CVariantInformation();
dtCurrentDataTable = dtGetUpdateInfo.Copy();
textBoxModify2.Text = lstTargetUpdateTestList.TestType;
textBoxModify3.Text = lstTargetUpdateTestList.Version;
textBoxModify4.Text = lstTargetUpdateTestList.ProdCode;
textBoxModify5.Text = lstTargetUpdateTestList.FileName;
textBoxModify6.Text = strSelectGroupName;
textBoxModify7.Text = strSelectModelName;
textBoxModify9.Text = lstTargetUpdateTestList.Description;
bModifyFirstLoad = false;
UpdateTestListGaudiInfo.bInfoNormalLoaded = false;
UpdateTestListGaudiInfo.bInfoLoading = false;
}
private void TestListFullUpdateWizard_Load(object sender, EventArgs e)
{
RefreshReadyGridView();
textBoxItem8_Picker.Value = DateTime.Now;
textBoxItem2.Text = lstTargetUpdateTestList.TestType;
textBoxItem3.Text = lstTargetUpdateTestList.Version;
textBoxItem4.Text = lstTargetUpdateTestList.ProdCode;
textBoxItem9.Text = ctrlDB.GetLoginInfo().UserID;
}
public void CompleteTestListLoad(object sender, EventArgs e)
{
bool bLoadResult = (bool)sender;
if (bLoadResult)
{
Invoke((MethodInvoker)delegate ()
{
textBoxItem2.Text = loadTestListProc.psGaudiInfo.psTestListInfo.Type;
textBoxItem3.Text = loadTestListProc.psGaudiInfo.psFileInfo.FileVersion;
textBoxItem4.Text = loadTestListProc.psGaudiInfo.psFileInfo.FileType;
textBoxItem5.Text = lstTargetUpdateTestList.FileName; //loadTestListProc.psGaudiInfo.psFileInfo.FileName;
sbOriginalVariant = new StringBuilder();
foreach (KeyValuePair<string, string> kvp in loadTestListProc.psGaudiInfo.psVariantTable.GetStrVariantTable)
{
sbOriginalVariant.AppendLine("[Original] Variant to have : " + kvp.Key + "-" + kvp.Value);
richTextBoxTestList.AppendText("[Original] Variant to have : " + kvp.Key + "-" + kvp.Value + "\r\n");
}
labelDispLoadResult.Text = "Test-list data verification completed.";
labelDispLoadResult.BackColor = Color.LimeGreen;
textBoxItem12.Text = loadTestListProc.GetTestListDescription();
});
}
else
{
Invoke((MethodInvoker)delegate ()
{
labelDispLoadResult.Text = "Failed to check test-list data.";
labelDispLoadResult.BackColor = Color.Red;
});
}
}
private bool CheckGroupInfo(string strQueryText = "")
{
SqlDataReader reader;
if (strQueryText.Length > 0)
ctrlDB.GetConnSqlCmd().CommandText = strQueryText;
reader = ctrlDB.GetConnSqlCmd().ExecuteReader();
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Load(reader);
ds.Tables.Add(dt);
reader.Close();
if (XCommons.isHasRow(ds))
{
nNowSelectGroupNo = Convert.ToInt32(dt.Rows[0][0].ToString());
strSelectGroupName = dt.Rows[0][1].ToString();
strSelectModelName = dt.Rows[0][2].ToString();
GroupCheckResult = true;
return true;
}
else
{
nNowSelectGroupNo = -1;
return false;
}
}
private void wizardControl_NextClick(object sender, DevExpress.XtraWizard.WizardCommandButtonClickEventArgs e)
{
lock (objInfoControlNextLock)
{
if (wizardControl.SelectedPageIndex == 0)
{
if (bModifyFirstLoad == false)
{
labelDispLoadResult.Text = "Loading ...";
labelDispLoadResult.BackColor = Color.Yellow;
loadTestListProc = new CpTestlistLoad();
loadTestListProc.TestListLoadResultEvent += CompleteTestListLoad;
loadTestListProc.ExcuteTestListLoad(lstTargetUpdateTestList);
bModifyFirstLoad = true;
}
}
if (wizardControl.SelectedPageIndex == 1)
{
bool bCheckInformationResult = true;
StringBuilder sb = new StringBuilder();
lstUpdateSetTestList = new List<CVariantInformation>();
lstUpdateSetTestList.Clear();
string strItemName = string.Empty;
try
{
if (loadTestListProc.GetTestListLoadState() == false)
throw new Exception("The test-list is loading or there is no information on the selected test list.");
if (UpdateTestListGaudiInfo.bInfoNormalLoaded == false)
throw new Exception("The test-list for update was not selected and loaded.");
/*object[] objOriginalVariantList = loadTestListProc.psGaudiInfo.psVariantTable.GetStrVariantTable.ToArray();
object[] objUpdateVariantList = UpdateTestListGaudiInfo.psVariantTable.GetStrVariantTable.ToArray();*/
//기존 테스트리스트의 Variant 목록은 최소한 가지고 있어야 한다.
foreach (KeyValuePair<string, string> OriginalVariant in loadTestListProc.psGaudiInfo.psVariantTable.GetStrVariantTable)
{
string strGetValueCheck = UpdateTestListGaudiInfo.psVariantTable.GetStrVariantTable.GetValueByKey(OriginalVariant.Key);
if (strGetValueCheck.Length <= 0)
throw new Exception("The test-list file for update must include the [Variant] of the existing test list.");
}
string strUpdateFileExtention = UpdateTestListGaudiInfo.psFileInfo.FileExtention;
int nRowPos = 0;
foreach (DataRow dr in dtCurrentDataTable.Rows)
{
string strGetProdP = dr.Field<string>("ProdNo_P");
string strGetTestType = dr.Field<string>("TestType");
string strGetFileVersion = dr.Field<string>("Version");
string strGetProdCode = dr.Field<string>("ProdCode");
string strGetFileName = dr.Field<string>("FileName");
string strOriginalFileExtention = ".CpXv" + strGetFileVersion + strGetProdCode;
if (strOriginalFileExtention.CompareTo(strUpdateFileExtention) != 0)
throw new Exception("Even if the file name of the test list to be updated is different, File Version and Production Code cannot be different.");
bool bFindInOriginalVariant = false;
bool bExistInUpdateVariant = false;
string strGetValueCheck = loadTestListProc.psGaudiInfo.psVariantTable.GetStrVariantTable.GetValueByKey(strGetProdP);
if (strGetValueCheck.Length > 0)
bFindInOriginalVariant = true;
strGetValueCheck = UpdateTestListGaudiInfo.psVariantTable.GetStrVariantTable.GetValueByKey(strGetProdP);
if (strGetValueCheck.Length > 0)
bExistInUpdateVariant = true;
if (bFindInOriginalVariant == false)
{
sb.AppendLine($"<Row : {nRowPos + 1}> P_ProdNo that does not exist in the [Original test-list] data(Variant). : {strGetProdP}");
bCheckInformationResult = false;
}
if (bExistInUpdateVariant == false)
{
sb.AppendLine($"<Row : {nRowPos + 1}> P_ProdNo that does not exist in the [Update test-list] data(Variant). : {strGetProdP}");
bCheckInformationResult = false;
}
AddResultList(dr);
nRowPos++;
}
if (bCheckInformationResult == false)
throw new Exception("A problem occurred as a result of verification. After checking the details, correct the information and try again.");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, strTitle, MessageBoxButtons.OK, MessageBoxIcon.Warning);
if (sb.Length > 0)
MessageBox.Show(sb.ToString(), strTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
e.Handled = true;
return;
}
switch (CurrentWizardMode)
{
case eSelectMode.Update:
break;
}
RefreshResultGridView();
}
}
}
private void wizardControl_FinishClick(object sender, CancelEventArgs e)
{
if (MessageBox.Show("Batch update of the currently displayed information with the same test list file to the newly selected test list file. Please check again one last time. Would you like to proceed? (After that, the update starts automatically.)", strTitle, MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
e.Cancel = false;
else
e.Cancel = true;
}
private bool CheckRowSelectInfo(int nIndex)
{
object objHandle = null;
bool bCheckResult = true;
if ((dataGridViewReady.Rows.Count - 1) == nIndex)
return false;
try
{
objHandle = dataGridViewReady.Rows[nIndex].Cells["No"].Value.ToString();
}
catch
{
objHandle = null;
bCheckResult = false;
}
finally
{
;//
}
return bCheckResult;
}
private void ClearListSelect()
{
labelReadyViewInfo.Text = "-";
nReadyViewSelectRow = -1;
}
private void GridViewSelectedProc(int nRow)
{
nReadyViewSelectRow = nRow;
labelReadyViewInfo.Text = "Select Row : " + (nReadyViewSelectRow + 1).ToString();
if (CheckRowSelectInfo(nReadyViewSelectRow))
{
;//
}
else
ClearListSelect();
}
private void dataGridViewReady_CellClick(object sender, DataGridViewCellEventArgs e)
{
GridViewSelectedProc(e.RowIndex);
}
private void dataGridViewReady_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
if (loadTestListProc.CheckTestListLoad() == false)
return;
if (CheckRowSelectInfo(nReadyViewSelectRow))
{
MakeInformation.ProdNo_P = dataGridViewReady.Rows[nReadyViewSelectRow].Cells["ProdNo_P"].Value.ToString();
MakeInformation.TestType = dataGridViewReady.Rows[nReadyViewSelectRow].Cells["TestType"].Value.ToString();
MakeInformation.Version = dataGridViewReady.Rows[nReadyViewSelectRow].Cells["Version"].Value.ToString();
MakeInformation.ProdCode = dataGridViewReady.Rows[nReadyViewSelectRow].Cells["ProdCode"].Value.ToString();
MakeInformation.FileName = dataGridViewReady.Rows[nReadyViewSelectRow].Cells["FileName"].Value.ToString();
MakeInformation.RegDT = Convert.ToDateTime(dataGridViewReady.Rows[nReadyViewSelectRow].Cells["RegDT"].Value);
MakeInformation.RegUser = dataGridViewReady.Rows[nReadyViewSelectRow].Cells["RegUser"].Value.ToString();
MakeInformation.UpdateDT = Convert.ToDateTime(dataGridViewReady.Rows[nReadyViewSelectRow].Cells["UpdateDT"].Value);
MakeInformation.UpdateUser = dataGridViewReady.Rows[nReadyViewSelectRow].Cells["UpdateUser"].Value.ToString();
MakeInformation.GroupNo = Convert.ToInt32(dataGridViewReady.Rows[nReadyViewSelectRow].Cells["GroupNo"].Value);
MakeInformation.Comment = dataGridViewReady.Rows[nReadyViewSelectRow].Cells["Comment"].Value.ToString();
MakeInformation.Description = dataGridViewReady.Rows[nReadyViewSelectRow].Cells["Description"].Value.ToString();
textBoxItem2.Text = MakeInformation.TestType;
textBoxItem3.Text = MakeInformation.Version;
textBoxItem4.Text = MakeInformation.ProdCode;
CheckGroupInfo("SELECT * FROM PROD_Group WHERE No = " + MakeInformation.GroupNo + " ORDER BY No ASC;");
}
}
private void buttonExcept_Click(object sender, EventArgs e)
{
if (nReadyViewSelectRow == -1 || dtCurrentDataTable.Rows.Count <= nReadyViewSelectRow)
return;
dtCurrentDataTable.Rows.RemoveAt(nReadyViewSelectRow);
RefreshReadyGridView();
}
private void TestListFullUpdateWizard_FormClosing(object sender, FormClosingEventArgs e)
{
if (loadTestListProc != null)
{
if (loadTestListProc.CheckTestListLoad() == false)
{
this.DialogResult = DialogResult.None;
e.Cancel = true;
}
}
if (UpdateTestListGaudiInfo.bInfoLoading)
{
this.DialogResult = DialogResult.None;
e.Cancel = true;
}
}
private void wizardControl_CancelClick(object sender, CancelEventArgs e)
{
if (loadTestListProc != null)
{
if (loadTestListProc.CheckTestListLoad() == false)
{
this.DialogResult = DialogResult.None;
e.Cancel = true;
}
}
if (UpdateTestListGaudiInfo.bInfoLoading)
{
this.DialogResult = DialogResult.None;
e.Cancel = true;
}
}
private void wizardControl_CustomizeCommandButtons(object sender, DevExpress.XtraWizard.CustomizeCommandButtonsEventArgs e)
{
if (e.Page == wizardPage)
{
this.ActiveControl = buttonSelectUpdateFile;
buttonSelectUpdateFile.Focus();
}
else if (e.Page == welcomeWizardPage)
{
this.ActiveControl = e.NextButton.Button;
e.NextButton.Button.Focus();
}
}
private void dataGridViewReady_KeyPress(object sender, KeyPressEventArgs e)
{
byte ucGetChar = Convert.ToByte(e.KeyChar);
switch (ucGetChar)
{
case 32:
if (dataGridViewReady.SelectedRows.Count > 0)
{
int nRow = dataGridViewReady.SelectedRows[0].Index;
GridViewSelectedProc(nRow);
}
break;
case 27:
break;
}
}
private async void buttonSelectFile_Click(object sender, EventArgs e)
{
if (loadTestListProc.GetTestListLoadState() == false)
{
MessageBox.Show("The update file can be selected only when the loading of the existing test file is completed normally. Please wait.", strTitle, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (UpdateTestListGaudiInfo.bInfoLoading != false)
{
MessageBox.Show("Loading previous selection file ... Please try after loading is finished.", strTitle, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (openFileDialogTestList.ShowDialog() == DialogResult.OK)
{
labelUpdateDispLoadResult.Text = "";
labelUpdateDispLoadResult.BackColor = Color.Silver;
string strSelectFile = openFileDialogTestList.FileName;
string strGetFileName = Path.GetFileNameWithoutExtension(strSelectFile);
string strGetFileExtension = Path.GetExtension(strSelectFile);
labelUpdateDispLoadResult.Text = "Loading ...";
labelUpdateDispLoadResult.BackColor = Color.Yellow;
await LoadTestList(strSelectFile);
}
await Task.Delay(1);
}
private async Task<bool> LoadTestList(string strLoadFileName, bool bDeleteFile = false)
{
UpdateTestListGaudiInfo.bInfoNormalLoaded = false;
UpdateTestListGaudiInfo.bInfoLoading = true;
try
{
if (PsCpDef.CheckCPFileExtension(strLoadFileName) == false || getCPxmlInfo(strLoadFileName) == false)
throw new Exception($"Not a normal CP TestList.");
if (UpdateTestListGaudiInfo.psVariantTable.GetStrVariantTable.Count <= 0)
throw new Exception($"There is no TTNR information registered in the test list.");
UpdateTestListGaudiInfo.psFileInfo = new PsCCSFileInfo(strLoadFileName);
UpdatetextBoxFileName.Text = UpdateTestListGaudiInfo.psFileInfo.FileName;
UpdatetextBoxTestType.Text = UpdateTestListGaudiInfo.psTestListInfo.Type;
UpdatetextBoxFileVersion.Text = UpdateTestListGaudiInfo.psFileInfo.FileVersion;
UpdatetextBoxProdCode.Text = UpdateTestListGaudiInfo.psFileInfo.FileType;
richTextBoxTestList.Clear();
richTextBoxTestList.Refresh();
richTextBoxTestList.AppendText(sbOriginalVariant.ToString());
richTextBoxTestList.AppendText("\r\n");
richTextBoxTestList.AppendText("[Update test-list file information]");
richTextBoxTestList.AppendText("\r\n");
richTextBoxTestList.AppendText("FileInfo: " + UpdateTestListGaudiInfo.psFileInfo.FileDirectory + "\r\n");
richTextBoxTestList.AppendText("FileName: " + UpdateTestListGaudiInfo.psFileInfo.FileName + "\r\n");
richTextBoxTestList.AppendText("FileExtention: " + UpdateTestListGaudiInfo.psFileInfo.FileExtention + "\r\n");
richTextBoxTestList.AppendText("FileNameWithPath: " + UpdateTestListGaudiInfo.psFileInfo.FileNameWithPath + "\r\n");
richTextBoxTestList.AppendText("FileVersion: " + UpdateTestListGaudiInfo.psFileInfo.FileVersion + "\r\n");
richTextBoxTestList.AppendText("FileType: " + UpdateTestListGaudiInfo.psFileInfo.FileType + "\r\n");
richTextBoxTestList.AppendText("\r\n");
richTextBoxTestList.AppendText("CPEditorVer: " + UpdateTestListGaudiInfo.psTestListInfo.CPEditorVer + "\r\n");
richTextBoxTestList.AppendText("PartNumber: " + UpdateTestListGaudiInfo.psTestListInfo.PartNum + "\r\n");
richTextBoxTestList.AppendText("Type: " + UpdateTestListGaudiInfo.psTestListInfo.Type + "\r\n");
richTextBoxTestList.AppendText("Variant: " + UpdateTestListGaudiInfo.psTestListInfo.Variant + "\r\n");
richTextBoxTestList.AppendText("\r\n");
foreach (KeyValuePair<string, string> kvp in UpdateTestListGaudiInfo.psVariantTable.GetStrVariantTable)
richTextBoxTestList.AppendText("Variant to have : " + kvp.Key + "-" + kvp.Value + "\r\n");
string getTTNR = ((KeyValuePair<string, string>)UpdateTestListGaudiInfo.psVariantTable.GetStrVariantTable[0]).Key;
getTestList = await LoadTestListFile(@strLoadFileName, getTTNR);
if (getTestList != null)
{
UpdatetextBoxItemDescription.Text = getTestList.ListTestStep[0].Comment;
ucTestListByte = File.ReadAllBytes(strLoadFileName);
UpdateTestListGaudiInfo.bInfoNormalLoaded = true;
Invoke((MethodInvoker)delegate ()
{
labelUpdateDispLoadResult.Text = "Test-list data verification completed.";
labelUpdateDispLoadResult.BackColor = Color.LimeGreen;
});
}
else
throw new Exception($"Failed to load test list file.");
}
catch (Exception e)
{
MessageBox.Show(e.Message, strTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
Invoke((MethodInvoker)delegate ()
{
labelUpdateDispLoadResult.Text = "Failed to check test-list data.";
labelUpdateDispLoadResult.BackColor = Color.Red;
});
}
await Task.Delay(1);
if (bDeleteFile)
File.Delete(strLoadFileName);
UpdateTestListGaudiInfo.bInfoLoading = false;
return UpdateTestListGaudiInfo.bInfoNormalLoaded;
}
private async Task<PsCCSGaudiFile> LoadTestListFile(string strFileName, string strTTNR)
{
return await Task.Run(async () =>
{
await Task.Delay(0);
return PsCCSGaudiFile.PsCCSPaseDataApi(strFileName, strTTNR);
});
}
private bool getCPxmlInfo(string strfilename)
{
try
{
XDocument xDoc = XDocument.Load(strfilename);
PsCCSAreaBasicInfo psBasicInfo = PsCCSAreaBasicInfo.LoadXmlData(xDoc.Root);
PsCCSAreaTestListInfo psTestListInfo = PsCCSAreaTestListInfo.LoadXmlData(xDoc.Root);
PsCCSAreaVariantTable psVariantTable = PsCCSAreaVariantTable.LoadXmlData(xDoc.Root);
PsCCSFileInfo psFileInfo = new PsCCSFileInfo(strfilename);
UpdateTestListGaudiInfo.psBasicInfo = psBasicInfo;
UpdateTestListGaudiInfo.psTestListInfo = psTestListInfo;
UpdateTestListGaudiInfo.psVariantTable = psVariantTable;
UpdateTestListGaudiInfo.psFileInfo = psFileInfo;
}
catch (Exception ex)
{
return false;
}
return true;
}
}
}

View File

@ -0,0 +1,123 @@
<?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>
<metadata name="openFileDialogTestList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@ -54,6 +54,7 @@ namespace SystemX.Product.ALIS.UI.View.InfoList
private string strGetModifyTestType;
private string strGetModifyFileVersion;
private string strGetModifyFileName;
private string strGetModifyProdCode;
public enum eSelectMode
{
@ -179,6 +180,7 @@ namespace SystemX.Product.ALIS.UI.View.InfoList
strGetModifyTestType = SelTestListVariantInfo.TestType;
strGetModifyFileVersion = SelTestListVariantInfo.Version;
strGetModifyFileName = SelTestListVariantInfo.FileName;
strGetModifyProdCode = SelTestListVariantInfo.ProdCode;
ctrlDB.GetConnSqlCmd().CommandText = "SELECT * FROM PROD_Group WHERE No = " + SelTestListVariantInfo.GroupNo + " ORDER BY No ASC;";
@ -254,31 +256,34 @@ namespace SystemX.Product.ALIS.UI.View.InfoList
string strGetProdP = textBoxItem1.Text;
string strGetTestType = textBoxDispInTestType.Text;
string strGetFileVersion = textBoxDispInVersion.Text;
string strGetProdCode = textBoxDispInProdCode.Text;
string strGetFileName = textBoxDispInFileName.Text;
//Variant Duplicate Check
string strGetQueryText = "SELECT * FROM [PROD_Variant] WHERE No IN(SELECT No FROM [PROD_Variant] WHERE [ProdNo_P] = '" + strGetProdP + "' " +
"AND [TestListFileNo] = " + nSelectedTestListFileNo +
// TODO : 20241118 Variant Scan 조건 변경 > 전체 Variant 체크
//"AND [TestListFileNo] = " + nSelectedTestListFileNo +
") ORDER BY No ASC;";
DataTable dtVariantCheck = ctrlDB.GetTable(strGetQueryText);
if (XCommons.isHasRow(dtVariantCheck))
{
bool bExistException = true;
bool bExistException = true;
if (CurrentWizardMode == eSelectMode.Modify)
{
if (strGetProdP.CompareTo(strGetModifyProdP) == 0 &&
strGetTestType.CompareTo(strGetModifyTestType) == 0 &&
strGetFileVersion.CompareTo(strGetModifyFileVersion) == 0 &&
//strGetFileVersion.CompareTo(strGetModifyFileVersion) == 0 &&
//strGetProdCode.CompareTo(strGetModifyProdCode) == 0 &&
strGetFileName.CompareTo(strGetModifyFileName) == 0)
bExistException = false;
}
if (bExistException)
throw new Exception($"ProdNo_P - TestType - FileVersion - FileName Combine Key is information that already exists. : " +
$"{strGetProdP}" + " " + $"{strGetTestType}" + " " + $"{strGetFileVersion}" + " " + $"{strGetFileName}");
throw new Exception($"[ProdNo_P] - [TestType] - [FileVersion] - [PrdoCode] Combine Key is information that already exists. : " +
$"{strGetProdP}" + " " + $"{strGetTestType}" + " " + $"{strGetFileVersion}" + " " + $"{strGetProdCode}");
}
if (bFindVariant == false) { strItemName = "ProdNo_P"; throw new Exception($"P_ProdNo that does not exist in the selected test list." + strItemName); }

View File

@ -0,0 +1,231 @@
<?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>
<metadata name="contextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>166, 17</value>
</metadata>
<assembly alias="DevExpress.Data.v20.2" name="DevExpress.Data.v20.2, Version=20.2.11.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="simpleButtonDataMod.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABfAgAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAw
IDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJ
LlJlZHtmaWxsOiNEMTFDMUM7fQoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJLkdyZWVue2ZpbGw6IzAz
OUMyMzt9Cjwvc3R5bGU+DQogIDxnIGlkPSJXYXJuaW5nQ2lyY2xlZDEiPg0KICAgIDxwYXRoIGQ9Ik0x
NiwyQzguMywyLDIsOC4zLDIsMTZzNi4zLDE0LDE0LDE0czE0LTYuMywxNC0xNFMyMy43LDIsMTYsMnog
TTE2LDI0Yy0xLjEsMC0yLTAuOS0yLTJjMC0xLjEsMC45LTIsMi0yICAgczIsMC45LDIsMkMxOCwyMy4x
LDE3LjEsMjQsMTYsMjR6IE0xOCwxOGgtNFY4aDRWMTh6IiBjbGFzcz0iUmVkIiAvPg0KICA8L2c+DQo8
L3N2Zz4L
</value>
</data>
<data name="simpleButtonHost.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACcBwAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAw
IDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5Z
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuR3JlZW57ZmlsbDojMDM5
QzIzO30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9Cgkuc3Qwe29w
YWNpdHk6MC41O30KCS5zdDF7b3BhY2l0eTowLjc1O30KCS5zdDJ7b3BhY2l0eTowLjM1O30KCS5zdDN7
b3BhY2l0eTowLjY1O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlJhZGFyQXJlYV8yXyI+DQogICAgPGcgY2xh
c3M9InN0MiI+DQogICAgICA8cGF0aCBkPSJNMTYsMEM3LjIsMCwwLDcuMiwwLDE2czcuMiwxNiwxNiwx
NnMxNi03LjIsMTYtMTZTMjQuOCwwLDE2LDB6IE0xNiwzMEM4LjMsMzAsMiwyMy43LDIsMTZTOC4zLDIs
MTYsMiAgICBzMTQsNi4zLDE0LDE0UzIzLjcsMzAsMTYsMzB6IE0xNiw2QzEwLjUsNiw2LDEwLjUsNiwx
NmMwLDUuNSw0LjUsMTAsMTAsMTBzMTAtNC41LDEwLTEwQzI2LDEwLjUsMjEuNSw2LDE2LDZ6IE0xNiwy
NCAgICBjLTQuNCwwLTgtMy42LTgtOHMzLjYtOCw4LThzOCwzLjYsOCw4UzIwLjQsMjQsMTYsMjR6IE0x
NiwxMmMtMi4yLDAtNCwxLjgtNCw0YzAsMi4yLDEuOCw0LDQsNHM0LTEuOCw0LTRDMjAsMTMuOCwxOC4y
LDEyLDE2LDEyeiAgICAgTTE2LDE4Yy0xLjEsMC0yLTAuOS0yLTJjMC0xLjEsMC45LTIsMi0yczIsMC45
LDIsMkMxOCwxNy4xLDE3LjEsMTgsMTYsMTh6IiBjbGFzcz0iQmxhY2siIC8+DQogICAgPC9nPg0KICAg
IDxnIGNsYXNzPSJzdDEiPg0KICAgICAgPHBhdGggZD0iTTI0LDEwVjkuNWwwLjctMS44TDIyLjgsN2wt
MC40LDFoLTkuNGwtMC4yLTAuMkwxMi42LDhIMTJ2MC42bC01LDVMNi40LDEzTDUsMTQuNGwxMC44LDEw
LjhsLTAuMiwwLjUgICAgbDEuMSwwLjRsMS4xLDEuMWwxLjQtMS40bC0xLTFMMjMuOCwxMEgyNHoiIGNs
YXNzPSJCbHVlIiAvPg0KICAgIDwvZz4NCiAgICA8cGF0aCBkPSJNMjYsOWMwLTEuNy0xLjMtMy0zLTNj
LTEuMywwLTIuNCwwLjgtMi44LDJoLTQuNGMtMC40LTEuMi0xLjUtMi0yLjgtMmMtMS43LDAtMywxLjMt
MywzICAgYzAsMC41LDAuMSwwLjksMC4zLDEuM2wtMiwyQzcuOSwxMi4xLDcuNSwxMiw3LDEyYy0xLjcs
MC0zLDEuMy0zLDNzMS4zLDMsMywzYzAuNSwwLDAuOS0wLjEsMS4zLTAuM2w2LDZDMTQuMSwyNC4xLDE0
LDI0LjUsMTQsMjUgICBjMCwxLjcsMS4zLDMsMywzczMtMS4zLDMtM2MwLTAuOS0wLjQtMS44LTEuMS0y
LjNMMjMsMTJDMjQuNywxMiwyNiwxMC42LDI2LDl6IE0xNywyMmMtMC41LDAtMC45LDAuMS0xLjMsMC4z
bC02LTYgICBDOS45LDE1LjksMTAsMTUuNSwxMCwxNXMtMC4xLTAuOS0wLjMtMS4zbDItMmMwLjQsMC4y
LDAuOCwwLjMsMS4zLDAuM2MxLjMsMCwyLjQtMC44LDIuOC0yaDQuNGMwLjIsMC41LDAuNSwxLDEsMS4z
TDE3LDIyICAgQzE3LDIyLDE3LDIyLDE3LDIyeiIgY2xhc3M9IkJsdWUiIC8+DQogICAgPGNpcmNsZSBj
eD0iNyIgY3k9IjE1IiByPSIxIiBjbGFzcz0iV2hpdGUiIC8+DQogICAgPGNpcmNsZSBjeD0iMTciIGN5
PSIyNSIgcj0iMSIgY2xhc3M9IldoaXRlIiAvPg0KICAgIDxjaXJjbGUgY3g9IjIzIiBjeT0iOSIgcj0i
MSIgY2xhc3M9IldoaXRlIiAvPg0KICAgIDxjaXJjbGUgY3g9IjEzIiBjeT0iOSIgcj0iMSIgY2xhc3M9
IldoaXRlIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<data name="simpleButtonModify1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC+AwAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkN1c3RvbWl6ZU1lcmdlRmllbGQiIHN0eWxlPSJlbmFibGUtYmFja2dy
b3VuZDpuZXcgMCAwIDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbGFja3tmaWxs
OiM3MjcyNzI7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5ZZWxsb3d7ZmlsbDojRkZCMTE1O30KPC9z
dHlsZT4NCiAgPHJlY3QgeD0iNiIgeT0iMTAiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiByeD0iMCIgcnk9
IjAiIGNsYXNzPSJZZWxsb3ciIC8+DQogIDxwYXRoIGQ9Ik0zMS41LDI4LjlsLTYuMS02LjFDMjUuOCwy
MS45LDI2LDIxLDI2LDIwYzAtMy4zLTIuNy02LTYtNmMtMSwwLTEuOSwwLjItMi43LDAuN2w0LjIsNC4y
ICBjMC43LDAuNywwLjcsMS45LDAsMi42Yy0wLjcsMC43LTEuOSwwLjctMi42LDBsLTQuMi00LjJDMTQu
MiwxOC4xLDE0LDE5LDE0LDIwYzAsMy4zLDIuNyw2LDYsNmMxLDAsMS45LTAuMiwyLjctMC43bDYuMSw2
LjEgIGMwLjcsMC43LDEuOSwwLjcsMi42LDBDMzIuMiwzMC44LDMyLjIsMjkuNiwzMS41LDI4Ljl6IiBj
bGFzcz0iQmx1ZSIgLz4NCiAgPHBhdGggZD0iTTI0LjYsMzBIMWMtMC41LDAtMS0wLjUtMS0xVjFjMC0w
LjUsMC41LTEsMS0xaDI0YzAuNSwwLDEsMC41LDEsMXYxMy43Yy0wLjYtMC43LTEuMi0xLjItMi0xLjZW
MkgydjI2aDIwLjYgIEwyNC42LDMweiBNMjAsNkg2djJoMTRWNnogTTE2LDE0SDZ2MmgxMFYxNHogTTEy
LDIySDZ2Mmg2VjIyeiBNMTIsMThINnYyaDZWMTh6IiBjbGFzcz0iQmxhY2siIC8+DQo8L3N2Zz4L
</value>
</data>
<data name="simpleButtonRegister1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v20.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLkRhdGEudjIwLjIsIFZlcnNpb249MjAuMi4x
MS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAB1E
ZXZFeHByZXNzLlV0aWxzLlN2Zy5TdmdJbWFnZQEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABmBAAAAu+7
vzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQo8c3ZnIHg9IjBweCIgeT0iMHB4
IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNw
YWNlPSJwcmVzZXJ2ZSIgaWQ9IkxheWVyXzEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAw
IDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbHVle2ZpbGw6IzExNzdENzt9Cgku
WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9CgkuR3JlZW57ZmlsbDojMDM5
QzIzO30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9Cgkuc3Qwe29w
YWNpdHk6MC41O30KCS5zdDF7b3BhY2l0eTowLjc1O30KCS5zdDJ7ZGlzcGxheTpub25lO30KCS5zdDN7
ZGlzcGxheTppbmxpbmU7ZmlsbDojRkZCMTE1O30KCS5zdDR7ZGlzcGxheTppbmxpbmU7fQoJLnN0NXtk
aXNwbGF5OmlubGluZTtvcGFjaXR5OjAuNzU7fQoJLnN0NntkaXNwbGF5OmlubGluZTtvcGFjaXR5OjAu
NTt9Cgkuc3Q3e2Rpc3BsYXk6aW5saW5lO2ZpbGw6IzAzOUMyMzt9Cgkuc3Q4e2Rpc3BsYXk6aW5saW5l
O2ZpbGw6I0QxMUMxQzt9Cgkuc3Q5e2Rpc3BsYXk6aW5saW5lO2ZpbGw6IzExNzdENzt9Cgkuc3QxMHtk
aXNwbGF5OmlubGluZTtmaWxsOiNGRkZGRkY7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRG9jdW1lbnRfMV8i
Pg0KICAgIDxwYXRoIGQ9Ik0xNSwyMGw5LTlsNSw1bC05LDlMMTUsMjB6IE0zMS43LDExLjlsLTMuNi0z
LjZjLTAuNC0wLjQtMS0wLjQtMS40LDBMMjUsMTBsNSw1bDEuNy0xLjcgICBDMzIuMSwxMi45LDMyLjEs
MTIuMywzMS43LDExLjl6IE0xNCwyNmg1bC01LTVWMjZ6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgICA8cGF0
aCBkPSJNMjQsMjMuOFYyOGgtNC4ySDEySDZWNGgxOHY0LjJsMi0yVjNjMC0wLjUtMC41LTEtMS0xSDVD
NC40LDIsNCwyLjUsNCwzdjI2YzAsMC41LDAuNSwxLDEsMWgyMCAgIGMwLjUsMCwxLTAuNSwxLTF2LTcu
MkwyNCwyMy44eiIgY2xhc3M9IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
</root>