[성현모] TRA Recovery 생성
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<configuration>
|
||||||
|
<startup>
|
||||||
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||||
|
</startup>
|
||||||
|
</configuration>
|
||||||
41
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA.BaseView/Form1.Designer.cs
generated
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
|
||||||
|
namespace SystemX.Product.CP.TRA.BaseView
|
||||||
|
{
|
||||||
|
partial class Form1
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 필수 디자이너 변수입니다.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 사용 중인 모든 리소스를 정리합니다.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form 디자이너에서 생성한 코드
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 디자이너 지원에 필요한 메서드입니다.
|
||||||
|
/// 이 메서드의 내용을 코드 편집기로 수정하지 마세요.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(800, 450);
|
||||||
|
this.Text = "Form1";
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace SystemX.Product.CP.TRA.BaseView
|
||||||
|
{
|
||||||
|
public partial class Form1 : Form
|
||||||
|
{
|
||||||
|
public Form1()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace SystemX.Product.CP.TRA.BaseView
|
||||||
|
{
|
||||||
|
static class Program
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 해당 애플리케이션의 주 진입점입니다.
|
||||||
|
/// </summary>
|
||||||
|
[STAThread]
|
||||||
|
static void Main()
|
||||||
|
{
|
||||||
|
Application.EnableVisualStyles();
|
||||||
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
|
Application.Run(new Form1());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해
|
||||||
|
// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
|
||||||
|
// 이러한 특성 값을 변경하세요.
|
||||||
|
[assembly: AssemblyTitle("SystemX.Product.CP.TRA.BaseView")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("SystemX.Product.CP.TRA.BaseView")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2023")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에
|
||||||
|
// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면
|
||||||
|
// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
|
||||||
|
[assembly: Guid("910bb092-a5f3-4ace-bbf8-c19434f1fa8e")]
|
||||||
|
|
||||||
|
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
|
||||||
|
//
|
||||||
|
// 주 버전
|
||||||
|
// 부 버전
|
||||||
|
// 빌드 번호
|
||||||
|
// 수정 버전
|
||||||
|
//
|
||||||
|
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
|
||||||
|
// 기본값으로 할 수 있습니다.
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||||
173
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA.BaseView/Properties/Resources.Designer.cs
generated
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// 이 코드는 도구를 사용하여 생성되었습니다.
|
||||||
|
// 런타임 버전:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||||
|
// 이러한 변경 내용이 손실됩니다.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace SystemX.Product.CP.TRA.BaseView.Properties {
|
||||||
|
using System;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
|
||||||
|
/// </summary>
|
||||||
|
// 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder
|
||||||
|
// 클래스에서 자동으로 생성되었습니다.
|
||||||
|
// 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을
|
||||||
|
// 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오.
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
internal class Resources {
|
||||||
|
|
||||||
|
private static global::System.Resources.ResourceManager resourceMan;
|
||||||
|
|
||||||
|
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||||
|
|
||||||
|
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||||
|
internal Resources() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||||
|
get {
|
||||||
|
if (object.ReferenceEquals(resourceMan, null)) {
|
||||||
|
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SystemX.Product.CP.TRA.BaseView.Properties.Resources", typeof(Resources).Assembly);
|
||||||
|
resourceMan = temp;
|
||||||
|
}
|
||||||
|
return resourceMan;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을
|
||||||
|
/// 재정의합니다.
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Globalization.CultureInfo Culture {
|
||||||
|
get {
|
||||||
|
return resourceCulture;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
resourceCulture = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap ExplodedPie3D_16x16 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("ExplodedPie3D_16x16", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Find_16x16 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Find_16x16", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Find2_16x16 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Find2_16x16", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap HistoryItem_16x16 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("HistoryItem_16x16", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap IpAddress {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("IpAddress", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Kefico_CI {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Kefico_CI", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Linear_16x16 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Linear_16x16", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap ModelEditor_DetailView {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("ModelEditor_DetailView", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Password {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Password", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap UpdateField_16x16 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("UpdateField_16x16", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap UpdateTableOfContents_16x16 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("UpdateTableOfContents_16x16", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,154 @@
|
|||||||
|
<?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>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="ModelEditor_DetailView" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\ModelEditor_DetailView.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Password" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Password.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Find_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Find_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Linear_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Linear_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="HistoryItem_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\HistoryItem_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Kefico_CI" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Kefico CI.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="IpAddress" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\IpAddress.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="UpdateField_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\UpdateField_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="UpdateTableOfContents_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\UpdateTableOfContents_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Find2_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Find2_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="ExplodedPie3D_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\ExplodedPie3D_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
29
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA.BaseView/Properties/Settings.Designer.cs
generated
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
// Runtime Version:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
namespace SystemX.Product.CP.TRA.BaseView.Properties
|
||||||
|
{
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
|
||||||
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
|
||||||
|
{
|
||||||
|
|
||||||
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
|
|
||||||
|
public static Settings Default
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return defaultInstance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||||
|
<Profiles>
|
||||||
|
<Profile Name="(Default)" />
|
||||||
|
</Profiles>
|
||||||
|
<Settings />
|
||||||
|
</SettingsFile>
|
||||||
|
After Width: | Height: | Size: 763 B |
|
After Width: | Height: | Size: 293 B |
|
After Width: | Height: | Size: 828 B |
|
After Width: | Height: | Size: 1000 B |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 659 B |
|
After Width: | Height: | Size: 488 B |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 651 B |
|
After Width: | Height: | Size: 700 B |
@ -0,0 +1,110 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{910BB092-A5F3-4ACE-BBF8-C19434F1FA8E}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<RootNamespace>SystemX.Product.CP.TRA.BaseView</RootNamespace>
|
||||||
|
<AssemblyName>SystemX.Product.CP.TRA.BaseView</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||||
|
<Deterministic>true</Deterministic>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\x64\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<StartupObject />
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Deployment" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Net.Http" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Form1.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Form1.Designer.cs">
|
||||||
|
<DependentUpon>Form1.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Program.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="UcTRABaseView.cs">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UcTRABaseView.Designer.cs">
|
||||||
|
<DependentUpon>UcTRABaseView.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<Compile Include="Properties\Resources.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
</Compile>
|
||||||
|
<EmbeddedResource Include="UcTRABaseView.resx">
|
||||||
|
<DependentUpon>UcTRABaseView.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<None Include="Properties\Settings.settings">
|
||||||
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
|
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||||
|
</None>
|
||||||
|
<Compile Include="Properties\Settings.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Settings.settings</DependentUpon>
|
||||||
|
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="App.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\Find2_16x16.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\ExplodedPie3D_16x16.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="Resources\Find_16x16.png" />
|
||||||
|
<Content Include="Resources\HistoryItem_16x16.png" />
|
||||||
|
<Content Include="Resources\IpAddress.PNG" />
|
||||||
|
<Content Include="Resources\Kefico CI.PNG" />
|
||||||
|
<Content Include="Resources\Linear_16x16.png" />
|
||||||
|
<Content Include="Resources\ModelEditor_DetailView.png" />
|
||||||
|
<Content Include="Resources\Password.jpg" />
|
||||||
|
<Content Include="Resources\UpdateField_16x16.png" />
|
||||||
|
<Content Include="Resources\UpdateTableOfContents_16x16.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
</Project>
|
||||||
184
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA.BaseView/UcTRABaseView.Designer.cs
generated
Normal file
@ -0,0 +1,184 @@
|
|||||||
|
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.UIControl
|
||||||
|
{
|
||||||
|
public partial class UcTRABaseView
|
||||||
|
{
|
||||||
|
/// <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);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
this.contextMenuStripTest = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
|
this.ToolStripMenuItemOverview = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.ToolStripMenuItemHistory = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.ToolStripMenuItemSummary = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.ToolStripMenuItemDetail = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.ToolStripMenuItemFindError = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.toolStripMenuItemExplorer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripTextBoxBeginRelDate = new System.Windows.Forms.ToolStripTextBox();
|
||||||
|
this.toolStripMenuItemBeginRelDate = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.ToolStripMenuItemDetailOverview = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.contextMenuStripTest.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// contextMenuStripTest
|
||||||
|
//
|
||||||
|
this.contextMenuStripTest.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.ToolStripMenuItemOverview,
|
||||||
|
this.ToolStripMenuItemDetailOverview,
|
||||||
|
this.toolStripSeparator1,
|
||||||
|
this.ToolStripMenuItemHistory,
|
||||||
|
this.ToolStripMenuItemSummary,
|
||||||
|
this.ToolStripMenuItemDetail,
|
||||||
|
this.ToolStripMenuItemFindError,
|
||||||
|
this.toolStripSeparator2,
|
||||||
|
this.toolStripMenuItemExplorer});
|
||||||
|
this.contextMenuStripTest.Name = "contextMenuStripTest";
|
||||||
|
this.contextMenuStripTest.Size = new System.Drawing.Size(260, 192);
|
||||||
|
this.contextMenuStripTest.Text = "Menu";
|
||||||
|
//
|
||||||
|
// ToolStripMenuItemOverview
|
||||||
|
//
|
||||||
|
this.ToolStripMenuItemOverview.Image = global::SystemX.Product.CP.TRA.BaseView.Properties.Resources.Find_16x16;
|
||||||
|
this.ToolStripMenuItemOverview.Name = "ToolStripMenuItemOverview";
|
||||||
|
this.ToolStripMenuItemOverview.ShortcutKeyDisplayString = "Ctrl+O";
|
||||||
|
this.ToolStripMenuItemOverview.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O)));
|
||||||
|
this.ToolStripMenuItemOverview.Size = new System.Drawing.Size(259, 22);
|
||||||
|
this.ToolStripMenuItemOverview.Tag = "0";
|
||||||
|
this.ToolStripMenuItemOverview.Text = "&Overview";
|
||||||
|
//
|
||||||
|
// toolStripSeparator1
|
||||||
|
//
|
||||||
|
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||||
|
this.toolStripSeparator1.Size = new System.Drawing.Size(256, 6);
|
||||||
|
//
|
||||||
|
// ToolStripMenuItemHistory
|
||||||
|
//
|
||||||
|
this.ToolStripMenuItemHistory.Image = global::SystemX.Product.CP.TRA.BaseView.Properties.Resources.HistoryItem_16x16;
|
||||||
|
this.ToolStripMenuItemHistory.Name = "ToolStripMenuItemHistory";
|
||||||
|
this.ToolStripMenuItemHistory.ShortcutKeyDisplayString = "Ctrl+H";
|
||||||
|
this.ToolStripMenuItemHistory.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.H)));
|
||||||
|
this.ToolStripMenuItemHistory.Size = new System.Drawing.Size(259, 22);
|
||||||
|
this.ToolStripMenuItemHistory.Tag = "1";
|
||||||
|
this.ToolStripMenuItemHistory.Text = "Test &History";
|
||||||
|
//
|
||||||
|
// ToolStripMenuItemSummary
|
||||||
|
//
|
||||||
|
this.ToolStripMenuItemSummary.Image = global::SystemX.Product.CP.TRA.BaseView.Properties.Resources.Linear_16x16;
|
||||||
|
this.ToolStripMenuItemSummary.Name = "ToolStripMenuItemSummary";
|
||||||
|
this.ToolStripMenuItemSummary.ShortcutKeyDisplayString = "Ctrl+S";
|
||||||
|
this.ToolStripMenuItemSummary.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
|
||||||
|
this.ToolStripMenuItemSummary.Size = new System.Drawing.Size(259, 22);
|
||||||
|
this.ToolStripMenuItemSummary.Tag = "2";
|
||||||
|
this.ToolStripMenuItemSummary.Text = "Test &Summary";
|
||||||
|
//
|
||||||
|
// ToolStripMenuItemDetail
|
||||||
|
//
|
||||||
|
this.ToolStripMenuItemDetail.Image = global::SystemX.Product.CP.TRA.BaseView.Properties.Resources.ModelEditor_DetailView;
|
||||||
|
this.ToolStripMenuItemDetail.Name = "ToolStripMenuItemDetail";
|
||||||
|
this.ToolStripMenuItemDetail.ShortcutKeyDisplayString = "Ctrl+D";
|
||||||
|
this.ToolStripMenuItemDetail.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D)));
|
||||||
|
this.ToolStripMenuItemDetail.Size = new System.Drawing.Size(259, 22);
|
||||||
|
this.ToolStripMenuItemDetail.Tag = "3";
|
||||||
|
this.ToolStripMenuItemDetail.Text = "Detail &Data";
|
||||||
|
//
|
||||||
|
// ToolStripMenuItemFindError
|
||||||
|
//
|
||||||
|
this.ToolStripMenuItemFindError.Image = global::SystemX.Product.CP.TRA.BaseView.Properties.Resources.ExplodedPie3D_16x16;
|
||||||
|
this.ToolStripMenuItemFindError.Name = "ToolStripMenuItemFindError";
|
||||||
|
this.ToolStripMenuItemFindError.ShortcutKeyDisplayString = "Ctrl+E";
|
||||||
|
this.ToolStripMenuItemFindError.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.E)));
|
||||||
|
this.ToolStripMenuItemFindError.Size = new System.Drawing.Size(259, 22);
|
||||||
|
this.ToolStripMenuItemFindError.Tag = "4";
|
||||||
|
this.ToolStripMenuItemFindError.Text = "Test-&Error/Extended Search";
|
||||||
|
//
|
||||||
|
// toolStripSeparator2
|
||||||
|
//
|
||||||
|
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||||
|
this.toolStripSeparator2.Size = new System.Drawing.Size(256, 6);
|
||||||
|
//
|
||||||
|
// toolStripMenuItemExplorer
|
||||||
|
//
|
||||||
|
this.toolStripMenuItemExplorer.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.toolStripTextBoxBeginRelDate,
|
||||||
|
this.toolStripMenuItemBeginRelDate});
|
||||||
|
this.toolStripMenuItemExplorer.Image = global::SystemX.Product.CP.TRA.BaseView.Properties.Resources.Find2_16x16;
|
||||||
|
this.toolStripMenuItemExplorer.Name = "toolStripMenuItemExplorer";
|
||||||
|
this.toolStripMenuItemExplorer.Size = new System.Drawing.Size(259, 22);
|
||||||
|
this.toolStripMenuItemExplorer.Tag = "5";
|
||||||
|
this.toolStripMenuItemExplorer.Text = "Date Explorer Parameter";
|
||||||
|
//
|
||||||
|
// toolStripTextBoxBeginRelDate
|
||||||
|
//
|
||||||
|
this.toolStripTextBoxBeginRelDate.Font = new System.Drawing.Font("맑은 고딕", 9F);
|
||||||
|
this.toolStripTextBoxBeginRelDate.Name = "toolStripTextBoxBeginRelDate";
|
||||||
|
this.toolStripTextBoxBeginRelDate.Size = new System.Drawing.Size(100, 23);
|
||||||
|
this.toolStripTextBoxBeginRelDate.Tag = "6";
|
||||||
|
this.toolStripTextBoxBeginRelDate.Text = "0";
|
||||||
|
this.toolStripTextBoxBeginRelDate.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Right;
|
||||||
|
this.toolStripTextBoxBeginRelDate.ToolTipText = "BeginRelDate";
|
||||||
|
//
|
||||||
|
// toolStripMenuItemBeginRelDate
|
||||||
|
//
|
||||||
|
this.toolStripMenuItemBeginRelDate.DoubleClickEnabled = true;
|
||||||
|
this.toolStripMenuItemBeginRelDate.Image = global::SystemX.Product.CP.TRA.BaseView.Properties.Resources.UpdateField_16x16;
|
||||||
|
this.toolStripMenuItemBeginRelDate.Name = "toolStripMenuItemBeginRelDate";
|
||||||
|
this.toolStripMenuItemBeginRelDate.ShortcutKeyDisplayString = "Ctrl+R";
|
||||||
|
this.toolStripMenuItemBeginRelDate.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.R)));
|
||||||
|
this.toolStripMenuItemBeginRelDate.Size = new System.Drawing.Size(217, 22);
|
||||||
|
this.toolStripMenuItemBeginRelDate.Tag = "7";
|
||||||
|
this.toolStripMenuItemBeginRelDate.Text = "Begin &Related Date";
|
||||||
|
//
|
||||||
|
// ToolStripMenuItemDetailOverview
|
||||||
|
//
|
||||||
|
this.ToolStripMenuItemDetailOverview.Image = global::SystemX.Product.CP.TRA.BaseView.Properties.Resources.Find_16x16;
|
||||||
|
this.ToolStripMenuItemDetailOverview.Name = "ToolStripMenuItemDetailOverview";
|
||||||
|
this.ToolStripMenuItemDetailOverview.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.O)));
|
||||||
|
this.ToolStripMenuItemDetailOverview.Size = new System.Drawing.Size(259, 22);
|
||||||
|
this.ToolStripMenuItemDetailOverview.Tag = "8";
|
||||||
|
this.ToolStripMenuItemDetailOverview.Text = "Detail &Overview";
|
||||||
|
//
|
||||||
|
// UcTRABaseView
|
||||||
|
//
|
||||||
|
this.Name = "UcTRABaseView";
|
||||||
|
this.contextMenuStripTest.ResumeLayout(false);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected ContextMenuStrip contextMenuStripTest;
|
||||||
|
|
||||||
|
protected ToolStripMenuItem ToolStripMenuItemHistory;
|
||||||
|
protected ToolStripMenuItem ToolStripMenuItemOverview;
|
||||||
|
protected ToolStripSeparator toolStripSeparator1;
|
||||||
|
protected ToolStripMenuItem ToolStripMenuItemSummary;
|
||||||
|
protected ToolStripMenuItem ToolStripMenuItemDetail;
|
||||||
|
protected ToolStripMenuItem ToolStripMenuItemFindError;
|
||||||
|
protected ToolStripSeparator toolStripSeparator2;
|
||||||
|
protected ToolStripMenuItem toolStripMenuItemExplorer;
|
||||||
|
protected ToolStripTextBox toolStripTextBoxBeginRelDate;
|
||||||
|
protected ToolStripMenuItem toolStripMenuItemBeginRelDate;
|
||||||
|
private ToolStripMenuItem ToolStripMenuItemDetailOverview;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,120 @@
|
|||||||
|
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 SystemX.Product.CP.TRA;
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.UIControl
|
||||||
|
{
|
||||||
|
public enum eContents
|
||||||
|
{
|
||||||
|
None,
|
||||||
|
HostUseHistory,
|
||||||
|
Overview,
|
||||||
|
DetailOverview,
|
||||||
|
TestHistory,
|
||||||
|
NgHistory,
|
||||||
|
ProductHistory,
|
||||||
|
TestResult,
|
||||||
|
TestSummary,
|
||||||
|
TestTrend
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum eDataView
|
||||||
|
{
|
||||||
|
C1,
|
||||||
|
C2
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public partial class UcTRABaseView : UserControl
|
||||||
|
{
|
||||||
|
public UcTRABaseView()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
public string ViewID { get; set; }
|
||||||
|
|
||||||
|
public eContents ContentsType { get; protected set; }
|
||||||
|
|
||||||
|
public eDataView DataViewType { get; protected set; }
|
||||||
|
|
||||||
|
virtual public void ExportData() { }
|
||||||
|
|
||||||
|
protected void SetMenuFindErrorEnabled(bool bEnabled)
|
||||||
|
{
|
||||||
|
ToolStripMenuItemFindError.Enabled = bEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void SetMenuEnabled(eContents GeteContents)
|
||||||
|
{
|
||||||
|
switch(GeteContents)
|
||||||
|
{
|
||||||
|
case eContents.HostUseHistory:
|
||||||
|
ToolStripMenuItemOverview.Visible = false;
|
||||||
|
ToolStripMenuItemOverview.Enabled = false;
|
||||||
|
|
||||||
|
ToolStripMenuItemDetailOverview.Visible = false;
|
||||||
|
ToolStripMenuItemDetailOverview.Enabled = false;
|
||||||
|
|
||||||
|
ToolStripMenuItemHistory.Enabled = false;
|
||||||
|
ToolStripMenuItemOverview.Enabled = false;
|
||||||
|
ToolStripMenuItemSummary.Enabled = false;
|
||||||
|
ToolStripMenuItemDetail.Enabled = false;
|
||||||
|
ToolStripMenuItemFindError.Enabled = false;
|
||||||
|
//
|
||||||
|
toolStripSeparator2.Visible = false;
|
||||||
|
toolStripMenuItemExplorer.Visible = false;
|
||||||
|
toolStripMenuItemBeginRelDate.Enabled = false;
|
||||||
|
break;
|
||||||
|
case eContents.Overview:
|
||||||
|
ToolStripMenuItemOverview.Visible = false;
|
||||||
|
ToolStripMenuItemOverview.Enabled = false;
|
||||||
|
|
||||||
|
ToolStripMenuItemDetailOverview.Visible = true;
|
||||||
|
ToolStripMenuItemDetailOverview.Enabled = true;
|
||||||
|
|
||||||
|
ToolStripMenuItemHistory.Enabled = false;
|
||||||
|
ToolStripMenuItemOverview.Enabled = false;
|
||||||
|
ToolStripMenuItemSummary.Enabled = false;
|
||||||
|
ToolStripMenuItemDetail.Enabled = false;
|
||||||
|
//ToolStripMenuItemFindError.Enabled = false;
|
||||||
|
//
|
||||||
|
toolStripSeparator2.Visible = false;
|
||||||
|
toolStripMenuItemExplorer.Visible = false;
|
||||||
|
toolStripMenuItemBeginRelDate.Enabled = false;
|
||||||
|
break;
|
||||||
|
case eContents.DetailOverview:
|
||||||
|
ToolStripMenuItemOverview.Visible = true;
|
||||||
|
ToolStripMenuItemOverview.Enabled = true;
|
||||||
|
|
||||||
|
ToolStripMenuItemDetailOverview.Visible = false;
|
||||||
|
ToolStripMenuItemDetailOverview.Enabled = false;
|
||||||
|
|
||||||
|
ToolStripMenuItemSummary.Enabled = false;
|
||||||
|
ToolStripMenuItemDetail.Enabled = false;
|
||||||
|
break;
|
||||||
|
case eContents.TestHistory:
|
||||||
|
ToolStripMenuItemOverview.Visible = true;
|
||||||
|
ToolStripMenuItemOverview.Enabled = true;
|
||||||
|
|
||||||
|
ToolStripMenuItemDetailOverview.Visible = true;
|
||||||
|
ToolStripMenuItemDetailOverview.Enabled = true;
|
||||||
|
|
||||||
|
ToolStripMenuItemHistory.Enabled = false;
|
||||||
|
ToolStripMenuItemFindError.Enabled = false;
|
||||||
|
//
|
||||||
|
toolStripSeparator2.Visible = false;
|
||||||
|
toolStripMenuItemExplorer.Visible = false;
|
||||||
|
toolStripMenuItemBeginRelDate.Enabled = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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="contextMenuStripTest.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
||||||
47
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA.sln
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 16
|
||||||
|
VisualStudioVersion = 16.0.33027.164
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{18C1E9B6-823D-49DB-8253-ED32EEA21DB1}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SystemX.Product.CP.TRA", "SystemX.Product.CP.TRA\SystemX.Product.CP.TRA.csproj", "{74C67745-2E9A-4F85-A170-2C1F5990E6F4}"
|
||||||
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
|
{910BB092-A5F3-4ACE-BBF8-C19434F1FA8E} = {910BB092-A5F3-4ACE-BBF8-C19434F1FA8E}
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SystemX.Product.CP.TRA.BaseView", "SystemX.Product.CP.TRA.BaseView\SystemX.Product.CP.TRA.BaseView.csproj", "{910BB092-A5F3-4ACE-BBF8-C19434F1FA8E}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{74C67745-2E9A-4F85-A170-2C1F5990E6F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{74C67745-2E9A-4F85-A170-2C1F5990E6F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{74C67745-2E9A-4F85-A170-2C1F5990E6F4}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{74C67745-2E9A-4F85-A170-2C1F5990E6F4}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{74C67745-2E9A-4F85-A170-2C1F5990E6F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{74C67745-2E9A-4F85-A170-2C1F5990E6F4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{74C67745-2E9A-4F85-A170-2C1F5990E6F4}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{74C67745-2E9A-4F85-A170-2C1F5990E6F4}.Release|x64.Build.0 = Release|x64
|
||||||
|
{910BB092-A5F3-4ACE-BBF8-C19434F1FA8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{910BB092-A5F3-4ACE-BBF8-C19434F1FA8E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{910BB092-A5F3-4ACE-BBF8-C19434F1FA8E}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{910BB092-A5F3-4ACE-BBF8-C19434F1FA8E}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{910BB092-A5F3-4ACE-BBF8-C19434F1FA8E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{910BB092-A5F3-4ACE-BBF8-C19434F1FA8E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{910BB092-A5F3-4ACE-BBF8-C19434F1FA8E}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{910BB092-A5F3-4ACE-BBF8-C19434F1FA8E}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
VisualSVNWorkingCopyRoot = .
|
||||||
|
SolutionGuid = {34BF09E0-D510-452D-8E8B-B0D1C6FE25BF}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
113
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/App.config
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<configSections>
|
||||||
|
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System">
|
||||||
|
<section name="DevExpress.LookAndFeel.Design.AppSettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||||
|
</sectionGroup>
|
||||||
|
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<section name="SystemX.Product.TRA.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||||
|
</sectionGroup>
|
||||||
|
</configSections>
|
||||||
|
<userSettings>
|
||||||
|
<SystemX.Product.TRA.Properties.Settings>
|
||||||
|
<setting name="ApplicationThemeName" serializeAs="String">
|
||||||
|
<value>Coffee</value>
|
||||||
|
</setting>
|
||||||
|
</SystemX.Product.TRA.Properties.Settings>
|
||||||
|
</userSettings>
|
||||||
|
<applicationSettings>
|
||||||
|
<DevExpress.LookAndFeel.Design.AppSettings>
|
||||||
|
<setting name="DPIAwarenessMode" serializeAs="String">
|
||||||
|
<value>System</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="RegisterBonusSkins" serializeAs="String">
|
||||||
|
<value>True</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="DefaultAppSkin" serializeAs="String">
|
||||||
|
<value></value>
|
||||||
|
</setting>
|
||||||
|
<setting name="DefaultPalette" serializeAs="String">
|
||||||
|
<value>Pine Dark</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="TouchUI" serializeAs="String">
|
||||||
|
<value></value>
|
||||||
|
</setting>
|
||||||
|
<setting name="CompactUI" serializeAs="String">
|
||||||
|
<value></value>
|
||||||
|
</setting>
|
||||||
|
<setting name="TouchScaleFactor" serializeAs="String">
|
||||||
|
<value></value>
|
||||||
|
</setting>
|
||||||
|
<setting name="DirectX" serializeAs="String">
|
||||||
|
<value></value>
|
||||||
|
</setting>
|
||||||
|
<setting name="RegisterUserSkins" serializeAs="String">
|
||||||
|
<value></value>
|
||||||
|
</setting>
|
||||||
|
<setting name="FontBehavior" serializeAs="String">
|
||||||
|
<value></value>
|
||||||
|
</setting>
|
||||||
|
<setting name="DefaultAppFont" serializeAs="String">
|
||||||
|
<value></value>
|
||||||
|
</setting>
|
||||||
|
<setting name="CustomPaletteCollection" serializeAs="Xml">
|
||||||
|
<value />
|
||||||
|
</setting>
|
||||||
|
</DevExpress.LookAndFeel.Design.AppSettings>
|
||||||
|
</applicationSettings>
|
||||||
|
<startup>
|
||||||
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||||
|
</startup>
|
||||||
|
<runtime>
|
||||||
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="Microsoft.Extensions.Primitives" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-3.1.32.0" newVersion="3.1.32.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="Microsoft.Extensions.Configuration.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-3.1.32.0" newVersion="3.1.32.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-3.1.32.0" newVersion="3.1.32.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="Microsoft.Extensions.Caching.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-3.1.32.0" newVersion="3.1.32.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="Microsoft.Extensions.Options" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-3.1.32.0" newVersion="3.1.32.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-3.1.32.0" newVersion="3.1.32.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-3.1.32.0" newVersion="3.1.32.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.ComponentModel.Annotations" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.2.1.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
</assemblyBinding>
|
||||||
|
</runtime>
|
||||||
|
</configuration>
|
||||||
@ -0,0 +1,86 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Text;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using DevExpress.XtraBars;
|
||||||
|
using SystemX.Product.ALIS.UI.View;
|
||||||
|
using static SystemX.Product.ALIS.UI.View.ViewCfg;
|
||||||
|
using SystemX.Net.Platform.Common.Util;
|
||||||
|
using DataBaseConnection.Control;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using SystemX.Product.ALIS.UI.Subs;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using static SystemX.Net.Platform.Common.Util.LogMessage;
|
||||||
|
using SystemX.Product.ALIS.Interface;
|
||||||
|
using System.Net;
|
||||||
|
using static SystemX.Product.CP.TRA.MainForm;
|
||||||
|
using SystemX.Product.TRA.UIControl;
|
||||||
|
|
||||||
|
namespace SystemX.Product.CP.TRA
|
||||||
|
{
|
||||||
|
public partial class MainForm
|
||||||
|
{
|
||||||
|
//IChildControl
|
||||||
|
public void SetOverview()
|
||||||
|
{
|
||||||
|
SelectOverviewTab();
|
||||||
|
}
|
||||||
|
public void SetDetailOverview()
|
||||||
|
{
|
||||||
|
SelectDetailOverviewTab();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetHistoryView()
|
||||||
|
{
|
||||||
|
SetHostHistoryView();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetSummaryView()
|
||||||
|
{
|
||||||
|
SetHostTrendView();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CallDetailOverView()
|
||||||
|
{
|
||||||
|
SetDetailOerviewFindData(SelectedData, barToggleSwitchItemOverviewMerge.Checked);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AnnounceContentsType(eContents GetType)
|
||||||
|
{
|
||||||
|
SelectedContents = GetType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool GetOverviewMergeState()
|
||||||
|
{
|
||||||
|
return barToggleSwitchItemOverviewMerge.Checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SelectedDataCollection GetSelectDataOverView(int nDataValue = int.MaxValue)
|
||||||
|
{
|
||||||
|
SelectedDataCollection MakeSelectData = (SelectedDataCollection)SelectedData.Clone();
|
||||||
|
|
||||||
|
DateTime dtStart = DateTime.Parse(barEditItemDateStart.EditValue.ToString());
|
||||||
|
DateTime dtEnd = DateTime.Parse(barEditItemDateEnd.EditValue.ToString());
|
||||||
|
|
||||||
|
if (nDataValue != int.MaxValue)
|
||||||
|
dtStart = dtStart.AddDays(-nDataValue);
|
||||||
|
|
||||||
|
dtEnd = dtEnd.AddHours(23.99999);
|
||||||
|
|
||||||
|
MakeSelectData.SearchRangeStart = dtStart;
|
||||||
|
MakeSelectData.SearchRangeEnd = dtEnd;
|
||||||
|
|
||||||
|
return MakeSelectData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetNgHistView(eContents GetCallType)
|
||||||
|
{
|
||||||
|
SetNgHistoryView(GetCallType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,406 @@
|
|||||||
|
using DevExpress.CodeParser;
|
||||||
|
using DevExpress.Data.Helpers;
|
||||||
|
using DevExpress.Data.ODataLinq.Helpers;
|
||||||
|
using DevExpress.Internal.WinApi.Windows.UI.Notifications;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.Common;
|
||||||
|
using System.Data.Odbc;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.Data.SqlTypes;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using SystemX.Net.Platform.Common.Util;
|
||||||
|
using static SystemX.Net.Platform.Common.Util.LogMessage;
|
||||||
|
|
||||||
|
namespace DataBaseConnection.Control
|
||||||
|
{
|
||||||
|
public class DatabaseConnControl
|
||||||
|
{
|
||||||
|
/*public static string MainCatalogName = "CPX";
|
||||||
|
public static string ShortTermCatalogName = "CPX";
|
||||||
|
public static string LongTermCatalogName = "CPXLog";*/
|
||||||
|
|
||||||
|
public static string MainCatalogName = "CPXV2";
|
||||||
|
public static string ShortTermCatalogName = "";
|
||||||
|
public static List<string> LongTermCatalogName = new List<string> { "" } ;
|
||||||
|
public static string SelectLongTermCatalogNameCon1 = string.Empty;
|
||||||
|
public static string SelectLongTermCatalogNameCon2 = string.Empty;
|
||||||
|
public static bool ScanLongTermLog = false;
|
||||||
|
|
||||||
|
public const string Address = "192.168.0.43";
|
||||||
|
public const int CatalogConnPort = 1433;
|
||||||
|
|
||||||
|
public const string CatalogConnUID = "Alis";
|
||||||
|
|
||||||
|
public const string CatalogConnPW = "Kefico!@34";
|
||||||
|
|
||||||
|
private static SqlConnection connMain = null;
|
||||||
|
|
||||||
|
private static SqlConnection connShortTerm1 = null;
|
||||||
|
private static Dictionary<string, SqlConnection> connLongTerm1 = new Dictionary<string, SqlConnection>();
|
||||||
|
|
||||||
|
private static SqlConnection connShortTerm2 = null;
|
||||||
|
private static Dictionary<string, SqlConnection> connLongTerm2 = new Dictionary<string, SqlConnection>();
|
||||||
|
|
||||||
|
public static SqlConnection GetMainConn()
|
||||||
|
{
|
||||||
|
return connMain;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SqlConnection GetShortTermConn1()
|
||||||
|
{
|
||||||
|
return connShortTerm1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Dictionary<string, SqlConnection> GetLongTermConn1()
|
||||||
|
{
|
||||||
|
return connLongTerm1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SqlConnection GetShortTermConn2()
|
||||||
|
{
|
||||||
|
return connShortTerm2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Dictionary<string, SqlConnection> GetLongTermConn2()
|
||||||
|
{
|
||||||
|
return connLongTerm2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DatabaseConnControl()
|
||||||
|
{
|
||||||
|
//conn = new SqlConnection($"Data Source=200.200.200.48,1433; Initial Catalog={CatalogName}; User ID=Alis; Password=kefico; MultipleActiveResultSets=True;");
|
||||||
|
//conn = new SqlConnection($"Data Source=DESKTOP-5UQ1Q22;Initial Catalog={CatalogName};Integrated Security=True;");
|
||||||
|
//conn = new SqlConnection($"Data Source = 125.130.37.164,1433; Initial Catalog = {CatalogName}; User ID = Alis; Password = kefico; MultipleActiveResultSets=True;");
|
||||||
|
//"Data Source = {IP},{Port}; Initial Catalog = {CatalogName}; User ID = Alis; Password = kefico; MultipleActiveResultSets=True;";
|
||||||
|
//"Data Source = localhost; Initial Catalog = {CatalogName}; Integrated Security = SSPI; MultipleActiveResultSets=True;";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DisconnectDB()
|
||||||
|
{
|
||||||
|
if (connMain != null)
|
||||||
|
{
|
||||||
|
if (connMain.State == System.Data.ConnectionState.Open)
|
||||||
|
connMain.Close();
|
||||||
|
}
|
||||||
|
//
|
||||||
|
if (connShortTerm1 != null)
|
||||||
|
{
|
||||||
|
if (connShortTerm1.State == System.Data.ConnectionState.Open)
|
||||||
|
connShortTerm1.Close();
|
||||||
|
}
|
||||||
|
//
|
||||||
|
if (connLongTerm1?.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (var logTermConnection in connLongTerm1.Values)
|
||||||
|
{
|
||||||
|
if (logTermConnection.State == System.Data.ConnectionState.Open)
|
||||||
|
logTermConnection.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
if (connShortTerm2 != null)
|
||||||
|
{
|
||||||
|
if (connShortTerm2.State == System.Data.ConnectionState.Open)
|
||||||
|
connShortTerm2.Close();
|
||||||
|
}
|
||||||
|
//
|
||||||
|
if (connLongTerm2?.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (var logTermConnection in connLongTerm2.Values)
|
||||||
|
{
|
||||||
|
if (logTermConnection.State == System.Data.ConnectionState.Open)
|
||||||
|
logTermConnection.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ConnectTestListDB()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connMain = new SqlConnection($"Data Source=localhost; Initial Catalog={MainCatalogName}; Integrated Security = SSPI; MultipleActiveResultSets=True;");
|
||||||
|
connMain.Open();
|
||||||
|
|
||||||
|
SqlCommand SQLCmd = new SqlCommand("spGetDBList", connMain);
|
||||||
|
SQLCmd.CommandType = CommandType.StoredProcedure;
|
||||||
|
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
dtResult.Load(dtReader);
|
||||||
|
List<string> list = dtResult?.AsEnumerable()?.Select(x=>x.ItemArray?.First()?.ToString())?.ToList();
|
||||||
|
if(list?.Count > 0)
|
||||||
|
{
|
||||||
|
//short term
|
||||||
|
var shortTermCatalogName = list.Find(x => x.ToLower().Contains("short") && x.ToLower().Contains("json"));
|
||||||
|
if(string.IsNullOrEmpty(shortTermCatalogName) ==false)
|
||||||
|
{
|
||||||
|
ShortTermCatalogName = shortTermCatalogName;
|
||||||
|
}
|
||||||
|
|
||||||
|
//long term
|
||||||
|
var longTermCatalogName = list.FindAll(x => x.ToLower().Contains("long") && x.ToLower().Contains("json"));
|
||||||
|
if(longTermCatalogName?.Count() > 0)
|
||||||
|
{
|
||||||
|
LongTermCatalogName?.Clear();
|
||||||
|
LongTermCatalogName.AddRange(longTermCatalogName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dtReader.Close();
|
||||||
|
}
|
||||||
|
catch (SqlException sqlEx)
|
||||||
|
{
|
||||||
|
MessageOutput.ConsoleWrite($"TestList DB Connection Error: {sqlEx.Message}", ConsoleColor.Red, LogMessage.LogMessageLevel.FATAL);
|
||||||
|
|
||||||
|
connMain = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ConnectDataDB1()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SqlConnection connecction;
|
||||||
|
|
||||||
|
connShortTerm1 = new SqlConnection($"Data Source=localhost; Initial Catalog={ShortTermCatalogName}; Integrated Security = SSPI; MultipleActiveResultSets=True;"); // MultipleActiveResultSets=True;");
|
||||||
|
connShortTerm1.Open();
|
||||||
|
|
||||||
|
foreach(var catalog in LongTermCatalogName)
|
||||||
|
{
|
||||||
|
connLongTerm1.Add(catalog, new SqlConnection($"Data Source=localhost; Initial Catalog={catalog}; Integrated Security = SSPI; MultipleActiveResultSets=True;")); // MultipleActiveResultSets=True;");
|
||||||
|
|
||||||
|
if (connLongTerm1.TryGetValue(catalog, out connecction) == true)
|
||||||
|
{
|
||||||
|
connecction.Open();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (SqlException sqlEx)
|
||||||
|
{
|
||||||
|
MessageOutput.ConsoleWrite($"Data DB Connection Error: {sqlEx.Message}", ConsoleColor.Red, LogMessage.LogMessageLevel.FATAL);
|
||||||
|
|
||||||
|
connShortTerm1 = null;
|
||||||
|
connLongTerm1 = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ConnectDataDB2()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SqlConnection connecction;
|
||||||
|
|
||||||
|
connShortTerm2 = new SqlConnection($"Data Source=localhost; Initial Catalog={ShortTermCatalogName}; Integrated Security = SSPI; MultipleActiveResultSets=True;"); // MultipleActiveResultSets=True;");
|
||||||
|
connShortTerm2.Open();
|
||||||
|
|
||||||
|
foreach (var catalog in LongTermCatalogName)
|
||||||
|
{
|
||||||
|
connLongTerm2.Add(catalog, new SqlConnection($"Data Source=localhost; Initial Catalog={catalog}; Integrated Security = SSPI; MultipleActiveResultSets=True;")); // MultipleActiveResultSets=True;");
|
||||||
|
|
||||||
|
if (connLongTerm2.TryGetValue(catalog, out connecction) == true)
|
||||||
|
{
|
||||||
|
connecction.Open();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (SqlException sqlEx)
|
||||||
|
{
|
||||||
|
MessageOutput.ConsoleWrite($"Data DB Connection Error: {sqlEx.Message}", ConsoleColor.Red, LogMessage.LogMessageLevel.FATAL);
|
||||||
|
|
||||||
|
connShortTerm2 = null;
|
||||||
|
connLongTerm2 = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ConnectTestListDB(string strGetConnIPAddress, int nGetConnPort = CatalogConnPort)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//conn = new SqlConnection("Data Source=200.200.200.48,1433; Initial Catalog=LSU_Trimming_4th_ALIS; User ID=Alis; Password=kefico; MultipleActiveResultSets=True;");
|
||||||
|
//Data Source = {IP},{Port}; Initial Catalog = {SCHEMA}; User ID = {ID}; Password = {PW}; MultipleActiveResultSets=True;
|
||||||
|
//conn = new SqlConnection("Data Source=DESKTOP-5UQ1Q22;Initial Catalog=LSU_Trimming_4th_ALIS;Integrated Security=True;");
|
||||||
|
//conn = new SqlConnection("Data Source = 125.130.37.164,1433; Initial Catalog = LSU_Trimming_4th_ALIS; User ID = Alis; Password = kefico; MultipleActiveResultSets=True;");
|
||||||
|
//conn = new SqlConnection("Data Source = 127.0.0.1; Initial Catalog = Smart_Inhibitor_1th_ALIS; User ID = Alis; Password = kefico;"); //Integrated Security = SSPI;");
|
||||||
|
|
||||||
|
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
|
||||||
|
|
||||||
|
if (strGetConnIPAddress.Split(',').Length == 2)
|
||||||
|
builder.DataSource = strGetConnIPAddress;
|
||||||
|
else
|
||||||
|
builder.DataSource = strGetConnIPAddress + "," + nGetConnPort.ToString();
|
||||||
|
|
||||||
|
builder.UserID = "Alis";
|
||||||
|
builder.Password = "Kefico!@34";
|
||||||
|
builder.InitialCatalog = MainCatalogName;
|
||||||
|
builder.MultipleActiveResultSets = true;
|
||||||
|
|
||||||
|
connMain = new SqlConnection(builder.ConnectionString);
|
||||||
|
connMain.Open();
|
||||||
|
//
|
||||||
|
if (strGetConnIPAddress.Split(',').Length == 2)
|
||||||
|
builder.DataSource = strGetConnIPAddress;
|
||||||
|
else
|
||||||
|
builder.DataSource = strGetConnIPAddress + "," + nGetConnPort.ToString();
|
||||||
|
|
||||||
|
SqlCommand SQLCmd = new SqlCommand("spGetDBList", connMain);
|
||||||
|
SQLCmd.CommandType = CommandType.StoredProcedure;
|
||||||
|
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
dtResult.Load(dtReader);
|
||||||
|
List<string> list = dtResult?.AsEnumerable()?.Select(x => x.ItemArray?.First()?.ToString())?.ToList();
|
||||||
|
if (list?.Count > 0)
|
||||||
|
{
|
||||||
|
//short term
|
||||||
|
var shortTermCatalogName = list.Find(x => x.ToLower().Contains("short") && x.ToLower().Contains("json"));
|
||||||
|
if (string.IsNullOrEmpty(shortTermCatalogName) == false)
|
||||||
|
{
|
||||||
|
ShortTermCatalogName = shortTermCatalogName;
|
||||||
|
}
|
||||||
|
|
||||||
|
//long term
|
||||||
|
var longTermCatalogName = list.FindAll(x => x.ToLower().Contains("long") && x.ToLower().Contains("json"));
|
||||||
|
if (longTermCatalogName?.Count() > 0)
|
||||||
|
{
|
||||||
|
LongTermCatalogName?.Clear();
|
||||||
|
LongTermCatalogName.AddRange(longTermCatalogName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dtReader.Close();
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (SqlException sqlEx)
|
||||||
|
{
|
||||||
|
MessageOutput.ConsoleWrite($"TestList DB Connection Error: {sqlEx.Message}", ConsoleColor.Red, LogMessage.LogMessageLevel.FATAL);
|
||||||
|
|
||||||
|
connMain = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ConnectDataDB1(string strGetConnIPAddress, int nGetConnPort = CatalogConnPort, string CatalogName = "")
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//conn = new SqlConnection("Data Source=200.200.200.48,1433; Initial Catalog=LSU_Trimming_4th_ALIS; User ID=Alis; Password=kefico; MultipleActiveResultSets=True;");
|
||||||
|
//Data Source = {IP},{Port}; Initial Catalog = {SCHEMA}; User ID = {ID}; Password = {PW}; MultipleActiveResultSets=True;
|
||||||
|
//conn = new SqlConnection("Data Source=DESKTOP-5UQ1Q22;Initial Catalog=LSU_Trimming_4th_ALIS;Integrated Security=True;");
|
||||||
|
//conn = new SqlConnection("Data Source = 125.130.37.164,1433; Initial Catalog = LSU_Trimming_4th_ALIS; User ID = Alis; Password = kefico; MultipleActiveResultSets=True;");
|
||||||
|
//conn = new SqlConnection("Data Source = 127.0.0.1; Initial Catalog = Smart_Inhibitor_1th_ALIS; User ID = Alis; Password = kefico;"); //Integrated Security = SSPI;");
|
||||||
|
|
||||||
|
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
|
||||||
|
|
||||||
|
if (strGetConnIPAddress.Split(',').Length == 2)
|
||||||
|
builder.DataSource = strGetConnIPAddress;
|
||||||
|
else
|
||||||
|
builder.DataSource = strGetConnIPAddress + "," + nGetConnPort.ToString();
|
||||||
|
|
||||||
|
builder.UserID = "Alis";
|
||||||
|
builder.Password = "Kefico!@34"; //"Kefico!@34";
|
||||||
|
//builder.Password = "KEFICO!@34";
|
||||||
|
builder.InitialCatalog = ShortTermCatalogName;
|
||||||
|
|
||||||
|
//conn = new SqlConnection(builder.ConnectionString);
|
||||||
|
connShortTerm1 = new SqlConnection(builder.ConnectionString);
|
||||||
|
//conn = new SqlConnection("Data Source = " + strGetConnIPAddress.ToString() + ",1433; Initial Catalog = Smart_Inhibitor_1th_ALIS; User ID=Alis; Password=KEFICO!@34;"); // MultipleActiveResultSets=True;");
|
||||||
|
connShortTerm1.Open();
|
||||||
|
//
|
||||||
|
builder = new SqlConnectionStringBuilder();
|
||||||
|
|
||||||
|
if (strGetConnIPAddress.Split(',').Length == 2)
|
||||||
|
builder.DataSource = strGetConnIPAddress;
|
||||||
|
else
|
||||||
|
builder.DataSource = strGetConnIPAddress + "," + nGetConnPort.ToString(); //9000 50001 50002
|
||||||
|
|
||||||
|
builder.UserID = "Alis";
|
||||||
|
builder.Password = "Kefico!@34";
|
||||||
|
builder.InitialCatalog = CatalogName;
|
||||||
|
builder.MultipleActiveResultSets = true;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var con = new SqlConnection(builder.ConnectionString);
|
||||||
|
con.Open();
|
||||||
|
connLongTerm1.Add(CatalogName, con);
|
||||||
|
|
||||||
|
}
|
||||||
|
catch(Exception ex)
|
||||||
|
{
|
||||||
|
MessageOutput.ConsoleWrite($"Data DB Connection Error: {ex.Message}", ConsoleColor.Red, LogMessage.LogMessageLevel.FATAL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (SqlException sqlEx)
|
||||||
|
{
|
||||||
|
MessageOutput.ConsoleWrite($"Data DB Connection Error: {sqlEx.Message}", ConsoleColor.Red, LogMessage.LogMessageLevel.FATAL);
|
||||||
|
|
||||||
|
connShortTerm1 = null;
|
||||||
|
connLongTerm1 = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ConnectDataDB2(string strGetConnIPAddress, int nGetConnPort = CatalogConnPort, string CatalogName = "")
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//conn = new SqlConnection("Data Source=200.200.200.48,1433; Initial Catalog=LSU_Trimming_4th_ALIS; User ID=Alis; Password=kefico; MultipleActiveResultSets=True;");
|
||||||
|
//Data Source = {IP},{Port}; Initial Catalog = {SCHEMA}; User ID = {ID}; Password = {PW}; MultipleActiveResultSets=True;
|
||||||
|
//conn = new SqlConnection("Data Source=DESKTOP-5UQ1Q22;Initial Catalog=LSU_Trimming_4th_ALIS;Integrated Security=True;");
|
||||||
|
//conn = new SqlConnection("Data Source = 125.130.37.164,1433; Initial Catalog = LSU_Trimming_4th_ALIS; User ID = Alis; Password = kefico; MultipleActiveResultSets=True;");
|
||||||
|
//conn = new SqlConnection("Data Source = 127.0.0.1; Initial Catalog = Smart_Inhibitor_1th_ALIS; User ID = Alis; Password = kefico;"); //Integrated Security = SSPI;");
|
||||||
|
|
||||||
|
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
|
||||||
|
|
||||||
|
if (strGetConnIPAddress.Split(',').Length == 2)
|
||||||
|
builder.DataSource = strGetConnIPAddress;
|
||||||
|
else
|
||||||
|
builder.DataSource = strGetConnIPAddress + "," + nGetConnPort.ToString();
|
||||||
|
|
||||||
|
builder.UserID = "Alis";
|
||||||
|
builder.Password = "Kefico!@34"; //"Kefico!@34";
|
||||||
|
//builder.Password = "KEFICO!@34";
|
||||||
|
builder.InitialCatalog = ShortTermCatalogName;
|
||||||
|
|
||||||
|
//conn = new SqlConnection(builder.ConnectionString);
|
||||||
|
connShortTerm2 = new SqlConnection(builder.ConnectionString);
|
||||||
|
//conn = new SqlConnection("Data Source = " + strGetConnIPAddress.ToString() + ",1433; Initial Catalog = Smart_Inhibitor_1th_ALIS; User ID=Alis; Password=KEFICO!@34;"); // MultipleActiveResultSets=True;");
|
||||||
|
connShortTerm2.Open();
|
||||||
|
//
|
||||||
|
builder = new SqlConnectionStringBuilder();
|
||||||
|
|
||||||
|
if (strGetConnIPAddress.Split(',').Length == 2)
|
||||||
|
builder.DataSource = strGetConnIPAddress;
|
||||||
|
else
|
||||||
|
builder.DataSource = strGetConnIPAddress + "," + nGetConnPort.ToString(); //9000 50001 50002
|
||||||
|
|
||||||
|
builder.UserID = "Alis";
|
||||||
|
builder.Password = "Kefico!@34";
|
||||||
|
builder.InitialCatalog = CatalogName;
|
||||||
|
builder.MultipleActiveResultSets = true;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var con = new SqlConnection(builder.ConnectionString);
|
||||||
|
con.Open();
|
||||||
|
connLongTerm2.Add(CatalogName, con);
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageOutput.ConsoleWrite($"Data DB Connection Error: {ex.Message}", ConsoleColor.Red, LogMessage.LogMessageLevel.FATAL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (SqlException sqlEx)
|
||||||
|
{
|
||||||
|
MessageOutput.ConsoleWrite($"Data DB Connection Error: {sqlEx.Message}", ConsoleColor.Red, LogMessage.LogMessageLevel.FATAL);
|
||||||
|
|
||||||
|
connShortTerm2 = null;
|
||||||
|
connLongTerm2 = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
229
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/DataControl.cs
Normal file
@ -0,0 +1,229 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Text;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using DevExpress.XtraBars;
|
||||||
|
using SystemX.Product.ALIS.UI.View;
|
||||||
|
using static SystemX.Product.ALIS.UI.View.ViewCfg;
|
||||||
|
using SystemX.Net.Platform.Common.Util;
|
||||||
|
using DataBaseConnection.Control;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using SystemX.Product.ALIS.UI.Subs;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using static SystemX.Net.Platform.Common.Util.LogMessage;
|
||||||
|
using SystemX.Product.ALIS.Interface;
|
||||||
|
using System.Net;
|
||||||
|
using static SystemX.Product.CP.TRA.MainForm;
|
||||||
|
|
||||||
|
namespace SystemX.Product.CP.TRA
|
||||||
|
{
|
||||||
|
public partial class MainForm
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// IDataBaseController
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public SqlConnection GetMainConn()
|
||||||
|
{
|
||||||
|
return DatabaseConnControl.GetMainConn();
|
||||||
|
}
|
||||||
|
|
||||||
|
public SqlConnection GetShortTermConn1()
|
||||||
|
{
|
||||||
|
return DatabaseConnControl.GetShortTermConn1();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Dictionary<string, SqlConnection> GetLongTermConn1()
|
||||||
|
{
|
||||||
|
return DatabaseConnControl.GetLongTermConn1();
|
||||||
|
}
|
||||||
|
|
||||||
|
public SqlConnection GetShortTermConn2()
|
||||||
|
{
|
||||||
|
return DatabaseConnControl.GetShortTermConn2();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Dictionary<string, SqlConnection> GetLongTermConn2()
|
||||||
|
{
|
||||||
|
return DatabaseConnControl.GetLongTermConn2();
|
||||||
|
}
|
||||||
|
|
||||||
|
//IDataControl
|
||||||
|
/*
|
||||||
|
object objSQLControl = new object();
|
||||||
|
|
||||||
|
public UserInfo GetLoginInfo()
|
||||||
|
{
|
||||||
|
return CurrentUser;
|
||||||
|
}
|
||||||
|
|
||||||
|
private DataTable QuerySQL(string strQueryText)
|
||||||
|
{
|
||||||
|
lock (objSQLControl)
|
||||||
|
{
|
||||||
|
SqlDataReader sqlReader = null;
|
||||||
|
DataTable dt = new DataTable();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SQLCmd.CommandText = strQueryText;
|
||||||
|
sqlReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
if (sqlReader.HasRows != false)
|
||||||
|
dt.Load(sqlReader);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>> ") + @"Query process fail. [SystemX.Product.ALIS.UI : IDataControl.getDuplicateCheck]\r\n" + ex.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if (sqlReader != null)
|
||||||
|
sqlReader.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Commons.isHasRow(dt))
|
||||||
|
return dt;
|
||||||
|
else
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataTable GetTable(string strQueryText)
|
||||||
|
{
|
||||||
|
return QuerySQL(strQueryText);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IDataController - GetTable
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="tblName"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public DataTable GetTable(eDbTableList tblName)
|
||||||
|
{
|
||||||
|
string strQueryText = string.Empty;
|
||||||
|
|
||||||
|
strQueryText = $"SELECT * FROM {tblName.ToString()} ORDER BY No ASC;";
|
||||||
|
|
||||||
|
if (tblName == eDbTableList.PROD_TestList)
|
||||||
|
{
|
||||||
|
strQueryText = $"SELECT X.No, " +
|
||||||
|
$"X.ProdNo_P AS 'P_ProdNo', " +
|
||||||
|
$"X.TestType, " +
|
||||||
|
$"X.FileName, " +
|
||||||
|
$"X.Version AS 'FileVersion', " +
|
||||||
|
$"X.ProdCode, " +
|
||||||
|
$"X.RegDT, " +
|
||||||
|
$"X.RegUser, " +
|
||||||
|
$"X.UpdateDT, " +
|
||||||
|
$"X.UpdateUser, " +
|
||||||
|
$"Y.No AS 'GroupNo', " +
|
||||||
|
$"Y.GroupName, " +
|
||||||
|
$"Y.ModelName, " +
|
||||||
|
$"Y.Comment, " +
|
||||||
|
$"X.Description, " +
|
||||||
|
$"X.TestListData FROM {tblName.ToString()} AS X INNER JOIN PROD_Group AS Y ON X.GroupNo = Y.No ORDER BY No ASC;";
|
||||||
|
}
|
||||||
|
else if (tblName == eDbTableList.PROD_Release)
|
||||||
|
{
|
||||||
|
strQueryText = $"SELECT X.No, " +
|
||||||
|
$"X.ProdNo_C AS 'C_ProdNo', " +
|
||||||
|
$"Y.No AS 'TestCodeNo', " +
|
||||||
|
$"Y.TestCode, " +
|
||||||
|
$"Z.No AS 'TestListNo', " +
|
||||||
|
$"Z.ProdNo_P AS 'P_ProdNo', " +
|
||||||
|
$"Z.TestType, " +
|
||||||
|
$"Z.Version AS 'FileVersion', " +
|
||||||
|
$"Z.ProdCode, " +
|
||||||
|
$"X.Config, " +
|
||||||
|
$"X.RegDT, " +
|
||||||
|
$"X.RegUser, " +
|
||||||
|
$"X.RegUserComment " +
|
||||||
|
$"FROM {tblName.ToString()} AS X INNER JOIN STAT_TestCode AS Y ON X.TestCodeNo = Y.No INNER JOIN PROD_TestList AS Z ON X.TestListNo = Z.No ORDER BY No ASC;";
|
||||||
|
}
|
||||||
|
|
||||||
|
return QuerySQL(strQueryText);
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataTable GetTable(eDbTableList tblName, string strColName, string strParameter)
|
||||||
|
{
|
||||||
|
string strQueryText = $"SELECT * FROM {tblName.ToString()} WHERE {strColName} = {strParameter} ORDER BY No ASC;";
|
||||||
|
|
||||||
|
return QuerySQL(strQueryText);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GetServerDateTimeString()
|
||||||
|
{
|
||||||
|
string strGetDateTime = string.Empty;
|
||||||
|
|
||||||
|
string strQueryText = "SELECT CONVERT(datetime2, GETDATE(), 121) AS CURRENT_DATETIME;";
|
||||||
|
|
||||||
|
DataTable getDt = QuerySQL(strQueryText);
|
||||||
|
|
||||||
|
if (Commons.isHasRow(getDt))
|
||||||
|
strGetDateTime = getDt.Rows[0].ItemArray[0].ToString();
|
||||||
|
|
||||||
|
return strGetDateTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DateTime GetServerDateTime()
|
||||||
|
{
|
||||||
|
string strGetDateTime = string.Empty;
|
||||||
|
|
||||||
|
string strQueryText = "SELECT CONVERT(datetime2, GETDATE(), 121) AS CURRENT_DATETIME;";
|
||||||
|
|
||||||
|
DataTable getDt = QuerySQL(strQueryText);
|
||||||
|
|
||||||
|
if (Commons.isHasRow(getDt))
|
||||||
|
strGetDateTime = getDt.Rows[0].ItemArray[0].ToString();
|
||||||
|
|
||||||
|
DateTime dtSetDateTime = new DateTime();
|
||||||
|
DateTime.TryParse(strGetDateTime, out dtSetDateTime);
|
||||||
|
|
||||||
|
return dtSetDateTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string SetConvertDateTime(string strGetConvertText)
|
||||||
|
{
|
||||||
|
string strQueryConvertText = string.Empty;
|
||||||
|
|
||||||
|
if (strGetConvertText.IndexOf("AM") >= 0 || strGetConvertText.IndexOf("PM") >= 0 ||
|
||||||
|
strGetConvertText.IndexOf("오전") >= 0 || strGetConvertText.IndexOf("오후") >= 0)
|
||||||
|
{
|
||||||
|
if (strGetConvertText.IndexOf("AM") >= 0 || strGetConvertText.IndexOf("PM") >= 0)
|
||||||
|
strQueryConvertText = "SELECT dbo.XConvertDateE('" + strGetConvertText + "') AS CONVERT_DATETIME_E;";
|
||||||
|
else if (strGetConvertText.IndexOf("오전") >= 0 || strGetConvertText.IndexOf("오후") >= 0)
|
||||||
|
strQueryConvertText = "SELECT dbo.XConvertDateK('" + strGetConvertText + "') AS CONVERT_DATETIME_K;";
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable getDt = null;
|
||||||
|
|
||||||
|
string strGetResultText1 = string.Empty;
|
||||||
|
string strGetResultText2 = string.Empty;
|
||||||
|
|
||||||
|
if (strQueryConvertText != string.Empty)
|
||||||
|
getDt = QuerySQL(strQueryConvertText);
|
||||||
|
else
|
||||||
|
strGetResultText1 = strGetConvertText;
|
||||||
|
|
||||||
|
if (Commons.isHasRow(getDt))
|
||||||
|
strGetResultText1 = getDt.Rows[0].ItemArray[0].ToString();
|
||||||
|
|
||||||
|
string strQueryText = "SELECT CONVERT(VARCHAR, '" + strGetResultText1 + "', 121) AS CONVERT_DATETIME;";
|
||||||
|
|
||||||
|
if (strGetResultText1 != string.Empty)
|
||||||
|
getDt = QuerySQL(strQueryText);
|
||||||
|
|
||||||
|
if (Commons.isHasRow(getDt))
|
||||||
|
strGetResultText2 = getDt.Rows[0].ItemArray[0].ToString();
|
||||||
|
|
||||||
|
return strGetResultText2;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.Common;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using SystemX.Product.TRA.UIControl;
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.DataManager
|
||||||
|
{
|
||||||
|
public static class DMCommon
|
||||||
|
{
|
||||||
|
public static string SummaryHistTable = "HIST_TesterSummary";
|
||||||
|
public static string SummaryLogTable = "HIST_LogSummary";
|
||||||
|
public static string ResultLogTable = "HIST_TestResult";
|
||||||
|
|
||||||
|
//default, longterm 스위칭할때 필요
|
||||||
|
public const string SummaryLogTableDefault = "HIST_LogSummary";
|
||||||
|
public const string ResultLogTableDefault = "HIST_TestResult";
|
||||||
|
|
||||||
|
public static int nDefaultScanTime = 1800;
|
||||||
|
public static int nFullScanTime = 7200;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,399 @@
|
|||||||
|
using DataBaseConnection.Control;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.Common;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using SystemX.Product.ALIS.Interface;
|
||||||
|
using SystemX.Product.TRA.UIControl;
|
||||||
|
|
||||||
|
using static SystemX.Product.CP.TRA.Commons;
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.DataManager
|
||||||
|
{
|
||||||
|
public class DMDetailOverview
|
||||||
|
{
|
||||||
|
public enum eCommand
|
||||||
|
{
|
||||||
|
PowerON,
|
||||||
|
PowerOFF,
|
||||||
|
QUERY
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum eColList
|
||||||
|
{
|
||||||
|
TestDate,
|
||||||
|
StationName,
|
||||||
|
Host,
|
||||||
|
Section,
|
||||||
|
Start,
|
||||||
|
Final,
|
||||||
|
ProductNo,
|
||||||
|
TestType,
|
||||||
|
ParentNo,
|
||||||
|
ProductID,
|
||||||
|
TestListFileNo,
|
||||||
|
TestListVariantNo,
|
||||||
|
TestCode,
|
||||||
|
FileVersion,
|
||||||
|
FileCode,
|
||||||
|
StepVersion,
|
||||||
|
FirstTestTime,
|
||||||
|
FinalTestTime,
|
||||||
|
Total,
|
||||||
|
OK,
|
||||||
|
NG, //NOK,
|
||||||
|
TestListCntID
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum eColListHide
|
||||||
|
{
|
||||||
|
TestListCntID,
|
||||||
|
RN
|
||||||
|
}
|
||||||
|
|
||||||
|
private SqlConnection DBConn { get; set; }
|
||||||
|
|
||||||
|
private SqlConnection ShortTermDBConn { get; set; }
|
||||||
|
|
||||||
|
private SqlConnection LongTermDBConn { get; set; }
|
||||||
|
|
||||||
|
private SqlCommand SQLCmd { get; set; }
|
||||||
|
|
||||||
|
private SelectedDataCollection SelectedOverViewItemData;
|
||||||
|
|
||||||
|
public string strDetailOverviewUseQuery;
|
||||||
|
|
||||||
|
public DataTable dtRaw;
|
||||||
|
|
||||||
|
public DataTable dtSubRaw;
|
||||||
|
|
||||||
|
eOverviewModelNameInfo GetSelectInfo;
|
||||||
|
|
||||||
|
IDataBaseController GetDBController;
|
||||||
|
|
||||||
|
public DMDetailOverview(eSelectDataView SelectView, eOverviewModelNameInfo SelectInfo, IDataBaseController getDBController)
|
||||||
|
{
|
||||||
|
GetSelectInfo = SelectInfo;
|
||||||
|
|
||||||
|
DBConn = getDBController.GetMainConn();
|
||||||
|
|
||||||
|
GetDBController = getDBController;
|
||||||
|
|
||||||
|
if (SelectView == eSelectDataView.DataDocumentViewC1)
|
||||||
|
{
|
||||||
|
ShortTermDBConn = getDBController.GetShortTermConn1();
|
||||||
|
|
||||||
|
LongTermDBConn = getDBController.GetLongTermConn1().First().Value;
|
||||||
|
}
|
||||||
|
else if (SelectView == eSelectDataView.DataDocumentViewC2)
|
||||||
|
{
|
||||||
|
ShortTermDBConn = getDBController.GetShortTermConn2();
|
||||||
|
|
||||||
|
LongTermDBConn = getDBController.GetLongTermConn2().First().Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
strDetailOverviewUseQuery = string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataTable GetDataView(eSelectDataView SelectView, SelectedDataCollection data, OverviewSearchOption inputOption)
|
||||||
|
{
|
||||||
|
if (SelectView == eSelectDataView.DataDocumentViewC1)
|
||||||
|
{
|
||||||
|
LongTermDBConn = GetDBController.GetLongTermConn1().Where(x => x.Key.Contains(data.StartTime.Year.ToString()))?.FirstOrDefault().Value;
|
||||||
|
if (LongTermDBConn == null)
|
||||||
|
{
|
||||||
|
LongTermDBConn = GetDBController.GetLongTermConn1().FirstOrDefault().Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (SelectView == eSelectDataView.DataDocumentViewC2)
|
||||||
|
{
|
||||||
|
LongTermDBConn = GetDBController.GetLongTermConn2().Where(x => x.Key.Contains(data.StartTime.Year.ToString()))?.FirstOrDefault().Value;
|
||||||
|
if (LongTermDBConn == null)
|
||||||
|
{
|
||||||
|
LongTermDBConn = GetDBController.GetLongTermConn2().FirstOrDefault().Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
|
||||||
|
SelectedOverViewItemData = data;
|
||||||
|
|
||||||
|
string strGetUseQuery = string.Empty;
|
||||||
|
|
||||||
|
dtRaw = GetRawResult(inputOption, out strGetUseQuery);
|
||||||
|
|
||||||
|
if (inputOption.DisplayByStation == false)
|
||||||
|
dtSubRaw = GetSubRawResult();
|
||||||
|
else
|
||||||
|
dtSubRaw = null;
|
||||||
|
|
||||||
|
strDetailOverviewUseQuery = strGetUseQuery;
|
||||||
|
|
||||||
|
return dtRaw;
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable GetRawResult(OverviewSearchOption inputOption, out string strGetSendQuery)
|
||||||
|
{
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
string strQuery = string.Empty;
|
||||||
|
|
||||||
|
DateTime dtNow = DateTime.Now;
|
||||||
|
|
||||||
|
strGetSendQuery = string.Empty;
|
||||||
|
|
||||||
|
strQuery += $"SELECT * FROM (";
|
||||||
|
strQuery += $"SELECT ";
|
||||||
|
strQuery += $"CAST({DMCommon.SummaryLogTable}.[TestDT] AS DATE) AS {eColList.TestDate.ToString()},";
|
||||||
|
|
||||||
|
if (inputOption.DisplayByStation)
|
||||||
|
{
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[StationName] AS {eColList.StationName.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[HostID] AS {eColList.Host.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[Section] AS {eColList.Section.ToString()},";
|
||||||
|
}
|
||||||
|
//
|
||||||
|
strQuery += $"Y.ModelName,";
|
||||||
|
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestType] AS {eColList.TestType.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[ProdNo_C] AS {eColList.ProductNo.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[Testcode] AS {eColList.TestCode.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[ProdNo_P] AS {eColList.ParentNo.ToString()},";
|
||||||
|
|
||||||
|
if (SelectedOverViewItemData.ProductID.Length > 0)
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[ProductID] as {eColList.ProductID.ToString()},";
|
||||||
|
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListFileNo] AS {eColList.TestListFileNo.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListVariantNo] AS {eColList.TestListVariantNo.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[ProdCode] AS {eColList.FileCode.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[Version] AS {eColList.FileVersion.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[StepVersion] AS {eColList.StepVersion.ToString()},";
|
||||||
|
strQuery += $"CONVERT(CHAR(8), MIN({DMCommon.SummaryLogTable}.[TestDT]), 108) AS {eColList.FirstTestTime.ToString()},";
|
||||||
|
strQuery += $"CONVERT(CHAR(8), MAX({DMCommon.SummaryLogTable}.[TestDT]), 108) AS {eColList.FinalTestTime.ToString()},";
|
||||||
|
strQuery += $"COUNT({DMCommon.SummaryLogTable}.[Result]) AS {eColList.Total.ToString()},";
|
||||||
|
strQuery += $"COUNT(CASE WHEN {DMCommon.SummaryLogTable}.[Result] = 'OK' THEN 1 END) AS {eColList.OK.ToString()},";
|
||||||
|
strQuery += $"COUNT(CASE WHEN {DMCommon.SummaryLogTable}.[Result] != 'OK' THEN 1 END) AS {eColList.NG.ToString()},";
|
||||||
|
|
||||||
|
if (inputOption.DisplayByStation)
|
||||||
|
{
|
||||||
|
strQuery += $"ROW_NUMBER() OVER(PARTITION BY {DMCommon.SummaryLogTable}.[ProdNo_C], {DMCommon.SummaryLogTable}.[ProdNo_P] ORDER BY CONVERT(CHAR(23), MAX({DMCommon.SummaryLogTable}.[TestDT]), 121) DESC) AS RN,";
|
||||||
|
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListCntID] ";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
strQuery += $"ROW_NUMBER() OVER(PARTITION BY {DMCommon.SummaryLogTable}.[ProdNo_C], {DMCommon.SummaryLogTable}.[ProdNo_P] ORDER BY CONVERT(CHAR(23), MAX({DMCommon.SummaryLogTable}.[TestDT]), 121) DESC) AS RN ";
|
||||||
|
}
|
||||||
|
|
||||||
|
strQuery += $"FROM {DMCommon.SummaryLogTable} ";
|
||||||
|
strQuery += $"WITH(NOLOCK) ";
|
||||||
|
|
||||||
|
switch (GetSelectInfo)
|
||||||
|
{
|
||||||
|
case eOverviewModelNameInfo.L:
|
||||||
|
strQuery += $"LEFT JOIN [CPXV2].[dbo].[PROD_Variant] AS X WITH(NOLOCK) ON X.No = {DMCommon.SummaryLogTable}.[TestListVariantNo] ";
|
||||||
|
strQuery += $"LEFT JOIN [CPXV2].[dbo].[PROD_Group] AS Y WITH(NOLOCK) ON Y.No = X.GroupNo ";
|
||||||
|
break;
|
||||||
|
case eOverviewModelNameInfo.P1:
|
||||||
|
strQuery += $"LEFT JOIN [P1].[CPXV2].[dbo].[PROD_Variant] AS X WITH(NOLOCK) ON X.No = {DMCommon.SummaryLogTable}.[TestListVariantNo] ";
|
||||||
|
strQuery += $"LEFT JOIN [P1].[CPXV2].[dbo].[PROD_Group] AS Y WITH(NOLOCK) ON Y.No = X.GroupNo ";
|
||||||
|
break;
|
||||||
|
case eOverviewModelNameInfo.P2:
|
||||||
|
strQuery += $"LEFT JOIN [P2].[CPXV2].[dbo].[PROD_Variant] AS X WITH(NOLOCK) ON X.No = {DMCommon.SummaryLogTable}.[TestListVariantNo] ";
|
||||||
|
strQuery += $"LEFT JOIN [P2].[CPXV2].[dbo].[PROD_Group] AS Y WITH(NOLOCK) ON Y.No = X.GroupNo ";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
strQuery += $"LEFT JOIN [CPXV2].[dbo].[PROD_Variant] AS X WITH(NOLOCK) ON X.No = CONVERT(NVARCHAR, {DMCommon.SummaryLogTable}.[TestListVariantNo]) ";
|
||||||
|
strQuery += $"LEFT JOIN [CPXV2].[dbo].[PROD_Group] AS Y WITH(NOLOCK) ON Y.No = X.GroupNo ";
|
||||||
|
*/
|
||||||
|
|
||||||
|
strQuery += $"WHERE TestDT >= '{SelectedOverViewItemData.SearchRangeStart.ToString("yyyy-MM-dd HH:mm:ss")}' AND TestDT <= '{SelectedOverViewItemData.SearchRangeEnd.ToString("yyyy-MM-dd HH:mm:ss")}' AND ";
|
||||||
|
|
||||||
|
strQuery += $"ProdNo_C NOT IN('PowerON', 'PowerOFF', 'QUERY') AND ";
|
||||||
|
strQuery += $"ProductID NOT IN('PowerON', 'PowerOFF', 'QUERY') ";
|
||||||
|
|
||||||
|
if (SelectedOverViewItemData.ProductID.Length > 0)
|
||||||
|
{
|
||||||
|
strQuery += $"AND ProductID = '{SelectedOverViewItemData.ProductID}' ";
|
||||||
|
}
|
||||||
|
|
||||||
|
strQuery += $"GROUP BY ";
|
||||||
|
|
||||||
|
strQuery += $"CAST({DMCommon.SummaryLogTable}.[TestDT] AS DATE),";
|
||||||
|
//
|
||||||
|
strQuery += $"Y.ModelName,";
|
||||||
|
|
||||||
|
if (inputOption.DisplayByStation)
|
||||||
|
{
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[StationName],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[HostID],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[Section],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListCntID],";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SelectedOverViewItemData.ProductID.Length > 0)
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.ProductID,";
|
||||||
|
|
||||||
|
//strQuery += $"{DMCommon.SummaryLogTable}.[TestListCntID],";
|
||||||
|
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestType],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[ProdNo_C],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[Testcode],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListFileNo],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListVariantNo],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[ProdNo_P],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[ProdCode],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[Version],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[StepVersion]";
|
||||||
|
strQuery += " ";
|
||||||
|
strQuery += ") AS X ";
|
||||||
|
|
||||||
|
if (inputOption.DisplayByStation)
|
||||||
|
{
|
||||||
|
strQuery += "WHERE X.Host = '" + SelectedOverViewItemData.HostID + "' AND X.Section = '" + SelectedOverViewItemData.SectionID + "' ";
|
||||||
|
//strQuery += "ORDER BY X.TestDate, X.Host, X.Section ASC;";
|
||||||
|
strQuery += "ORDER BY X.TestDate ASC, X.FirstTestTime ASC;";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
strQuery += "WHERE X.ProductNo = '" + SelectedOverViewItemData.ProductNo + "' AND X.TestType = '" + SelectedOverViewItemData.TestType + "' AND X.TestCode = '" + SelectedOverViewItemData.TestCode + "' AND X.ParentNo = '" + SelectedOverViewItemData.ParentNo + "' ";
|
||||||
|
//strQuery += "ORDER BY X.TestDate, X.ProductNo, X.ParentNo ASC;";
|
||||||
|
strQuery += "ORDER BY X.TestDate ASC, X.FirstTestTime ASC;";
|
||||||
|
}
|
||||||
|
//
|
||||||
|
strGetSendQuery = strQuery;
|
||||||
|
|
||||||
|
if (DatabaseConnControl.ScanLongTermLog)
|
||||||
|
SQLCmd = new SqlCommand(strQuery, LongTermDBConn);
|
||||||
|
else
|
||||||
|
SQLCmd = new SqlCommand(strQuery, ShortTermDBConn);
|
||||||
|
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
dtResult.Load(dtReader);
|
||||||
|
|
||||||
|
dtReader.Close();
|
||||||
|
|
||||||
|
return dtResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable GetSubRawResult()
|
||||||
|
{
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
string strQuery = string.Empty;
|
||||||
|
|
||||||
|
DateTime dtNow = DateTime.Now;
|
||||||
|
|
||||||
|
strQuery += $"SELECT * FROM (";
|
||||||
|
strQuery += $"SELECT ";
|
||||||
|
strQuery += $"CAST({DMCommon.SummaryLogTable}.[TestDT] AS DATE) AS {eColList.TestDate.ToString()},";
|
||||||
|
|
||||||
|
strQuery += $"Y.ModelName,";
|
||||||
|
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestType] AS {eColList.TestType.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[ProdNo_C] AS {eColList.ProductNo.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[Testcode] AS {eColList.TestCode.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[ProdNo_P] AS {eColList.ParentNo.ToString()},";
|
||||||
|
|
||||||
|
if (SelectedOverViewItemData.ProductID.Length > 0)
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[ProductID] as {eColList.ProductID.ToString()},";
|
||||||
|
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListFileNo] AS {eColList.TestListFileNo.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListVariantNo] AS {eColList.TestListVariantNo.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[ProdCode] AS {eColList.FileCode.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[Version] AS {eColList.FileVersion.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[StepVersion] AS {eColList.StepVersion.ToString()},";
|
||||||
|
strQuery += $"CONVERT(CHAR(8), MIN({DMCommon.SummaryLogTable}.[TestDT]), 108) AS {eColList.FirstTestTime.ToString()},";
|
||||||
|
strQuery += $"CONVERT(CHAR(8), MAX({DMCommon.SummaryLogTable}.[TestDT]), 108) AS {eColList.FinalTestTime.ToString()},";
|
||||||
|
strQuery += $"COUNT({DMCommon.SummaryLogTable}.[Result]) AS {eColList.Total.ToString()},";
|
||||||
|
strQuery += $"COUNT(CASE WHEN {DMCommon.SummaryLogTable}.[Result] = 'OK' THEN 1 END) AS {eColList.OK.ToString()},";
|
||||||
|
strQuery += $"COUNT(CASE WHEN {DMCommon.SummaryLogTable}.[Result] != 'OK' THEN 1 END) AS {eColList.NG.ToString()},";
|
||||||
|
|
||||||
|
strQuery += $"ROW_NUMBER() OVER(PARTITION BY {DMCommon.SummaryLogTable}.[ProdNo_C], {DMCommon.SummaryLogTable}.[ProdNo_P] ORDER BY CONVERT(CHAR(23), MAX({DMCommon.SummaryLogTable}.[TestDT]), 121) DESC) AS RN,";
|
||||||
|
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListCntID] ";
|
||||||
|
|
||||||
|
strQuery += $"FROM {DMCommon.SummaryLogTable} ";
|
||||||
|
strQuery += $"WITH(NOLOCK) ";
|
||||||
|
|
||||||
|
switch (GetSelectInfo)
|
||||||
|
{
|
||||||
|
case eOverviewModelNameInfo.L:
|
||||||
|
strQuery += $"LEFT JOIN [CPXV2].[dbo].[PROD_Variant] AS X WITH(NOLOCK) ON X.No = {DMCommon.SummaryLogTable}.[TestListVariantNo] ";
|
||||||
|
strQuery += $"LEFT JOIN [CPXV2].[dbo].[PROD_Group] AS Y WITH(NOLOCK) ON Y.No = X.GroupNo ";
|
||||||
|
break;
|
||||||
|
case eOverviewModelNameInfo.P1:
|
||||||
|
strQuery += $"LEFT JOIN [P1].[CPXV2].[dbo].[PROD_Variant] AS X WITH(NOLOCK) ON X.No = {DMCommon.SummaryLogTable}.[TestListVariantNo] ";
|
||||||
|
strQuery += $"LEFT JOIN [P1].[CPXV2].[dbo].[PROD_Group] AS Y WITH(NOLOCK) ON Y.No = X.GroupNo ";
|
||||||
|
break;
|
||||||
|
case eOverviewModelNameInfo.P2:
|
||||||
|
strQuery += $"LEFT JOIN [P2].[CPXV2].[dbo].[PROD_Variant] AS X WITH(NOLOCK) ON X.No = {DMCommon.SummaryLogTable}.[TestListVariantNo] ";
|
||||||
|
strQuery += $"LEFT JOIN [P2].[CPXV2].[dbo].[PROD_Group] AS Y WITH(NOLOCK) ON Y.No = X.GroupNo ";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
strQuery += $"LEFT JOIN [CPXV2].[dbo].[PROD_Variant] AS X WITH(NOLOCK) ON X.No = {DMCommon.SummaryLogTable}.[TestListVariantNo] ";
|
||||||
|
strQuery += $"LEFT JOIN [CPXV2].[dbo].[PROD_Group] AS Y WITH(NOLOCK) ON Y.No = X.GroupNo ";
|
||||||
|
*/
|
||||||
|
|
||||||
|
strQuery += $"WHERE TestDT >= '{SelectedOverViewItemData.SearchRangeStart.ToString("yyyy-MM-dd HH:mm:ss")}' AND TestDT <= '{SelectedOverViewItemData.SearchRangeEnd.ToString("yyyy-MM-dd HH:mm:ss")}' AND ";
|
||||||
|
|
||||||
|
strQuery += $"ProdNo_C NOT IN('PowerON', 'PowerOFF', 'QUERY') AND ";
|
||||||
|
strQuery += $"ProductID NOT IN('PowerON', 'PowerOFF', 'QUERY') ";
|
||||||
|
|
||||||
|
if (SelectedOverViewItemData.ProductID.Length > 0)
|
||||||
|
{
|
||||||
|
strQuery += $"AND ProductID = '{SelectedOverViewItemData.ProductID}' ";
|
||||||
|
}
|
||||||
|
|
||||||
|
strQuery += $"GROUP BY ";
|
||||||
|
|
||||||
|
strQuery += $"CAST({DMCommon.SummaryLogTable}.[TestDT] AS DATE),";
|
||||||
|
//
|
||||||
|
strQuery += $"Y.ModelName,";
|
||||||
|
|
||||||
|
if (SelectedOverViewItemData.ProductID.Length > 0)
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.ProductID,";
|
||||||
|
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListCntID],";
|
||||||
|
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestType],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[ProdNo_C],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[Testcode],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListFileNo],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListVariantNo],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[ProdNo_P],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[ProdCode],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[Version],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[StepVersion]";
|
||||||
|
strQuery += " ";
|
||||||
|
strQuery += ") AS X ";
|
||||||
|
|
||||||
|
strQuery += "WHERE X.ProductNo = '" + SelectedOverViewItemData.ProductNo + "' AND X.TestType = '" + SelectedOverViewItemData.TestType + "' AND X.TestCode = '" + SelectedOverViewItemData.TestCode + "' AND X.ParentNo = '" + SelectedOverViewItemData.ParentNo + "' ";
|
||||||
|
//strQuery += "ORDER BY X.TestDate, X.ProductNo, X.ParentNo ASC;";
|
||||||
|
strQuery += "ORDER BY X.TestDate ASC, X.FirstTestTime ASC;";
|
||||||
|
|
||||||
|
if (DatabaseConnControl.ScanLongTermLog)
|
||||||
|
SQLCmd = new SqlCommand(strQuery, LongTermDBConn);
|
||||||
|
else
|
||||||
|
SQLCmd = new SqlCommand(strQuery, ShortTermDBConn);
|
||||||
|
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
dtResult.Load(dtReader);
|
||||||
|
|
||||||
|
dtReader.Close();
|
||||||
|
|
||||||
|
return dtResult;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,353 @@
|
|||||||
|
using DataBaseConnection.Control;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.Common;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using SystemX.Product.ALIS.Interface;
|
||||||
|
using SystemX.Product.TRA.UIControl;
|
||||||
|
|
||||||
|
using static SystemX.Product.CP.TRA.Commons;
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.DataManager
|
||||||
|
{
|
||||||
|
public class DMOverview
|
||||||
|
{
|
||||||
|
public enum eCommand
|
||||||
|
{
|
||||||
|
PowerON,
|
||||||
|
PowerOFF,
|
||||||
|
QUERY
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum eColList
|
||||||
|
{
|
||||||
|
TestDate,
|
||||||
|
StationName,
|
||||||
|
Host,
|
||||||
|
Section,
|
||||||
|
ProductID,
|
||||||
|
Start,
|
||||||
|
Final,
|
||||||
|
ProductNo,
|
||||||
|
TestType,
|
||||||
|
ParentNo,
|
||||||
|
TestListFileNo,
|
||||||
|
TestListVariantNo,
|
||||||
|
TestCode,
|
||||||
|
FileVersion,
|
||||||
|
FileCode,
|
||||||
|
StepVersion,
|
||||||
|
FirstTestTime,
|
||||||
|
FinalTestTime,
|
||||||
|
Total,
|
||||||
|
OK,
|
||||||
|
NG, //NOK,
|
||||||
|
TestListCntID
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum eColListHide
|
||||||
|
{
|
||||||
|
TestListCntID,
|
||||||
|
RN
|
||||||
|
}
|
||||||
|
|
||||||
|
private SqlConnection DBConn { get; set; }
|
||||||
|
|
||||||
|
private SqlConnection ShortTermDBConn { get; set; }
|
||||||
|
|
||||||
|
private SqlConnection LongTermDBConn { get; set; }
|
||||||
|
|
||||||
|
private SqlCommand SQLCmd { get; set; }
|
||||||
|
|
||||||
|
public void SetSqlCommandCancel()
|
||||||
|
{
|
||||||
|
CTS.Cancel();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool GetSqlCommandCancelState()
|
||||||
|
{
|
||||||
|
return CTS.IsCancellationRequested;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public string strOverviewUseQuery;
|
||||||
|
|
||||||
|
eOverviewModelNameInfo GetSelectInfo;
|
||||||
|
|
||||||
|
CancellationTokenSource CTS;
|
||||||
|
|
||||||
|
CancellationToken CT;
|
||||||
|
|
||||||
|
IDataBaseController GetDBController;
|
||||||
|
|
||||||
|
public DMOverview(eSelectDataView SelectView, eOverviewModelNameInfo SelectInfo, IDataBaseController getDBController)
|
||||||
|
{
|
||||||
|
GetSelectInfo = SelectInfo;
|
||||||
|
|
||||||
|
DBConn = getDBController.GetMainConn();
|
||||||
|
|
||||||
|
GetDBController = getDBController;
|
||||||
|
|
||||||
|
if (SelectView == eSelectDataView.DataDocumentViewC1)
|
||||||
|
{
|
||||||
|
ShortTermDBConn = getDBController.GetShortTermConn1();
|
||||||
|
|
||||||
|
LongTermDBConn = getDBController.GetLongTermConn1().First().Value;
|
||||||
|
}
|
||||||
|
else if (SelectView == eSelectDataView.DataDocumentViewC2)
|
||||||
|
{
|
||||||
|
ShortTermDBConn = getDBController.GetShortTermConn2();
|
||||||
|
|
||||||
|
LongTermDBConn = getDBController.GetLongTermConn2().First().Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
strOverviewUseQuery = string.Empty;
|
||||||
|
|
||||||
|
CTS = new CancellationTokenSource();
|
||||||
|
CT = CTS.Token;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<DataTable> GetDataView(eSelectDataView SelectView, DateTime dtStart, DateTime dtEnd, OverviewSearchOption inputOption, bool bUseMainConn = false, string strTestQuery = "")
|
||||||
|
{
|
||||||
|
if (SelectView == eSelectDataView.DataDocumentViewC1)
|
||||||
|
{
|
||||||
|
LongTermDBConn = GetDBController.GetLongTermConn1().Where(x => x.Key.Contains(dtStart.Year.ToString()))?.FirstOrDefault().Value;
|
||||||
|
if(LongTermDBConn == null)
|
||||||
|
{
|
||||||
|
LongTermDBConn = GetDBController.GetLongTermConn1().FirstOrDefault().Value;
|
||||||
|
}
|
||||||
|
DatabaseConnControl.SelectLongTermCatalogNameCon1 = LongTermDBConn.Database;
|
||||||
|
}
|
||||||
|
else if (SelectView == eSelectDataView.DataDocumentViewC2)
|
||||||
|
{
|
||||||
|
LongTermDBConn = GetDBController.GetLongTermConn2().Where(x => x.Key.Contains(dtStart.Year.ToString()))?.FirstOrDefault().Value;
|
||||||
|
if (LongTermDBConn == null)
|
||||||
|
{
|
||||||
|
LongTermDBConn = GetDBController.GetLongTermConn2().FirstOrDefault().Value;
|
||||||
|
}
|
||||||
|
DatabaseConnControl.SelectLongTermCatalogNameCon2 = LongTermDBConn.Database;
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
|
||||||
|
string strGetUseQuery = string.Empty;
|
||||||
|
|
||||||
|
CTS = new CancellationTokenSource();
|
||||||
|
CT = CTS.Token;
|
||||||
|
|
||||||
|
//For Test
|
||||||
|
/*
|
||||||
|
try
|
||||||
|
{
|
||||||
|
await Task.Delay(5000, CT);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
Tuple<DataTable, string> dtRawInfo = await GetRawResult(dtStart, dtEnd, inputOption, bUseMainConn, strTestQuery);
|
||||||
|
|
||||||
|
strOverviewUseQuery = dtRawInfo.Item2;
|
||||||
|
|
||||||
|
return dtRawInfo.Item1;
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task<Tuple<DataTable, string>> GetRawResult(DateTime dtStart, DateTime dtEnd, OverviewSearchOption inputOption, bool bUseMainConn = false, string strTestQuery = "")
|
||||||
|
{
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
|
||||||
|
bool bFullScanOn = false;
|
||||||
|
|
||||||
|
string strQuery = string.Empty;
|
||||||
|
|
||||||
|
DateTime dtNow = DateTime.Now;
|
||||||
|
|
||||||
|
string strGetSendQuery = string.Empty;
|
||||||
|
|
||||||
|
strQuery += $"SELECT * FROM (";
|
||||||
|
strQuery += $"SELECT ";
|
||||||
|
strQuery += $"CAST({DMCommon.SummaryLogTable}.[TestDT] AS DATE) AS {eColList.TestDate.ToString()},";
|
||||||
|
|
||||||
|
if (inputOption.DisplayByStation)
|
||||||
|
{
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[StationName] AS {eColList.StationName.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[HostID] AS {eColList.Host.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[Section] AS {eColList.Section.ToString()},";
|
||||||
|
}
|
||||||
|
//
|
||||||
|
strQuery += $"Y.ModelName,";
|
||||||
|
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestType] AS {eColList.TestType.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[ProdNo_C] AS {eColList.ProductNo.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[Testcode] AS {eColList.TestCode.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[ProdNo_P] AS {eColList.ParentNo.ToString()},";
|
||||||
|
|
||||||
|
if (inputOption.ProductID.Length > 0)
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[ProductID] as {eColList.ProductID.ToString()},";
|
||||||
|
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListFileNo] AS {eColList.TestListFileNo.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListVariantNo] AS {eColList.TestListVariantNo.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[ProdCode] AS {eColList.FileCode.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[Version] AS {eColList.FileVersion.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[StepVersion] AS {eColList.StepVersion.ToString()},";
|
||||||
|
strQuery += $"CONVERT(CHAR(8), MIN({DMCommon.SummaryLogTable}.[TestDT]), 108) AS {eColList.FirstTestTime.ToString()},";
|
||||||
|
strQuery += $"CONVERT(CHAR(8), MAX({DMCommon.SummaryLogTable}.[TestDT]), 108) AS {eColList.FinalTestTime.ToString()},";
|
||||||
|
strQuery += $"COUNT({DMCommon.SummaryLogTable}.[Result]) AS {eColList.Total.ToString()},";
|
||||||
|
strQuery += $"COUNT(CASE WHEN {DMCommon.SummaryLogTable}.[Result] = 'OK' THEN 1 END) AS {eColList.OK.ToString()},";
|
||||||
|
strQuery += $"COUNT(CASE WHEN {DMCommon.SummaryLogTable}.[Result] != 'OK' THEN 1 END) AS {eColList.NG.ToString()},";
|
||||||
|
|
||||||
|
if (inputOption.DisplayByStation)
|
||||||
|
{
|
||||||
|
strQuery += $"ROW_NUMBER() OVER(PARTITION BY {DMCommon.SummaryLogTable}.[HostID], {DMCommon.SummaryLogTable}.[Section] ORDER BY CONVERT(CHAR(23), MAX({DMCommon.SummaryLogTable}.[TestDT]), 121) DESC) AS RN,";
|
||||||
|
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListCntID]";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
strQuery += $"ROW_NUMBER() OVER(PARTITION BY {DMCommon.SummaryLogTable}.[ProdNo_C], {DMCommon.SummaryLogTable}.[Testcode] ORDER BY CONVERT(CHAR(23), MAX({DMCommon.SummaryLogTable}.[TestDT]), 121) DESC) AS RN,";
|
||||||
|
|
||||||
|
strQuery = strQuery.Remove(strQuery.Length - 1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
strQuery += " ";
|
||||||
|
|
||||||
|
strQuery += $"FROM {DMCommon.SummaryLogTable} ";
|
||||||
|
strQuery += $"WITH(NOLOCK) ";
|
||||||
|
|
||||||
|
//strQuery += $"LEFT JOIN [CPXV2].[dbo].[PROD_Variant] AS X WITH(NOLOCK) ON X.No = CONVERT(NVARCHAR, {DMCommon.SummaryLogTable}.[TestListVariantNo]) ";
|
||||||
|
|
||||||
|
switch(GetSelectInfo)
|
||||||
|
{
|
||||||
|
case eOverviewModelNameInfo.L:
|
||||||
|
strQuery += $"LEFT JOIN [CPXV2].[dbo].[PROD_Variant] AS X WITH(NOLOCK) ON X.No = {DMCommon.SummaryLogTable}.[TestListVariantNo] ";
|
||||||
|
strQuery += $"LEFT JOIN [CPXV2].[dbo].[PROD_Group] AS Y WITH(NOLOCK) ON Y.No = X.GroupNo ";
|
||||||
|
break;
|
||||||
|
case eOverviewModelNameInfo.P1:
|
||||||
|
strQuery += $"LEFT JOIN [CPXV2].[dbo].[PROD_Variant] AS X WITH(NOLOCK) ON X.No = {DMCommon.SummaryLogTable}.[TestListVariantNo] ";
|
||||||
|
strQuery += $"LEFT JOIN [CPXV2].[dbo].[PROD_Group] AS Y WITH(NOLOCK) ON Y.No = X.GroupNo ";
|
||||||
|
break;
|
||||||
|
case eOverviewModelNameInfo.P2:
|
||||||
|
strQuery += $"LEFT JOIN [P2].[CPXV2].[dbo].[PROD_Variant] AS X WITH(NOLOCK) ON X.No = {DMCommon.SummaryLogTable}.[TestListVariantNo] ";
|
||||||
|
strQuery += $"LEFT JOIN [P2].[CPXV2].[dbo].[PROD_Group] AS Y WITH(NOLOCK) ON Y.No = X.GroupNo ";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
strQuery += $"LEFT JOIN [CPXV2].[dbo].[PROD_Variant] AS X WITH(NOLOCK) ON X.No = {DMCommon.SummaryLogTable}.[TestListVariantNo] ";
|
||||||
|
strQuery += $"LEFT JOIN [CPXV2].[dbo].[PROD_Group] AS Y WITH(NOLOCK) ON Y.No = X.GroupNo ";
|
||||||
|
*/
|
||||||
|
|
||||||
|
strQuery += $"WHERE ";
|
||||||
|
|
||||||
|
if (inputOption.ProductID.Length > 0 && inputOption.FullScanData)
|
||||||
|
{
|
||||||
|
bFullScanOn = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
strQuery += $"TestDT >= '{dtStart.ToString("yyyy-MM-dd HH:mm:ss")}' AND TestDT <= '{dtEnd.ToString("yyyy-MM-dd HH:mm:ss")}' AND ";
|
||||||
|
|
||||||
|
strQuery += $"ProdNo_C NOT IN('PowerON', 'PowerOFF', 'QUERY') AND ";
|
||||||
|
strQuery += $"ProductID NOT IN('PowerON', 'PowerOFF', 'QUERY') ";
|
||||||
|
|
||||||
|
if (inputOption.ProductID.Length > 0)
|
||||||
|
{
|
||||||
|
strQuery += $"AND ProductID = '{inputOption.ProductID}' ";
|
||||||
|
}
|
||||||
|
|
||||||
|
strQuery += $"GROUP BY ";
|
||||||
|
|
||||||
|
strQuery += $"CAST({DMCommon.SummaryLogTable}.TestDT AS DATE),";
|
||||||
|
//
|
||||||
|
strQuery += $"Y.ModelName,";
|
||||||
|
|
||||||
|
if (inputOption.DisplayByStation)
|
||||||
|
{
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.StationName,";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.HostID,";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.Section,";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.TestListCntID,";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (inputOption.ProductID.Length > 0)
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.ProductID,";
|
||||||
|
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.TestType,";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.ProdNo_C,";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.Testcode,";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListFileNo],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListVariantNo],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.ProdNo_P,";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.ProdCode,";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.Version,";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.StepVersion";
|
||||||
|
strQuery += " ";
|
||||||
|
strQuery += ") AS X WHERE X.RN = 1 ";
|
||||||
|
|
||||||
|
if (inputOption.DisplayByStation)
|
||||||
|
{
|
||||||
|
strQuery += "ORDER BY Host, Section ASC;";
|
||||||
|
//strQuery += "ORDER BY Host, Section DESC;";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
strQuery += "ORDER BY ProductNo, ParentNo ASC;";
|
||||||
|
//strQuery += ";";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strTestQuery.Length > 0)
|
||||||
|
strQuery = strTestQuery;
|
||||||
|
|
||||||
|
strGetSendQuery = strQuery;
|
||||||
|
|
||||||
|
if (bUseMainConn)
|
||||||
|
{
|
||||||
|
SQLCmd = new SqlCommand(strQuery, DBConn);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (DatabaseConnControl.ScanLongTermLog)
|
||||||
|
{
|
||||||
|
SQLCmd = new SqlCommand(strQuery, LongTermDBConn);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
SQLCmd = new SqlCommand(strQuery, ShortTermDBConn);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(bFullScanOn)
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nFullScanTime;
|
||||||
|
else
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtReader = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
dtReader = await SQLCmd.ExecuteReaderAsync(CT);
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
if (dtReader != null)
|
||||||
|
{
|
||||||
|
dtReader.Close();
|
||||||
|
dtReader = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if (dtReader != null)
|
||||||
|
{
|
||||||
|
dtResult.Load(dtReader);
|
||||||
|
|
||||||
|
dtReader.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Tuple<DataTable, string>(dtResult, strGetSendQuery);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,189 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.Common;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using SystemX.Product.ALIS.Interface;
|
||||||
|
using SystemX.Product.TRA.UIControl;
|
||||||
|
|
||||||
|
using static SystemX.Product.TRA.DataManager.DMOverview;
|
||||||
|
using static SystemX.Product.CP.TRA.Commons;
|
||||||
|
using DataBaseConnection.Control;
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.DataManager
|
||||||
|
{
|
||||||
|
public class DMProductHistory
|
||||||
|
{
|
||||||
|
public enum eColList
|
||||||
|
{
|
||||||
|
LastTestDateTime,
|
||||||
|
ProductID,
|
||||||
|
ProductNo,
|
||||||
|
TestType,
|
||||||
|
TestCode,
|
||||||
|
ParentNo,
|
||||||
|
FileVersion,
|
||||||
|
FileCode,
|
||||||
|
StepVersion,
|
||||||
|
AvgDuration,
|
||||||
|
TestResult,
|
||||||
|
OK,
|
||||||
|
NG, //NOK,
|
||||||
|
TestlistNo,
|
||||||
|
TestlistFile,
|
||||||
|
TestlistReqID
|
||||||
|
}
|
||||||
|
|
||||||
|
private SqlConnection DBConn { get; set; }
|
||||||
|
|
||||||
|
private SqlConnection ShortTermDBConn { get; set; }
|
||||||
|
|
||||||
|
private SqlConnection LongTermDBConn { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
private SqlCommand SQLCmd { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public DMProductHistory(eSelectDataView SelectView, IDataBaseController getDBController)
|
||||||
|
{
|
||||||
|
DBConn = getDBController.GetMainConn();
|
||||||
|
|
||||||
|
if (SelectView == eSelectDataView.DataDocumentViewC1)
|
||||||
|
{
|
||||||
|
ShortTermDBConn = getDBController.GetShortTermConn1();
|
||||||
|
|
||||||
|
LongTermDBConn = getDBController.GetLongTermConn1().First().Value;
|
||||||
|
}
|
||||||
|
else if (SelectView == eSelectDataView.DataDocumentViewC2)
|
||||||
|
{
|
||||||
|
ShortTermDBConn = getDBController.GetShortTermConn2();
|
||||||
|
|
||||||
|
LongTermDBConn = getDBController.GetLongTermConn2().First().Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataTable SearchTestHistory(SelectedDataCollection data, TestHistorySearchOption option)
|
||||||
|
{
|
||||||
|
DataTable dtResult = GetRawResult(data, option);
|
||||||
|
|
||||||
|
return dtResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable GetRawResult(SelectedDataCollection data, TestHistorySearchOption option)
|
||||||
|
{
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
string strQuery = string.Empty;
|
||||||
|
|
||||||
|
if (data == null)
|
||||||
|
return dtResult;
|
||||||
|
|
||||||
|
DateTime dtNow = DateTime.Now;
|
||||||
|
|
||||||
|
DateTime dtCheckTime = DateTime.Now;
|
||||||
|
|
||||||
|
if (option.Time_WholeRange)
|
||||||
|
dtCheckTime = data.SearchRangeStart;
|
||||||
|
else if (option.Time_SelectedTest)
|
||||||
|
dtCheckTime = data.StartTime;
|
||||||
|
else if (option.Time_Day)
|
||||||
|
dtCheckTime = data.StartTime;
|
||||||
|
|
||||||
|
strQuery += $"select ";
|
||||||
|
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.ProductID as {eColList.ProductID.ToString()},";
|
||||||
|
//strQuery += $"CONVERT(char(20), {DMCommon.SummaryLogTable}.TestDT, 20) as {eColList.LastTestDateTime.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.TestType as {eColList.TestType.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.ProdNo_C as {eColList.ProductNo.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.Testcode as {eColList.TestCode.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.ProdNo_P as {eColList.ParentNo.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.ProdCode as {eColList.FileCode.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.Version as {eColList.FileVersion.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.StepVersion as {eColList.StepVersion.ToString()},";
|
||||||
|
strQuery += $"avg(CONVERT(int, {DMCommon.SummaryLogTable}.Duration)) as {eColList.AvgDuration.ToString()},";
|
||||||
|
|
||||||
|
strQuery += $"COUNT(CASE WHEN {DMCommon.SummaryLogTable}.Result = 'OK' THEN 1 ELSE 0 END) as {eColList.OK.ToString()},";
|
||||||
|
strQuery += $"COUNT(CASE WHEN {DMCommon.SummaryLogTable}.Result = '-' THEN 0 WHEN {DMCommon.SummaryLogTable}.Result != 'OK' THEN 1 ELSE 0 END) as {eColList.NG.ToString()},";
|
||||||
|
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestlistNo],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestlistFile]";
|
||||||
|
|
||||||
|
strQuery += " ";
|
||||||
|
strQuery += $"from {DMCommon.SummaryLogTable} ";
|
||||||
|
strQuery += $"WITH(NOLOCK) ";
|
||||||
|
|
||||||
|
if (option.Time_WholeRange)
|
||||||
|
strQuery += $"where TestDT >= '{data.SearchRangeStart.ToString("yyyy-MM-dd 00:00:00")}' and TestDT <= '{data.SearchRangeEnd.ToString("yyyy-MM-dd 23:59:59")}' ";
|
||||||
|
else if(option.Time_SelectedTest)
|
||||||
|
strQuery += $"where TestDT >= '{data.StartTime.ToString("yyyy-MM-dd HH:mm:ss")}' and TestDT <= '{data.EndTime.ToString("yyyy-MM-dd HH:mm:ss")}' ";
|
||||||
|
else if(option.Time_Day)
|
||||||
|
strQuery += $"where TestDT >= '{data.StartTime.ToShortDateString()} 00:00:00' and TestDT <= '{data.EndTime.ToShortDateString()} 23:59:59' ";
|
||||||
|
|
||||||
|
if (option.Station && !string.IsNullOrWhiteSpace(data.StationName))
|
||||||
|
strQuery += $" and (StationName = '{data.StationName}' or StationName = '-') ";
|
||||||
|
if (option.Host && !string.IsNullOrWhiteSpace(data.HostID))
|
||||||
|
strQuery += $" and (HostID = '{data.HostID}' or HostID = '-') ";
|
||||||
|
if (option.Section && !string.IsNullOrWhiteSpace(data.SectionID))
|
||||||
|
strQuery += $" and (Section = '{data.SectionID}' or Section = '-') ";
|
||||||
|
if (option.TestType)
|
||||||
|
strQuery += $" and (TestType = '{data.TestType}' or TestType = '-') ";
|
||||||
|
if (option.ProductNo)
|
||||||
|
{
|
||||||
|
strQuery += $" and (ProdNo_C = '{data.ProductNo}' ";
|
||||||
|
|
||||||
|
if(option.Host && !string.IsNullOrWhiteSpace(data.HostID))
|
||||||
|
{
|
||||||
|
foreach(string strCmd in Enum.GetNames(typeof(eCommand)))
|
||||||
|
strQuery += $"or ProdNo_C = '{strCmd}'";
|
||||||
|
}
|
||||||
|
strQuery += $" )";
|
||||||
|
}
|
||||||
|
if (option.TestCode)
|
||||||
|
strQuery += $" and (Testcode = '{data.TestCode}' or Testcode = '-') ";
|
||||||
|
if (option.ParentNo)
|
||||||
|
strQuery += $" and (ProdNo_P = '{data.ParentNo}' or ProdNo_P = '-') ";
|
||||||
|
if (option.ProductionCode)
|
||||||
|
strQuery += $" and (ProdCode = '{data.ProductionCode}' or ProdCode = '-') ";
|
||||||
|
if (option.FileVersion)
|
||||||
|
strQuery += $" and (Version = '{data.FileVersion}' or Version = '-') ";
|
||||||
|
if (option.StepVersion)
|
||||||
|
strQuery += $" and (StepVersion = '{data.StepVersion}' or StepVersion = '-1') ";
|
||||||
|
if (option.Time_SelectedTest)
|
||||||
|
strQuery += $" and (TestListCntID = '{data.TestRequestID[0]}' or TestListCntID = '-') ";
|
||||||
|
|
||||||
|
strQuery += $" group by ";
|
||||||
|
strQuery += $" {DMCommon.SummaryLogTable}.ProductID, ";
|
||||||
|
strQuery += $" {DMCommon.SummaryLogTable}.TestType, ";
|
||||||
|
strQuery += $" {DMCommon.SummaryLogTable}.ProdNo_C, ";
|
||||||
|
strQuery += $" {DMCommon.SummaryLogTable}.Testcode, ";
|
||||||
|
strQuery += $" {DMCommon.SummaryLogTable}.ProdNo_P, ";
|
||||||
|
strQuery += $" {DMCommon.SummaryLogTable}.ProdCode, ";
|
||||||
|
strQuery += $" {DMCommon.SummaryLogTable}.Version, ";
|
||||||
|
strQuery += $" {DMCommon.SummaryLogTable}.StepVersion, ";
|
||||||
|
strQuery += $" {DMCommon.SummaryLogTable}.TestlistNo, ";
|
||||||
|
strQuery += $" {DMCommon.SummaryLogTable}.TestlistFile ";
|
||||||
|
|
||||||
|
strQuery += " ";
|
||||||
|
//strQuery += $"order by ";
|
||||||
|
//strQuery += $"{DMCommon.SummaryLogTable}.TestDT";
|
||||||
|
strQuery += ";";
|
||||||
|
|
||||||
|
if (DatabaseConnControl.ScanLongTermLog)
|
||||||
|
SQLCmd = new SqlCommand(strQuery, LongTermDBConn);
|
||||||
|
else
|
||||||
|
SQLCmd = new SqlCommand(strQuery, ShortTermDBConn);
|
||||||
|
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
dtResult.Load(dtReader);
|
||||||
|
|
||||||
|
dtReader.Close();
|
||||||
|
|
||||||
|
return dtResult;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,176 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.Common;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using SystemX.Product.ALIS.Interface;
|
||||||
|
using SystemX.Product.TRA.UIControl;
|
||||||
|
|
||||||
|
using static SystemX.Product.TRA.DataManager.DMOverview;
|
||||||
|
using static SystemX.Product.CP.TRA.Commons;
|
||||||
|
using DataBaseConnection.Control;
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.DataManager
|
||||||
|
{
|
||||||
|
public class DMStepTrend
|
||||||
|
{
|
||||||
|
|
||||||
|
public SqlConnection DBConn { get; private set; }
|
||||||
|
public SqlConnection ShortTermDBConn { get; private set; }
|
||||||
|
public SqlConnection LongTermDBConn { get; private set; }
|
||||||
|
|
||||||
|
private SqlCommand SQLCmd { get; set; }
|
||||||
|
|
||||||
|
eSelectDataView TrendSelectView { get; set; }
|
||||||
|
|
||||||
|
IDataBaseController GetDBController;
|
||||||
|
|
||||||
|
public DMStepTrend(eSelectDataView SelectView, IDataBaseController getDBController, DateTime dtStart)
|
||||||
|
{
|
||||||
|
GetDBController = getDBController;
|
||||||
|
DBConn = getDBController.GetMainConn();
|
||||||
|
|
||||||
|
if (SelectView == eSelectDataView.DataDocumentViewC1)
|
||||||
|
{
|
||||||
|
TrendSelectView = eSelectDataView.DataDocumentViewC1;
|
||||||
|
ShortTermDBConn = getDBController.GetShortTermConn1();
|
||||||
|
|
||||||
|
LongTermDBConn = getDBController.GetLongTermConn1().Where(x=>x.Key.Contains(dtStart.Year.ToString())).First().Value;
|
||||||
|
}
|
||||||
|
else if (SelectView == eSelectDataView.DataDocumentViewC2)
|
||||||
|
{
|
||||||
|
TrendSelectView = eSelectDataView.DataDocumentViewC2;
|
||||||
|
ShortTermDBConn = getDBController.GetShortTermConn2();
|
||||||
|
|
||||||
|
LongTermDBConn = getDBController.GetLongTermConn2().Where(x => x.Key.Contains(dtStart.Year.ToString())).First().Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataTable SearchTestResult(DateTime dtTest, ulong nAccNo)
|
||||||
|
{
|
||||||
|
if (TrendSelectView == eSelectDataView.DataDocumentViewC1)
|
||||||
|
{
|
||||||
|
TrendSelectView = eSelectDataView.DataDocumentViewC1;
|
||||||
|
ShortTermDBConn = GetDBController.GetShortTermConn1();
|
||||||
|
|
||||||
|
LongTermDBConn = GetDBController.GetLongTermConn1().Where(x => x.Key.Contains(dtTest.Year.ToString())).First().Value;
|
||||||
|
}
|
||||||
|
else if (TrendSelectView == eSelectDataView.DataDocumentViewC2)
|
||||||
|
{
|
||||||
|
TrendSelectView = eSelectDataView.DataDocumentViewC2;
|
||||||
|
ShortTermDBConn = GetDBController.GetShortTermConn2();
|
||||||
|
|
||||||
|
LongTermDBConn = GetDBController.GetLongTermConn2().Where(x => x.Key.Contains(dtTest.Year.ToString())).First().Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
string strQuery = string.Empty;
|
||||||
|
//string strLongTerm = "HIST_TestResult";
|
||||||
|
//string strShortTerm = "HIST_TestResult";
|
||||||
|
|
||||||
|
//DateTime dtNow = DateTime.Now;
|
||||||
|
|
||||||
|
//int nDiffMonth = 12 * (dtNow.Year - dtTest.Year) + (dtNow.Month - dtTest.Month);
|
||||||
|
|
||||||
|
//string strTableTerm = nDiffMonth > 3 ? strLongTerm : strShortTerm;
|
||||||
|
|
||||||
|
strQuery += $"SELECT ";
|
||||||
|
strQuery += $"*";
|
||||||
|
strQuery += " ";
|
||||||
|
strQuery += $"from {DMCommon.ResultLogTable} ";
|
||||||
|
strQuery += $"WITH(NOLOCK) ";
|
||||||
|
strQuery += $"where [No] = {nAccNo}";
|
||||||
|
strQuery += " ";
|
||||||
|
//strQuery += $"order by ";
|
||||||
|
//strQuery += $"[No]";
|
||||||
|
strQuery += ";";
|
||||||
|
|
||||||
|
if (DatabaseConnControl.ScanLongTermLog) SQLCmd = new SqlCommand(strQuery, LongTermDBConn);
|
||||||
|
else SQLCmd = new SqlCommand(strQuery, ShortTermDBConn);
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
dtResult.Load(dtReader);
|
||||||
|
|
||||||
|
dtReader.Close();
|
||||||
|
|
||||||
|
return dtResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataTable GetTestStepResults(DateTime dtTest, List<ulong> vnData)
|
||||||
|
{
|
||||||
|
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
string strQuery = string.Empty;
|
||||||
|
//string strLongTerm = "HIST_TestResult";
|
||||||
|
//string strShortTerm = "HIST_TestResult";
|
||||||
|
|
||||||
|
//DateTime dtNow = DateTime.Now;
|
||||||
|
|
||||||
|
//int nDiffMonth = 12 * (dtNow.Year - dtTest.Year) + (dtNow.Month - dtTest.Month);
|
||||||
|
|
||||||
|
//string strTableTerm = nDiffMonth > 3 ? strLongTerm : strShortTerm;
|
||||||
|
|
||||||
|
strQuery += $"SELECT ";
|
||||||
|
strQuery += $"*";
|
||||||
|
strQuery += " ";
|
||||||
|
strQuery += $"from {DMCommon.ResultLogTable} ";
|
||||||
|
strQuery += $"WITH(NOLOCK) ";
|
||||||
|
strQuery += $"where ";
|
||||||
|
|
||||||
|
int nIdx = 0;
|
||||||
|
|
||||||
|
foreach (ulong no in vnData)
|
||||||
|
{
|
||||||
|
strQuery += $"No = {no}";
|
||||||
|
|
||||||
|
if (nIdx < vnData.Count - 1)
|
||||||
|
strQuery += " or ";
|
||||||
|
|
||||||
|
nIdx++;
|
||||||
|
}
|
||||||
|
|
||||||
|
strQuery += " ";
|
||||||
|
strQuery += $"order by ";
|
||||||
|
strQuery += $"[No]";
|
||||||
|
strQuery += ";";
|
||||||
|
|
||||||
|
if (DatabaseConnControl.ScanLongTermLog) SQLCmd = new SqlCommand(strQuery, LongTermDBConn);
|
||||||
|
else SQLCmd = new SqlCommand(strQuery, ShortTermDBConn);
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
dtResult.Load(dtReader);
|
||||||
|
|
||||||
|
dtReader.Close();
|
||||||
|
|
||||||
|
return dtResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable GetRawResult(DetailTestDataCollection data)
|
||||||
|
{
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
string strQuery = string.Empty;
|
||||||
|
|
||||||
|
if (data == null)
|
||||||
|
return dtResult;
|
||||||
|
|
||||||
|
|
||||||
|
SQLCmd = new SqlCommand(strQuery, DBConn);
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
dtResult.Load(dtReader);
|
||||||
|
|
||||||
|
dtReader.Close();
|
||||||
|
|
||||||
|
return dtResult;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,303 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.Common;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using SystemX.Product.ALIS.Interface;
|
||||||
|
using SystemX.Product.CP.TRA;
|
||||||
|
using SystemX.Product.TRA.UIControl;
|
||||||
|
|
||||||
|
using static SystemX.Product.TRA.DataManager.DMOverview;
|
||||||
|
using static SystemX.Product.CP.TRA.Commons;
|
||||||
|
using SystemX.Net.Platform.SystemX.Net.XEFCore;
|
||||||
|
|
||||||
|
using CPXV2Log = SystemX.Net.Platform.SystemX.Net.XEFCore.DBContext.CPXV2Log;
|
||||||
|
using CPXV2LogJson = SystemX.Net.Platform.SystemX.Net.XEFCore.DBContext.CPXV2LogJson;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using DataBaseConnection.Control;
|
||||||
|
using SystemX.Common.Util;
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.DataManager
|
||||||
|
{
|
||||||
|
public class DMTestDetail
|
||||||
|
{
|
||||||
|
public enum eColHideListLog
|
||||||
|
{
|
||||||
|
No,
|
||||||
|
AccessKey,
|
||||||
|
//TestID
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum eColTestLog
|
||||||
|
{
|
||||||
|
No,
|
||||||
|
StepID,
|
||||||
|
MeasVal,
|
||||||
|
MeasValStr,
|
||||||
|
Message,
|
||||||
|
GlobalMin,
|
||||||
|
GlobalMax,
|
||||||
|
Result,
|
||||||
|
SpentTime,
|
||||||
|
DataDT
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum eColHideListTL
|
||||||
|
{
|
||||||
|
No,
|
||||||
|
TestListNo,
|
||||||
|
StepVersion,
|
||||||
|
Enable,
|
||||||
|
IsGlobal,
|
||||||
|
UpdateDT
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum eColTestlist
|
||||||
|
{
|
||||||
|
No,
|
||||||
|
TestListNo,
|
||||||
|
StepID,
|
||||||
|
Variant,
|
||||||
|
Gate,
|
||||||
|
Activate,
|
||||||
|
StepVersion,
|
||||||
|
Enable,
|
||||||
|
Position,
|
||||||
|
StepDesc,
|
||||||
|
UseFunction,
|
||||||
|
SpecMin,
|
||||||
|
SpecMax,
|
||||||
|
Dim,
|
||||||
|
IsGlobal,
|
||||||
|
UpdateDT
|
||||||
|
}
|
||||||
|
|
||||||
|
private SqlConnection DBConn { get; set; }
|
||||||
|
private SqlConnection ShortTermDBConn { get; set; }
|
||||||
|
public SqlConnection LongTermDBConn { get; private set; }
|
||||||
|
|
||||||
|
private SqlCommand SQLCmd { get; set; }
|
||||||
|
|
||||||
|
private IDataBaseController DBControllers { get; set; }
|
||||||
|
|
||||||
|
public eSelectDataView NgHistorySelectView { get; set; }
|
||||||
|
|
||||||
|
public DMTestDetail(eSelectDataView SelectView, IDataBaseController getDBController, DateTime dtStart)
|
||||||
|
{
|
||||||
|
DBControllers = getDBController;
|
||||||
|
DBConn = getDBController.GetMainConn();
|
||||||
|
|
||||||
|
if (SelectView == eSelectDataView.DataDocumentViewC1)
|
||||||
|
{
|
||||||
|
NgHistorySelectView = eSelectDataView.DataDocumentViewC1;
|
||||||
|
ShortTermDBConn = getDBController.GetShortTermConn1();
|
||||||
|
|
||||||
|
LongTermDBConn = getDBController.GetLongTermConn1().Where(x=>x.Key.Contains(dtStart.Year.ToString())).First().Value;
|
||||||
|
}
|
||||||
|
else if (SelectView == eSelectDataView.DataDocumentViewC2)
|
||||||
|
{
|
||||||
|
NgHistorySelectView = eSelectDataView.DataDocumentViewC2;
|
||||||
|
ShortTermDBConn = getDBController.GetShortTermConn2();
|
||||||
|
|
||||||
|
LongTermDBConn = getDBController.GetLongTermConn2().Where(x => x.Key.Contains(dtStart.Year.ToString())).First().Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataTable SearchTestlist(DetailTestDataCollection data)
|
||||||
|
{
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
string strQuery = string.Empty;
|
||||||
|
|
||||||
|
if (data == null)
|
||||||
|
return dtResult;
|
||||||
|
|
||||||
|
/*
|
||||||
|
--최신 목록 스텝 Index Seek 특정 버전 이하 만 찾기
|
||||||
|
SELECT * FROM (SELECT *, ROW_NUMBER() OVER(PARTITION BY StepID ORDER BY StepVersion DESC)
|
||||||
|
AS RN FROM VRFY_Release WITH (INDEX=[CSK_VRFY_Release_1], NOLOCK) WHERE TestlistNo = 28 AND StepVersion <= 18) AS X
|
||||||
|
WHERE X.RN = 1 ORDER BY X.StepID ASC;
|
||||||
|
|
||||||
|
--최신 목록 스텝 Index Seek
|
||||||
|
SELECT * FROM (SELECT *, ROW_NUMBER() OVER(PARTITION BY StepID ORDER BY StepVersion DESC)
|
||||||
|
AS RN FROM VRFY_Release WITH (INDEX=[CSK_VRFY_Release_1], NOLOCK) WHERE TestlistNo = 4) AS X
|
||||||
|
WHERE X.RN = 1 ORDER BY X.StepID ASC;
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
strQuery += $"SELECT * FROM(SELECT *, ROW_NUMBER() OVER(PARTITION BY StepID ORDER BY StepVersion DESC) " +
|
||||||
|
$"AS RN FROM VRFY_Release WITH(INDEX =[CSK_VRFY_Release_1], NOLOCK) WHERE TestlistNo = {data.TestlistNo}) AS X " +
|
||||||
|
$"WHERE X.RN = 1 ORDER BY X.StepID ASC;";
|
||||||
|
*/
|
||||||
|
|
||||||
|
strQuery = $"SELECT A.ProdNo_C, B.ProdNo_P, B.UpdateDT, D.TestCode, D.Gate1, D.Gate2, E.FileName, A.RegUserComment, B.Description, C.GroupName, C.ModelName, A.VariantNo AS 'TestListNo', A.Config, E.TestType, E.Version, E.ProdCode, B.UseTLPosition, B.TestListFileNo, E.UpdateDT AS 'TestListFileUpdateDT', A.VariantNo FROM [PROD_Release] AS A WITH(NOLOCK) " +
|
||||||
|
$"INNER JOIN(SELECT * FROM [PROD_Variant] WITH(NOLOCK)) AS B ON A.VariantNo = B.No " +
|
||||||
|
$"INNER JOIN(SELECT * FROM [PROD_Group] WITH(NOLOCK)) AS C ON B.GroupNo = C.No " +
|
||||||
|
$"INNER JOIN(SELECT * FROM [STAT_TestCode] WITH(NOLOCK)) AS D ON A.TestCodeNo = D.No " +
|
||||||
|
$"INNER JOIN(SELECT * FROM [STOR_TestListFile] WITH(NOLOCK)) AS E ON B.TestListFileNo = E.No " +
|
||||||
|
$"WHERE A.ProdNo_C = '{data.ProductNo}' AND D.TestCode = '{data.TestCode}' AND E.TestType = '{data.TestType}' AND E.Version = '{data.FileVersion}' AND E.ProdCode = '{data.FileCode}';";
|
||||||
|
|
||||||
|
SQLCmd = new SqlCommand(strQuery, DBConn);
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtCompReader = SQLCmd.ExecuteReader();
|
||||||
|
DataTable dtCompResult = new DataTable();
|
||||||
|
|
||||||
|
dtCompResult.Load(dtCompReader);
|
||||||
|
|
||||||
|
if (Commons.isHasRow(dtCompResult) == false)
|
||||||
|
return dtResult;
|
||||||
|
|
||||||
|
string strCompVariNo = dtCompResult.Rows[0]["VariantNo"].ToString();
|
||||||
|
string strCompFileNo = dtCompResult.Rows[0]["TestListFileNo"].ToString();
|
||||||
|
|
||||||
|
dtCompReader.Close();
|
||||||
|
|
||||||
|
string strGetTestListFileNo = string.Empty;
|
||||||
|
|
||||||
|
if (strCompVariNo.CompareTo(data.TestListVariantNo) == 0 &&
|
||||||
|
strCompFileNo.CompareTo(data.TestListFileNo) == 0)
|
||||||
|
strGetTestListFileNo = data.TestListFileNo;
|
||||||
|
else
|
||||||
|
strGetTestListFileNo = strCompFileNo;
|
||||||
|
|
||||||
|
strQuery = $"SELECT * FROM ( " +
|
||||||
|
$"SELECT *, ROW_NUMBER() OVER(PARTITION BY StepID ORDER BY StepVersion DESC) " +
|
||||||
|
$"AS RN FROM VRFY_TestListFileRelease WITH (NOLOCK, INDEX=[CSK_VRFY_Release_2]) WHERE TestListFileNo = {strGetTestListFileNo} " +
|
||||||
|
$"AND StepVersion <= {data.StepVersion}) X WHERE RN = 1 ORDER BY X.StepID ASC;";
|
||||||
|
|
||||||
|
/*strQuery += $"SELECT ";
|
||||||
|
strQuery += $"*";
|
||||||
|
strQuery += " ";
|
||||||
|
strQuery += $"from [VRFY_Release] ";
|
||||||
|
strQuery += $"WITH(NOLOCK) ";
|
||||||
|
strQuery += $"where [TestListNo] = {data.TestlistNo}";
|
||||||
|
strQuery += " ";
|
||||||
|
strQuery += $"order by ";
|
||||||
|
strQuery += $"[StepID]";
|
||||||
|
strQuery += ";";*/
|
||||||
|
|
||||||
|
SQLCmd = new SqlCommand(strQuery, DBConn);
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
dtResult.Load(dtReader);
|
||||||
|
|
||||||
|
dtReader.Close();
|
||||||
|
|
||||||
|
//PK 키 지정
|
||||||
|
DataColumn[] keys1 = new DataColumn[1];
|
||||||
|
keys1[0] = new DataColumn();
|
||||||
|
keys1[0] = dtResult.Columns["StepID"];
|
||||||
|
|
||||||
|
dtResult.PrimaryKey = keys1;
|
||||||
|
|
||||||
|
//StepID 마다 가장 높은 버전 찾기
|
||||||
|
//SQL 수정으로 사용 X
|
||||||
|
//dtResult = RefineStepVersion(dtResult, data);
|
||||||
|
|
||||||
|
return dtResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataTable RefineStepVersion(DataTable dtTestlist, DetailTestDataCollection data)
|
||||||
|
{
|
||||||
|
var DuplicatedSteps = dtTestlist.AsEnumerable().GroupBy(x => x[eColTestlist.StepID.ToString()]).
|
||||||
|
Select(x => new { StepID = x.Key, Count = x.Count() }).Where(x => x.Count > 1);
|
||||||
|
|
||||||
|
foreach(var value in DuplicatedSteps)
|
||||||
|
{
|
||||||
|
List<DataRow> vdtRow = dtTestlist.AsEnumerable().Where(x => x[eColTestlist.StepID.ToString()].ToString() == value.StepID.ToString()).ToList();
|
||||||
|
DataRow vExcRow = vdtRow.Where(x => x[eColTestlist.StepVersion.ToString()].ToString() == data.StepVersion).FirstOrDefault();
|
||||||
|
|
||||||
|
if(vExcRow == null)
|
||||||
|
{
|
||||||
|
int nMaxVer = vdtRow.Max(x => Convert.ToInt32(x[eColTestlist.StepVersion.ToString()]));
|
||||||
|
|
||||||
|
vExcRow = vdtRow.Where(x => Convert.ToInt32(x[eColTestlist.StepVersion.ToString()]) == nMaxVer).FirstOrDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
vdtRow.Remove(vExcRow);
|
||||||
|
|
||||||
|
foreach (DataRow dtRow in vdtRow)
|
||||||
|
dtTestlist.Rows.Remove(dtRow);
|
||||||
|
}
|
||||||
|
|
||||||
|
return dtTestlist;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataTable SearchTestHistory(DetailTestDataCollection data)
|
||||||
|
{
|
||||||
|
if (NgHistorySelectView == eSelectDataView.DataDocumentViewC1)
|
||||||
|
{
|
||||||
|
ShortTermDBConn = DBControllers.GetShortTermConn1();
|
||||||
|
|
||||||
|
LongTermDBConn = DBControllers.GetLongTermConn1().Where(x => x.Key.Contains(data.StartTime.Year.ToString())).First().Value;
|
||||||
|
}
|
||||||
|
else if (NgHistorySelectView == eSelectDataView.DataDocumentViewC2)
|
||||||
|
{
|
||||||
|
ShortTermDBConn = DBControllers.GetShortTermConn2();
|
||||||
|
|
||||||
|
LongTermDBConn = DBControllers.GetLongTermConn2().Where(x => x.Key.Contains(data.StartTime.Year.ToString())).First().Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
List<CPXV2Log.Tables.HIST_TestResult> list = new List<CPXV2Log.Tables.HIST_TestResult>();
|
||||||
|
StringBuilder strQuery = new StringBuilder();
|
||||||
|
|
||||||
|
if (data == null)
|
||||||
|
return dtResult;
|
||||||
|
|
||||||
|
strQuery.Append($"SELECT ");
|
||||||
|
strQuery.Append($"*");
|
||||||
|
strQuery.Append(" ");
|
||||||
|
strQuery.Append($"FROM {DMCommon.ResultLogTable} ");
|
||||||
|
strQuery.Append($"WITH(NOLOCK) ");
|
||||||
|
strQuery.Append($"WHERE No='{data.No}' ");
|
||||||
|
strQuery.Append(";");
|
||||||
|
|
||||||
|
if (DatabaseConnControl.ScanLongTermLog) SQLCmd = new SqlCommand(strQuery.ToString(), LongTermDBConn);
|
||||||
|
else SQLCmd = new SqlCommand(strQuery.ToString(), ShortTermDBConn);
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
dtResult.Load(dtReader);
|
||||||
|
dtReader.Close();
|
||||||
|
|
||||||
|
if (dtResult.Rows.Count > 0)
|
||||||
|
{
|
||||||
|
var logData = dtResult.Rows[0]["LogData"].ToString();
|
||||||
|
var decompStr = logData.GzipDecompress();
|
||||||
|
|
||||||
|
list = JsonConvert.DeserializeObject<List<CPXV2Log.Tables.HIST_TestResult>>(decompStr);
|
||||||
|
|
||||||
|
dtResult = list.ToDataTable();
|
||||||
|
}
|
||||||
|
|
||||||
|
return dtResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable GetRawResult(DetailTestDataCollection data)
|
||||||
|
{
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
string strQuery = string.Empty;
|
||||||
|
|
||||||
|
if (data == null)
|
||||||
|
return dtResult;
|
||||||
|
|
||||||
|
SQLCmd = new SqlCommand(strQuery, DBConn);
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
dtResult.Load(dtReader);
|
||||||
|
|
||||||
|
dtReader.Close();
|
||||||
|
|
||||||
|
return dtResult;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,213 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.Common;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using SystemX.Product.ALIS.Interface;
|
||||||
|
using SystemX.Product.TRA.UIControl;
|
||||||
|
|
||||||
|
using static SystemX.Product.TRA.DataManager.DMOverview;
|
||||||
|
using static SystemX.Product.CP.TRA.Commons;
|
||||||
|
using DataBaseConnection.Control;
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.DataManager
|
||||||
|
{
|
||||||
|
public class DMTestHistory
|
||||||
|
{
|
||||||
|
public enum eColList
|
||||||
|
{
|
||||||
|
No,
|
||||||
|
TestDateTime,
|
||||||
|
StationName,
|
||||||
|
Host,
|
||||||
|
Section,
|
||||||
|
ProductID,
|
||||||
|
ProductNo,
|
||||||
|
TestType,
|
||||||
|
TestCode,
|
||||||
|
ParentNo,
|
||||||
|
FileVersion,
|
||||||
|
FileCode,
|
||||||
|
StepVersion,
|
||||||
|
Duration,
|
||||||
|
TestResult,
|
||||||
|
//OK,
|
||||||
|
//NOK,
|
||||||
|
TestListFileNo,
|
||||||
|
TestListVariantNo,
|
||||||
|
TestlistFileName,
|
||||||
|
TestlistReqID
|
||||||
|
}
|
||||||
|
|
||||||
|
private SqlConnection DBConn { get; set; }
|
||||||
|
private SqlConnection ShortTermDBConn { get; set; }
|
||||||
|
private SqlConnection LongTermDBConn { get; set; }
|
||||||
|
|
||||||
|
private SqlCommand SQLCmd { get; set; }
|
||||||
|
|
||||||
|
IDataBaseController GetDBController;
|
||||||
|
|
||||||
|
public DMTestHistory(eSelectDataView SelectView, IDataBaseController getDBController)
|
||||||
|
{
|
||||||
|
GetDBController = getDBController;
|
||||||
|
|
||||||
|
DBConn = getDBController.GetMainConn();
|
||||||
|
|
||||||
|
if (SelectView == eSelectDataView.DataDocumentViewC1)
|
||||||
|
{
|
||||||
|
ShortTermDBConn = getDBController.GetShortTermConn1();
|
||||||
|
|
||||||
|
LongTermDBConn = getDBController.GetLongTermConn1().First().Value;
|
||||||
|
}
|
||||||
|
else if (SelectView == eSelectDataView.DataDocumentViewC2)
|
||||||
|
{
|
||||||
|
ShortTermDBConn = getDBController.GetShortTermConn2();
|
||||||
|
|
||||||
|
LongTermDBConn = getDBController.GetLongTermConn2().First().Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataTable SearchTestHistory(eSelectDataView SelectView, SelectedDataCollection data, TestHistorySearchOption option, int nReqIdPos = int.MaxValue)
|
||||||
|
{
|
||||||
|
if (SelectView == eSelectDataView.DataDocumentViewC1)
|
||||||
|
{
|
||||||
|
LongTermDBConn = GetDBController.GetLongTermConn1().Where(x => x.Key.Contains(data.StartTime.Year.ToString()))?.FirstOrDefault().Value;
|
||||||
|
if (LongTermDBConn == null)
|
||||||
|
{
|
||||||
|
LongTermDBConn = GetDBController.GetLongTermConn1().FirstOrDefault().Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (SelectView == eSelectDataView.DataDocumentViewC2)
|
||||||
|
{
|
||||||
|
LongTermDBConn = GetDBController.GetLongTermConn2().Where(x => x.Key.Contains(data.StartTime.Year.ToString()))?.FirstOrDefault().Value;
|
||||||
|
if (LongTermDBConn == null)
|
||||||
|
{
|
||||||
|
LongTermDBConn = GetDBController.GetLongTermConn2().FirstOrDefault().Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable dtResult = GetRawResult(data, option, nReqIdPos);
|
||||||
|
|
||||||
|
return dtResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable GetRawResult(SelectedDataCollection data, TestHistorySearchOption option, int nReqIdPos = int.MaxValue)
|
||||||
|
{
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
string strQuery = string.Empty;
|
||||||
|
|
||||||
|
DateTime dtCheckTime = DateTime.Now;
|
||||||
|
|
||||||
|
//데이터 검색 시작 시간 확인
|
||||||
|
if (option.Time_WholeRange)
|
||||||
|
dtCheckTime = data.SearchRangeStart;
|
||||||
|
else if (option.Time_SelectedTest)
|
||||||
|
dtCheckTime = data.StartTime;
|
||||||
|
else if (option.Time_Day)
|
||||||
|
dtCheckTime = data.StartTime;
|
||||||
|
|
||||||
|
DateTime dtNow = DateTime.Now;
|
||||||
|
|
||||||
|
int nDiffMonth = 12 * (dtNow.Year - dtCheckTime.Year) + (dtNow.Month - dtCheckTime.Month);
|
||||||
|
|
||||||
|
if (data == null)
|
||||||
|
return dtResult;
|
||||||
|
|
||||||
|
strQuery += $"SELECT ";
|
||||||
|
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.No,";
|
||||||
|
strQuery += $"CONVERT(char(20), {DMCommon.SummaryLogTable}.TestDT, 20) as {eColList.TestDateTime.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.StationName as {eColList.StationName.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.HostID as {eColList.Host.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.Section as {eColList.Section.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.ProductID as {eColList.ProductID.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.TestType as {eColList.TestType.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.ProdNo_C as {eColList.ProductNo.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.Testcode as {eColList.TestCode.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.ProdNo_P as {eColList.ParentNo.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.ProdCode as {eColList.FileCode.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.Version as {eColList.FileVersion.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.StepVersion as {eColList.StepVersion.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.Duration as {eColList.Duration.ToString()},";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.Result as {eColList.TestResult.ToString()},";
|
||||||
|
//strQuery += $"CASE WHEN {DMCommon.SummaryLogTable}.Result = 'OK' THEN 1 ELSE 0 END as {eColList.OK.ToString()},";
|
||||||
|
//strQuery += $"CASE WHEN {DMCommon.SummaryLogTable}.Result = '-' THEN 0 WHEN {DMCommon.SummaryLogTable}.Result != 'OK' THEN 1 ELSE 0 END as {eColList.NG.ToString()},";
|
||||||
|
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListFileNo],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListVariantNo],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListFileName],";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.[TestListCntID] as {eColList.TestlistReqID.ToString()}";
|
||||||
|
|
||||||
|
strQuery += " ";
|
||||||
|
strQuery += $"FROM {DMCommon.SummaryLogTable} ";
|
||||||
|
strQuery += $"WITH(NOLOCK) ";
|
||||||
|
|
||||||
|
if (option.Time_WholeRange)
|
||||||
|
strQuery += $"where TestDT >= '{data.SearchRangeStart.ToString("yyyy-MM-dd 00:00:00")}' and TestDT <= '{data.SearchRangeEnd.ToString("yyyy-MM-dd 23:59:59")}' ";
|
||||||
|
else if(option.Time_SelectedTest)
|
||||||
|
strQuery += $"where TestDT >= '{data.StartTime.ToString("yyyy-MM-dd HH:mm:ss")}' and TestDT <= '{data.EndTime.ToString("yyyy-MM-dd HH:mm:ss")}' ";
|
||||||
|
else if(option.Time_Day)
|
||||||
|
strQuery += $"where TestDT >= '{data.StartTime.ToShortDateString()} 00:00:00' and TestDT <= '{data.EndTime.ToShortDateString()} 23:59:59' ";
|
||||||
|
|
||||||
|
if (option.Station && !string.IsNullOrWhiteSpace(data.StationName))
|
||||||
|
strQuery += $" and (StationName = '{data.StationName}' or StationName = '-') ";
|
||||||
|
if (option.Host && !string.IsNullOrWhiteSpace(data.HostID))
|
||||||
|
strQuery += $" and (HostID = '{data.HostID}' or HostID = '-') ";
|
||||||
|
if (option.Section && !string.IsNullOrWhiteSpace(data.SectionID))
|
||||||
|
strQuery += $" and (Section = '{data.SectionID}' or Section = '-') ";
|
||||||
|
if (option.TestType)
|
||||||
|
strQuery += $" and (TestType = '{data.TestType}' or TestType = '-') ";
|
||||||
|
if (option.ProductNo)
|
||||||
|
{
|
||||||
|
strQuery += $" and (ProdNo_C = '{data.ProductNo}' ";
|
||||||
|
|
||||||
|
if(option.Host && !string.IsNullOrWhiteSpace(data.HostID))
|
||||||
|
{
|
||||||
|
foreach(string strCmd in Enum.GetNames(typeof(eCommand)))
|
||||||
|
strQuery += $"or ProdNo_C = '{strCmd}'";
|
||||||
|
}
|
||||||
|
strQuery += $" )";
|
||||||
|
}
|
||||||
|
if (option.TestCode)
|
||||||
|
strQuery += $" and (Testcode = '{data.TestCode}' or Testcode = '-') ";
|
||||||
|
if (option.ParentNo)
|
||||||
|
strQuery += $" and (ProdNo_P = '{data.ParentNo}' or ProdNo_P = '-') ";
|
||||||
|
if (option.ProductionCode)
|
||||||
|
strQuery += $" and (ProdCode = '{data.ProductionCode}' or ProdCode = '-') ";
|
||||||
|
if (option.FileVersion)
|
||||||
|
strQuery += $" and (Version = '{data.FileVersion}' or Version = '-') ";
|
||||||
|
if (option.StepVersion)
|
||||||
|
strQuery += $" and (StepVersion = '{data.StepVersion}' or StepVersion = '-1') ";
|
||||||
|
if (option.Time_SelectedTest)
|
||||||
|
{
|
||||||
|
if(nReqIdPos == int.MaxValue)
|
||||||
|
strQuery += $" and (TestListCntID = '{data.TestRequestID[0]}' or TestListCntID = '-') ";
|
||||||
|
else
|
||||||
|
strQuery += $" and (TestListCntID = '{data.TestRequestID[nReqIdPos]}' or TestListCntID = '-') ";
|
||||||
|
}
|
||||||
|
|
||||||
|
//if (option.ShowRedundantData)
|
||||||
|
// strQuery += $" group by {DMCommon.SummaryLogTable}.ProductID ";
|
||||||
|
|
||||||
|
strQuery += " ";
|
||||||
|
strQuery += $"ORDER BY ";
|
||||||
|
strQuery += $"{DMCommon.SummaryLogTable}.TestDT";
|
||||||
|
strQuery += ";";
|
||||||
|
|
||||||
|
if (DatabaseConnControl.ScanLongTermLog) SQLCmd = new SqlCommand(strQuery, LongTermDBConn);
|
||||||
|
else SQLCmd = new SqlCommand(strQuery, ShortTermDBConn);
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
dtResult.Load(dtReader);
|
||||||
|
|
||||||
|
dtReader.Close();
|
||||||
|
|
||||||
|
return dtResult;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,281 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.Common;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using SystemX.Product.ALIS.Interface;
|
||||||
|
using SystemX.Product.CP.TRA;
|
||||||
|
using SystemX.Product.TRA.UIControl;
|
||||||
|
|
||||||
|
using static SystemX.Product.TRA.DataManager.DMOverview;
|
||||||
|
using static SystemX.Product.CP.TRA.Commons;
|
||||||
|
using DataBaseConnection.Control;
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.DataManager
|
||||||
|
{
|
||||||
|
public class DMTestNgHistory
|
||||||
|
{
|
||||||
|
public enum eColList
|
||||||
|
{
|
||||||
|
No,
|
||||||
|
TestDateTime,
|
||||||
|
StationName,
|
||||||
|
Host,
|
||||||
|
Section,
|
||||||
|
ProductID,
|
||||||
|
ProductNo,
|
||||||
|
TestType,
|
||||||
|
TestCode,
|
||||||
|
ParentNo,
|
||||||
|
FileVersion,
|
||||||
|
FileCode,
|
||||||
|
StepVersion,
|
||||||
|
Duration,
|
||||||
|
TestResult,
|
||||||
|
//OK,
|
||||||
|
//NOK,
|
||||||
|
TestListFileNo,
|
||||||
|
TestListVariantNo,
|
||||||
|
TestlistFileName,
|
||||||
|
TestlistReqID
|
||||||
|
}
|
||||||
|
|
||||||
|
private SqlConnection DBConn { get; set; }
|
||||||
|
private SqlConnection ShortTermDBConn { get; set; }
|
||||||
|
private SqlConnection LongTermDBConn { get; set; }
|
||||||
|
|
||||||
|
private SqlCommand SQLCmd { get; set; }
|
||||||
|
|
||||||
|
private IDataBaseController DBControllers { get; set; }
|
||||||
|
|
||||||
|
public eSelectDataView NgHistorySelectView { get; set; }
|
||||||
|
|
||||||
|
public DMTestNgHistory(eSelectDataView SelectView, IDataBaseController getDBController, DateTime dtStart)
|
||||||
|
{
|
||||||
|
DBControllers = getDBController;
|
||||||
|
DBConn = getDBController.GetMainConn();
|
||||||
|
|
||||||
|
if (SelectView == eSelectDataView.DataDocumentViewC1)
|
||||||
|
{
|
||||||
|
NgHistorySelectView = eSelectDataView.DataDocumentViewC1;
|
||||||
|
ShortTermDBConn = getDBController.GetShortTermConn1();
|
||||||
|
|
||||||
|
LongTermDBConn = getDBController.GetLongTermConn1().Where(x=>x.Key.Contains(dtStart.Year.ToString())).First().Value;
|
||||||
|
}
|
||||||
|
else if (SelectView == eSelectDataView.DataDocumentViewC2)
|
||||||
|
{
|
||||||
|
NgHistorySelectView = eSelectDataView.DataDocumentViewC2;
|
||||||
|
ShortTermDBConn = getDBController.GetShortTermConn2();
|
||||||
|
|
||||||
|
LongTermDBConn = getDBController.GetLongTermConn2().Where(x => x.Key.Contains(dtStart.Year.ToString())).First().Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataTable SearchTestNgHistory(SelectedDataCollection data, TestHistorySearchOption option, int nReqIdPos = int.MaxValue)
|
||||||
|
{
|
||||||
|
DataTable dtResult = GetRawResult(data, option, nReqIdPos);
|
||||||
|
|
||||||
|
return dtResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] CheckTestListFileNo(string strProductNo, string strTestCode, string strTestType, string strFileVer, string strFileCode)
|
||||||
|
{
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
StringBuilder strQuery = new StringBuilder();
|
||||||
|
//string strQuery = string.Empty;
|
||||||
|
|
||||||
|
strQuery.Append($"SELECT A.ProdNo_C, B.ProdNo_P, B.UpdateDT, D.TestCode, D.Gate1, D.Gate2, E.FileName, A.RegUserComment, B.Description, C.GroupName, C.ModelName, A.VariantNo AS 'TestListNo', A.Config, E.TestType, E.Version, E.ProdCode, B.UseTLPosition, B.TestListFileNo, E.UpdateDT AS 'TestListFileUpdateDT', A.VariantNo FROM [PROD_Release] AS A WITH(NOLOCK) " +
|
||||||
|
$"INNER JOIN(SELECT * FROM [PROD_Variant] WITH(NOLOCK)) AS B ON A.VariantNo = B.No " +
|
||||||
|
$"INNER JOIN(SELECT * FROM [PROD_Group] WITH(NOLOCK)) AS C ON B.GroupNo = C.No " +
|
||||||
|
$"INNER JOIN(SELECT * FROM [STAT_TestCode] WITH(NOLOCK)) AS D ON A.TestCodeNo = D.No " +
|
||||||
|
$"INNER JOIN(SELECT * FROM [STOR_TestListFile] WITH(NOLOCK)) AS E ON B.TestListFileNo = E.No " +
|
||||||
|
$"WHERE A.ProdNo_C = '{strProductNo}' AND D.TestCode = '{strTestCode}' AND E.TestType = '{strTestType}' AND E.Version = '{strFileVer}' AND E.ProdCode = '{strFileCode}';");
|
||||||
|
|
||||||
|
SQLCmd = new SqlCommand(strQuery.ToString(), DBConn);
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtCompReader = SQLCmd.ExecuteReader();
|
||||||
|
DataTable dtCompResult = new DataTable();
|
||||||
|
|
||||||
|
dtCompResult.Load(dtCompReader);
|
||||||
|
|
||||||
|
if (Commons.isHasRow(dtCompResult) == false)
|
||||||
|
return new int[] { int.MinValue, int.MinValue };
|
||||||
|
|
||||||
|
string strCompVariNo = dtCompResult.Rows[0]["VariantNo"].ToString();
|
||||||
|
string strCompFileNo = dtCompResult.Rows[0]["TestListFileNo"].ToString();
|
||||||
|
|
||||||
|
dtCompReader.Close();
|
||||||
|
|
||||||
|
return new int[] { int.Parse(strCompFileNo), int.Parse(strCompVariNo) };
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataTable GetUseTestListInformation(int nTestListNo, int nUseStepVersion)
|
||||||
|
{
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
StringBuilder strQuery = new StringBuilder();
|
||||||
|
//string strQuery = string.Empty;
|
||||||
|
|
||||||
|
strQuery.Append($"SELECT * FROM ( " +
|
||||||
|
$"SELECT *, ROW_NUMBER() OVER(PARTITION BY StepID ORDER BY StepVersion DESC) " +
|
||||||
|
$"AS RN FROM VRFY_TestListFileRelease WITH (NOLOCK, INDEX=[CSK_VRFY_Release_2]) WHERE TestListFileNo = {nTestListNo.ToString()} " +
|
||||||
|
$"AND StepVersion <= {nUseStepVersion.ToString()}) X WHERE RN = 1 ORDER BY X.StepID ASC;");
|
||||||
|
|
||||||
|
/*
|
||||||
|
strQuery.Append($"SELECT * FROM ( " +
|
||||||
|
$"SELECT *, ROW_NUMBER() OVER(PARTITION BY StepID ORDER BY StepVersion DESC) " +
|
||||||
|
$"AS RN FROM VRFY_TestListFileRelease WITH (NOLOCK, INDEX=[CSK_VRFY_Release_2]) WHERE TestListFileNo = {nTestListNo.ToString()} " +
|
||||||
|
$"AND StepVersion <= {nUseStepVersion.ToString()}) X ORDER BY X.StepID ASC;");
|
||||||
|
*/
|
||||||
|
|
||||||
|
SQLCmd = new SqlCommand(strQuery.ToString(), DBConn);
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
dtResult.Load(dtReader);
|
||||||
|
|
||||||
|
dtReader.Close();
|
||||||
|
|
||||||
|
//PK 지정
|
||||||
|
DataColumn[] keys1 = new DataColumn[1];
|
||||||
|
keys1[0] = new DataColumn();
|
||||||
|
keys1[0] = dtResult.Columns["StepID"];
|
||||||
|
|
||||||
|
dtResult.PrimaryKey = keys1;
|
||||||
|
|
||||||
|
return dtResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable GetRawResult(SelectedDataCollection data, TestHistorySearchOption option, int nReqIdPos = int.MaxValue)
|
||||||
|
{
|
||||||
|
if (NgHistorySelectView == eSelectDataView.DataDocumentViewC1)
|
||||||
|
{
|
||||||
|
ShortTermDBConn = DBControllers.GetShortTermConn1();
|
||||||
|
|
||||||
|
LongTermDBConn = DBControllers.GetLongTermConn1().Where(x => x.Key.Contains(data.SearchRangeStart.Year.ToString())).First().Value;
|
||||||
|
}
|
||||||
|
else if (NgHistorySelectView == eSelectDataView.DataDocumentViewC2)
|
||||||
|
{
|
||||||
|
ShortTermDBConn = DBControllers.GetShortTermConn2();
|
||||||
|
|
||||||
|
LongTermDBConn = DBControllers.GetLongTermConn2().Where(x => x.Key.Contains(data.SearchRangeStart.Year.ToString())).First().Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
//string strQuery = string.Empty;
|
||||||
|
StringBuilder strQuery = new StringBuilder();
|
||||||
|
|
||||||
|
DateTime dtCheckTime = DateTime.Now;
|
||||||
|
|
||||||
|
//데이터 검색 시작 시간 확인
|
||||||
|
if (option.Time_WholeRange)
|
||||||
|
dtCheckTime = data.SearchRangeStart;
|
||||||
|
else if (option.Time_SelectedTest)
|
||||||
|
dtCheckTime = data.StartTime;
|
||||||
|
else if (option.Time_Day)
|
||||||
|
dtCheckTime = data.StartTime;
|
||||||
|
|
||||||
|
DateTime dtNow = DateTime.Now;
|
||||||
|
|
||||||
|
if (data == null)
|
||||||
|
return dtResult;
|
||||||
|
|
||||||
|
strQuery.Append($"SELECT ");
|
||||||
|
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.No,");
|
||||||
|
strQuery.Append($"CONVERT(char(20), {DMCommon.SummaryLogTable}.TestDT, 20) as {eColList.TestDateTime.ToString()},");
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.StationName as {eColList.StationName.ToString()},");
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.HostID as {eColList.Host.ToString()},");
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.Section as {eColList.Section.ToString()},");
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.ProductID as {eColList.ProductID.ToString()},");
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.TestType as {eColList.TestType.ToString()},");
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.ProdNo_C as {eColList.ProductNo.ToString()},");
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.Testcode as {eColList.TestCode.ToString()},");
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.ProdNo_P as {eColList.ParentNo.ToString()},");
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.ProdCode as {eColList.FileCode.ToString()},");
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.Version as {eColList.FileVersion.ToString()},");
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.StepVersion as {eColList.StepVersion.ToString()},");
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.Duration as {eColList.Duration.ToString()},");
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.Result as {eColList.TestResult.ToString()},");
|
||||||
|
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.[TestListFileNo],");
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.[TestListVariantNo],");
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.[TestListFileName],");
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.[TestListCntID] as {eColList.TestlistReqID.ToString()}");
|
||||||
|
|
||||||
|
strQuery.Append(" ");
|
||||||
|
strQuery.Append($"FROM {DMCommon.SummaryLogTable} ");
|
||||||
|
strQuery.Append($"WITH(NOLOCK) ");
|
||||||
|
|
||||||
|
if (option.Time_WholeRange)
|
||||||
|
strQuery.Append($"WHERE TestDT >= '{data.SearchRangeStart.ToString("yyyy-MM-dd 00:00:00")}' AND TestDT <= '{data.SearchRangeEnd.ToString("yyyy-MM-dd 23:59:59")}' ");
|
||||||
|
else if(option.Time_SelectedTest)
|
||||||
|
strQuery.Append($"WHERE TestDT >= '{data.StartTime.ToString("yyyy-MM-dd HH:mm:ss")}' AND TestDT <= '{data.EndTime.ToString("yyyy-MM-dd HH:mm:ss")}' ");
|
||||||
|
else if(option.Time_Day)
|
||||||
|
strQuery.Append($"WHERE TestDT >= '{data.StartTime.ToShortDateString()} 00:00:00' AND TestDT <= '{data.EndTime.ToShortDateString()} 23:59:59' ");
|
||||||
|
|
||||||
|
if (option.Station && !string.IsNullOrWhiteSpace(data.StationName))
|
||||||
|
strQuery.Append($" AND (StationName = '{data.StationName}' OR StationName = '-') ");
|
||||||
|
if (option.Host && !string.IsNullOrWhiteSpace(data.HostID))
|
||||||
|
strQuery.Append($" AND (HostID = '{data.HostID}' OR HostID = '-') ");
|
||||||
|
if (option.Section && !string.IsNullOrWhiteSpace(data.SectionID))
|
||||||
|
strQuery.Append($" AND (Section = '{data.SectionID}' OR Section = '-') ");
|
||||||
|
if (option.TestType)
|
||||||
|
strQuery.Append($" AND (TestType = '{data.TestType}' OR TestType = '-') ");
|
||||||
|
if (option.ProductNo)
|
||||||
|
{
|
||||||
|
strQuery.Append($" AND (ProdNo_C = '{data.ProductNo}' ");
|
||||||
|
|
||||||
|
if(option.Host && !string.IsNullOrWhiteSpace(data.HostID))
|
||||||
|
{
|
||||||
|
foreach(string strCmd in Enum.GetNames(typeof(eCommand)))
|
||||||
|
strQuery.Append($"OR ProdNo_C = '{strCmd}'");
|
||||||
|
}
|
||||||
|
strQuery.Append($" )");
|
||||||
|
}
|
||||||
|
if (option.TestCode)
|
||||||
|
strQuery.Append($" AND (Testcode = '{data.TestCode}' OR Testcode = '-') ");
|
||||||
|
if (option.ParentNo)
|
||||||
|
strQuery.Append($" AND (ProdNo_P = '{data.ParentNo}' OR ProdNo_P = '-') ");
|
||||||
|
if (option.ProductionCode)
|
||||||
|
strQuery.Append($" AND (ProdCode = '{data.ProductionCode}' OR ProdCode = '-') ");
|
||||||
|
if (option.FileVersion)
|
||||||
|
strQuery.Append($" AND (Version = '{data.FileVersion}' OR Version = '-') ");
|
||||||
|
if (option.StepVersion)
|
||||||
|
strQuery.Append($" AND (StepVersion = '{data.StepVersion}' OR StepVersion = '-1') ");
|
||||||
|
if (option.Time_SelectedTest)
|
||||||
|
{
|
||||||
|
if (nReqIdPos == int.MaxValue)
|
||||||
|
strQuery.Append($" AND (TestListCntID = '{data.TestRequestID[0]}' OR TestListCntID = '-') ");
|
||||||
|
else
|
||||||
|
strQuery.Append($" AND (TestListCntID = '{data.TestRequestID[nReqIdPos]}' OR TestListCntID = '-') ");
|
||||||
|
}
|
||||||
|
|
||||||
|
// strQuery.Append($" AND (Result = 'NG' OR Result = 'SYSTEM_ERROR' OR Result = 'STOP') ";
|
||||||
|
strQuery.Append($" AND (Result != 'OK') ");
|
||||||
|
|
||||||
|
strQuery.Append(" ");
|
||||||
|
strQuery.Append($"ORDER BY ");
|
||||||
|
strQuery.Append($"{DMCommon.SummaryLogTable}.TestDT");
|
||||||
|
strQuery.Append(";");
|
||||||
|
|
||||||
|
var query = strQuery.ToString();
|
||||||
|
|
||||||
|
if (DatabaseConnControl.ScanLongTermLog) SQLCmd = new SqlCommand(strQuery.ToString(), LongTermDBConn);
|
||||||
|
else SQLCmd = new SqlCommand(strQuery.ToString(), ShortTermDBConn);
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
dtResult.Load(dtReader);
|
||||||
|
|
||||||
|
dtReader.Close();
|
||||||
|
|
||||||
|
return dtResult;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,447 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.Common;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using SystemX.Product.ALIS.Interface;
|
||||||
|
using SystemX.Product.CP.TRA;
|
||||||
|
using SystemX.Product.TRA.UIControl;
|
||||||
|
|
||||||
|
using static SystemX.Product.TRA.DataManager.DMOverview;
|
||||||
|
using static SystemX.Product.CP.TRA.Commons;
|
||||||
|
using DataBaseConnection.Control;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using SystemX.Common.Util;
|
||||||
|
|
||||||
|
using CPXV2Log = SystemX.Net.Platform.SystemX.Net.XEFCore.DBContext.CPXV2Log;
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.DataManager
|
||||||
|
{
|
||||||
|
public class DMTestSummary
|
||||||
|
{
|
||||||
|
public enum eColHideListLog
|
||||||
|
{
|
||||||
|
No,
|
||||||
|
//TestID
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum eColTestLog
|
||||||
|
{
|
||||||
|
No,
|
||||||
|
//TestID,
|
||||||
|
StepID,
|
||||||
|
MeasVal,
|
||||||
|
MeasValStr,
|
||||||
|
Message,
|
||||||
|
GlobalMin,
|
||||||
|
GlobalMax,
|
||||||
|
Result
|
||||||
|
//Duration
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum eColHideListTL
|
||||||
|
{
|
||||||
|
No,
|
||||||
|
TestlistNo,
|
||||||
|
StepVersion,
|
||||||
|
Enable,
|
||||||
|
IsGlobal,
|
||||||
|
UpdateDT
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum eColTestlist
|
||||||
|
{
|
||||||
|
No,
|
||||||
|
TestlistNo,
|
||||||
|
StepID,
|
||||||
|
Variant,
|
||||||
|
Gate,
|
||||||
|
Activate,
|
||||||
|
StepVersion,
|
||||||
|
Enable,
|
||||||
|
Position,
|
||||||
|
StepDesc,
|
||||||
|
UseFunction,
|
||||||
|
SpecMin,
|
||||||
|
SpecMax,
|
||||||
|
Dim,
|
||||||
|
IsGlobal,
|
||||||
|
UpdateDT
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum eColTestSummary
|
||||||
|
{
|
||||||
|
StepID,
|
||||||
|
Average,
|
||||||
|
Total,
|
||||||
|
OK,
|
||||||
|
NG //NOK
|
||||||
|
}
|
||||||
|
|
||||||
|
public SqlConnection DBConn { get; private set; }
|
||||||
|
public SqlConnection ShortTermDBConn { get; private set; }
|
||||||
|
public SqlConnection LongTermDBConn { get; private set; }
|
||||||
|
|
||||||
|
private SqlCommand SQLCmd { get; set; }
|
||||||
|
|
||||||
|
public DataTable dtHistVersionTL;
|
||||||
|
|
||||||
|
eSelectDataView TestSummarySelectView { get; set; }
|
||||||
|
|
||||||
|
IDataBaseController GetDBController;
|
||||||
|
|
||||||
|
public int nCurrentTLMaxStepVersion { get; set; }
|
||||||
|
|
||||||
|
//public DataTable this[int i] => dtEachVersionTL[i];
|
||||||
|
|
||||||
|
public DMTestSummary(eSelectDataView SelectView, IDataBaseController getDBController, DateTime dtStart)
|
||||||
|
{
|
||||||
|
GetDBController = getDBController;
|
||||||
|
DBConn = getDBController.GetMainConn();
|
||||||
|
|
||||||
|
if (SelectView == eSelectDataView.DataDocumentViewC1)
|
||||||
|
{
|
||||||
|
TestSummarySelectView = eSelectDataView.DataDocumentViewC1;
|
||||||
|
ShortTermDBConn = getDBController.GetShortTermConn1();
|
||||||
|
|
||||||
|
LongTermDBConn = getDBController.GetLongTermConn1().Where(x=>x.Key.Contains(dtStart.Year.ToString())).First().Value;
|
||||||
|
}
|
||||||
|
else if (SelectView == eSelectDataView.DataDocumentViewC2)
|
||||||
|
{
|
||||||
|
TestSummarySelectView = eSelectDataView.DataDocumentViewC2;
|
||||||
|
ShortTermDBConn = getDBController.GetShortTermConn2();
|
||||||
|
|
||||||
|
LongTermDBConn = getDBController.GetLongTermConn2().Where(x => x.Key.Contains(dtStart.Year.ToString())).First().Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataTable SearchTestlist(SelectedDataCollection data, int nHistChkStepVer = int.MinValue, bool bOnlyNewStepVersion = true)
|
||||||
|
{
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
DataTable dtResultChk = new DataTable();
|
||||||
|
|
||||||
|
string strQuery = string.Empty;
|
||||||
|
|
||||||
|
if (data == null)
|
||||||
|
return dtResult;
|
||||||
|
|
||||||
|
strQuery = $"SELECT A.ProdNo_C, B.ProdNo_P, B.UpdateDT, D.TestCode, D.Gate1, D.Gate2, E.FileName, A.RegUserComment, B.Description, C.GroupName, C.ModelName, A.VariantNo AS 'TestListNo', A.Config, E.TestType, E.Version, E.ProdCode, B.UseTLPosition, B.TestListFileNo, E.UpdateDT AS 'TestListFileUpdateDT', A.VariantNo FROM [PROD_Release] AS A WITH(NOLOCK) " +
|
||||||
|
$"INNER JOIN(SELECT * FROM [PROD_Variant] WITH(NOLOCK)) AS B ON A.VariantNo = B.No " +
|
||||||
|
$"INNER JOIN(SELECT * FROM [PROD_Group] WITH(NOLOCK)) AS C ON B.GroupNo = C.No " +
|
||||||
|
$"INNER JOIN(SELECT * FROM [STAT_TestCode] WITH(NOLOCK)) AS D ON A.TestCodeNo = D.No " +
|
||||||
|
$"INNER JOIN(SELECT * FROM [STOR_TestListFile] WITH(NOLOCK)) AS E ON B.TestListFileNo = E.No " +
|
||||||
|
$"WHERE A.ProdNo_C = '{data.ProductNo}' AND D.TestCode = '{data.TestCode}' AND E.TestType = '{data.TestType}' AND E.Version = '{data.FileVersion}' AND E.ProdCode = '{data.ProductionCode}';";
|
||||||
|
|
||||||
|
SQLCmd = new SqlCommand(strQuery, DBConn);
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtCompReader = SQLCmd.ExecuteReader();
|
||||||
|
DataTable dtCompResult = new DataTable();
|
||||||
|
|
||||||
|
dtCompResult.Load(dtCompReader);
|
||||||
|
|
||||||
|
if (Commons.isHasRow(dtCompResult) == false)
|
||||||
|
return dtResult;
|
||||||
|
|
||||||
|
string strCompVariNo = dtCompResult.Rows[0]["VariantNo"].ToString();
|
||||||
|
string strCompFileNo = dtCompResult.Rows[0]["TestListFileNo"].ToString();
|
||||||
|
|
||||||
|
dtCompReader.Close();
|
||||||
|
|
||||||
|
string strGetTestListFileNo = string.Empty;
|
||||||
|
|
||||||
|
if (strCompVariNo.CompareTo(data.TestListVariantNo) == 0 &&
|
||||||
|
strCompFileNo.CompareTo(data.TestListFileNo) == 0)
|
||||||
|
strGetTestListFileNo = data.TestListFileNo;
|
||||||
|
else
|
||||||
|
strGetTestListFileNo = strCompFileNo;
|
||||||
|
|
||||||
|
strQuery = $"SELECT LatestStepVersion FROM [HIST_TestListFileLatestStepVersion] WITH(NOLOCK) WHERE TestListFileNo = {strGetTestListFileNo};";
|
||||||
|
|
||||||
|
SQLCmd = new SqlCommand(strQuery, DBConn);
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtReaderChk = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
dtResultChk.Clear();
|
||||||
|
dtResultChk.Load(dtReaderChk);
|
||||||
|
|
||||||
|
int nMaxStepVersion = Convert.ToInt32(dtResultChk.Rows[0]["LatestStepVersion"].ToString());
|
||||||
|
|
||||||
|
nCurrentTLMaxStepVersion = nMaxStepVersion;
|
||||||
|
|
||||||
|
dtReaderChk.Close();
|
||||||
|
|
||||||
|
//항상 최신 스텝 버전을 체크
|
||||||
|
strQuery = $"SELECT * FROM ( " +
|
||||||
|
$"SELECT *, ROW_NUMBER() OVER(PARTITION BY StepID ORDER BY StepVersion DESC) " +
|
||||||
|
$"AS RN FROM VRFY_TestListFileRelease WITH (NOLOCK, INDEX=[CSK_VRFY_Release_2]) WHERE TestListFileNo = {strGetTestListFileNo}) AS X " +
|
||||||
|
$"WHERE X.RN = 1 ORDER BY X.StepID ASC;";
|
||||||
|
|
||||||
|
SQLCmd = new SqlCommand(strQuery, DBConn);
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
dtResult.Clear();
|
||||||
|
dtResult.Load(dtReader);
|
||||||
|
|
||||||
|
dtReader.Close();
|
||||||
|
|
||||||
|
if (bOnlyNewStepVersion)
|
||||||
|
{
|
||||||
|
dtHistVersionTL = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//Hist 목록 검색 스텝 버전 리스트만 검색하여 사용
|
||||||
|
dtHistVersionTL = new DataTable();
|
||||||
|
|
||||||
|
strQuery = $"SELECT * FROM ( " +
|
||||||
|
$"SELECT *, ROW_NUMBER() OVER(PARTITION BY StepID ORDER BY StepVersion DESC) " +
|
||||||
|
$"AS RN FROM VRFY_TestListFileRelease WITH (NOLOCK, INDEX=[CSK_VRFY_Release_2]) WHERE TestListFileNo = {strGetTestListFileNo} AND StepVersion <= {nHistChkStepVer}) AS X " +
|
||||||
|
$"WHERE X.RN = 1 ORDER BY X.StepID ASC, StepVersion DESC;";
|
||||||
|
|
||||||
|
SQLCmd = new SqlCommand(strQuery, DBConn);
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtHistReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
dtHistVersionTL.Clear();
|
||||||
|
dtHistVersionTL.Load(dtHistReader);
|
||||||
|
|
||||||
|
dtHistReader.Close();
|
||||||
|
|
||||||
|
//PK 키 지정 >
|
||||||
|
//TODO : Primary Key Access Error > 업데이트 된 동일 스텝이 존재시 PK 지정 실패
|
||||||
|
DataColumn[] keysHistStepVer = new DataColumn[1];
|
||||||
|
keysHistStepVer[0] = new DataColumn();
|
||||||
|
keysHistStepVer[0] = dtHistVersionTL.Columns["StepID"];
|
||||||
|
|
||||||
|
dtHistVersionTL.PrimaryKey = keysHistStepVer;
|
||||||
|
|
||||||
|
/*
|
||||||
|
dtEachVersionTL = new DataTable[nMaxStepVersion + 1];
|
||||||
|
|
||||||
|
int nStartStepVer = nMaxStepVersion - 5;
|
||||||
|
|
||||||
|
if (nStartStepVer < 0)
|
||||||
|
nStartStepVer = 0;
|
||||||
|
|
||||||
|
for (int i = nStartStepVer; i <= nMaxStepVersion; i++)
|
||||||
|
{
|
||||||
|
dtEachVersionTL[i] = new DataTable();
|
||||||
|
|
||||||
|
strQuery = $"SELECT * FROM ( " +
|
||||||
|
$"SELECT *, ROW_NUMBER() OVER(PARTITION BY StepID ORDER BY StepVersion DESC) " +
|
||||||
|
$"AS RN FROM VRFY_TestListFileRelease WITH (NOLOCK, INDEX=[CSK_VRFY_Release_2]) WHERE TestListFileNo = {strGetTestListFileNo} AND StepVersion <= {i}) AS X " +
|
||||||
|
$"WHERE X.RN = 1 ORDER BY X.StepID ASC, StepVersion DESC;";
|
||||||
|
|
||||||
|
SQLCmd = new SqlCommand(strQuery, DBConn);
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
dtEachVersionTL[i].Clear();
|
||||||
|
dtEachVersionTL[i].Load(dtReader);
|
||||||
|
|
||||||
|
dtReader.Close();
|
||||||
|
|
||||||
|
//PK 키 지정 >
|
||||||
|
//TODO : Primary Key Access Error > 업데이트 된 동일 스텝이 존재시 PK 지정 실패
|
||||||
|
DataColumn[] keysEachStepVer = new DataColumn[1];
|
||||||
|
keysEachStepVer[0] = new DataColumn();
|
||||||
|
keysEachStepVer[0] = dtEachVersionTL[i].Columns["StepID"];
|
||||||
|
|
||||||
|
dtEachVersionTL[i].PrimaryKey = keysEachStepVer;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
//PK 키 지정
|
||||||
|
DataColumn[] keys1 = new DataColumn[1];
|
||||||
|
keys1[0] = new DataColumn();
|
||||||
|
keys1[0] = dtResult.Columns["StepID"];
|
||||||
|
|
||||||
|
dtResult.PrimaryKey = keys1;
|
||||||
|
|
||||||
|
return dtResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataTable RefineStepVersion(DataTable dtTestlist, SelectedDataCollection data)
|
||||||
|
{
|
||||||
|
var DuplicatedSteps = dtTestlist.AsEnumerable().GroupBy(x => x[eColTestlist.StepID.ToString()]).
|
||||||
|
Select(x => new { StepID = x.Key, Count = x.Count() }).Where(x => x.Count > 1);
|
||||||
|
|
||||||
|
foreach(var value in DuplicatedSteps)
|
||||||
|
{
|
||||||
|
List<DataRow> vdtRow = dtTestlist.AsEnumerable().Where(x => x[eColTestlist.StepID.ToString()].ToString() == value.StepID.ToString()).ToList();
|
||||||
|
DataRow vExcRow = vdtRow.Where(x => x[eColTestlist.StepVersion.ToString()].ToString() == data.StepVersion).FirstOrDefault();
|
||||||
|
|
||||||
|
if(vExcRow == null)
|
||||||
|
{
|
||||||
|
int nMaxVer = vdtRow.Max(x => Convert.ToInt32(x[eColTestlist.StepVersion.ToString()]));
|
||||||
|
|
||||||
|
vExcRow = vdtRow.Where(x => Convert.ToInt32(x[eColTestlist.StepVersion.ToString()]) == nMaxVer).FirstOrDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
vdtRow.Remove(vExcRow);
|
||||||
|
|
||||||
|
foreach (DataRow dtRow in vdtRow)
|
||||||
|
dtTestlist.Rows.Remove(dtRow);
|
||||||
|
}
|
||||||
|
|
||||||
|
return dtTestlist;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataTable SearchTestSummary(string[] testReqID, List<Int64> vnpSummaryNo)
|
||||||
|
{
|
||||||
|
DateTime start = DateTime.Now;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string requId = testReqID?.First();
|
||||||
|
if (string.IsNullOrEmpty(requId) == false && requId.Contains(";") == true || requId.Contains("@") == true)
|
||||||
|
{
|
||||||
|
start = Convert.ToDateTime(requId.Split(';', '@')[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
//start = DateTime
|
||||||
|
}
|
||||||
|
|
||||||
|
//string strGetDataTime = testReqID?.First().Split(';')[0];
|
||||||
|
|
||||||
|
//int nGetDataTimeYYYY = Convert.ToInt32(strGetDataTime.Substring(0, 4));
|
||||||
|
//int nGetDataTimemm = Convert.ToInt32(strGetDataTime.Substring(4, 2));
|
||||||
|
//int nGetDataTimeDD = Convert.ToInt32(strGetDataTime.Substring(6, 2));
|
||||||
|
//int nGetDataTimeHH = Convert.ToInt32(strGetDataTime.Substring(8, 2));
|
||||||
|
//int nGetDataTimeMM = Convert.ToInt32(strGetDataTime.Substring(10, 2));
|
||||||
|
//int nGetDataTimeSS = Convert.ToInt32(strGetDataTime.Substring(12, 2));
|
||||||
|
//int nGetDataTimeFFF = Convert.ToInt32(strGetDataTime.Substring(14, 3));
|
||||||
|
|
||||||
|
//DateTime start = new DateTime(nGetDataTimeYYYY, nGetDataTimemm, nGetDataTimeDD, nGetDataTimeHH, nGetDataTimeMM, nGetDataTimeSS, nGetDataTimeFFF);//Convert.ToDateTime(testReqID?.First().Split('@')[0]);
|
||||||
|
|
||||||
|
if (TestSummarySelectView == eSelectDataView.DataDocumentViewC1)
|
||||||
|
{
|
||||||
|
ShortTermDBConn = GetDBController.GetShortTermConn1();
|
||||||
|
|
||||||
|
LongTermDBConn = GetDBController.GetLongTermConn1().Where(x => x.Key.Contains(start.Year.ToString())).First().Value;
|
||||||
|
}
|
||||||
|
else if (TestSummarySelectView == eSelectDataView.DataDocumentViewC2)
|
||||||
|
{
|
||||||
|
ShortTermDBConn = GetDBController.GetShortTermConn2();
|
||||||
|
|
||||||
|
LongTermDBConn = GetDBController.GetLongTermConn2().Where(x => x.Key.Contains(start.Year.ToString())).First().Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
string strQuery = string.Empty;
|
||||||
|
|
||||||
|
strQuery += $"SELECT * ";
|
||||||
|
strQuery += $"FROM {DMCommon.SummaryLogTable} AS X ";
|
||||||
|
strQuery += $"INNER JOIN {DMCommon.ResultLogTable} AS Y ON X.No = Y.No ";
|
||||||
|
strQuery += $"WHERE ";
|
||||||
|
|
||||||
|
for (int i = 0; i < vnpSummaryNo.Count; i++)
|
||||||
|
{
|
||||||
|
strQuery += $"X.[No]=N'{vnpSummaryNo[i]}' ";
|
||||||
|
|
||||||
|
if (i != vnpSummaryNo.Count - 1)
|
||||||
|
strQuery += "OR ";
|
||||||
|
}
|
||||||
|
|
||||||
|
//for(int i=0 ; i<testReqID.Length ; i++)
|
||||||
|
//{
|
||||||
|
// strQuery += $"TestListCntID=N'{testReqID[i]}' ";
|
||||||
|
|
||||||
|
// if (i != testReqID.Length - 1)
|
||||||
|
// strQuery += "OR ";
|
||||||
|
//}
|
||||||
|
|
||||||
|
strQuery += $";";
|
||||||
|
|
||||||
|
if (DatabaseConnControl.ScanLongTermLog) SQLCmd = new SqlCommand(strQuery, LongTermDBConn);
|
||||||
|
else SQLCmd = new SqlCommand(strQuery, ShortTermDBConn);
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
dtResult.Load(dtReader);
|
||||||
|
dtReader.Close();
|
||||||
|
|
||||||
|
List<CPXV2Log.Tables.HIST_TestResult> list = new List<CPXV2Log.Tables.HIST_TestResult>();
|
||||||
|
for (int i=0; i<dtResult.Rows.Count; i++)
|
||||||
|
{
|
||||||
|
list.AddRange(JsonConvert.DeserializeObject<List<CPXV2Log.Tables.HIST_TestResult>>(dtResult.Rows[i]["LogData"].ToString().GzipDecompress()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
strQuery += $"SELECT ";
|
||||||
|
strQuery += $"Y.[StepID], ";
|
||||||
|
strQuery += $"AVG(CASE WHEN (Y.[MeasValStr] = NULL OR Y.[MeasValStr] = '') AND (Y.[Message] = NULL OR Y.[Message] = '') AND (Y.[MeasVal] != 0.00000 AND Y.[Result] != 'NONE') THEN Y.[MeasVal] ELSE NULL END) AS Average, ";
|
||||||
|
strQuery += $"COUNT(Y.[Result]) AS Total, ";
|
||||||
|
strQuery += $"COUNT(CASE WHEN Y.[Result] = 'OK' THEN 1 END) AS OK, ";
|
||||||
|
strQuery += $"COUNT(CASE WHEN Y.[Result] = 'NG' OR X.[Result] = 'ERROR' THEN 1 END) AS NG ";
|
||||||
|
strQuery += $" ";
|
||||||
|
strQuery += $"FROM [{DMCommon.SummaryLogTable}] AS X WITH(NOLOCK) ";
|
||||||
|
strQuery += $"INNER JOIN [{strTableTerm}] AS Y WITH(NOLOCK) ON (Y.AccessKey BETWEEN X.AccessStart AND X.AccessEnd) ";
|
||||||
|
*/
|
||||||
|
|
||||||
|
dtResult = list.GroupBy(x => x.StepID).Select(y => new
|
||||||
|
{
|
||||||
|
StepID = y.First().StepID,
|
||||||
|
Average = GetAvg(y.ToList()),
|
||||||
|
Total = y.Count(),
|
||||||
|
OK = y.Count(z => !z.Result.Contains("NG") && !z.Result.Contains("ERROR")),
|
||||||
|
NG = y.Count() - y.Count(z => !z.Result.Contains("NG") && !z.Result.Contains("ERROR"))
|
||||||
|
}).OrderBy(y => y.StepID).ToDataTable();
|
||||||
|
|
||||||
|
return dtResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
string GetAvg(List<CPXV2Log.Tables.HIST_TestResult> res)
|
||||||
|
{
|
||||||
|
CPXV2Log.Tables.HIST_TestResult value = res.First();
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(value.MeasValStr) &&
|
||||||
|
string.IsNullOrEmpty(value.Message) &&
|
||||||
|
((value.MeasVal != 0) &&
|
||||||
|
string.Compare(value.Result, "NONE") != 0))
|
||||||
|
return res.Average(x => x.MeasVal).ToString();
|
||||||
|
|
||||||
|
string strDefaultValue = string.Empty;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(value.MeasValStr) == false)
|
||||||
|
strDefaultValue = value.MeasValStr;
|
||||||
|
else if (string.IsNullOrEmpty(value.Message) == false)
|
||||||
|
strDefaultValue = value.Message;
|
||||||
|
|
||||||
|
return strDefaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable GetRawResult(DetailTestDataCollection data)
|
||||||
|
{
|
||||||
|
DataTable dtResult = new DataTable();
|
||||||
|
string strQuery = string.Empty;
|
||||||
|
|
||||||
|
if (data == null)
|
||||||
|
return dtResult;
|
||||||
|
|
||||||
|
|
||||||
|
SQLCmd = new SqlCommand(strQuery, ShortTermDBConn);
|
||||||
|
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||||
|
|
||||||
|
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||||
|
|
||||||
|
dtResult.Load(dtReader);
|
||||||
|
|
||||||
|
dtReader.Close();
|
||||||
|
|
||||||
|
return dtResult;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using SystemX.Product.TRA.UIControl;
|
||||||
|
using static SystemX.Product.ALIS.UI.View.ViewCfg;
|
||||||
|
|
||||||
|
namespace SystemX.Product.ALIS.Interface
|
||||||
|
{
|
||||||
|
public interface IChildController
|
||||||
|
{
|
||||||
|
void SetOverview();
|
||||||
|
|
||||||
|
void SetDetailOverview();
|
||||||
|
|
||||||
|
void SetHistoryView();
|
||||||
|
|
||||||
|
void SetSummaryView();
|
||||||
|
|
||||||
|
void CallDetailOverView();
|
||||||
|
|
||||||
|
void AnnounceContentsType(eContents GetType);
|
||||||
|
|
||||||
|
bool GetOverviewMergeState();
|
||||||
|
|
||||||
|
SelectedDataCollection GetSelectDataOverView(int nDataValue = int.MaxValue);
|
||||||
|
|
||||||
|
void SetNgHistView(eContents GetCallType);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
using static SystemX.Product.CP.TRA.Commons;
|
||||||
|
|
||||||
|
namespace SystemX.Product.ALIS.Interface
|
||||||
|
{
|
||||||
|
interface IChildSubscribe
|
||||||
|
{
|
||||||
|
void setLoginStateNotice(LoginAccessLevel CurrentAccessLevel, bool bLoginState);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using SystemX.Product.ALIS.UI;
|
||||||
|
using static SystemX.Product.CP.TRA.MainForm;
|
||||||
|
|
||||||
|
namespace SystemX.Product.ALIS.Interface
|
||||||
|
{
|
||||||
|
public interface IDataBaseController
|
||||||
|
{
|
||||||
|
SqlConnection GetMainConn();
|
||||||
|
|
||||||
|
SqlConnection GetShortTermConn1();
|
||||||
|
|
||||||
|
Dictionary<string, SqlConnection> GetLongTermConn1();
|
||||||
|
|
||||||
|
SqlConnection GetShortTermConn2();
|
||||||
|
|
||||||
|
Dictionary<string, SqlConnection> GetLongTermConn2();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,55 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using SystemX.Product.ALIS.UI;
|
||||||
|
using static SystemX.Product.CP.TRA.MainForm;
|
||||||
|
|
||||||
|
namespace SystemX.Product.ALIS.Interface
|
||||||
|
{
|
||||||
|
public enum eDbTableList
|
||||||
|
{
|
||||||
|
NONE,
|
||||||
|
STAT_Host,
|
||||||
|
STAT_User,
|
||||||
|
STAT_TestCode,
|
||||||
|
|
||||||
|
PROD_Group,
|
||||||
|
PROD_TestList,
|
||||||
|
PROD_Release,
|
||||||
|
|
||||||
|
VRFY_Release,
|
||||||
|
HIST_LatestStepVersion,
|
||||||
|
|
||||||
|
HIST_LatestAccessKey,
|
||||||
|
HIST_Summary,
|
||||||
|
HIST_TestList,
|
||||||
|
HIST_TestResult,
|
||||||
|
HIST_TestResultShrotTerm,
|
||||||
|
HIST_TestResultLongTerm
|
||||||
|
}
|
||||||
|
public interface IDataController
|
||||||
|
{
|
||||||
|
SqlCommand GetConnSqlCmd();
|
||||||
|
|
||||||
|
bool GetDuplicateCheck(string strTableName, string strFieldName, string strValue);
|
||||||
|
|
||||||
|
UserInfo GetLoginInfo();
|
||||||
|
|
||||||
|
//TODO : DB CONTROL
|
||||||
|
DataTable GetTable(string strQueryText);
|
||||||
|
|
||||||
|
DataTable GetTable(eDbTableList tblName);
|
||||||
|
|
||||||
|
DataTable GetTable(eDbTableList tblName, string strColName, string strParameter);
|
||||||
|
|
||||||
|
string GetServerDateTimeString();
|
||||||
|
|
||||||
|
DateTime GetServerDateTime();
|
||||||
|
|
||||||
|
string SetConvertDateTime(string strGetConvertText);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
using static SystemX.Product.CP.TRA.Commons;
|
||||||
|
|
||||||
|
namespace SystemX.Product.ALIS.Interface
|
||||||
|
{
|
||||||
|
interface IUserControlSubscribe
|
||||||
|
{
|
||||||
|
void setLoginStateNotice(LoginAccessLevel CurrentAccessLevel, bool bLoginState);
|
||||||
|
}
|
||||||
|
}
|
||||||
1169
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/MainForm.Designer.cs
generated
Normal file
2200
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/MainForm.cs
Normal file
149734
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/MainForm.resx
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
DEFAULT
|
||||||
|
HEX
|
||||||
|
BIN
|
||||||
|
STR
|
||||||
|
STRING
|
||||||
|
STRCMP
|
||||||
|
ASCII
|
||||||
25
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/Program.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using DevExpress.UserSkins;
|
||||||
|
using DevExpress.Skins;
|
||||||
|
using DevExpress.LookAndFeel;
|
||||||
|
using SystemX.Product.TRA;
|
||||||
|
|
||||||
|
namespace SystemX.Product.CP.TRA
|
||||||
|
{
|
||||||
|
static class Program
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The main entry point for the application.
|
||||||
|
/// </summary>
|
||||||
|
[STAThread]
|
||||||
|
static void Main()
|
||||||
|
{
|
||||||
|
Application.EnableVisualStyles();
|
||||||
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
|
Application.Run(new MainForm());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,32 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("SystemX.Product.CP.ALIS_Analysis")]
|
||||||
|
[assembly: AssemblyDescription("SystemX")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("SystemX")]
|
||||||
|
[assembly: AssemblyProduct("SystemX.Product.CP.ALIS_Analysis")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2022")]
|
||||||
|
[assembly: AssemblyTrademark("CP-ServerX")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("9006f149-aa49-4b8e-ba69-386d945fa738")]
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("20.22.11.29")]
|
||||||
|
[assembly: AssemblyFileVersion("20.22.11.29")]
|
||||||
173
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/Properties/Resources.Designer.cs
generated
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// 이 코드는 도구를 사용하여 생성되었습니다.
|
||||||
|
// 런타임 버전:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||||
|
// 이러한 변경 내용이 손실됩니다.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.Properties {
|
||||||
|
using System;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
|
||||||
|
/// </summary>
|
||||||
|
// 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder
|
||||||
|
// 클래스에서 자동으로 생성되었습니다.
|
||||||
|
// 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을
|
||||||
|
// 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오.
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
internal class Resources {
|
||||||
|
|
||||||
|
private static global::System.Resources.ResourceManager resourceMan;
|
||||||
|
|
||||||
|
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||||
|
|
||||||
|
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||||
|
internal Resources() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||||
|
get {
|
||||||
|
if (object.ReferenceEquals(resourceMan, null)) {
|
||||||
|
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SystemX.Product.TRA.Properties.Resources", typeof(Resources).Assembly);
|
||||||
|
resourceMan = temp;
|
||||||
|
}
|
||||||
|
return resourceMan;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을
|
||||||
|
/// 재정의합니다.
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Globalization.CultureInfo Culture {
|
||||||
|
get {
|
||||||
|
return resourceCulture;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
resourceCulture = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap ExplodedPie3D_16x16 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("ExplodedPie3D_16x16", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Find_16x16 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Find_16x16", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Find2_16x16 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Find2_16x16", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap HistoryItem_16x16 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("HistoryItem_16x16", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap IpAddress {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("IpAddress", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Kefico_CI {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Kefico_CI", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Linear_16x16 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Linear_16x16", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap ModelEditor_DetailView {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("ModelEditor_DetailView", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Password {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Password", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap UpdateField_16x16 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("UpdateField_16x16", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap UpdateTableOfContents_16x16 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("UpdateTableOfContents_16x16", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,154 @@
|
|||||||
|
<?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>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="UpdateTableOfContents_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\UpdateTableOfContents_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Password" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Password.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Linear_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Linear_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="HistoryItem_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\HistoryItem_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Kefico_CI" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Kefico CI.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="IpAddress" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\IpAddress.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="UpdateField_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\UpdateField_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Find_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Find_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="ModelEditor_DetailView" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\ModelEditor_DetailView.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="ExplodedPie3D_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\ExplodedPie3D_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Find2_16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Find2_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
38
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/Properties/Settings.Designer.cs
generated
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// 이 코드는 도구를 사용하여 생성되었습니다.
|
||||||
|
// 런타임 버전:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||||
|
// 이러한 변경 내용이 손실됩니다.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.Properties {
|
||||||
|
|
||||||
|
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
|
||||||
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||||
|
|
||||||
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
|
|
||||||
|
public static Settings Default {
|
||||||
|
get {
|
||||||
|
return defaultInstance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("Coffee")]
|
||||||
|
public string ApplicationThemeName {
|
||||||
|
get {
|
||||||
|
return ((string)(this["ApplicationThemeName"]));
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
this["ApplicationThemeName"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="SystemX.Product.TRA.Properties" GeneratedClassName="Settings">
|
||||||
|
<Profiles />
|
||||||
|
<Settings>
|
||||||
|
<Setting Name="ApplicationThemeName" Type="System.String" Scope="User">
|
||||||
|
<Value Profile="(Default)">Coffee</Value>
|
||||||
|
</Setting>
|
||||||
|
</Settings>
|
||||||
|
</SettingsFile>
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
DevExpress.Patch.InMemoryPatch, DevExpress.Patch.Common, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7fc7bfca2443de66
|
||||||
|
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit, DevExpress.XtraEditors.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraEditors.Repository.RepositoryItemProgressBar, DevExpress.XtraEditors.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraBars.Docking2010.DocumentManager, DevExpress.XtraBars.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraCharts.ChartControl, DevExpress.XtraCharts.v20.2.UI, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraVerticalGrid.VGridControl, DevExpress.XtraVerticalGrid.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraEditors.Repository.RepositoryItemDateEdit, DevExpress.XtraEditors.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
After Width: | Height: | Size: 763 B |
|
After Width: | Height: | Size: 293 B |
|
After Width: | Height: | Size: 828 B |
|
After Width: | Height: | Size: 1000 B |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 659 B |
|
After Width: | Height: | Size: 488 B |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 651 B |
|
After Width: | Height: | Size: 700 B |
340
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/Subs/Commons.cs
Normal file
@ -0,0 +1,340 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using SystemX.Net.Platform.Common.ExtensionMethods;
|
||||||
|
|
||||||
|
using static SystemX.Product.CP.TRA.Commons;
|
||||||
|
|
||||||
|
namespace SystemX.Product.CP.TRA
|
||||||
|
{
|
||||||
|
public class AccessLevelAlarm : EventArgs
|
||||||
|
{
|
||||||
|
public AccessLevelAlarm(LoginAccessLevel CurrentAccessLevel, bool bLoginState)
|
||||||
|
{
|
||||||
|
this.CurrentLevel = CurrentAccessLevel;
|
||||||
|
|
||||||
|
this.GetLoginState = bLoginState;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LoginAccessLevel CurrentLevel { get; private set; }
|
||||||
|
|
||||||
|
public bool GetLoginState { get; private set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Commons
|
||||||
|
{
|
||||||
|
static public bool DEBUG_MODE = false;
|
||||||
|
|
||||||
|
[Flags]
|
||||||
|
public enum LoginAccessLevel
|
||||||
|
{
|
||||||
|
None = 0x01,
|
||||||
|
Basic = 0x02,
|
||||||
|
Admin = 0x04
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum eSelectDataView
|
||||||
|
{
|
||||||
|
DataDocumentViewC1 = 0,
|
||||||
|
DataDocumentViewC2
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum eOverviewModelNameInfo
|
||||||
|
{
|
||||||
|
L = 0,
|
||||||
|
P1,
|
||||||
|
P2
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool isHasRow(DataSet ds)
|
||||||
|
{
|
||||||
|
return (ds != null) ? ds.Tables.Cast<DataTable>().Any(table => table.Rows.Count != 0) : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool isHasRow(DataTable dt)
|
||||||
|
{
|
||||||
|
return (dt != null) ? dt.Rows.Count > 0 : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsValidEmail(string email)
|
||||||
|
{
|
||||||
|
bool valid = Regex.IsMatch(email, @"[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?");
|
||||||
|
|
||||||
|
return valid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool CheckGateLetter(char letter)
|
||||||
|
{
|
||||||
|
Regex engRegex = new Regex(@"[A-Z]");
|
||||||
|
|
||||||
|
return engRegex.IsMatch(letter.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte[] ConvertHexStringToByte(string convertString)
|
||||||
|
{
|
||||||
|
byte[] convertArr = new byte[convertString.Length / 2];
|
||||||
|
|
||||||
|
for (int i = 0; i < convertArr.Length; i++)
|
||||||
|
{
|
||||||
|
convertArr[i] = Convert.ToByte(convertString.Substring(i * 2, 2), 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
return convertArr;
|
||||||
|
}
|
||||||
|
|
||||||
|
[DllImport("msvcrt.dll", CallingConvention = CallingConvention.Cdecl)]
|
||||||
|
static extern int memcmp(byte[] b1, byte[] b2, long count);
|
||||||
|
|
||||||
|
public static bool ByteArrayCompare(byte[] b1, byte[] b2)
|
||||||
|
{
|
||||||
|
if (b1 == null || b2 == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// Validate buffers are the same length.
|
||||||
|
// This also ensures that the count does not exceed the length of either buffer.
|
||||||
|
return b1.Length == b2.Length && memcmp(b1, b2, b1.Length) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static T ConvertTextToTryValue<T>(string strText, object objFailValue)
|
||||||
|
{
|
||||||
|
object obj;
|
||||||
|
obj = typeof(T);
|
||||||
|
|
||||||
|
int iGetValue = 0;
|
||||||
|
uint uiGetValue = 0;
|
||||||
|
double dGetValue = 0;
|
||||||
|
|
||||||
|
if (obj.ToString().IndexOf("Int") >= 0)
|
||||||
|
{
|
||||||
|
if (!int.TryParse(strText, out iGetValue))
|
||||||
|
obj = objFailValue;
|
||||||
|
else
|
||||||
|
obj = iGetValue;
|
||||||
|
}
|
||||||
|
if (obj.ToString().IndexOf("UInt") >= 0)
|
||||||
|
{
|
||||||
|
if (!uint.TryParse(strText, out uiGetValue))
|
||||||
|
obj = objFailValue;
|
||||||
|
else
|
||||||
|
obj = uiGetValue;
|
||||||
|
}
|
||||||
|
else if (obj.ToString().IndexOf("Double") >= 0)
|
||||||
|
{
|
||||||
|
if (!double.TryParse(strText, out dGetValue))
|
||||||
|
obj = objFailValue;
|
||||||
|
else
|
||||||
|
obj = dGetValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (T)Convert.ChangeType(obj, typeof(T));
|
||||||
|
}
|
||||||
|
|
||||||
|
public class INICtrl
|
||||||
|
{
|
||||||
|
public static int MAX_INFORMATION = 10;
|
||||||
|
|
||||||
|
protected static int FILE_ATTRIBUTE_HIDDEN = 2;
|
||||||
|
|
||||||
|
[DllImport("kernel32")]
|
||||||
|
protected static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
|
||||||
|
[DllImport("kernel32")]
|
||||||
|
protected static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
|
||||||
|
[DllImport("kernel32")]
|
||||||
|
protected static extern int SetFileAttributes(string lpFileName, int dwFileAttributes);
|
||||||
|
|
||||||
|
public virtual void SetValue(string Section, string Key, string Value, string path = "")
|
||||||
|
{
|
||||||
|
WritePrivateProfileString(Section, Key, Value, path);
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual string GetValue(string Section, string Key, string Default, string path = "")
|
||||||
|
{
|
||||||
|
StringBuilder temp = new StringBuilder(255);
|
||||||
|
int i = GetPrivateProfileString(Section, Key, Default, temp, 255, path);
|
||||||
|
if (temp != null && temp.Length > 0) return temp.ToString();
|
||||||
|
else return Default;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ConnectInfoINICtrl : INICtrl
|
||||||
|
{
|
||||||
|
private static string ConnectHistoryINIPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\ConnectConfig_TRA_CPXV2.ini";
|
||||||
|
|
||||||
|
public ConnectInfoINICtrl()
|
||||||
|
{
|
||||||
|
if (File.Exists(ConnectHistoryINIPath) == false)
|
||||||
|
{
|
||||||
|
using (File.Create(ConnectHistoryINIPath)) { }
|
||||||
|
|
||||||
|
SetFileAttributes(ConnectHistoryINIPath, FILE_ATTRIBUTE_HIDDEN);
|
||||||
|
|
||||||
|
SetValue("LastestConnect", "Info", "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GetUserTheme()
|
||||||
|
{
|
||||||
|
return GetValue("UserSelectTheme", "ThemeName", "Basic");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetUserTheme(string strThemeName)
|
||||||
|
{
|
||||||
|
SetValue("UserSelectTheme", "ThemeName", strThemeName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetLastestConnectInfo(string strSuccessInfo1, string strSuccessInfo2, string strSuccessInfo3,
|
||||||
|
bool bCheckedInfo, int nOverInfoC1, int nOverInfoC2)
|
||||||
|
{
|
||||||
|
string strSetUpperText = strSuccessInfo1.ToUpper();
|
||||||
|
|
||||||
|
string[] strInfoSet = null;
|
||||||
|
|
||||||
|
int? findIdx = null;
|
||||||
|
|
||||||
|
if (strSuccessInfo1.CompareTo("") == 0 ||
|
||||||
|
strSuccessInfo1.CompareTo("127.0.0.1") == 0 ||
|
||||||
|
strSetUpperText.CompareTo("LOCALHOST") == 0 ||
|
||||||
|
strSuccessInfo1.IndexOf("If you do not enter the ip, will be connected to the local area.") >= 0)
|
||||||
|
{
|
||||||
|
;//
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetValue("LastestConnect", "Info1", strSuccessInfo1);
|
||||||
|
|
||||||
|
strInfoSet = new string[MAX_INFORMATION];
|
||||||
|
|
||||||
|
for (int i = 0; i < MAX_INFORMATION; i++)
|
||||||
|
strInfoSet[i] = GetValue("HistoryConnect" + i.ToString(), "Info1", "");
|
||||||
|
|
||||||
|
findIdx = strInfoSet.FindIndex(x => x == strSuccessInfo1);
|
||||||
|
|
||||||
|
if (findIdx == null)
|
||||||
|
{
|
||||||
|
for (int i = MAX_INFORMATION - 1; i > 0; i--)
|
||||||
|
{
|
||||||
|
if (i > 0)
|
||||||
|
strInfoSet[i] = strInfoSet[i - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
strInfoSet[0] = strSuccessInfo1;
|
||||||
|
|
||||||
|
for (int i = 0; i < MAX_INFORMATION; i++)
|
||||||
|
SetValue("HistoryConnect" + i.ToString(), "Info1", strInfoSet[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
strSetUpperText = strSuccessInfo2.ToUpper();
|
||||||
|
|
||||||
|
if (strSuccessInfo2.CompareTo("") == 0 ||
|
||||||
|
strSuccessInfo2.CompareTo("127.0.0.1") == 0 ||
|
||||||
|
strSetUpperText.CompareTo("LOCALHOST") == 0 ||
|
||||||
|
strSuccessInfo2.IndexOf("If you do not enter the ip, will be connected to the local area.") >= 0)
|
||||||
|
{
|
||||||
|
;//
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetValue("LastestConnect", "Info2", strSuccessInfo2);
|
||||||
|
|
||||||
|
strInfoSet = new string[MAX_INFORMATION];
|
||||||
|
|
||||||
|
for (int i = 0; i < MAX_INFORMATION; i++)
|
||||||
|
strInfoSet[i] = GetValue("HistoryConnect" + i.ToString(), "Info2", "");
|
||||||
|
|
||||||
|
findIdx = strInfoSet.FindIndex(x => x == strSuccessInfo2);
|
||||||
|
|
||||||
|
if (findIdx == null)
|
||||||
|
{
|
||||||
|
for (int i = MAX_INFORMATION - 1; i > 0; i--)
|
||||||
|
{
|
||||||
|
if (i > 0)
|
||||||
|
strInfoSet[i] = strInfoSet[i - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
strInfoSet[0] = strSuccessInfo2;
|
||||||
|
|
||||||
|
for (int i = 0; i < MAX_INFORMATION; i++)
|
||||||
|
SetValue("HistoryConnect" + i.ToString(), "Info2", strInfoSet[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
if (bCheckedInfo)
|
||||||
|
SetValue("LastestConnect", "UseDataServer2", "True");
|
||||||
|
else
|
||||||
|
SetValue("LastestConnect", "UseDataServer2", "False");
|
||||||
|
//
|
||||||
|
SetValue("LastestConnect", "OverviewModelInfoC1", nOverInfoC1.ToString());
|
||||||
|
SetValue("LastestConnect", "OverviewModelInfoC2", nOverInfoC2.ToString());
|
||||||
|
//
|
||||||
|
if (bCheckedInfo == false)
|
||||||
|
{
|
||||||
|
;//
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
strSetUpperText = strSuccessInfo3.ToUpper();
|
||||||
|
|
||||||
|
if (strSuccessInfo3.CompareTo("") == 0 ||
|
||||||
|
strSuccessInfo3.CompareTo("127.0.0.1") == 0 ||
|
||||||
|
strSetUpperText.CompareTo("LOCALHOST") == 0 ||
|
||||||
|
strSuccessInfo3.IndexOf("If you do not enter the ip, will be connected to the local area.") >= 0)
|
||||||
|
{
|
||||||
|
;//
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetValue("LastestConnect", "Info3", strSuccessInfo3);
|
||||||
|
|
||||||
|
strInfoSet = new string[MAX_INFORMATION];
|
||||||
|
|
||||||
|
for (int i = 0; i < MAX_INFORMATION; i++)
|
||||||
|
strInfoSet[i] = GetValue("HistoryConnect" + i.ToString(), "Info3", "");
|
||||||
|
|
||||||
|
findIdx = strInfoSet.FindIndex(x => x == strSuccessInfo3);
|
||||||
|
|
||||||
|
if (findIdx == null)
|
||||||
|
{
|
||||||
|
for (int i = MAX_INFORMATION - 1; i > 0; i--)
|
||||||
|
{
|
||||||
|
if (i > 0)
|
||||||
|
strInfoSet[i] = strInfoSet[i - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
strInfoSet[0] = strSuccessInfo3;
|
||||||
|
|
||||||
|
for (int i = 0; i < MAX_INFORMATION; i++)
|
||||||
|
SetValue("HistoryConnect" + i.ToString(), "Info3", strInfoSet[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void SetValue(string Section, string Key, string Value, string path = "")
|
||||||
|
{
|
||||||
|
if (path.Length <= 0)
|
||||||
|
path = ConnectHistoryINIPath;
|
||||||
|
|
||||||
|
WritePrivateProfileString(Section, Key, Value, path);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string GetValue(string Section, string Key, string Default, string path = "")
|
||||||
|
{
|
||||||
|
if (path.Length <= 0)
|
||||||
|
path = ConnectHistoryINIPath;
|
||||||
|
|
||||||
|
StringBuilder temp = new StringBuilder(255);
|
||||||
|
int i = GetPrivateProfileString(Section, Key, Default, temp, 255, path);
|
||||||
|
if (temp != null && temp.Length > 0) return temp.ToString();
|
||||||
|
else return Default;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
390
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/Subs/ConnectForm.Designer.cs
generated
Normal file
@ -0,0 +1,390 @@
|
|||||||
|
|
||||||
|
namespace SystemX.Product.ALIS.UI.Subs
|
||||||
|
{
|
||||||
|
partial class ConnectForm
|
||||||
|
{
|
||||||
|
/// <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.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConnectForm));
|
||||||
|
this.labelControl1 = new DevExpress.XtraEditors.LabelControl();
|
||||||
|
this.simpleButtonOK = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.simpleButtonReset = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
|
this.panel3 = new System.Windows.Forms.Panel();
|
||||||
|
this.maskedTextBoxTLIP = new DevExpress.XtraEditors.ComboBoxEdit();
|
||||||
|
this.panel4 = new System.Windows.Forms.Panel();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.panel5 = new System.Windows.Forms.Panel();
|
||||||
|
this.maskedTextBoxDT1IP = new DevExpress.XtraEditors.ComboBoxEdit();
|
||||||
|
this.panel6 = new System.Windows.Forms.Panel();
|
||||||
|
this.comboBoxOverviewModel1 = new System.Windows.Forms.ComboBox();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.panel7 = new System.Windows.Forms.Panel();
|
||||||
|
this.maskedTextBoxDT2IP = new DevExpress.XtraEditors.ComboBoxEdit();
|
||||||
|
this.panel8 = new System.Windows.Forms.Panel();
|
||||||
|
this.comboBoxOverviewModel2 = new System.Windows.Forms.ComboBox();
|
||||||
|
this.checkBoxUseDT2 = new System.Windows.Forms.CheckBox();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.panel1.SuspendLayout();
|
||||||
|
this.panel3.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.maskedTextBoxTLIP.Properties)).BeginInit();
|
||||||
|
this.panel4.SuspendLayout();
|
||||||
|
this.panel5.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.maskedTextBoxDT1IP.Properties)).BeginInit();
|
||||||
|
this.panel6.SuspendLayout();
|
||||||
|
this.panel7.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.maskedTextBoxDT2IP.Properties)).BeginInit();
|
||||||
|
this.panel8.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// labelControl1
|
||||||
|
//
|
||||||
|
this.labelControl1.Appearance.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.labelControl1.Appearance.Font = new System.Drawing.Font("Times New Roman", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.labelControl1.Appearance.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.labelControl1.Appearance.Options.UseBackColor = true;
|
||||||
|
this.labelControl1.Appearance.Options.UseFont = true;
|
||||||
|
this.labelControl1.Appearance.Options.UseForeColor = true;
|
||||||
|
this.labelControl1.AutoEllipsis = true;
|
||||||
|
this.labelControl1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
|
||||||
|
this.labelControl1.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.labelControl1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.labelControl1.Name = "labelControl1";
|
||||||
|
this.labelControl1.Size = new System.Drawing.Size(366, 36);
|
||||||
|
this.labelControl1.TabIndex = 2;
|
||||||
|
this.labelControl1.Text = "Input - Access information";
|
||||||
|
//
|
||||||
|
// simpleButtonOK
|
||||||
|
//
|
||||||
|
this.simpleButtonOK.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
|
||||||
|
this.simpleButtonOK.Appearance.Options.UseFont = true;
|
||||||
|
this.simpleButtonOK.Dock = System.Windows.Forms.DockStyle.Right;
|
||||||
|
this.simpleButtonOK.Location = new System.Drawing.Point(1071, 0);
|
||||||
|
this.simpleButtonOK.Name = "simpleButtonOK";
|
||||||
|
this.simpleButtonOK.Size = new System.Drawing.Size(66, 64);
|
||||||
|
this.simpleButtonOK.TabIndex = 4;
|
||||||
|
this.simpleButtonOK.Text = "OK";
|
||||||
|
this.simpleButtonOK.Click += new System.EventHandler(this.simpleButtonOK_Click);
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
this.panel1.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.panel1.Controls.Add(this.simpleButtonReset);
|
||||||
|
this.panel1.Controls.Add(this.simpleButtonOK);
|
||||||
|
this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||||
|
this.panel1.Location = new System.Drawing.Point(0, 396);
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
this.panel1.Size = new System.Drawing.Size(1137, 64);
|
||||||
|
this.panel1.TabIndex = 5;
|
||||||
|
//
|
||||||
|
// simpleButtonReset
|
||||||
|
//
|
||||||
|
this.simpleButtonReset.Appearance.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
|
||||||
|
this.simpleButtonReset.Appearance.Options.UseFont = true;
|
||||||
|
this.simpleButtonReset.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.simpleButtonReset.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.simpleButtonReset.Name = "simpleButtonReset";
|
||||||
|
this.simpleButtonReset.Size = new System.Drawing.Size(66, 64);
|
||||||
|
this.simpleButtonReset.TabIndex = 5;
|
||||||
|
this.simpleButtonReset.Text = "Reset";
|
||||||
|
this.simpleButtonReset.Click += new System.EventHandler(this.simpleButtonReset_Click);
|
||||||
|
//
|
||||||
|
// panel2
|
||||||
|
//
|
||||||
|
this.panel2.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.panel2.Location = new System.Drawing.Point(0, 36);
|
||||||
|
this.panel2.Name = "panel2";
|
||||||
|
this.panel2.Size = new System.Drawing.Size(1137, 3);
|
||||||
|
this.panel2.TabIndex = 6;
|
||||||
|
//
|
||||||
|
// panel3
|
||||||
|
//
|
||||||
|
this.panel3.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.panel3.Controls.Add(this.maskedTextBoxTLIP);
|
||||||
|
this.panel3.Controls.Add(this.panel4);
|
||||||
|
this.panel3.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.panel3.Location = new System.Drawing.Point(0, 39);
|
||||||
|
this.panel3.Name = "panel3";
|
||||||
|
this.panel3.Size = new System.Drawing.Size(1137, 108);
|
||||||
|
this.panel3.TabIndex = 8;
|
||||||
|
//
|
||||||
|
// maskedTextBoxTLIP
|
||||||
|
//
|
||||||
|
this.maskedTextBoxTLIP.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.maskedTextBoxTLIP.EditValue = "If you do not enter the ip, will be connected to the local area.";
|
||||||
|
this.maskedTextBoxTLIP.Location = new System.Drawing.Point(0, 65);
|
||||||
|
this.maskedTextBoxTLIP.Name = "maskedTextBoxTLIP";
|
||||||
|
this.maskedTextBoxTLIP.Properties.Appearance.BackColor = System.Drawing.Color.White;
|
||||||
|
this.maskedTextBoxTLIP.Properties.Appearance.Font = new System.Drawing.Font("Times New Roman", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.maskedTextBoxTLIP.Properties.Appearance.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.maskedTextBoxTLIP.Properties.Appearance.Options.UseBackColor = true;
|
||||||
|
this.maskedTextBoxTLIP.Properties.Appearance.Options.UseFont = true;
|
||||||
|
this.maskedTextBoxTLIP.Properties.Appearance.Options.UseForeColor = true;
|
||||||
|
this.maskedTextBoxTLIP.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
|
||||||
|
new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
|
||||||
|
this.maskedTextBoxTLIP.Size = new System.Drawing.Size(1137, 28);
|
||||||
|
this.maskedTextBoxTLIP.TabIndex = 8;
|
||||||
|
this.maskedTextBoxTLIP.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.maskedTextBoxIP_PreviewKeyDown);
|
||||||
|
//
|
||||||
|
// panel4
|
||||||
|
//
|
||||||
|
this.panel4.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.panel4.Controls.Add(this.label2);
|
||||||
|
this.panel4.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.panel4.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.panel4.Name = "panel4";
|
||||||
|
this.panel4.Size = new System.Drawing.Size(1137, 65);
|
||||||
|
this.panel4.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||||
|
this.label2.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.label2.Font = new System.Drawing.Font("Times New Roman", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.label2.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.label2.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(1137, 51);
|
||||||
|
this.label2.TabIndex = 9;
|
||||||
|
this.label2.Text = "TestList Server";
|
||||||
|
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
|
//
|
||||||
|
// panel5
|
||||||
|
//
|
||||||
|
this.panel5.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.panel5.Controls.Add(this.maskedTextBoxDT1IP);
|
||||||
|
this.panel5.Controls.Add(this.panel6);
|
||||||
|
this.panel5.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.panel5.Location = new System.Drawing.Point(0, 147);
|
||||||
|
this.panel5.Name = "panel5";
|
||||||
|
this.panel5.Size = new System.Drawing.Size(1137, 129);
|
||||||
|
this.panel5.TabIndex = 9;
|
||||||
|
//
|
||||||
|
// maskedTextBoxDT1IP
|
||||||
|
//
|
||||||
|
this.maskedTextBoxDT1IP.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.maskedTextBoxDT1IP.EditValue = "If you do not enter the ip, will be connected to the local area.";
|
||||||
|
this.maskedTextBoxDT1IP.Location = new System.Drawing.Point(0, 85);
|
||||||
|
this.maskedTextBoxDT1IP.Name = "maskedTextBoxDT1IP";
|
||||||
|
this.maskedTextBoxDT1IP.Properties.Appearance.BackColor = System.Drawing.Color.White;
|
||||||
|
this.maskedTextBoxDT1IP.Properties.Appearance.Font = new System.Drawing.Font("Times New Roman", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.maskedTextBoxDT1IP.Properties.Appearance.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.maskedTextBoxDT1IP.Properties.Appearance.Options.UseBackColor = true;
|
||||||
|
this.maskedTextBoxDT1IP.Properties.Appearance.Options.UseFont = true;
|
||||||
|
this.maskedTextBoxDT1IP.Properties.Appearance.Options.UseForeColor = true;
|
||||||
|
this.maskedTextBoxDT1IP.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
|
||||||
|
new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
|
||||||
|
this.maskedTextBoxDT1IP.Size = new System.Drawing.Size(1137, 28);
|
||||||
|
this.maskedTextBoxDT1IP.TabIndex = 8;
|
||||||
|
this.maskedTextBoxDT1IP.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.maskedTextBoxIP_PreviewKeyDown);
|
||||||
|
//
|
||||||
|
// panel6
|
||||||
|
//
|
||||||
|
this.panel6.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.panel6.Controls.Add(this.comboBoxOverviewModel1);
|
||||||
|
this.panel6.Controls.Add(this.label1);
|
||||||
|
this.panel6.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.panel6.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.panel6.Name = "panel6";
|
||||||
|
this.panel6.Size = new System.Drawing.Size(1137, 85);
|
||||||
|
this.panel6.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// comboBoxOverviewModel1
|
||||||
|
//
|
||||||
|
this.comboBoxOverviewModel1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.comboBoxOverviewModel1.FormattingEnabled = true;
|
||||||
|
this.comboBoxOverviewModel1.Items.AddRange(new object[] {
|
||||||
|
"L",
|
||||||
|
"P1",
|
||||||
|
"P2"});
|
||||||
|
this.comboBoxOverviewModel1.Location = new System.Drawing.Point(280, 22);
|
||||||
|
this.comboBoxOverviewModel1.Name = "comboBoxOverviewModel1";
|
||||||
|
this.comboBoxOverviewModel1.Size = new System.Drawing.Size(106, 28);
|
||||||
|
this.comboBoxOverviewModel1.TabIndex = 10;
|
||||||
|
this.comboBoxOverviewModel1.Visible = false;
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||||
|
this.label1.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.label1.Font = new System.Drawing.Font("Times New Roman", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.label1.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.label1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(1137, 70);
|
||||||
|
this.label1.TabIndex = 9;
|
||||||
|
this.label1.Text = "Log Server [1]";
|
||||||
|
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
|
this.label1.DoubleClick += new System.EventHandler(this.label1_DoubleClick);
|
||||||
|
//
|
||||||
|
// panel7
|
||||||
|
//
|
||||||
|
this.panel7.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.panel7.Controls.Add(this.maskedTextBoxDT2IP);
|
||||||
|
this.panel7.Controls.Add(this.panel8);
|
||||||
|
this.panel7.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.panel7.Location = new System.Drawing.Point(0, 276);
|
||||||
|
this.panel7.Name = "panel7";
|
||||||
|
this.panel7.Size = new System.Drawing.Size(1137, 150);
|
||||||
|
this.panel7.TabIndex = 10;
|
||||||
|
//
|
||||||
|
// maskedTextBoxDT2IP
|
||||||
|
//
|
||||||
|
this.maskedTextBoxDT2IP.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.maskedTextBoxDT2IP.EditValue = "If you do not enter the ip, will be connected to the local area.";
|
||||||
|
this.maskedTextBoxDT2IP.Location = new System.Drawing.Point(0, 83);
|
||||||
|
this.maskedTextBoxDT2IP.Name = "maskedTextBoxDT2IP";
|
||||||
|
this.maskedTextBoxDT2IP.Properties.Appearance.BackColor = System.Drawing.Color.White;
|
||||||
|
this.maskedTextBoxDT2IP.Properties.Appearance.Font = new System.Drawing.Font("Times New Roman", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.maskedTextBoxDT2IP.Properties.Appearance.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.maskedTextBoxDT2IP.Properties.Appearance.Options.UseBackColor = true;
|
||||||
|
this.maskedTextBoxDT2IP.Properties.Appearance.Options.UseFont = true;
|
||||||
|
this.maskedTextBoxDT2IP.Properties.Appearance.Options.UseForeColor = true;
|
||||||
|
this.maskedTextBoxDT2IP.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
|
||||||
|
new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
|
||||||
|
this.maskedTextBoxDT2IP.Size = new System.Drawing.Size(1137, 28);
|
||||||
|
this.maskedTextBoxDT2IP.TabIndex = 8;
|
||||||
|
this.maskedTextBoxDT2IP.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.maskedTextBoxIP_PreviewKeyDown);
|
||||||
|
//
|
||||||
|
// panel8
|
||||||
|
//
|
||||||
|
this.panel8.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.panel8.Controls.Add(this.comboBoxOverviewModel2);
|
||||||
|
this.panel8.Controls.Add(this.checkBoxUseDT2);
|
||||||
|
this.panel8.Controls.Add(this.label3);
|
||||||
|
this.panel8.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.panel8.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.panel8.Name = "panel8";
|
||||||
|
this.panel8.Size = new System.Drawing.Size(1137, 83);
|
||||||
|
this.panel8.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// comboBoxOverviewModel2
|
||||||
|
//
|
||||||
|
this.comboBoxOverviewModel2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.comboBoxOverviewModel2.FormattingEnabled = true;
|
||||||
|
this.comboBoxOverviewModel2.Items.AddRange(new object[] {
|
||||||
|
"L",
|
||||||
|
"P1",
|
||||||
|
"P2"});
|
||||||
|
this.comboBoxOverviewModel2.Location = new System.Drawing.Point(280, 21);
|
||||||
|
this.comboBoxOverviewModel2.Name = "comboBoxOverviewModel2";
|
||||||
|
this.comboBoxOverviewModel2.Size = new System.Drawing.Size(106, 28);
|
||||||
|
this.comboBoxOverviewModel2.TabIndex = 13;
|
||||||
|
this.comboBoxOverviewModel2.Visible = false;
|
||||||
|
//
|
||||||
|
// checkBoxUseDT2
|
||||||
|
//
|
||||||
|
this.checkBoxUseDT2.AutoSize = true;
|
||||||
|
this.checkBoxUseDT2.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||||
|
this.checkBoxUseDT2.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.checkBoxUseDT2.Location = new System.Drawing.Point(43, 23);
|
||||||
|
this.checkBoxUseDT2.Name = "checkBoxUseDT2";
|
||||||
|
this.checkBoxUseDT2.Size = new System.Drawing.Size(63, 24);
|
||||||
|
this.checkBoxUseDT2.TabIndex = 12;
|
||||||
|
this.checkBoxUseDT2.Text = "Use";
|
||||||
|
this.checkBoxUseDT2.UseVisualStyleBackColor = false;
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||||
|
this.label3.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.label3.Font = new System.Drawing.Font("Times New Roman", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.label3.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.label3.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(1137, 69);
|
||||||
|
this.label3.TabIndex = 9;
|
||||||
|
this.label3.Text = "Log Server [2]";
|
||||||
|
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
|
this.label3.DoubleClick += new System.EventHandler(this.label3_DoubleClick);
|
||||||
|
//
|
||||||
|
// ConnectForm
|
||||||
|
//
|
||||||
|
this.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
|
||||||
|
this.Appearance.Options.UseBackColor = true;
|
||||||
|
this.Appearance.Options.UseFont = true;
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||||
|
this.BackgroundImageLayoutStore = System.Windows.Forms.ImageLayout.Stretch;
|
||||||
|
this.BackgroundImageStore = global::SystemX.Product.TRA.Properties.Resources.IpAddress;
|
||||||
|
this.ClientSize = new System.Drawing.Size(1137, 460);
|
||||||
|
this.Controls.Add(this.panel1);
|
||||||
|
this.Controls.Add(this.panel7);
|
||||||
|
this.Controls.Add(this.panel5);
|
||||||
|
this.Controls.Add(this.panel3);
|
||||||
|
this.Controls.Add(this.panel2);
|
||||||
|
this.Controls.Add(this.labelControl1);
|
||||||
|
this.DoubleBuffered = true;
|
||||||
|
this.Font = new System.Drawing.Font("Times New Roman", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("ConnectForm.IconOptions.Icon")));
|
||||||
|
this.IconOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("ConnectForm.IconOptions.SvgImage")));
|
||||||
|
this.Name = "ConnectForm";
|
||||||
|
this.ShowInTaskbar = false;
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
|
this.Text = "Connect CP-ALIS";
|
||||||
|
this.TopMost = true;
|
||||||
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ConnectForm_FormClosing);
|
||||||
|
this.panel1.ResumeLayout(false);
|
||||||
|
this.panel3.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.maskedTextBoxTLIP.Properties)).EndInit();
|
||||||
|
this.panel4.ResumeLayout(false);
|
||||||
|
this.panel5.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.maskedTextBoxDT1IP.Properties)).EndInit();
|
||||||
|
this.panel6.ResumeLayout(false);
|
||||||
|
this.panel7.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.maskedTextBoxDT2IP.Properties)).EndInit();
|
||||||
|
this.panel8.ResumeLayout(false);
|
||||||
|
this.panel8.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
private DevExpress.XtraEditors.LabelControl labelControl1;
|
||||||
|
private DevExpress.XtraEditors.SimpleButton simpleButtonOK;
|
||||||
|
private System.Windows.Forms.Panel panel1;
|
||||||
|
private System.Windows.Forms.Panel panel2;
|
||||||
|
private System.Windows.Forms.Panel panel3;
|
||||||
|
private DevExpress.XtraEditors.ComboBoxEdit maskedTextBoxTLIP;
|
||||||
|
private System.Windows.Forms.Panel panel4;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.Panel panel5;
|
||||||
|
private DevExpress.XtraEditors.ComboBoxEdit maskedTextBoxDT1IP;
|
||||||
|
private System.Windows.Forms.Panel panel6;
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.Panel panel7;
|
||||||
|
private DevExpress.XtraEditors.ComboBoxEdit maskedTextBoxDT2IP;
|
||||||
|
private System.Windows.Forms.Panel panel8;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
private DevExpress.XtraEditors.SimpleButton simpleButtonReset;
|
||||||
|
private System.Windows.Forms.CheckBox checkBoxUseDT2;
|
||||||
|
private System.Windows.Forms.ComboBox comboBoxOverviewModel1;
|
||||||
|
private System.Windows.Forms.ComboBox comboBoxOverviewModel2;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,327 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
using DataBaseConnection.Control;
|
||||||
|
|
||||||
|
using DevExpress.XtraBars.Docking;
|
||||||
|
using DevExpress.XtraEditors;
|
||||||
|
|
||||||
|
using SystemX.Product.ALIS.Interface;
|
||||||
|
using static SystemX.Product.CP.TRA.Commons;
|
||||||
|
|
||||||
|
namespace SystemX.Product.ALIS.UI.Subs
|
||||||
|
{
|
||||||
|
public partial class ConnectForm : DevExpress.XtraEditors.XtraForm
|
||||||
|
{
|
||||||
|
private enum eCehckType
|
||||||
|
{
|
||||||
|
TestListServer = 1,
|
||||||
|
DataLogServer1 = 2,
|
||||||
|
DataLogServer2 = 3
|
||||||
|
}
|
||||||
|
|
||||||
|
private IDataController ctrlDB;
|
||||||
|
|
||||||
|
//TL Server
|
||||||
|
public string strInputTextTL;
|
||||||
|
|
||||||
|
private string strSetIPAddressTL;
|
||||||
|
public string strGetIPAddressTL { get { return strSetIPAddressTL; } private set { strSetIPAddressTL = value; } }
|
||||||
|
|
||||||
|
private int nSetConnPortTL;
|
||||||
|
public int nGetConnPortTL { get { return nSetConnPortTL; } private set { nSetConnPortTL = value; } }
|
||||||
|
|
||||||
|
//DT Server 1
|
||||||
|
public string strInputTextDT1;
|
||||||
|
|
||||||
|
private string strSetIPAddressDT1;
|
||||||
|
public string strGetIPAddressDT1 { get { return strSetIPAddressDT1; } private set { strSetIPAddressDT1 = value; } }
|
||||||
|
|
||||||
|
private int nSetConnPortDT1;
|
||||||
|
public int nGetConnPortDT1 { get { return nSetConnPortDT1; } private set { nSetConnPortDT1 = value; } }
|
||||||
|
//
|
||||||
|
//DT Server 2
|
||||||
|
public bool bSelectUseDataServer2;
|
||||||
|
|
||||||
|
public string strInputTextDT2;
|
||||||
|
|
||||||
|
private string strSetIPAddressDT2;
|
||||||
|
public string strGetIPAddressDT2 { get { return strSetIPAddressDT2; } private set { strSetIPAddressDT2 = value; } }
|
||||||
|
|
||||||
|
private int nSetConnPortDT2;
|
||||||
|
public int nGetConnPortDT2 { get { return nSetConnPortDT2; } private set { nSetConnPortDT2 = value; } }
|
||||||
|
//
|
||||||
|
public int nOverviewModelC1;
|
||||||
|
public int nOverviewModelC2;
|
||||||
|
|
||||||
|
public DialogResult TestListServerCheckResult;
|
||||||
|
public DialogResult DataServerCheckResult1;
|
||||||
|
public DialogResult DataServerCheckResult2;
|
||||||
|
|
||||||
|
|
||||||
|
public ConnectForm(IDataController ctrlDB)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
//this.MinimumSize = new Size(400, 250);
|
||||||
|
//this.MaximumSize = new Size(400, 250);
|
||||||
|
|
||||||
|
this.ctrlDB = ctrlDB;
|
||||||
|
|
||||||
|
//maskedTextBoxIP.Mask = "###.###.###.###";
|
||||||
|
//maskedTextBoxIP.ValidatingType = typeof(System.Net.IPAddress);
|
||||||
|
|
||||||
|
this.BringToFront();
|
||||||
|
this.Focus();
|
||||||
|
|
||||||
|
DialogResult = DialogResult.None;
|
||||||
|
|
||||||
|
comboBoxOverviewModel1.SelectedIndex = 0;
|
||||||
|
comboBoxOverviewModel2.SelectedIndex = 1;
|
||||||
|
|
||||||
|
ConnectInfoINICtrl CCtrl = new ConnectInfoINICtrl();
|
||||||
|
string strGetConnectInfo1 = CCtrl.GetValue("LastestConnect", "Info1", "");
|
||||||
|
string strGetConnectInfo2 = CCtrl.GetValue("LastestConnect", "Info2", "");
|
||||||
|
string strGetConnectInfo3 = CCtrl.GetValue("LastestConnect", "Info3", "");
|
||||||
|
string strGetConnectInfo4 = CCtrl.GetValue("LastestConnect", "UseDataServer2", "False");
|
||||||
|
|
||||||
|
string strGetConnectInfo5 = CCtrl.GetValue("LastestConnect", "OverviewModelInfoC1", "0");
|
||||||
|
string strGetConnectInfo6 = CCtrl.GetValue("LastestConnect", "OverviewModelInfoC2", "1");
|
||||||
|
|
||||||
|
int nOverInfoC1 = 0;
|
||||||
|
int nOverInfoC2 = 1;
|
||||||
|
|
||||||
|
if(int.TryParse(strGetConnectInfo5, out nOverInfoC1))
|
||||||
|
comboBoxOverviewModel1.SelectedIndex = nOverInfoC1;
|
||||||
|
if(int.TryParse(strGetConnectInfo6, out nOverInfoC2))
|
||||||
|
comboBoxOverviewModel2.SelectedIndex = nOverInfoC2;
|
||||||
|
|
||||||
|
if (strGetConnectInfo1.Length > 0)
|
||||||
|
maskedTextBoxTLIP.Text = strGetConnectInfo1;
|
||||||
|
|
||||||
|
if (strGetConnectInfo2.Length > 0)
|
||||||
|
maskedTextBoxDT1IP.Text = strGetConnectInfo2;
|
||||||
|
|
||||||
|
if (strGetConnectInfo3.Length > 0)
|
||||||
|
maskedTextBoxDT2IP.Text = strGetConnectInfo3;
|
||||||
|
|
||||||
|
if (strGetConnectInfo4.Length > 0)
|
||||||
|
{
|
||||||
|
bool bGetUseState = false;
|
||||||
|
|
||||||
|
if (bool.TryParse(strGetConnectInfo4, out bGetUseState))
|
||||||
|
checkBoxUseDT2.Checked = bGetUseState;
|
||||||
|
else
|
||||||
|
checkBoxUseDT2.Checked = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < INICtrl.MAX_INFORMATION; i++)
|
||||||
|
{
|
||||||
|
string strGetInfo1 = CCtrl.GetValue("HistoryConnect" + i.ToString(), "Info1", "");
|
||||||
|
string strGetInfo2 = CCtrl.GetValue("HistoryConnect" + i.ToString(), "Info2", "");
|
||||||
|
string strGetInfo3 = CCtrl.GetValue("HistoryConnect" + i.ToString(), "Info3", "");
|
||||||
|
|
||||||
|
if (strGetInfo1.Length > 0)
|
||||||
|
maskedTextBoxTLIP.Properties.Items.Add(strGetInfo1);
|
||||||
|
if (strGetInfo2.Length > 0)
|
||||||
|
maskedTextBoxDT1IP.Properties.Items.Add(strGetInfo2);
|
||||||
|
if (strGetInfo3.Length > 0)
|
||||||
|
maskedTextBoxDT2IP.Properties.Items.Add(strGetInfo3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InvaildIPAlarm()
|
||||||
|
{
|
||||||
|
MessageBox.Show("Invalid IP. Enter it in the normal format. (An empty string or [localhost] will attempt to connect to the local server.)", "[SystemX.Product.ALIS.UI]", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
|
||||||
|
private DialogResult CheckInformation(eCehckType ChkTyp, object sender, string strText)
|
||||||
|
{
|
||||||
|
DialogResult CheckResult = DialogResult.None;
|
||||||
|
|
||||||
|
IPAddress getIPAddress = null;
|
||||||
|
|
||||||
|
string strGetText = strText;
|
||||||
|
string[] strGetSplitCommaText = strGetText.Split(',');
|
||||||
|
string[] strGetSplitDotText = strGetText.Split('.');
|
||||||
|
|
||||||
|
if (ChkTyp == eCehckType.TestListServer)
|
||||||
|
{
|
||||||
|
strGetIPAddressTL = string.Empty;
|
||||||
|
|
||||||
|
nGetConnPortTL = DatabaseConnControl.CatalogConnPort;
|
||||||
|
|
||||||
|
strInputTextTL = strText;
|
||||||
|
}
|
||||||
|
else if (ChkTyp == eCehckType.DataLogServer1)
|
||||||
|
{
|
||||||
|
strGetIPAddressDT1 = string.Empty;
|
||||||
|
|
||||||
|
nGetConnPortDT1 = DatabaseConnControl.CatalogConnPort;
|
||||||
|
|
||||||
|
strInputTextDT1 = strText;
|
||||||
|
}
|
||||||
|
else if (ChkTyp == eCehckType.DataLogServer2)
|
||||||
|
{
|
||||||
|
strGetIPAddressDT2 = string.Empty;
|
||||||
|
|
||||||
|
nGetConnPortDT2 = DatabaseConnControl.CatalogConnPort;
|
||||||
|
|
||||||
|
strInputTextDT2 = strText;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (IPAddress.TryParse(strText, out getIPAddress) == false)
|
||||||
|
{
|
||||||
|
if (strGetSplitCommaText.Length == 2)
|
||||||
|
{
|
||||||
|
string strGetIP = strGetSplitCommaText[0];
|
||||||
|
string strGetPort = strGetSplitCommaText[1];
|
||||||
|
|
||||||
|
int nGetPort = int.MaxValue;
|
||||||
|
|
||||||
|
if (IPAddress.TryParse(strGetIP, out getIPAddress) &&
|
||||||
|
int.TryParse(strGetPort, out nGetPort))
|
||||||
|
{
|
||||||
|
if (ChkTyp == eCehckType.TestListServer)
|
||||||
|
{
|
||||||
|
strGetIPAddressTL = strGetIP;
|
||||||
|
|
||||||
|
nGetConnPortTL = nGetPort;
|
||||||
|
}
|
||||||
|
else if (ChkTyp == eCehckType.DataLogServer1)
|
||||||
|
{
|
||||||
|
strGetIPAddressDT1 = strGetIP;
|
||||||
|
|
||||||
|
nGetConnPortDT1 = nGetPort;
|
||||||
|
}
|
||||||
|
else if (ChkTyp == eCehckType.DataLogServer2)
|
||||||
|
{
|
||||||
|
strGetIPAddressDT2 = strGetIP;
|
||||||
|
|
||||||
|
nGetConnPortDT2 = nGetPort;
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckResult = DialogResult.OK;
|
||||||
|
|
||||||
|
return CheckResult;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
string strGetUpperText = strText.ToUpper();
|
||||||
|
|
||||||
|
if (strText.Length == 0)
|
||||||
|
CheckResult = DialogResult.Ignore;
|
||||||
|
else if (strGetUpperText.CompareTo("LOCALHOST") == 0)
|
||||||
|
CheckResult = DialogResult.Ignore;
|
||||||
|
else if (strText.CompareTo("If you do not enter the ip, will be connected to the local area.") == 0)
|
||||||
|
CheckResult = DialogResult.Ignore;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
((ComboBoxEdit)sender).Text = "";
|
||||||
|
|
||||||
|
InvaildIPAlarm();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (strGetSplitDotText.Length == 4)
|
||||||
|
{
|
||||||
|
if (ChkTyp == eCehckType.TestListServer)
|
||||||
|
strGetIPAddressTL = strText;
|
||||||
|
else if (ChkTyp == eCehckType.DataLogServer1)
|
||||||
|
strGetIPAddressDT1 = strText;
|
||||||
|
else if (ChkTyp == eCehckType.DataLogServer2)
|
||||||
|
strGetIPAddressDT2 = strText;
|
||||||
|
|
||||||
|
CheckResult = DialogResult.OK;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
((ComboBoxEdit)sender).Text = "";
|
||||||
|
|
||||||
|
InvaildIPAlarm();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return CheckResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void simpleButtonOK_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
bSelectUseDataServer2 = checkBoxUseDT2.Checked;
|
||||||
|
//
|
||||||
|
nOverviewModelC1 = comboBoxOverviewModel1.SelectedIndex;
|
||||||
|
nOverviewModelC2 = comboBoxOverviewModel2.SelectedIndex;
|
||||||
|
|
||||||
|
TestListServerCheckResult = DialogResult.None;
|
||||||
|
DataServerCheckResult1 = DialogResult.None;
|
||||||
|
|
||||||
|
TestListServerCheckResult = CheckInformation(eCehckType.TestListServer, maskedTextBoxTLIP, maskedTextBoxTLIP.Text);
|
||||||
|
DataServerCheckResult1 = CheckInformation(eCehckType.DataLogServer1, maskedTextBoxDT1IP, maskedTextBoxDT1IP.Text);
|
||||||
|
|
||||||
|
if (bSelectUseDataServer2)
|
||||||
|
DataServerCheckResult2 = CheckInformation(eCehckType.DataLogServer2, maskedTextBoxDT2IP, maskedTextBoxDT2IP.Text);
|
||||||
|
else
|
||||||
|
DataServerCheckResult2 = DialogResult.Ignore;
|
||||||
|
|
||||||
|
if ((TestListServerCheckResult.HasFlag(DialogResult.OK) || TestListServerCheckResult.HasFlag(DialogResult.Ignore)) &&
|
||||||
|
(DataServerCheckResult1.HasFlag(DialogResult.OK) || DataServerCheckResult1.HasFlag(DialogResult.Ignore)) &&
|
||||||
|
(DataServerCheckResult2.HasFlag(DialogResult.OK) || DataServerCheckResult2.HasFlag(DialogResult.Ignore)))
|
||||||
|
DialogResult = DialogResult.OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ConnectForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||||
|
{
|
||||||
|
if (DialogResult == DialogResult.None)
|
||||||
|
DialogResult = DialogResult.Abort;
|
||||||
|
|
||||||
|
/*if (maskedTextBoxIP.Text.Length == 0)
|
||||||
|
DialogResult = DialogResult.Cancel;
|
||||||
|
else if (maskedTextBoxIP.Text.CompareTo("localhost") == 0)
|
||||||
|
DialogResult = DialogResult.Cancel;
|
||||||
|
else if (maskedTextBoxIP.Text.CompareTo("If you do not enter the ip, will be connected to the local area.") == 0)
|
||||||
|
DialogResult = DialogResult.Cancel;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
e.Cancel = true;
|
||||||
|
|
||||||
|
if (IPAddress.TryParse(maskedTextBoxIP.Text, out IPAddress))
|
||||||
|
e.Cancel = false;
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
|
||||||
|
private void maskedTextBoxIP_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
|
||||||
|
{
|
||||||
|
if (((ComboBoxEdit)sender).Text.CompareTo("If you do not enter the ip, will be connected to the local area.") == 0)
|
||||||
|
((ComboBoxEdit)sender).Text = string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void simpleButtonReset_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
maskedTextBoxTLIP.Text = "If you do not enter the ip, will be connected to the local area.";
|
||||||
|
maskedTextBoxDT1IP.Text = "If you do not enter the ip, will be connected to the local area.";
|
||||||
|
maskedTextBoxDT2IP.Text = "If you do not enter the ip, will be connected to the local area.";
|
||||||
|
checkBoxUseDT2.Checked = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void label1_DoubleClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
comboBoxOverviewModel1.Visible = !comboBoxOverviewModel1.Visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void label3_DoubleClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
comboBoxOverviewModel2.Visible = !comboBoxOverviewModel2.Visible;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
1804
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/Subs/ConnectForm.resx
Normal file
189
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/Subs/LoginForm.Designer.cs
generated
Normal file
@ -0,0 +1,189 @@
|
|||||||
|
|
||||||
|
namespace SystemX.Product.ALIS.UI.Subs
|
||||||
|
{
|
||||||
|
partial class LoginForm
|
||||||
|
{
|
||||||
|
/// <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.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoginForm));
|
||||||
|
this.labelControl1 = new DevExpress.XtraEditors.LabelControl();
|
||||||
|
this.labelControl2 = new DevExpress.XtraEditors.LabelControl();
|
||||||
|
this.btnLogin = new System.Windows.Forms.Button();
|
||||||
|
this.labelAlarm = new System.Windows.Forms.Label();
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.txtUserId = new DevExpress.XtraEditors.TextEdit();
|
||||||
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
|
this.txtPassword = new System.Windows.Forms.MaskedTextBox();
|
||||||
|
this.panel1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.txtUserId.Properties)).BeginInit();
|
||||||
|
this.panel2.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// labelControl1
|
||||||
|
//
|
||||||
|
this.labelControl1.Appearance.BackColor = System.Drawing.Color.White;
|
||||||
|
this.labelControl1.Appearance.Font = new System.Drawing.Font("Arial Black", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.labelControl1.Appearance.ForeColor = System.Drawing.Color.MidnightBlue;
|
||||||
|
this.labelControl1.Appearance.Options.UseBackColor = true;
|
||||||
|
this.labelControl1.Appearance.Options.UseFont = true;
|
||||||
|
this.labelControl1.Appearance.Options.UseForeColor = true;
|
||||||
|
this.labelControl1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Style3D;
|
||||||
|
this.labelControl1.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.labelControl1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.labelControl1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||||
|
this.labelControl1.Name = "labelControl1";
|
||||||
|
this.labelControl1.Size = new System.Drawing.Size(52, 21);
|
||||||
|
this.labelControl1.TabIndex = 2;
|
||||||
|
this.labelControl1.Text = "User ID";
|
||||||
|
//
|
||||||
|
// labelControl2
|
||||||
|
//
|
||||||
|
this.labelControl2.Appearance.BackColor = System.Drawing.Color.White;
|
||||||
|
this.labelControl2.Appearance.Font = new System.Drawing.Font("Arial Black", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.labelControl2.Appearance.ForeColor = System.Drawing.Color.MidnightBlue;
|
||||||
|
this.labelControl2.Appearance.Options.UseBackColor = true;
|
||||||
|
this.labelControl2.Appearance.Options.UseFont = true;
|
||||||
|
this.labelControl2.Appearance.Options.UseForeColor = true;
|
||||||
|
this.labelControl2.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Style3D;
|
||||||
|
this.labelControl2.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.labelControl2.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.labelControl2.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||||
|
this.labelControl2.Name = "labelControl2";
|
||||||
|
this.labelControl2.Size = new System.Drawing.Size(67, 21);
|
||||||
|
this.labelControl2.TabIndex = 4;
|
||||||
|
this.labelControl2.Text = "Password";
|
||||||
|
//
|
||||||
|
// btnLogin
|
||||||
|
//
|
||||||
|
this.btnLogin.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||||
|
this.btnLogin.Font = new System.Drawing.Font("Arial Black", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btnLogin.Location = new System.Drawing.Point(0, 86);
|
||||||
|
this.btnLogin.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||||
|
this.btnLogin.Name = "btnLogin";
|
||||||
|
this.btnLogin.Size = new System.Drawing.Size(298, 32);
|
||||||
|
this.btnLogin.TabIndex = 5;
|
||||||
|
this.btnLogin.Text = "Login";
|
||||||
|
this.btnLogin.UseVisualStyleBackColor = true;
|
||||||
|
this.btnLogin.Click += new System.EventHandler(this.btnLogin_Click);
|
||||||
|
//
|
||||||
|
// labelAlarm
|
||||||
|
//
|
||||||
|
this.labelAlarm.BackColor = System.Drawing.Color.LightGray;
|
||||||
|
this.labelAlarm.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||||
|
this.labelAlarm.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.labelAlarm.Location = new System.Drawing.Point(0, 54);
|
||||||
|
this.labelAlarm.Name = "labelAlarm";
|
||||||
|
this.labelAlarm.Size = new System.Drawing.Size(298, 32);
|
||||||
|
this.labelAlarm.TabIndex = 6;
|
||||||
|
this.labelAlarm.Text = "-";
|
||||||
|
this.labelAlarm.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
|
this.labelAlarm.Visible = false;
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
this.panel1.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.panel1.Controls.Add(this.txtUserId);
|
||||||
|
this.panel1.Controls.Add(this.labelControl1);
|
||||||
|
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
this.panel1.Size = new System.Drawing.Size(298, 25);
|
||||||
|
this.panel1.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// txtUserId
|
||||||
|
//
|
||||||
|
this.txtUserId.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.txtUserId.Location = new System.Drawing.Point(52, 0);
|
||||||
|
this.txtUserId.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||||
|
this.txtUserId.Name = "txtUserId";
|
||||||
|
this.txtUserId.Size = new System.Drawing.Size(246, 20);
|
||||||
|
this.txtUserId.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// panel2
|
||||||
|
//
|
||||||
|
this.panel2.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.panel2.Controls.Add(this.txtPassword);
|
||||||
|
this.panel2.Controls.Add(this.labelControl2);
|
||||||
|
this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.panel2.Location = new System.Drawing.Point(0, 25);
|
||||||
|
this.panel2.Name = "panel2";
|
||||||
|
this.panel2.Size = new System.Drawing.Size(298, 25);
|
||||||
|
this.panel2.TabIndex = 8;
|
||||||
|
//
|
||||||
|
// txtPassword
|
||||||
|
//
|
||||||
|
this.txtPassword.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.txtPassword.Location = new System.Drawing.Point(67, 0);
|
||||||
|
this.txtPassword.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||||
|
this.txtPassword.Name = "txtPassword";
|
||||||
|
this.txtPassword.PasswordChar = '*';
|
||||||
|
this.txtPassword.Size = new System.Drawing.Size(231, 21);
|
||||||
|
this.txtPassword.TabIndex = 5;
|
||||||
|
this.txtPassword.UseSystemPasswordChar = true;
|
||||||
|
//
|
||||||
|
// LoginForm
|
||||||
|
//
|
||||||
|
this.Appearance.Options.UseFont = true;
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.BackgroundImageLayoutStore = System.Windows.Forms.ImageLayout.Stretch;
|
||||||
|
this.BackgroundImageStore = global::SystemX.Product.TRA.Properties.Resources.Password;
|
||||||
|
this.ClientSize = new System.Drawing.Size(298, 118);
|
||||||
|
this.Controls.Add(this.panel2);
|
||||||
|
this.Controls.Add(this.panel1);
|
||||||
|
this.Controls.Add(this.labelAlarm);
|
||||||
|
this.Controls.Add(this.btnLogin);
|
||||||
|
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
|
||||||
|
this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("LoginForm.IconOptions.Icon")));
|
||||||
|
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||||
|
this.MaximumSize = new System.Drawing.Size(300, 150);
|
||||||
|
this.MinimumSize = new System.Drawing.Size(300, 130);
|
||||||
|
this.Name = "LoginForm";
|
||||||
|
this.ShowInTaskbar = false;
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
|
this.Text = "Login";
|
||||||
|
this.TopMost = true;
|
||||||
|
this.panel1.ResumeLayout(false);
|
||||||
|
this.panel1.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.txtUserId.Properties)).EndInit();
|
||||||
|
this.panel2.ResumeLayout(false);
|
||||||
|
this.panel2.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
private DevExpress.XtraEditors.LabelControl labelControl1;
|
||||||
|
private DevExpress.XtraEditors.LabelControl labelControl2;
|
||||||
|
private System.Windows.Forms.Button btnLogin;
|
||||||
|
private System.Windows.Forms.Label labelAlarm;
|
||||||
|
private System.Windows.Forms.Panel panel1;
|
||||||
|
private DevExpress.XtraEditors.TextEdit txtUserId;
|
||||||
|
private System.Windows.Forms.Panel panel2;
|
||||||
|
private System.Windows.Forms.MaskedTextBox txtPassword;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,90 @@
|
|||||||
|
using DevExpress.XtraEditors;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using SystemX.Product.ALIS.Interface;
|
||||||
|
|
||||||
|
namespace SystemX.Product.ALIS.UI.Subs
|
||||||
|
{
|
||||||
|
public partial class LoginForm : DevExpress.XtraEditors.XtraForm
|
||||||
|
{
|
||||||
|
private IDataController ctrlDB;
|
||||||
|
|
||||||
|
private DataSet ds = new DataSet();
|
||||||
|
private DataTable dt = new DataTable();
|
||||||
|
|
||||||
|
public string UserID { internal set; get; }
|
||||||
|
public string UserName { internal set; get; }
|
||||||
|
public string UserDept { internal set; get; }
|
||||||
|
public string UserEmail { internal set; get; }
|
||||||
|
public string UserComment { internal set; get; }
|
||||||
|
public string UserPassword { internal set; get; }
|
||||||
|
|
||||||
|
public LoginForm(IDataController ctrlDB)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
this.ctrlDB = ctrlDB;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnLogin_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.None;
|
||||||
|
|
||||||
|
SqlDataReader dr = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ctrlDB.GetConnSqlCmd().CommandText = "SELECT * FROM STAT_User WHERE UserID = '" + txtUserId.Text + "' AND Password = '" + txtPassword.Text + "';";
|
||||||
|
dr = ctrlDB.GetConnSqlCmd().ExecuteReader();
|
||||||
|
|
||||||
|
if (dr != null)
|
||||||
|
{
|
||||||
|
DataSet ds = new DataSet();
|
||||||
|
DataTable dt = new DataTable();
|
||||||
|
|
||||||
|
int iFieldCnt = dr.FieldCount;
|
||||||
|
int iRecordsAffectedCnt = dr.RecordsAffected;
|
||||||
|
bool bHasRow = dr.HasRows;
|
||||||
|
|
||||||
|
dt.Load(dr);
|
||||||
|
ds.Tables.Add(dt);
|
||||||
|
|
||||||
|
if (dt.Rows.Count > 0)
|
||||||
|
{
|
||||||
|
UserID = dt.Rows[0]["UserID"].ToString();
|
||||||
|
UserName = dt.Rows[0]["Name"].ToString();
|
||||||
|
UserDept = dt.Rows[0]["Dept"].ToString();
|
||||||
|
UserEmail = dt.Rows[0]["Email"].ToString();
|
||||||
|
UserComment = dt.Rows[0]["Comment"].ToString();
|
||||||
|
UserPassword = dt.Rows[0]["Password"].ToString();
|
||||||
|
|
||||||
|
this.DialogResult = DialogResult.OK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if (dr != null)
|
||||||
|
dr.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.DialogResult == DialogResult.None)
|
||||||
|
{
|
||||||
|
this.MaximumSize = new Size(300, 180);
|
||||||
|
this.MinimumSize = new Size(300, 180);
|
||||||
|
this.Size = new Size(300, 180);
|
||||||
|
|
||||||
|
labelAlarm.Visible = true;
|
||||||
|
labelAlarm.Text = "User information does not match or\r\n the password is incorrect.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
1787
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/Subs/LoginForm.resx
Normal file
296
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/Subs/ViewCfg.cs
Normal file
@ -0,0 +1,296 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Xml.Linq;
|
||||||
|
using SystemX.Net.Platform.Common.Util;
|
||||||
|
using static SystemX.Product.ALIS.UI.View.ViewCfg;
|
||||||
|
|
||||||
|
namespace SystemX.Product.ALIS.UI.View
|
||||||
|
{
|
||||||
|
public static class ViewCfg
|
||||||
|
{
|
||||||
|
public enum eOperationMode
|
||||||
|
{
|
||||||
|
ALL,
|
||||||
|
AUTO,
|
||||||
|
MANUAL
|
||||||
|
}
|
||||||
|
public enum eWorkMode
|
||||||
|
{
|
||||||
|
NORMAL,
|
||||||
|
RETEST,
|
||||||
|
REWORK
|
||||||
|
}
|
||||||
|
public enum eAppFunctionType
|
||||||
|
{
|
||||||
|
None = 0,
|
||||||
|
|
||||||
|
M_HostList,
|
||||||
|
M_UserList,
|
||||||
|
M_GroupList,
|
||||||
|
M_TestCodeList,
|
||||||
|
M_TestList,
|
||||||
|
M_TestListRel,
|
||||||
|
|
||||||
|
A_AnalysisPartID,
|
||||||
|
A_LogSearchTrend,
|
||||||
|
A_AnalysisProcessTrend
|
||||||
|
}
|
||||||
|
public enum eSelectType
|
||||||
|
{
|
||||||
|
None = 0,
|
||||||
|
HostList,
|
||||||
|
UserList,
|
||||||
|
GroupList,
|
||||||
|
TestCodeList,
|
||||||
|
|
||||||
|
TestList,
|
||||||
|
TestListRel
|
||||||
|
}
|
||||||
|
public enum eEditType
|
||||||
|
{
|
||||||
|
Insert = 0,
|
||||||
|
Modify
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum eModelType
|
||||||
|
{
|
||||||
|
NONE,
|
||||||
|
IMAGE,
|
||||||
|
TEXT,
|
||||||
|
CPLOG,
|
||||||
|
PARTID_MAP
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum eProcessTable
|
||||||
|
{
|
||||||
|
HIST_ProdLoad = 0,
|
||||||
|
HIST_CapDeassy,
|
||||||
|
HIST_PreHeating,
|
||||||
|
HIST_PreMeas,
|
||||||
|
HIST_Leak,
|
||||||
|
HIST_LaserTrim,
|
||||||
|
HIST_LaserTrimVision,
|
||||||
|
HIST_IsoRes,
|
||||||
|
HIST_CapAssy,
|
||||||
|
HIST_Function,
|
||||||
|
HIST_OutSealPress,
|
||||||
|
HIST_PinLVDT,
|
||||||
|
HIST_PinVision,
|
||||||
|
HIST_ProdUnload
|
||||||
|
}
|
||||||
|
|
||||||
|
private enum eProcessTableNumber
|
||||||
|
{
|
||||||
|
HIST_ProdLoad = 180,
|
||||||
|
HIST_CapDeassy = 180,
|
||||||
|
HIST_PreHeating = 190,
|
||||||
|
HIST_PreMeas = 190,
|
||||||
|
HIST_Leak = 200,
|
||||||
|
HIST_LaserTrim = 210,
|
||||||
|
HIST_LaserTrimVision = 220,
|
||||||
|
HIST_IsoRes = 220,
|
||||||
|
HIST_CapAssy = 230,
|
||||||
|
HIST_Function = 240,
|
||||||
|
HIST_OutSealPress = 250,
|
||||||
|
HIST_PinLVDT = 260,
|
||||||
|
HIST_PinVision = 260,
|
||||||
|
HIST_ProdUnload = 270
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetTableProcessNumber(eProcessTable processTable)
|
||||||
|
{
|
||||||
|
string[] strSetProcessNumberList = new string[]
|
||||||
|
{ "180", "180", "190", "190", "200", "210", "220", "220", "230", "240", "250", "260", "260", "270" };
|
||||||
|
|
||||||
|
if (strSetProcessNumberList.Length > (int)processTable)
|
||||||
|
return strSetProcessNumberList[(int)processTable];
|
||||||
|
else
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
public enum eDataTable
|
||||||
|
{
|
||||||
|
HIST_TestResultData,
|
||||||
|
HIST_TestResultDatail
|
||||||
|
}
|
||||||
|
|
||||||
|
public const string SystemConfigPath = @"./Config/SystemConfig.xml";
|
||||||
|
public const string SaveLayoutPath = @"./Layout/Search/";
|
||||||
|
|
||||||
|
public enum eConfigElemList
|
||||||
|
{
|
||||||
|
Root,
|
||||||
|
RegisteredModels,
|
||||||
|
Model
|
||||||
|
}
|
||||||
|
|
||||||
|
public static XElement OpenSystemConfig()
|
||||||
|
{
|
||||||
|
var xElement = XMLControl.OpenXMLDocument(SystemConfigPath, eConfigElemList.Root.ToString());
|
||||||
|
|
||||||
|
if (xElement == null) return null;
|
||||||
|
|
||||||
|
return xElement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static XElement SaveSystemConfig(List<SysModelDef> registeredModels)
|
||||||
|
{
|
||||||
|
XDocument xmlDoc = new XDocument();
|
||||||
|
XElement xRoot = new XElement(eConfigElemList.Root.ToString());
|
||||||
|
XElement xRegModels = new XElement(eConfigElemList.RegisteredModels.ToString());
|
||||||
|
|
||||||
|
foreach (SysModelDef modeldef in registeredModels)
|
||||||
|
xRegModels.Add(modeldef.SaveXML());
|
||||||
|
|
||||||
|
xRoot.Add(xRegModels);
|
||||||
|
xmlDoc.Add(xRoot);
|
||||||
|
xmlDoc.Save(SystemConfigPath);
|
||||||
|
|
||||||
|
return xRoot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<SysModelDef> GetRegisteredModels(XElement xelemRoot)
|
||||||
|
{
|
||||||
|
XElement elemModelRoot = xelemRoot.Element(eConfigElemList.RegisteredModels.ToString());
|
||||||
|
|
||||||
|
List<SysModelDef> modeldef = new List<SysModelDef>();
|
||||||
|
|
||||||
|
foreach (XElement elemModel in elemModelRoot.Elements())
|
||||||
|
modeldef.Add(new SysModelDef(elemModel));
|
||||||
|
|
||||||
|
return modeldef;
|
||||||
|
}
|
||||||
|
public static Dictionary<string, string> GetProcessTableNameMap()
|
||||||
|
{
|
||||||
|
Dictionary<string, string> NameMap = new Dictionary<string, string>();
|
||||||
|
|
||||||
|
NameMap.Add(eProcessTable.HIST_ProdLoad.ToString(), "LX/LU-180:Loading");
|
||||||
|
NameMap.Add(eProcessTable.HIST_CapDeassy.ToString(), "LX/LU-180:Cap De-Ass'y");
|
||||||
|
NameMap.Add(eProcessTable.HIST_PreHeating.ToString(), "LX/LU-190:Pre-Heating");
|
||||||
|
NameMap.Add(eProcessTable.HIST_PreMeas.ToString(), "LX/LU-190:Pre-Measuring");
|
||||||
|
NameMap.Add(eProcessTable.HIST_Leak.ToString(), "LX/LU-200:Leak Test");
|
||||||
|
NameMap.Add(eProcessTable.HIST_LaserTrim.ToString(), "LX/LU-210:Laser Trimming");
|
||||||
|
NameMap.Add(eProcessTable.HIST_LaserTrimVision.ToString(), "LX/LU-220:Trimming Vision Inspection");
|
||||||
|
NameMap.Add(eProcessTable.HIST_IsoRes.ToString(), "LX/LU-220:Isolation Resistance Test");
|
||||||
|
NameMap.Add(eProcessTable.HIST_CapAssy.ToString(), "LX/LU-230:Cap Ass'y");
|
||||||
|
NameMap.Add(eProcessTable.HIST_Function.ToString(), "LX/LU-240:Function Test");
|
||||||
|
NameMap.Add(eProcessTable.HIST_OutSealPress.ToString(), "LX/LU-250:Outer Seal Press");
|
||||||
|
NameMap.Add(eProcessTable.HIST_PinLVDT.ToString(), "LX/LU-260:Pin Height Inspection");
|
||||||
|
NameMap.Add(eProcessTable.HIST_PinVision.ToString(), "LX/LU-260:Pin-Align Vision Inspection");
|
||||||
|
NameMap.Add(eProcessTable.HIST_ProdUnload.ToString(), "LX/LU-270:Unloading");
|
||||||
|
|
||||||
|
return NameMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class NameMapItem
|
||||||
|
{
|
||||||
|
public string TableName { get; set; }
|
||||||
|
public string ProcName { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SysModelDef
|
||||||
|
{
|
||||||
|
public string ID { get; set; }
|
||||||
|
public string Path { get; set; }
|
||||||
|
public string Type { get; set; }
|
||||||
|
public eModelType eType { get; set; } = eModelType.NONE;
|
||||||
|
|
||||||
|
public SysModelDef(XElement elem)
|
||||||
|
{
|
||||||
|
SetModelDef(elem);
|
||||||
|
SetType(Type);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SysModelDef(string strPath)
|
||||||
|
{
|
||||||
|
Path = strPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool SetType(string strType)
|
||||||
|
{
|
||||||
|
eModelType eparsetype = eModelType.NONE;
|
||||||
|
|
||||||
|
if (!Enum.TryParse(strType.ToUpper(), out eparsetype))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
eType = eparsetype;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool SetModelDef(XElement elem)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
foreach (XAttribute regAttrb in elem.Attributes())
|
||||||
|
{
|
||||||
|
string strAttrbName = regAttrb.Name.LocalName;
|
||||||
|
|
||||||
|
if (CommonUtil.GetProperty(this, strAttrbName) == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
CommonUtil.SetPropertyValue(this, strAttrbName, regAttrb.Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
LogMessage.MessageOutput.ConsoleWrite("Error during Read Mdoel Definition in System Config.", ConsoleColor.Red, LogMessage.LogMessageLevel.FATAL);
|
||||||
|
LogMessage.MessageOutput.ConsoleWrite($" - Message: {ex.Message}", ConsoleColor.Red, LogMessage.LogMessageLevel.FATAL);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public XElement SaveXML()
|
||||||
|
{
|
||||||
|
XElement xelemSave = new XElement(eConfigElemList.Model.ToString());
|
||||||
|
|
||||||
|
xelemSave.SetAttributeValue("ID", ID);
|
||||||
|
xelemSave.SetAttributeValue("Path", Path);
|
||||||
|
xelemSave.SetAttributeValue("Type", Type);
|
||||||
|
|
||||||
|
return xelemSave;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class LogInfo
|
||||||
|
{
|
||||||
|
public string LogAccKey { get; set; }
|
||||||
|
public string ProductID { get; set; }
|
||||||
|
public string PalletID { get; set; }
|
||||||
|
public string UpdateDT { get; set; }
|
||||||
|
public string ProcessNo { get; set; }
|
||||||
|
public string PalletNo { get; set; }
|
||||||
|
public string PalletIndex { get; set; }
|
||||||
|
public string Status { get; set; }
|
||||||
|
public string TestTime { get; set; }
|
||||||
|
public string Result { get; set; }
|
||||||
|
|
||||||
|
public Dictionary<int, string> TestResult { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ChartLogInfo
|
||||||
|
{
|
||||||
|
public string TableName { get; set; }
|
||||||
|
public string StartDateTime { get; set; }
|
||||||
|
public string EndDateTime { get; set; }
|
||||||
|
public string ProductNo { get; set; }
|
||||||
|
public string PalletNo { get; set; }
|
||||||
|
public string PalletIndex { get; set; }
|
||||||
|
public string WorkMode { get; set; }
|
||||||
|
public string OperationMode { get; set; }
|
||||||
|
|
||||||
|
public string StepNo { get; set; }
|
||||||
|
public string MO { get; set; }
|
||||||
|
public string FuncName { get; set; }
|
||||||
|
public string Min { get; set; }
|
||||||
|
public string Max { get; set; }
|
||||||
|
|
||||||
|
public Dictionary<string, double> MeasuredData = new Dictionary<string, double>();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
94
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/Subs/WaitProgressForm.Designer.cs
generated
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
|
||||||
|
namespace SystemX.Product.ALIS.UI.Subs
|
||||||
|
{
|
||||||
|
partial class WaitProgressForm
|
||||||
|
{
|
||||||
|
/// <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()
|
||||||
|
{
|
||||||
|
this.progressPanel1 = new DevExpress.XtraWaitForm.ProgressPanel();
|
||||||
|
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||||
|
this.tableLayoutPanel1.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// progressPanel1
|
||||||
|
//
|
||||||
|
this.progressPanel1.Appearance.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.progressPanel1.Appearance.Font = new System.Drawing.Font("Arial Rounded MT", 9F);
|
||||||
|
this.progressPanel1.Appearance.Options.UseBackColor = true;
|
||||||
|
this.progressPanel1.Appearance.Options.UseFont = true;
|
||||||
|
this.progressPanel1.AppearanceCaption.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
|
||||||
|
this.progressPanel1.AppearanceCaption.Options.UseFont = true;
|
||||||
|
this.progressPanel1.AppearanceDescription.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F);
|
||||||
|
this.progressPanel1.AppearanceDescription.Options.UseFont = true;
|
||||||
|
this.progressPanel1.Description = "";
|
||||||
|
this.progressPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.progressPanel1.ImageHorzOffset = 20;
|
||||||
|
this.progressPanel1.Location = new System.Drawing.Point(0, 16);
|
||||||
|
this.progressPanel1.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
|
||||||
|
this.progressPanel1.Name = "progressPanel1";
|
||||||
|
this.progressPanel1.Size = new System.Drawing.Size(287, 35);
|
||||||
|
this.progressPanel1.TabIndex = 0;
|
||||||
|
this.progressPanel1.Text = "progressPanel1";
|
||||||
|
//
|
||||||
|
// tableLayoutPanel1
|
||||||
|
//
|
||||||
|
this.tableLayoutPanel1.AutoSize = true;
|
||||||
|
this.tableLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.tableLayoutPanel1.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.tableLayoutPanel1.ColumnCount = 1;
|
||||||
|
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
|
this.tableLayoutPanel1.Controls.Add(this.progressPanel1, 0, 0);
|
||||||
|
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||||
|
this.tableLayoutPanel1.Padding = new System.Windows.Forms.Padding(0, 13, 0, 13);
|
||||||
|
this.tableLayoutPanel1.RowCount = 1;
|
||||||
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
|
this.tableLayoutPanel1.Size = new System.Drawing.Size(287, 67);
|
||||||
|
this.tableLayoutPanel1.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// WaitProgressForm
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.ClientSize = new System.Drawing.Size(287, 67);
|
||||||
|
this.Controls.Add(this.tableLayoutPanel1);
|
||||||
|
this.Name = "WaitProgressForm";
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
|
||||||
|
this.tableLayoutPanel1.ResumeLayout(false);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private DevExpress.XtraWaitForm.ProgressPanel progressPanel1;
|
||||||
|
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
using DevExpress.XtraWaitForm;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace SystemX.Product.ALIS.UI.Subs
|
||||||
|
{
|
||||||
|
public partial class WaitProgressForm : WaitForm
|
||||||
|
{
|
||||||
|
public WaitProgressForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
this.progressPanel1.AutoHeight = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Overrides
|
||||||
|
|
||||||
|
public override void SetCaption(string caption)
|
||||||
|
{
|
||||||
|
base.SetCaption(caption);
|
||||||
|
|
||||||
|
this.progressPanel1.Caption = caption;
|
||||||
|
}
|
||||||
|
public override void SetDescription(string description)
|
||||||
|
{
|
||||||
|
base.SetDescription(description);
|
||||||
|
|
||||||
|
this.progressPanel1.Description = description;
|
||||||
|
}
|
||||||
|
public override void ProcessCommand(Enum cmd, object arg)
|
||||||
|
{
|
||||||
|
base.ProcessCommand(cmd, arg);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
public void setDescription(string sText)
|
||||||
|
{
|
||||||
|
this.SetDescription(sText);
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum WaitFormCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
@ -0,0 +1,467 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||||
|
<ProductVersion>8.0.30703</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{74C67745-2E9A-4F85-A170-2C1F5990E6F4}</ProjectGuid>
|
||||||
|
<OutputType>WinExe</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>SystemX.Product.TRA</RootNamespace>
|
||||||
|
<AssemblyName>SystemX.Product.TRA</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<NuGetPackageImportStamp>
|
||||||
|
</NuGetPackageImportStamp>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<ApplicationIcon>TRA-Logo.ico</ApplicationIcon>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<OutputPath>bin\x64\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
|
<LangVersion>7.3</LangVersion>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<Prefer32Bit>true</Prefer32Bit>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||||
|
<OutputPath>bin\x64\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
|
<LangVersion>7.3</LangVersion>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<Prefer32Bit>true</Prefer32Bit>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="DevExpress.BonusSkins.v20.2" />
|
||||||
|
<Reference Include="DevExpress.Charts.v20.2.Core, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
|
<Reference Include="DevExpress.Data.Desktop.v20.2" />
|
||||||
|
<Reference Include="DevExpress.Data.v20.2" />
|
||||||
|
<Reference Include="DevExpress.DataAccess.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
|
<Reference Include="DevExpress.DataVisualization.v20.2.Core, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>bin\Debug\DevExpress.DataVisualization.v20.2.Core.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="DevExpress.Docs.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
|
<Reference Include="DevExpress.Images.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
|
<Reference Include="DevExpress.Office.v20.2.Core, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
|
<Reference Include="DevExpress.Pdf.v20.2.Core, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
|
<Reference Include="DevExpress.RichEdit.v20.2.Core, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
|
<Reference Include="DevExpress.Spreadsheet.v20.2.Core, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
|
<Reference Include="DevExpress.Utils.v20.2" />
|
||||||
|
<Reference Include="DevExpress.Sparkline.v20.2.Core" />
|
||||||
|
<Reference Include="DevExpress.Utils.v20.2.UI, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
|
<Reference Include="DevExpress.XtraBars.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
|
<Reference Include="DevExpress.XtraCharts.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
|
<Reference Include="DevExpress.XtraCharts.v20.2.UI, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
|
<Reference Include="DevExpress.XtraCharts.v20.2.Wizard, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
|
<Reference Include="DevExpress.XtraEditors.v20.2" />
|
||||||
|
<Reference Include="DevExpress.Printing.v20.2.Core" />
|
||||||
|
<Reference Include="DevExpress.XtraGrid.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
|
<Reference Include="DevExpress.XtraLayout.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
|
<Reference Include="DevExpress.XtraPrinting.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
|
<Reference Include="DevExpress.XtraRichEdit.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
|
<Reference Include="DevExpress.XtraVerticalGrid.v20.2, Version=20.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
|
<Reference Include="log4net">
|
||||||
|
<HintPath>.\log4net.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Bcl.HashCode, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Data.SqlClient, Version=1.13.20136.2, Culture=neutral, PublicKeyToken=23ec7fc2d6eaa4a5, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Data.SqlClient.1.1.3\lib\net46\Microsoft.Data.SqlClient.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.EntityFrameworkCore, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.EntityFrameworkCore.3.1.32\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.EntityFrameworkCore.Abstractions, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.32\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.EntityFrameworkCore.Relational, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.EntityFrameworkCore.Relational.3.1.32\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Relational.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.EntityFrameworkCore.SqlServer, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.EntityFrameworkCore.SqlServer.3.1.32\lib\netstandard2.0\Microsoft.EntityFrameworkCore.SqlServer.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Extensions.Caching.Abstractions, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Extensions.Caching.Memory, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Extensions.Caching.Memory.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Extensions.Configuration, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Extensions.Configuration.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Extensions.Configuration.Abstractions, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Extensions.Configuration.Binder, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Extensions.Configuration.Binder.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Extensions.DependencyInjection, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Extensions.DependencyInjection.3.1.32\lib\net461\Microsoft.Extensions.DependencyInjection.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.32\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Extensions.Logging, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Extensions.Logging.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Logging.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Extensions.Logging.Abstractions, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Extensions.Options, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Extensions.Options.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Options.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Extensions.Primitives, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Extensions.Primitives.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Identity.Client, Version=3.0.8.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Identity.Client.3.0.8\lib\net45\Microsoft.Identity.Client.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.IdentityModel.JsonWebTokens, Version=5.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.IdentityModel.JsonWebTokens.5.5.0\lib\net461\Microsoft.IdentityModel.JsonWebTokens.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.IdentityModel.Logging, Version=5.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.IdentityModel.Logging.5.5.0\lib\net461\Microsoft.IdentityModel.Logging.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.IdentityModel.Protocols, Version=5.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.IdentityModel.Protocols.5.5.0\lib\net461\Microsoft.IdentityModel.Protocols.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect, Version=5.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.5.5.0\lib\net461\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.IdentityModel.Tokens, Version=5.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.IdentityModel.Tokens.5.5.0\lib\net461\Microsoft.IdentityModel.Tokens.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Collections.Immutable, Version=1.2.5.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.ComponentModel.Annotations, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||||
|
<Reference Include="System.Configuration" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Data.Common, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.Data.Common.4.3.0\lib\net451\System.Data.Common.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Data.Linq" />
|
||||||
|
<Reference Include="System.Diagnostics.DiagnosticSource, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.IdentityModel" />
|
||||||
|
<Reference Include="System.IdentityModel.Tokens.Jwt, Version=5.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.IdentityModel.Tokens.Jwt.5.5.0\lib\net461\System.IdentityModel.Tokens.Jwt.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Net.Http" />
|
||||||
|
<Reference Include="System.Numerics" />
|
||||||
|
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Reactive.Core">
|
||||||
|
<HintPath>..\..\RPDM\Output.SystemX\System.Reactive.Core.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Reactive.Interfaces">
|
||||||
|
<HintPath>..\..\RPDM\Output.SystemX\System.Reactive.Interfaces.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Reactive.Linq">
|
||||||
|
<HintPath>..\..\RPDM\Output.SystemX\System.Reactive.Linq.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Deployment" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
<Reference Include="SystemX.Net.Platform">
|
||||||
|
<HintPath>..\..\Output.SystemX\SystemX.Net.Platform.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="SystemX.Net.XAdaptor.PC.UIM">
|
||||||
|
<HintPath>..\..\Output.SystemX\SystemX.Net.XAdaptor.PC.UIM.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="SystemX.Product.CP.TRA.BaseView">
|
||||||
|
<HintPath>..\SystemX.Product.CP.TRA.BaseView\bin\x64\SystemX.Product.CP.TRA.BaseView.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="SystemX.XEFCore">
|
||||||
|
<HintPath>..\..\Output.SystemX\SystemX.XEFCore.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="ChildControl.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="DataControl.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="DataManager\DMCommon.cs" />
|
||||||
|
<Compile Include="DataManager\DMDetailOverview.cs" />
|
||||||
|
<Compile Include="DataManager\DMOverview.cs" />
|
||||||
|
<Compile Include="DataManager\DMStepTrend.cs" />
|
||||||
|
<Compile Include="DataManager\DMProductHistory.cs" />
|
||||||
|
<Compile Include="DataManager\DMTestNgHistory.cs" />
|
||||||
|
<Compile Include="DataManager\DMTestSummary.cs" />
|
||||||
|
<Compile Include="DataManager\DMTestDetail.cs" />
|
||||||
|
<Compile Include="DataManager\DMTestHistory.cs" />
|
||||||
|
<Compile Include="DB\DataBaseConn.cs" />
|
||||||
|
<Compile Include="Interface\IChildControl.cs" />
|
||||||
|
<Compile Include="Interface\IChildSubscribe.cs" />
|
||||||
|
<Compile Include="Interface\IDataBaseControl.cs" />
|
||||||
|
<Compile Include="Interface\IDataControl.cs" />
|
||||||
|
<Compile Include="Interface\IUserControlSubscribe.cs" />
|
||||||
|
<Compile Include="MainForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="MainForm.Designer.cs">
|
||||||
|
<DependentUpon>MainForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Program.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Subs\Commons.cs" />
|
||||||
|
<Compile Include="Subs\ConnectForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Subs\ConnectForm.Designer.cs">
|
||||||
|
<DependentUpon>ConnectForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Subs\LoginForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Subs\LoginForm.Designer.cs">
|
||||||
|
<DependentUpon>LoginForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Subs\ViewCfg.cs" />
|
||||||
|
<Compile Include="Subs\WaitProgressForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Subs\WaitProgressForm.Designer.cs">
|
||||||
|
<DependentUpon>WaitProgressForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\FrmOptionOverview.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\FrmOptionOverview.Designer.cs">
|
||||||
|
<DependentUpon>FrmOptionOverview.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\FrmOptionStationSearch.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\FrmOptionStationSearch.Designer.cs">
|
||||||
|
<DependentUpon>FrmOptionStationSearch.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\FrmOptionSummary.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\FrmOptionSummary.Designer.cs">
|
||||||
|
<DependentUpon>FrmOptionSummary.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\Helper\MergedRowsHelper.cs" />
|
||||||
|
<Compile Include="UIControl\UcTRADetailOverview.cs">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\UcTRADetailOverview.Designer.cs">
|
||||||
|
<DependentUpon>UcTRADetailOverview.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\UcTRAStepTrend.cs">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\UcTRAStepTrend.Designer.cs">
|
||||||
|
<DependentUpon>UcTRAStepTrend.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\UcTRASummaryTestResult.cs">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\UcTRASummaryTestResult.Designer.cs">
|
||||||
|
<DependentUpon>UcTRASummaryTestResult.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\UcTRADetailTestResult.cs">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\UcTRADetailTestResult.Designer.cs">
|
||||||
|
<DependentUpon>UcTRADetailTestResult.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\UcTRAOverview.cs">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\UcTRAOverview.Designer.cs">
|
||||||
|
<DependentUpon>UcTRAOverview.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\UcTRAProductHist.cs">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\UcTRAProductHist.Designer.cs">
|
||||||
|
<DependentUpon>UcTRAProductHist.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\UcTRAProdHistHost.cs">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\UcTRAProdHistHost.Designer.cs">
|
||||||
|
<DependentUpon>UcTRAProdHistHost.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\UcTRATestNgHist.cs">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\UcTRATestNgHist.Designer.cs">
|
||||||
|
<DependentUpon>UcTRATestNgHist.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\UcTRATestHistHost.cs">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\UcTRATestHistHost.Designer.cs">
|
||||||
|
<DependentUpon>UcTRATestHistHost.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UIControl\UcTRAViewStatic.cs" />
|
||||||
|
<EmbeddedResource Include="MainForm.resx">
|
||||||
|
<DependentUpon>MainForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Properties\licenses.licx" />
|
||||||
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<Compile Include="Properties\Resources.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
</Compile>
|
||||||
|
<EmbeddedResource Include="Subs\ConnectForm.resx">
|
||||||
|
<DependentUpon>ConnectForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Subs\LoginForm.resx">
|
||||||
|
<DependentUpon>LoginForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Subs\WaitProgressForm.resx">
|
||||||
|
<DependentUpon>WaitProgressForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="UIControl\FrmOptionOverview.resx">
|
||||||
|
<DependentUpon>FrmOptionOverview.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="UIControl\FrmOptionStationSearch.resx">
|
||||||
|
<DependentUpon>FrmOptionStationSearch.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="UIControl\FrmOptionSummary.resx">
|
||||||
|
<DependentUpon>FrmOptionSummary.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="UIControl\UcTRADetailOverview.resx">
|
||||||
|
<DependentUpon>UcTRADetailOverview.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="UIControl\UcTRAStepTrend.resx">
|
||||||
|
<DependentUpon>UcTRAStepTrend.cs</DependentUpon>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="UIControl\UcTRASummaryTestResult.resx">
|
||||||
|
<DependentUpon>UcTRASummaryTestResult.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="UIControl\UcTRADetailTestResult.resx">
|
||||||
|
<DependentUpon>UcTRADetailTestResult.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="UIControl\UcTRAOverview.resx">
|
||||||
|
<DependentUpon>UcTRAOverview.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="UIControl\UcTRAProductHist.resx">
|
||||||
|
<DependentUpon>UcTRAProductHist.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="UIControl\UcTRAProdHistHost.resx">
|
||||||
|
<DependentUpon>UcTRAProdHistHost.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="UIControl\UcTRATestNgHist.resx">
|
||||||
|
<DependentUpon>UcTRATestNgHist.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="UIControl\UcTRATestHistHost.resx">
|
||||||
|
<DependentUpon>UcTRATestHistHost.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<None Include="App.config" />
|
||||||
|
<None Include="packages.config" />
|
||||||
|
<None Include="Properties\Settings.settings">
|
||||||
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
|
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||||
|
</None>
|
||||||
|
<Compile Include="Properties\Settings.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Settings.settings</DependentUpon>
|
||||||
|
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="NoChartSpec.def" />
|
||||||
|
<None Include="Resources\IpAddress.PNG" />
|
||||||
|
<None Include="Resources\Kefico CI.PNG" />
|
||||||
|
<None Include="Resources\Password.jpg" />
|
||||||
|
<None Include="Resources\Find_16x16.png" />
|
||||||
|
<None Include="Resources\HistoryItem_16x16.png" />
|
||||||
|
<None Include="Resources\Linear_16x16.png" />
|
||||||
|
<None Include="Resources\UpdateField_16x16.png" />
|
||||||
|
<None Include="Resources\UpdateTableOfContents_16x16.png" />
|
||||||
|
<None Include="Resources\ModelEditor_DetailView.png" />
|
||||||
|
<None Include="Resources\ExplodedPie3D_16x16.png" />
|
||||||
|
<None Include="Resources\Find2_16x16.png" />
|
||||||
|
<Content Include="TRA-Logo.ico" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<PostBuildEvent>copy /Y "$(SolutionDir)\\SystemX.Product.CP.TRA\NoChartSpec.def" "$(TargetDir)\NoChartSpec.def"</PostBuildEvent>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="..\packages\Microsoft.Data.SqlClient.SNI.1.1.0\build\net46\Microsoft.Data.SqlClient.SNI.targets" Condition="Exists('..\packages\Microsoft.Data.SqlClient.SNI.1.1.0\build\net46\Microsoft.Data.SqlClient.SNI.targets')" />
|
||||||
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ErrorText>이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다.</ErrorText>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Error Condition="!Exists('..\packages\Microsoft.Data.SqlClient.SNI.1.1.0\build\net46\Microsoft.Data.SqlClient.SNI.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Data.SqlClient.SNI.1.1.0\build\net46\Microsoft.Data.SqlClient.SNI.targets'))" />
|
||||||
|
</Target>
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
||||||
BIN
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/TRA-Logo.ico
Normal file
|
After Width: | Height: | Size: 263 KiB |
178
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/UIControl/FrmOptionOverview.Designer.cs
generated
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
namespace SystemX.Product.TRA.UIControl
|
||||||
|
{
|
||||||
|
partial class FrmOptionOverview
|
||||||
|
{
|
||||||
|
/// <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()
|
||||||
|
{
|
||||||
|
this.groupControl1 = new DevExpress.XtraEditors.GroupControl();
|
||||||
|
this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
|
||||||
|
this.checkedListBoxControlOption = new DevExpress.XtraEditors.CheckedListBoxControl();
|
||||||
|
this.simpleButtonOK = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
|
||||||
|
this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
|
||||||
|
this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
|
||||||
|
this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.groupControl1)).BeginInit();
|
||||||
|
this.groupControl1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
|
||||||
|
this.layoutControl1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.checkedListBoxControlOption)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// groupControl1
|
||||||
|
//
|
||||||
|
this.groupControl1.AppearanceCaption.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.groupControl1.AppearanceCaption.BorderColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Primary;
|
||||||
|
this.groupControl1.AppearanceCaption.Options.UseBackColor = true;
|
||||||
|
this.groupControl1.AppearanceCaption.Options.UseBorderColor = true;
|
||||||
|
this.groupControl1.Controls.Add(this.layoutControl1);
|
||||||
|
this.groupControl1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.groupControl1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.groupControl1.Name = "groupControl1";
|
||||||
|
this.groupControl1.Size = new System.Drawing.Size(373, 456);
|
||||||
|
this.groupControl1.TabIndex = 0;
|
||||||
|
this.groupControl1.Text = "Data Overview Option";
|
||||||
|
//
|
||||||
|
// layoutControl1
|
||||||
|
//
|
||||||
|
this.layoutControl1.Controls.Add(this.checkedListBoxControlOption);
|
||||||
|
this.layoutControl1.Controls.Add(this.simpleButtonOK);
|
||||||
|
this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.layoutControl1.Location = new System.Drawing.Point(2, 23);
|
||||||
|
this.layoutControl1.Name = "layoutControl1";
|
||||||
|
this.layoutControl1.Root = this.Root;
|
||||||
|
this.layoutControl1.Size = new System.Drawing.Size(369, 431);
|
||||||
|
this.layoutControl1.TabIndex = 0;
|
||||||
|
this.layoutControl1.Text = "layoutControl1";
|
||||||
|
//
|
||||||
|
// checkedListBoxControlOption
|
||||||
|
//
|
||||||
|
this.checkedListBoxControlOption.Location = new System.Drawing.Point(12, 12);
|
||||||
|
this.checkedListBoxControlOption.Name = "checkedListBoxControlOption";
|
||||||
|
this.checkedListBoxControlOption.Size = new System.Drawing.Size(345, 371);
|
||||||
|
this.checkedListBoxControlOption.StyleController = this.layoutControl1;
|
||||||
|
this.checkedListBoxControlOption.TabIndex = 6;
|
||||||
|
this.checkedListBoxControlOption.ItemCheck += new DevExpress.XtraEditors.Controls.ItemCheckEventHandler(this.checkedListBoxControlOption_ItemCheck);
|
||||||
|
this.checkedListBoxControlOption.Click += new System.EventHandler(this.checkedListBoxControlOption_Click);
|
||||||
|
//
|
||||||
|
// simpleButtonOK
|
||||||
|
//
|
||||||
|
this.simpleButtonOK.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Primary;
|
||||||
|
this.simpleButtonOK.Appearance.Options.UseBackColor = true;
|
||||||
|
this.simpleButtonOK.Location = new System.Drawing.Point(12, 387);
|
||||||
|
this.simpleButtonOK.Name = "simpleButtonOK";
|
||||||
|
this.simpleButtonOK.Size = new System.Drawing.Size(345, 22);
|
||||||
|
this.simpleButtonOK.StyleController = this.layoutControl1;
|
||||||
|
this.simpleButtonOK.TabIndex = 5;
|
||||||
|
this.simpleButtonOK.Text = "Search";
|
||||||
|
this.simpleButtonOK.Click += new System.EventHandler(this.simpleButtonOK_Click);
|
||||||
|
//
|
||||||
|
// Root
|
||||||
|
//
|
||||||
|
this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
|
||||||
|
this.Root.GroupBordersVisible = false;
|
||||||
|
this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
|
||||||
|
this.emptySpaceItem1,
|
||||||
|
this.layoutControlItem2,
|
||||||
|
this.layoutControlItem3});
|
||||||
|
this.Root.Name = "Root";
|
||||||
|
this.Root.Size = new System.Drawing.Size(369, 431);
|
||||||
|
this.Root.TextVisible = false;
|
||||||
|
//
|
||||||
|
// emptySpaceItem1
|
||||||
|
//
|
||||||
|
this.emptySpaceItem1.AllowHotTrack = false;
|
||||||
|
this.emptySpaceItem1.Location = new System.Drawing.Point(0, 401);
|
||||||
|
this.emptySpaceItem1.Name = "emptySpaceItem1";
|
||||||
|
this.emptySpaceItem1.Size = new System.Drawing.Size(349, 10);
|
||||||
|
this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
|
||||||
|
//
|
||||||
|
// layoutControlItem2
|
||||||
|
//
|
||||||
|
this.layoutControlItem2.Control = this.simpleButtonOK;
|
||||||
|
this.layoutControlItem2.Location = new System.Drawing.Point(0, 375);
|
||||||
|
this.layoutControlItem2.MaxSize = new System.Drawing.Size(0, 26);
|
||||||
|
this.layoutControlItem2.MinSize = new System.Drawing.Size(89, 26);
|
||||||
|
this.layoutControlItem2.Name = "layoutControlItem2";
|
||||||
|
this.layoutControlItem2.Size = new System.Drawing.Size(349, 26);
|
||||||
|
this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
|
||||||
|
this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
|
||||||
|
this.layoutControlItem2.TextVisible = false;
|
||||||
|
//
|
||||||
|
// layoutControlItem3
|
||||||
|
//
|
||||||
|
this.layoutControlItem3.Control = this.checkedListBoxControlOption;
|
||||||
|
this.layoutControlItem3.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.layoutControlItem3.Name = "layoutControlItem3";
|
||||||
|
this.layoutControlItem3.Size = new System.Drawing.Size(349, 375);
|
||||||
|
this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
|
||||||
|
this.layoutControlItem3.TextVisible = false;
|
||||||
|
//
|
||||||
|
// FrmOptionOverview
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(373, 456);
|
||||||
|
this.ControlBox = false;
|
||||||
|
this.Controls.Add(this.groupControl1);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||||
|
this.Name = "FrmOptionOverview";
|
||||||
|
this.ShowIcon = false;
|
||||||
|
this.ShowInTaskbar = false;
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||||
|
this.Text = "FrmOptionStationSearch";
|
||||||
|
this.TopMost = true;
|
||||||
|
this.Load += new System.EventHandler(this.FrmOptionStationSearch_Load);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.groupControl1)).EndInit();
|
||||||
|
this.groupControl1.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
|
||||||
|
this.layoutControl1.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.checkedListBoxControlOption)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private DevExpress.XtraEditors.GroupControl groupControl1;
|
||||||
|
private DevExpress.XtraLayout.LayoutControl layoutControl1;
|
||||||
|
private DevExpress.XtraEditors.CheckedListBoxControl checkedListBoxControlOption;
|
||||||
|
private DevExpress.XtraEditors.SimpleButton simpleButtonOK;
|
||||||
|
private DevExpress.XtraLayout.LayoutControlGroup Root;
|
||||||
|
private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
|
||||||
|
private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
|
||||||
|
private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,101 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.UIControl
|
||||||
|
{
|
||||||
|
public partial class FrmOptionOverview : Form
|
||||||
|
{
|
||||||
|
OverviewSearchOption Option { get; set; } = new OverviewSearchOption();
|
||||||
|
|
||||||
|
public FrmOptionOverview()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
public OverviewSearchOption GetSelectedResult()
|
||||||
|
{
|
||||||
|
return Option;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DispData()
|
||||||
|
{
|
||||||
|
string strTypeName = "SystemX.Product.TRA.UIControl.OverviewSearchOption";
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Type typeObj = Type.GetType(strTypeName);
|
||||||
|
|
||||||
|
foreach(PropertyInfo info in typeObj.GetProperties())
|
||||||
|
{
|
||||||
|
if (info.PropertyType == typeof(string))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
string strProp = info.Name;
|
||||||
|
string strValue = info.GetValue(Option, null).ToString();
|
||||||
|
bool bState = Convert.ToBoolean(strValue);
|
||||||
|
|
||||||
|
checkedListBoxControlOption.Items.Add(strProp, bState ? CheckState.Checked : CheckState.Unchecked, true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
catch(Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Error during option display: " + ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FrmOptionStationSearch_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
DispData();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void simpleButtonOK_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string strTypeName = "SystemX.Product.TRA.UIControl.OverviewSearchOption";
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Type typeObj = Type.GetType(strTypeName);
|
||||||
|
|
||||||
|
foreach (PropertyInfo info in typeObj.GetProperties())
|
||||||
|
{
|
||||||
|
if (info.PropertyType == typeof(string))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
string strProp = info.Name;
|
||||||
|
bool bChecked = checkedListBoxControlOption.Items[strProp].CheckState == CheckState.Checked ? true : false;
|
||||||
|
|
||||||
|
info.SetValue(Option, bChecked);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.DialogResult = DialogResult.OK;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Error during option matching: " + ex.Message);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkedListBoxControlOption_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkedListBoxControlOption_ItemCheck(object sender, DevExpress.XtraEditors.Controls.ItemCheckEventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
179
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/UIControl/FrmOptionStationSearch.Designer.cs
generated
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
namespace SystemX.Product.TRA.UIControl
|
||||||
|
{
|
||||||
|
partial class FrmOptionStationSearch
|
||||||
|
{
|
||||||
|
/// <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()
|
||||||
|
{
|
||||||
|
this.groupControl1 = new DevExpress.XtraEditors.GroupControl();
|
||||||
|
this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
|
||||||
|
this.checkedListBoxControlOption = new DevExpress.XtraEditors.CheckedListBoxControl();
|
||||||
|
this.simpleButtonOK = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
|
||||||
|
this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
|
||||||
|
this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
|
||||||
|
this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.groupControl1)).BeginInit();
|
||||||
|
this.groupControl1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
|
||||||
|
this.layoutControl1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.checkedListBoxControlOption)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// groupControl1
|
||||||
|
//
|
||||||
|
this.groupControl1.AppearanceCaption.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.groupControl1.AppearanceCaption.BorderColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Primary;
|
||||||
|
this.groupControl1.AppearanceCaption.Options.UseBackColor = true;
|
||||||
|
this.groupControl1.AppearanceCaption.Options.UseBorderColor = true;
|
||||||
|
this.groupControl1.Controls.Add(this.layoutControl1);
|
||||||
|
this.groupControl1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.groupControl1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.groupControl1.Name = "groupControl1";
|
||||||
|
this.groupControl1.Size = new System.Drawing.Size(373, 456);
|
||||||
|
this.groupControl1.TabIndex = 0;
|
||||||
|
this.groupControl1.Text = "Station Test History Search Option";
|
||||||
|
//
|
||||||
|
// layoutControl1
|
||||||
|
//
|
||||||
|
this.layoutControl1.Controls.Add(this.checkedListBoxControlOption);
|
||||||
|
this.layoutControl1.Controls.Add(this.simpleButtonOK);
|
||||||
|
this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.layoutControl1.Location = new System.Drawing.Point(2, 23);
|
||||||
|
this.layoutControl1.Name = "layoutControl1";
|
||||||
|
this.layoutControl1.Root = this.Root;
|
||||||
|
this.layoutControl1.Size = new System.Drawing.Size(369, 431);
|
||||||
|
this.layoutControl1.TabIndex = 0;
|
||||||
|
this.layoutControl1.Text = "layoutControl1";
|
||||||
|
//
|
||||||
|
// checkedListBoxControlOption
|
||||||
|
//
|
||||||
|
this.checkedListBoxControlOption.Location = new System.Drawing.Point(12, 12);
|
||||||
|
this.checkedListBoxControlOption.Name = "checkedListBoxControlOption";
|
||||||
|
this.checkedListBoxControlOption.Size = new System.Drawing.Size(345, 371);
|
||||||
|
this.checkedListBoxControlOption.StyleController = this.layoutControl1;
|
||||||
|
this.checkedListBoxControlOption.TabIndex = 6;
|
||||||
|
this.checkedListBoxControlOption.ItemCheck += new DevExpress.XtraEditors.Controls.ItemCheckEventHandler(this.checkedListBoxControlOption_ItemCheck);
|
||||||
|
this.checkedListBoxControlOption.CheckMemberChanged += new System.EventHandler(this.checkedListBoxControlOption_CheckMemberChanged);
|
||||||
|
this.checkedListBoxControlOption.SelectedValueChanged += new System.EventHandler(this.checkedListBoxControlOption_SelectedValueChanged);
|
||||||
|
//
|
||||||
|
// simpleButtonOK
|
||||||
|
//
|
||||||
|
this.simpleButtonOK.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Primary;
|
||||||
|
this.simpleButtonOK.Appearance.Options.UseBackColor = true;
|
||||||
|
this.simpleButtonOK.Location = new System.Drawing.Point(12, 387);
|
||||||
|
this.simpleButtonOK.Name = "simpleButtonOK";
|
||||||
|
this.simpleButtonOK.Size = new System.Drawing.Size(345, 22);
|
||||||
|
this.simpleButtonOK.StyleController = this.layoutControl1;
|
||||||
|
this.simpleButtonOK.TabIndex = 5;
|
||||||
|
this.simpleButtonOK.Text = "Search";
|
||||||
|
this.simpleButtonOK.Click += new System.EventHandler(this.simpleButtonOK_Click);
|
||||||
|
//
|
||||||
|
// Root
|
||||||
|
//
|
||||||
|
this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
|
||||||
|
this.Root.GroupBordersVisible = false;
|
||||||
|
this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
|
||||||
|
this.emptySpaceItem1,
|
||||||
|
this.layoutControlItem2,
|
||||||
|
this.layoutControlItem3});
|
||||||
|
this.Root.Name = "Root";
|
||||||
|
this.Root.Size = new System.Drawing.Size(369, 431);
|
||||||
|
this.Root.TextVisible = false;
|
||||||
|
//
|
||||||
|
// emptySpaceItem1
|
||||||
|
//
|
||||||
|
this.emptySpaceItem1.AllowHotTrack = false;
|
||||||
|
this.emptySpaceItem1.Location = new System.Drawing.Point(0, 401);
|
||||||
|
this.emptySpaceItem1.Name = "emptySpaceItem1";
|
||||||
|
this.emptySpaceItem1.Size = new System.Drawing.Size(349, 10);
|
||||||
|
this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
|
||||||
|
//
|
||||||
|
// layoutControlItem2
|
||||||
|
//
|
||||||
|
this.layoutControlItem2.Control = this.simpleButtonOK;
|
||||||
|
this.layoutControlItem2.Location = new System.Drawing.Point(0, 375);
|
||||||
|
this.layoutControlItem2.MaxSize = new System.Drawing.Size(0, 26);
|
||||||
|
this.layoutControlItem2.MinSize = new System.Drawing.Size(89, 26);
|
||||||
|
this.layoutControlItem2.Name = "layoutControlItem2";
|
||||||
|
this.layoutControlItem2.Size = new System.Drawing.Size(349, 26);
|
||||||
|
this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
|
||||||
|
this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
|
||||||
|
this.layoutControlItem2.TextVisible = false;
|
||||||
|
//
|
||||||
|
// layoutControlItem3
|
||||||
|
//
|
||||||
|
this.layoutControlItem3.Control = this.checkedListBoxControlOption;
|
||||||
|
this.layoutControlItem3.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.layoutControlItem3.Name = "layoutControlItem3";
|
||||||
|
this.layoutControlItem3.Size = new System.Drawing.Size(349, 375);
|
||||||
|
this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
|
||||||
|
this.layoutControlItem3.TextVisible = false;
|
||||||
|
//
|
||||||
|
// FrmOptionStationSearch
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(373, 456);
|
||||||
|
this.ControlBox = false;
|
||||||
|
this.Controls.Add(this.groupControl1);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||||
|
this.Name = "FrmOptionStationSearch";
|
||||||
|
this.ShowIcon = false;
|
||||||
|
this.ShowInTaskbar = false;
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||||
|
this.Text = "FrmOptionStationSearch";
|
||||||
|
this.TopMost = true;
|
||||||
|
this.Load += new System.EventHandler(this.FrmOptionStationSearch_Load);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.groupControl1)).EndInit();
|
||||||
|
this.groupControl1.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
|
||||||
|
this.layoutControl1.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.checkedListBoxControlOption)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private DevExpress.XtraEditors.GroupControl groupControl1;
|
||||||
|
private DevExpress.XtraLayout.LayoutControl layoutControl1;
|
||||||
|
private DevExpress.XtraEditors.CheckedListBoxControl checkedListBoxControlOption;
|
||||||
|
private DevExpress.XtraEditors.SimpleButton simpleButtonOK;
|
||||||
|
private DevExpress.XtraLayout.LayoutControlGroup Root;
|
||||||
|
private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
|
||||||
|
private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
|
||||||
|
private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,159 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.UIControl
|
||||||
|
{
|
||||||
|
public partial class FrmOptionStationSearch : Form
|
||||||
|
{
|
||||||
|
TestHistorySearchOption Option { get; set; } = new TestHistorySearchOption();
|
||||||
|
|
||||||
|
private bool bSelectedTime_DaySearched = false;
|
||||||
|
|
||||||
|
public enum eExclusion
|
||||||
|
{
|
||||||
|
Time_SelectedTest,
|
||||||
|
Time_Day,
|
||||||
|
Time_WholeRange
|
||||||
|
}
|
||||||
|
|
||||||
|
public FrmOptionStationSearch(bool bDialog = true, bool bSelectTime_Day = false)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
bSelectedTime_DaySearched = bSelectTime_Day;
|
||||||
|
|
||||||
|
DispData();
|
||||||
|
|
||||||
|
if(bDialog == false)
|
||||||
|
SetOption();
|
||||||
|
}
|
||||||
|
|
||||||
|
public TestHistorySearchOption GetSelectedResult()
|
||||||
|
{
|
||||||
|
return Option;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DispData()
|
||||||
|
{
|
||||||
|
string strTypeName = "SystemX.Product.TRA.UIControl.TestHistorySearchOption";
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Type typeObj = Type.GetType(strTypeName);
|
||||||
|
|
||||||
|
foreach(PropertyInfo info in typeObj.GetProperties())
|
||||||
|
{
|
||||||
|
string strProp = info.Name;
|
||||||
|
string strValue = info.GetValue(Option, null).ToString();
|
||||||
|
bool bState = Convert.ToBoolean(strValue);
|
||||||
|
|
||||||
|
checkedListBoxControlOption.Items.Add(strProp, bState ? CheckState.Checked : CheckState.Unchecked, true);
|
||||||
|
|
||||||
|
if (strProp == "StepVersion" || strProp == "FileVersion")
|
||||||
|
checkedListBoxControlOption.Items[strProp].Enabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
catch(Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Error during option display: " + ex.Message);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bSelectedTime_DaySearched)
|
||||||
|
{
|
||||||
|
checkedListBoxControlOption.Items.Where(x => x.Value.ToString() == eExclusion.Time_SelectedTest.ToString()).FirstOrDefault().CheckState = CheckState.Checked;
|
||||||
|
checkedListBoxControlOption.Items.Where(x => x.Value.ToString() == eExclusion.Time_WholeRange.ToString()).FirstOrDefault().CheckState = CheckState.Unchecked;
|
||||||
|
checkedListBoxControlOption.Items.Where(x => x.Value.ToString() == eExclusion.Time_Day.ToString()).FirstOrDefault().CheckState = CheckState.Unchecked;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FrmOptionStationSearch_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
DispData();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetOption()
|
||||||
|
{
|
||||||
|
string strTypeName = "SystemX.Product.TRA.UIControl.TestHistorySearchOption";
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (checkedListBoxControlOption.Items.Where(x => x.Value.ToString() == eExclusion.Time_SelectedTest.ToString()).FirstOrDefault().CheckState == CheckState.Unchecked &&
|
||||||
|
checkedListBoxControlOption.Items.Where(x => x.Value.ToString() == eExclusion.Time_Day.ToString()).FirstOrDefault().CheckState == CheckState.Unchecked &&
|
||||||
|
checkedListBoxControlOption.Items.Where(x => x.Value.ToString() == eExclusion.Time_WholeRange.ToString()).FirstOrDefault().CheckState == CheckState.Unchecked)
|
||||||
|
checkedListBoxControlOption.Items.Where(x => x.Value.ToString() == eExclusion.Time_SelectedTest.ToString()).FirstOrDefault().CheckState = CheckState.Checked;
|
||||||
|
|
||||||
|
Type typeObj = Type.GetType(strTypeName);
|
||||||
|
|
||||||
|
foreach (PropertyInfo info in typeObj.GetProperties())
|
||||||
|
{
|
||||||
|
string strProp = info.Name;
|
||||||
|
bool bChecked = checkedListBoxControlOption.Items[strProp].CheckState == CheckState.Checked ? true : false;
|
||||||
|
|
||||||
|
info.SetValue(Option, bChecked);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Error during option matching: " + ex.Message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void simpleButtonOK_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
SetOption();
|
||||||
|
|
||||||
|
this.DialogResult = DialogResult.OK;
|
||||||
|
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkedListBoxControlOption_ItemCheck(object sender, DevExpress.XtraEditors.Controls.ItemCheckEventArgs e)
|
||||||
|
{
|
||||||
|
bool bChecked = e.State == CheckState.Checked ? true : false;
|
||||||
|
string strName = checkedListBoxControlOption.Items[e.Index].Value.ToString();
|
||||||
|
|
||||||
|
if (strName == eExclusion.Time_SelectedTest.ToString() && bChecked)
|
||||||
|
{
|
||||||
|
checkedListBoxControlOption.Items.Where(x => x.Value.ToString() == eExclusion.Time_Day.ToString()).FirstOrDefault().CheckState = CheckState.Unchecked;
|
||||||
|
checkedListBoxControlOption.Items.Where(x => x.Value.ToString() == eExclusion.Time_WholeRange.ToString()).FirstOrDefault().CheckState = CheckState.Unchecked;
|
||||||
|
}
|
||||||
|
else if (strName == eExclusion.Time_Day.ToString() && bChecked)
|
||||||
|
{
|
||||||
|
checkedListBoxControlOption.Items.Where(x => x.Value.ToString() == eExclusion.Time_SelectedTest.ToString()).FirstOrDefault().CheckState = CheckState.Unchecked;
|
||||||
|
checkedListBoxControlOption.Items.Where(x => x.Value.ToString() == eExclusion.Time_WholeRange.ToString()).FirstOrDefault().CheckState = CheckState.Unchecked;
|
||||||
|
}
|
||||||
|
else if (strName == eExclusion.Time_WholeRange.ToString() && bChecked)
|
||||||
|
{
|
||||||
|
checkedListBoxControlOption.Items.Where(x => x.Value.ToString() == eExclusion.Time_SelectedTest.ToString()).FirstOrDefault().CheckState = CheckState.Unchecked;
|
||||||
|
checkedListBoxControlOption.Items.Where(x => x.Value.ToString() == eExclusion.Time_Day.ToString()).FirstOrDefault().CheckState = CheckState.Unchecked;
|
||||||
|
}
|
||||||
|
//else if (!bChecked)
|
||||||
|
//{
|
||||||
|
// checkedListBoxControlOption.Items.Where(x => x.Value.ToString() == eExclusion.Time_SelectedTest.ToString()).FirstOrDefault().CheckState = CheckState.Checked;
|
||||||
|
// checkedListBoxControlOption.Items.Where(x => x.Value.ToString() == eExclusion.Time_Day.ToString()).FirstOrDefault().CheckState = CheckState.Unchecked;
|
||||||
|
// checkedListBoxControlOption.Items.Where(x => x.Value.ToString() == eExclusion.Time_WholeRange.ToString()).FirstOrDefault().CheckState = CheckState.Unchecked;
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkedListBoxControlOption_CheckMemberChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkedListBoxControlOption_SelectedValueChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
164
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/UIControl/FrmOptionSummary.Designer.cs
generated
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
namespace SystemX.Product.TRA.UIControl
|
||||||
|
{
|
||||||
|
partial class FrmOptionSummary
|
||||||
|
{
|
||||||
|
/// <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()
|
||||||
|
{
|
||||||
|
this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
|
||||||
|
this.simpleButtonOptionB = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.simpleButtonOptionA = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
|
||||||
|
this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
|
||||||
|
this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
|
||||||
|
this.simpleButtonCancel = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
|
||||||
|
this.layoutControl1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// layoutControl1
|
||||||
|
//
|
||||||
|
this.layoutControl1.Controls.Add(this.simpleButtonCancel);
|
||||||
|
this.layoutControl1.Controls.Add(this.simpleButtonOptionB);
|
||||||
|
this.layoutControl1.Controls.Add(this.simpleButtonOptionA);
|
||||||
|
this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.layoutControl1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.layoutControl1.Name = "layoutControl1";
|
||||||
|
this.layoutControl1.Root = this.Root;
|
||||||
|
this.layoutControl1.Size = new System.Drawing.Size(463, 144);
|
||||||
|
this.layoutControl1.TabIndex = 0;
|
||||||
|
this.layoutControl1.Text = "layoutControl1";
|
||||||
|
//
|
||||||
|
// simpleButtonOptionB
|
||||||
|
//
|
||||||
|
this.simpleButtonOptionB.Location = new System.Drawing.Point(233, 12);
|
||||||
|
this.simpleButtonOptionB.Name = "simpleButtonOptionB";
|
||||||
|
this.simpleButtonOptionB.Size = new System.Drawing.Size(218, 94);
|
||||||
|
this.simpleButtonOptionB.StyleController = this.layoutControl1;
|
||||||
|
this.simpleButtonOptionB.TabIndex = 5;
|
||||||
|
this.simpleButtonOptionB.Text = "All Testlist Version Base";
|
||||||
|
this.simpleButtonOptionB.Click += new System.EventHandler(this.simpleButtonOptionB_Click);
|
||||||
|
//
|
||||||
|
// simpleButtonOptionA
|
||||||
|
//
|
||||||
|
this.simpleButtonOptionA.Location = new System.Drawing.Point(12, 12);
|
||||||
|
this.simpleButtonOptionA.Name = "simpleButtonOptionA";
|
||||||
|
this.simpleButtonOptionA.Size = new System.Drawing.Size(217, 94);
|
||||||
|
this.simpleButtonOptionA.StyleController = this.layoutControl1;
|
||||||
|
this.simpleButtonOptionA.TabIndex = 4;
|
||||||
|
this.simpleButtonOptionA.Text = "New Testlist Version Base";
|
||||||
|
this.simpleButtonOptionA.Click += new System.EventHandler(this.simpleButtonOptionA_Click);
|
||||||
|
//
|
||||||
|
// Root
|
||||||
|
//
|
||||||
|
this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
|
||||||
|
this.Root.GroupBordersVisible = false;
|
||||||
|
this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
|
||||||
|
this.layoutControlItem1,
|
||||||
|
this.layoutControlItem2,
|
||||||
|
this.layoutControlItem3});
|
||||||
|
this.Root.Name = "Root";
|
||||||
|
this.Root.Size = new System.Drawing.Size(463, 144);
|
||||||
|
this.Root.TextVisible = false;
|
||||||
|
//
|
||||||
|
// layoutControlItem1
|
||||||
|
//
|
||||||
|
this.layoutControlItem1.Control = this.simpleButtonOptionA;
|
||||||
|
this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.layoutControlItem1.MinSize = new System.Drawing.Size(89, 26);
|
||||||
|
this.layoutControlItem1.Name = "layoutControlItem1";
|
||||||
|
this.layoutControlItem1.Size = new System.Drawing.Size(221, 98);
|
||||||
|
this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
|
||||||
|
this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
|
||||||
|
this.layoutControlItem1.TextVisible = false;
|
||||||
|
//
|
||||||
|
// layoutControlItem2
|
||||||
|
//
|
||||||
|
this.layoutControlItem2.Control = this.simpleButtonOptionB;
|
||||||
|
this.layoutControlItem2.Location = new System.Drawing.Point(221, 0);
|
||||||
|
this.layoutControlItem2.MinSize = new System.Drawing.Size(89, 26);
|
||||||
|
this.layoutControlItem2.Name = "layoutControlItem2";
|
||||||
|
this.layoutControlItem2.Size = new System.Drawing.Size(222, 98);
|
||||||
|
this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
|
||||||
|
this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
|
||||||
|
this.layoutControlItem2.TextVisible = false;
|
||||||
|
//
|
||||||
|
// simpleButtonCancel
|
||||||
|
//
|
||||||
|
this.simpleButtonCancel.Location = new System.Drawing.Point(12, 110);
|
||||||
|
this.simpleButtonCancel.Name = "simpleButtonCancel";
|
||||||
|
this.simpleButtonCancel.Size = new System.Drawing.Size(439, 22);
|
||||||
|
this.simpleButtonCancel.StyleController = this.layoutControl1;
|
||||||
|
this.simpleButtonCancel.TabIndex = 6;
|
||||||
|
this.simpleButtonCancel.Text = "Cancel";
|
||||||
|
this.simpleButtonCancel.Click += new System.EventHandler(this.simpleButtonCancel_Click);
|
||||||
|
//
|
||||||
|
// layoutControlItem3
|
||||||
|
//
|
||||||
|
this.layoutControlItem3.Control = this.simpleButtonCancel;
|
||||||
|
this.layoutControlItem3.Location = new System.Drawing.Point(0, 98);
|
||||||
|
this.layoutControlItem3.Name = "layoutControlItem3";
|
||||||
|
this.layoutControlItem3.Size = new System.Drawing.Size(443, 26);
|
||||||
|
this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
|
||||||
|
this.layoutControlItem3.TextVisible = false;
|
||||||
|
//
|
||||||
|
// FrmOptionSummary
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(463, 144);
|
||||||
|
this.Controls.Add(this.layoutControl1);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||||
|
this.Name = "FrmOptionSummary";
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||||
|
this.Text = "Summary Display Option";
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
|
||||||
|
this.layoutControl1.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private DevExpress.XtraLayout.LayoutControl layoutControl1;
|
||||||
|
private DevExpress.XtraLayout.LayoutControlGroup Root;
|
||||||
|
private DevExpress.XtraEditors.SimpleButton simpleButtonOptionB;
|
||||||
|
private DevExpress.XtraEditors.SimpleButton simpleButtonOptionA;
|
||||||
|
private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
|
||||||
|
private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
|
||||||
|
private DevExpress.XtraEditors.SimpleButton simpleButtonCancel;
|
||||||
|
private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.UIControl
|
||||||
|
{
|
||||||
|
public partial class FrmOptionSummary : Form
|
||||||
|
{
|
||||||
|
public FrmOptionSummary()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool OptaionA { get; set; } = false;
|
||||||
|
public bool OptaionB { get; set; } = false;
|
||||||
|
|
||||||
|
private void simpleButtonOptionA_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
OptaionA = true;
|
||||||
|
|
||||||
|
DialogResult = DialogResult.OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void simpleButtonOptionB_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
OptaionB = true;
|
||||||
|
|
||||||
|
DialogResult = DialogResult.OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void simpleButtonCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
DialogResult = DialogResult.Cancel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
@ -0,0 +1,73 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using DevExpress.XtraGrid.Views.Grid;
|
||||||
|
namespace SystemX.Product.TRA.UIControl.Helper {
|
||||||
|
public class MergedRowsHelper {
|
||||||
|
List<int> _rows = new List<int>();
|
||||||
|
GridView _gridView;
|
||||||
|
public void Register(GridView gridView) {
|
||||||
|
if(gridView == null) return;
|
||||||
|
_gridView = gridView;
|
||||||
|
gridView.FocusedRowChanged += gridView_FocusedRowChanged;
|
||||||
|
gridView.RowStyle += gridView_RowStyle;
|
||||||
|
gridView.GridControl.Load += GridControl_Load;
|
||||||
|
gridView.RowCellStyle += gridView_RowCellStyle;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GridControl_Load(object sender, EventArgs e) {
|
||||||
|
RefreshMergedRows();
|
||||||
|
}
|
||||||
|
|
||||||
|
void gridView_RowStyle(object sender, RowStyleEventArgs e) {
|
||||||
|
if (_rows.Contains(_gridView.GetDataSourceRowIndex(e.RowHandle))) {
|
||||||
|
e.Appearance.Assign(_gridView.PaintAppearance.FocusedRow);
|
||||||
|
e.HighPriority = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void gridView_RowCellStyle(object sender, RowCellStyleEventArgs e)
|
||||||
|
{
|
||||||
|
e.Appearance.TextOptions.HAlignment = e.Column.AppearanceCell.HAlignment;
|
||||||
|
}
|
||||||
|
|
||||||
|
void gridView_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) {
|
||||||
|
RefreshMergedRows();
|
||||||
|
|
||||||
|
_gridView.LayoutChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
void RefreshMergedRows() {
|
||||||
|
_rows = GetMergedRows(_gridView.FocusedRowHandle);
|
||||||
|
|
||||||
|
_gridView.RefreshData();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<int> GetMergedRows(int rowHandle) {
|
||||||
|
HashSet<int> mergedRows = new HashSet<int>();
|
||||||
|
foreach(DevExpress.XtraGrid.Columns.GridColumn col in _gridView.VisibleColumns) {
|
||||||
|
var originalCell = _gridView.GetRowCellDisplayText(rowHandle, col);
|
||||||
|
for(int i = rowHandle; ; i--) {
|
||||||
|
if(!_gridView.IsValidRowHandle(i)) break;
|
||||||
|
var cell = _gridView.GetRowCellDisplayText(i, col);
|
||||||
|
if(cell == originalCell) mergedRows.Add(i);
|
||||||
|
else break;
|
||||||
|
}
|
||||||
|
for(int i = rowHandle; ; i++) {
|
||||||
|
if(!_gridView.IsValidRowHandle(i)) break;
|
||||||
|
var cell = _gridView.GetRowCellDisplayText(i, col);
|
||||||
|
if(cell == originalCell) mergedRows.Add(i);
|
||||||
|
else break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
List<int> result = new List<int>();
|
||||||
|
foreach(var item in mergedRows) {
|
||||||
|
result.Add(_gridView.GetDataSourceRowIndex(item));
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
130
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/UIControl/UcTRADetailOverview.Designer.cs
generated
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
namespace SystemX.Product.TRA.UIControl
|
||||||
|
{
|
||||||
|
partial class UcTRADetailOverview
|
||||||
|
{
|
||||||
|
/// <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 Component 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()
|
||||||
|
{
|
||||||
|
this.gridControlMain = new DevExpress.XtraGrid.GridControl();
|
||||||
|
this.gridViewMain = new DevExpress.XtraGrid.Views.Grid.GridView();
|
||||||
|
this.filterModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.filtrToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.gridControlMain)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.gridViewMain)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// gridControlMain
|
||||||
|
//
|
||||||
|
this.gridControlMain.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.gridControlMain.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.gridControlMain.MainView = this.gridViewMain;
|
||||||
|
this.gridControlMain.Name = "gridControlMain";
|
||||||
|
this.gridControlMain.Size = new System.Drawing.Size(1040, 576);
|
||||||
|
this.gridControlMain.TabIndex = 0;
|
||||||
|
this.gridControlMain.UseDirectXPaint = DevExpress.Utils.DefaultBoolean.True;
|
||||||
|
this.gridControlMain.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
|
||||||
|
this.gridViewMain});
|
||||||
|
//
|
||||||
|
// gridViewMain
|
||||||
|
//
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.BackColor = System.Drawing.Color.Snow;
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.BackColor2 = System.Drawing.Color.WhiteSmoke;
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.BorderColor = System.Drawing.Color.Red;
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.Font = new System.Drawing.Font("Times New Roman", 9F, System.Drawing.FontStyle.Bold);
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.Options.UseBackColor = true;
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.Options.UseBorderColor = true;
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.Options.UseFont = true;
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.Options.UseForeColor = true;
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.BackColor = System.Drawing.Color.Snow;
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.BackColor2 = System.Drawing.Color.WhiteSmoke;
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.BorderColor = System.Drawing.Color.Red;
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.Font = new System.Drawing.Font("Times New Roman", 9F, System.Drawing.FontStyle.Bold);
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.Options.UseBackColor = true;
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.Options.UseBorderColor = true;
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.Options.UseFont = true;
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.Options.UseForeColor = true;
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.BackColor = System.Drawing.Color.Snow;
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.BackColor2 = System.Drawing.Color.WhiteSmoke;
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.BorderColor = System.Drawing.Color.Red;
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.Font = new System.Drawing.Font("Times New Roman", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.Options.UseBackColor = true;
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.Options.UseBorderColor = true;
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.Options.UseFont = true;
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.Options.UseForeColor = true;
|
||||||
|
this.gridViewMain.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus;
|
||||||
|
this.gridViewMain.GridControl = this.gridControlMain;
|
||||||
|
this.gridViewMain.Name = "gridViewMain";
|
||||||
|
this.gridViewMain.OptionsBehavior.Editable = false;
|
||||||
|
this.gridViewMain.OptionsScrollAnnotations.ShowSelectedRows = DevExpress.Utils.DefaultBoolean.True;
|
||||||
|
this.gridViewMain.OptionsSelection.EnableAppearanceFocusedCell = false;
|
||||||
|
this.gridViewMain.OptionsSelection.MultiSelect = true;
|
||||||
|
this.gridViewMain.OptionsView.AllowHtmlDrawGroups = false;
|
||||||
|
this.gridViewMain.OptionsView.BestFitMode = DevExpress.XtraGrid.Views.Grid.GridBestFitMode.Fast;
|
||||||
|
this.gridViewMain.OptionsView.ShowAutoFilterRow = true;
|
||||||
|
this.gridViewMain.OptionsView.ShowGroupPanel = false;
|
||||||
|
this.gridViewMain.RowClick += new DevExpress.XtraGrid.Views.Grid.RowClickEventHandler(this.gridViewMain_RowClick);
|
||||||
|
this.gridViewMain.RowCellClick += new DevExpress.XtraGrid.Views.Grid.RowCellClickEventHandler(this.gridViewMain_RowCellClick);
|
||||||
|
this.gridViewMain.RowStyle += new DevExpress.XtraGrid.Views.Grid.RowStyleEventHandler(this.gridViewMain_RowStyle);
|
||||||
|
this.gridViewMain.MouseDown += new System.Windows.Forms.MouseEventHandler(this.gridViewMain_MouseDown);
|
||||||
|
//
|
||||||
|
// filterModeToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.filterModeToolStripMenuItem.Name = "filterModeToolStripMenuItem";
|
||||||
|
this.filterModeToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||||
|
this.filterModeToolStripMenuItem.Text = "Merge Mode";
|
||||||
|
//
|
||||||
|
// filtrToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.filtrToolStripMenuItem.Name = "filtrToolStripMenuItem";
|
||||||
|
this.filtrToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||||
|
this.filtrToolStripMenuItem.Text = "Filter Row";
|
||||||
|
//
|
||||||
|
// UcTRADetailOverview
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Controls.Add(this.gridControlMain);
|
||||||
|
this.Name = "UcTRADetailOverview";
|
||||||
|
this.Size = new System.Drawing.Size(1040, 576);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.gridControlMain)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.gridViewMain)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem filterModeToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem filtrToolStripMenuItem;
|
||||||
|
private DevExpress.XtraGrid.GridControl gridControlMain;
|
||||||
|
public DevExpress.XtraGrid.Views.Grid.GridView gridViewMain;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,384 @@
|
|||||||
|
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 System.Data.SqlClient;
|
||||||
|
using SystemX.Product.TRA.DataManager;
|
||||||
|
using DevExpress.XtraGrid.Views.Grid;
|
||||||
|
using DevExpress.XtraGrid.Columns;
|
||||||
|
using SystemX.Product.TRA.UIControl.Helper;
|
||||||
|
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
|
||||||
|
using SystemX.Product.ALIS.Interface;
|
||||||
|
using static SystemX.Net.Platform.Common.Util.LogMessage;
|
||||||
|
using SystemX.Net.Platform.Common.Util;
|
||||||
|
using static SystemX.Product.CP.TRA.Commons;
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.UIControl
|
||||||
|
{
|
||||||
|
public partial class UcTRADetailOverview : UcTRABaseView
|
||||||
|
{
|
||||||
|
public enum eColHide
|
||||||
|
{
|
||||||
|
TestlistNo,
|
||||||
|
StepVersion,
|
||||||
|
RN
|
||||||
|
}
|
||||||
|
|
||||||
|
DMDetailOverview DataManager { get; set; }
|
||||||
|
|
||||||
|
public string GetUseQuery()
|
||||||
|
{
|
||||||
|
return DataManager.strDetailOverviewUseQuery;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OverviewSearchOption Option { get; set; }
|
||||||
|
|
||||||
|
public delegate void evtDataSelectHandler(SelectedDataCollection data);
|
||||||
|
public event evtDataSelectHandler OnSelect;
|
||||||
|
|
||||||
|
public DateTime SearchStart { get; set; }
|
||||||
|
public DateTime SearchEnd { get; set; }
|
||||||
|
|
||||||
|
private IChildController refChildInterface;
|
||||||
|
|
||||||
|
private string GridViewGetActiveFilterText;
|
||||||
|
|
||||||
|
private bool bProductMergeOption = false;
|
||||||
|
|
||||||
|
private int nMergeDataCnt;
|
||||||
|
|
||||||
|
private string[] strMergeReqIDs;
|
||||||
|
|
||||||
|
eSelectDataView eCurrentView;
|
||||||
|
|
||||||
|
public UcTRADetailOverview(IChildController getChildControl, bool bAllowMerge = false, bool bAutoFilterRow = false)
|
||||||
|
{
|
||||||
|
ContentsType = eContents.DetailOverview;
|
||||||
|
|
||||||
|
refChildInterface = getChildControl;
|
||||||
|
|
||||||
|
this.ContextMenuStrip = base.contextMenuStripTest;
|
||||||
|
|
||||||
|
this.ContextMenuStrip.ItemClicked += contextMenuStrip_ItemClicked;
|
||||||
|
|
||||||
|
base.toolStripMenuItemBeginRelDate.Click += contextMenuStripBeginRelDate_ItemClicked;
|
||||||
|
|
||||||
|
SetMenuEnabled(ContentsType);
|
||||||
|
|
||||||
|
bProductMergeOption = bAllowMerge;
|
||||||
|
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
gridViewMain.OptionsView.AllowCellMerge = true;
|
||||||
|
gridViewMain.OptionsView.ShowAutoFilterRow = bAutoFilterRow;
|
||||||
|
}
|
||||||
|
|
||||||
|
~UcTRADetailOverview()
|
||||||
|
{
|
||||||
|
this.ContextMenuStrip.ItemClicked -= contextMenuStrip_ItemClicked;
|
||||||
|
|
||||||
|
base.toolStripMenuItemBeginRelDate.Click -= contextMenuStripBeginRelDate_ItemClicked;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void contextMenuStripBeginRelDate_ItemClicked(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
int nTag = Convert.ToInt32(((ToolStripMenuItem)sender).Tag);
|
||||||
|
|
||||||
|
switch (nTag)
|
||||||
|
{
|
||||||
|
case 7:
|
||||||
|
{
|
||||||
|
string GetDateValue = base.toolStripTextBoxBeginRelDate.Text;
|
||||||
|
int nGetDateValue = int.MaxValue;
|
||||||
|
|
||||||
|
if (int.TryParse(GetDateValue, out nGetDateValue))
|
||||||
|
{
|
||||||
|
if (nGetDateValue > 7)
|
||||||
|
nGetDateValue = 7;
|
||||||
|
if (nGetDateValue < -7)
|
||||||
|
nGetDateValue = -7;
|
||||||
|
|
||||||
|
ViewData(eCurrentView, nGetDateValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void contextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
|
||||||
|
{
|
||||||
|
ToolStripItem tsp = e.ClickedItem;
|
||||||
|
|
||||||
|
int nTag = Convert.ToInt32(tsp.Tag);
|
||||||
|
|
||||||
|
switch (nTag)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
refChildInterface.SetOverview();
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
refChildInterface.SetHistoryView();
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
refChildInterface.SetNgHistView(ContentsType);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetSQLConnection(eSelectDataView SelectView, eOverviewModelNameInfo SelectInfo, IDataBaseController getDBController)
|
||||||
|
{
|
||||||
|
DataManager = new DMDetailOverview(SelectView, SelectInfo, getDBController);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetGridViewStyle()
|
||||||
|
{
|
||||||
|
gridViewMain.BeginUpdate();
|
||||||
|
|
||||||
|
foreach (GridColumn gc in gridViewMain.Columns)
|
||||||
|
{
|
||||||
|
if (gc.FieldName.CompareTo("TestDate") == 0)
|
||||||
|
gc.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.True;
|
||||||
|
else if (gc.FieldName.CompareTo("Host") == 0)
|
||||||
|
gc.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.True;
|
||||||
|
else
|
||||||
|
gc.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.False;
|
||||||
|
}
|
||||||
|
|
||||||
|
gridViewMain.EndUpdate();
|
||||||
|
|
||||||
|
gridViewMain.ActiveFilterString = GridViewGetActiveFilterText;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ViewData(eSelectDataView SelectView, int nGetDateValue = int.MaxValue)
|
||||||
|
{
|
||||||
|
eCurrentView = SelectView;
|
||||||
|
|
||||||
|
Option = new OverviewSearchOption();
|
||||||
|
|
||||||
|
Option.DisplayByStation = !refChildInterface.GetOverviewMergeState();
|
||||||
|
|
||||||
|
DataTable dtResult = DataManager.GetDataView(SelectView, refChildInterface.GetSelectDataOverView(nGetDateValue), Option);
|
||||||
|
|
||||||
|
GridViewGetActiveFilterText = gridViewMain.ActiveFilterString;
|
||||||
|
|
||||||
|
gridControlMain.DataSource = null;
|
||||||
|
gridControlMain.RefreshDataSource();
|
||||||
|
gridViewMain.RefreshData();
|
||||||
|
|
||||||
|
gridControlMain.DataSource = dtResult;
|
||||||
|
gridControlMain.RefreshDataSource();
|
||||||
|
gridViewMain.RefreshData();
|
||||||
|
gridControlMain.ForceInitialize();
|
||||||
|
gridViewMain.PopulateColumns(dtResult);
|
||||||
|
|
||||||
|
foreach (string strName in Enum.GetNames(typeof(eColHide)))
|
||||||
|
{
|
||||||
|
if (gridViewMain.Columns.ColumnByFieldName(strName) != null)
|
||||||
|
gridViewMain.Columns[strName].Visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
gridControlMain.Update();
|
||||||
|
|
||||||
|
SetGridViewStyle();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void ViewData(eSelectDataView SelectView, SelectedDataCollection data, bool bMergeByPartNumber = false)
|
||||||
|
{
|
||||||
|
eCurrentView = SelectView;
|
||||||
|
|
||||||
|
Option = new OverviewSearchOption();
|
||||||
|
|
||||||
|
Option.DisplayByStation = !bMergeByPartNumber;
|
||||||
|
|
||||||
|
DataTable dtResult = DataManager.GetDataView(SelectView, data, Option);
|
||||||
|
|
||||||
|
if(bProductMergeOption)
|
||||||
|
{
|
||||||
|
nMergeDataCnt = DataManager.dtSubRaw.Rows.Count;
|
||||||
|
|
||||||
|
strMergeReqIDs = new string[nMergeDataCnt];
|
||||||
|
|
||||||
|
for (int i = 0; i < nMergeDataCnt; i++)
|
||||||
|
strMergeReqIDs[i] = DataManager.dtSubRaw.Rows[i]["TestListCntID"].ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
GridViewGetActiveFilterText = gridViewMain.ActiveFilterString;
|
||||||
|
|
||||||
|
gridControlMain.DataSource = null;
|
||||||
|
gridControlMain.RefreshDataSource();
|
||||||
|
gridViewMain.RefreshData();
|
||||||
|
|
||||||
|
gridControlMain.DataSource = dtResult;
|
||||||
|
gridControlMain.RefreshDataSource();
|
||||||
|
gridViewMain.RefreshData();
|
||||||
|
gridControlMain.ForceInitialize();
|
||||||
|
gridViewMain.PopulateColumns(dtResult);
|
||||||
|
|
||||||
|
foreach (string strName in Enum.GetNames(typeof(eColHide)))
|
||||||
|
{
|
||||||
|
if (gridViewMain.Columns.ColumnByFieldName(strName) != null)
|
||||||
|
gridViewMain.Columns[strName].Visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
gridControlMain.Update();
|
||||||
|
|
||||||
|
SetGridViewStyle();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool DoSelect(DataRow dtRow)
|
||||||
|
{
|
||||||
|
if (dtRow == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
bool bDataCheckResult = true;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string strDate = dtRow[DMDetailOverview.eColList.TestDate.ToString()].ToString();
|
||||||
|
string strStartTime = dtRow[DMDetailOverview.eColList.FirstTestTime.ToString()].ToString();
|
||||||
|
string strEndTime = dtRow[DMDetailOverview.eColList.FinalTestTime.ToString()].ToString();
|
||||||
|
|
||||||
|
DateTime dtDate = DateTime.Parse(strDate);
|
||||||
|
|
||||||
|
strStartTime = dtDate.ToShortDateString() + " " + strStartTime;
|
||||||
|
strEndTime = dtDate.ToShortDateString() + " " + strEndTime;
|
||||||
|
|
||||||
|
DateTime dtStart = DateTime.Parse(strStartTime);
|
||||||
|
DateTime dtEnd = DateTime.Parse(strEndTime);
|
||||||
|
|
||||||
|
//dtEnd = dtEnd.AddHours(-dtStart.Hour);
|
||||||
|
//dtEnd = dtEnd.AddHours(23.9999);
|
||||||
|
|
||||||
|
//string strStnName, string strHostID, string strSectionID, string strTestType,
|
||||||
|
//string strProdNo, string strTestCode, string strParentNo, string strProdCode,
|
||||||
|
//string strFileVer, string strStepVer)
|
||||||
|
|
||||||
|
string strTestListCntID = string.Empty;
|
||||||
|
|
||||||
|
if (bProductMergeOption == false)
|
||||||
|
strTestListCntID = dtRow[DMDetailOverview.eColList.TestListCntID.ToString()].ToString();
|
||||||
|
|
||||||
|
SelectedDataCollection selData = new SelectedDataCollection(
|
||||||
|
SearchStart,
|
||||||
|
SearchEnd,
|
||||||
|
dtStart,
|
||||||
|
dtEnd,
|
||||||
|
Option.DisplayByStation ? dtRow[DMDetailOverview.eColList.StationName.ToString()].ToString() : string.Empty,
|
||||||
|
Option.DisplayByStation ? dtRow[DMDetailOverview.eColList.Host.ToString()].ToString() : string.Empty,
|
||||||
|
Option.DisplayByStation ? dtRow[DMDetailOverview.eColList.Section.ToString()].ToString() : string.Empty,
|
||||||
|
dtRow[DMDetailOverview.eColList.TestType.ToString()].ToString(),
|
||||||
|
dtRow[DMDetailOverview.eColList.ProductNo.ToString()].ToString(),
|
||||||
|
dtRow[DMDetailOverview.eColList.TestCode.ToString()].ToString(),
|
||||||
|
dtRow[DMDetailOverview.eColList.ParentNo.ToString()].ToString(),
|
||||||
|
dtRow[DMDetailOverview.eColList.FileCode.ToString()].ToString(),
|
||||||
|
dtRow[DMOverview.eColList.TestListFileNo.ToString()].ToString(),
|
||||||
|
dtRow[DMOverview.eColList.TestListVariantNo.ToString()].ToString(),
|
||||||
|
dtRow[DMDetailOverview.eColList.FileVersion.ToString()].ToString(),
|
||||||
|
dtRow[DMDetailOverview.eColList.StepVersion.ToString()].ToString(),
|
||||||
|
strTestListCntID);
|
||||||
|
|
||||||
|
if (bProductMergeOption)
|
||||||
|
{
|
||||||
|
selData.SetCountRequestID(nMergeDataCnt);
|
||||||
|
|
||||||
|
selData.CopyReqIDs(strMergeReqIDs);
|
||||||
|
}
|
||||||
|
|
||||||
|
refChildInterface.AnnounceContentsType(ContentsType);
|
||||||
|
|
||||||
|
OnSelect(selData);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
MessageOutput.ConsoleWrite($"Detail Overview DoSelect Error: {e.Message}", ConsoleColor.Red, LogMessage.LogMessageLevel.FATAL);
|
||||||
|
|
||||||
|
bDataCheckResult = false;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
;//
|
||||||
|
}
|
||||||
|
|
||||||
|
return bDataCheckResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
private DataRow GetRowInfo(object Viewer, int nRowHndl)
|
||||||
|
{
|
||||||
|
DataRow dtRow = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
GridView view = Viewer as GridView;
|
||||||
|
var dvRow = view.GetRow(nRowHndl);
|
||||||
|
dtRow = (dvRow as DataRowView).Row;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
dtRow = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return dtRow;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void gridViewMain_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
|
||||||
|
{
|
||||||
|
int nRowHndl = e.RowHandle;
|
||||||
|
|
||||||
|
if (nRowHndl < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
DoSelect(GetRowInfo(sender, nRowHndl));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void gridViewMain_RowStyle(object sender, RowStyleEventArgs e)
|
||||||
|
{
|
||||||
|
GridView view = sender as GridView;
|
||||||
|
if (view.FocusedRowHandle == e.RowHandle)
|
||||||
|
{
|
||||||
|
GridViewInfo viewInfo = gridViewMain.GetViewInfo() as GridViewInfo;
|
||||||
|
e.Appearance.Assign(viewInfo.PaintAppearance.FocusedRow);
|
||||||
|
e.HighPriority = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void gridViewMain_MouseDown(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Button == MouseButtons.Right)
|
||||||
|
{
|
||||||
|
GridHitInfo hInfo = gridViewMain.CalcHitInfo(gridControlMain.PointToClient(Cursor.Position));
|
||||||
|
|
||||||
|
if (hInfo.RowInfo != null)
|
||||||
|
{
|
||||||
|
int nGetRowHandle = hInfo.RowInfo.RowHandle;
|
||||||
|
|
||||||
|
DoSelect(GetRowInfo(gridViewMain, nGetRowHandle));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void gridViewMain_RowCellClick(object sender, RowCellClickEventArgs e)
|
||||||
|
{
|
||||||
|
int nClickCnt = e.Clicks;
|
||||||
|
|
||||||
|
if (nClickCnt < 2)
|
||||||
|
return;
|
||||||
|
|
||||||
|
int nRowHndl = e.RowHandle;
|
||||||
|
|
||||||
|
if (nRowHndl < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(DoSelect(GetRowInfo(sender, nRowHndl)))
|
||||||
|
refChildInterface.SetHistoryView();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
234
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/UIControl/UcTRADetailTestResult.Designer.cs
generated
Normal file
@ -0,0 +1,234 @@
|
|||||||
|
namespace SystemX.Product.TRA.UIControl
|
||||||
|
{
|
||||||
|
partial class UcTRADetailTestResult
|
||||||
|
{
|
||||||
|
/// <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 Component 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()
|
||||||
|
{
|
||||||
|
this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
|
||||||
|
this.panelControlResult = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.simpleButtonTypeConv = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.groupControl1 = new DevExpress.XtraEditors.GroupControl();
|
||||||
|
this.vGridControlInfo = new DevExpress.XtraVerticalGrid.VGridControl();
|
||||||
|
this.gridControlMain = new DevExpress.XtraGrid.GridControl();
|
||||||
|
this.gridViewMain = new DevExpress.XtraGrid.Views.Grid.GridView();
|
||||||
|
this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
|
||||||
|
this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
|
||||||
|
this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
|
||||||
|
this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
|
||||||
|
this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
|
||||||
|
this.layoutControl1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.panelControlResult)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.groupControl1)).BeginInit();
|
||||||
|
this.groupControl1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.vGridControlInfo)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.gridControlMain)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.gridViewMain)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// layoutControl1
|
||||||
|
//
|
||||||
|
this.layoutControl1.Controls.Add(this.panelControlResult);
|
||||||
|
this.layoutControl1.Controls.Add(this.simpleButtonTypeConv);
|
||||||
|
this.layoutControl1.Controls.Add(this.groupControl1);
|
||||||
|
this.layoutControl1.Controls.Add(this.gridControlMain);
|
||||||
|
this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.layoutControl1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.layoutControl1.Name = "layoutControl1";
|
||||||
|
this.layoutControl1.Root = this.Root;
|
||||||
|
this.layoutControl1.Size = new System.Drawing.Size(1179, 635);
|
||||||
|
this.layoutControl1.TabIndex = 0;
|
||||||
|
this.layoutControl1.Text = "layoutControl1";
|
||||||
|
//
|
||||||
|
// panelControlResult
|
||||||
|
//
|
||||||
|
this.panelControlResult.Appearance.BackColor = System.Drawing.Color.DarkGray;
|
||||||
|
this.panelControlResult.Appearance.Options.UseBackColor = true;
|
||||||
|
this.panelControlResult.Location = new System.Drawing.Point(12, 12);
|
||||||
|
this.panelControlResult.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Flat;
|
||||||
|
this.panelControlResult.LookAndFeel.UseDefaultLookAndFeel = false;
|
||||||
|
this.panelControlResult.Name = "panelControlResult";
|
||||||
|
this.panelControlResult.Size = new System.Drawing.Size(321, 38);
|
||||||
|
this.panelControlResult.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// simpleButtonTypeConv
|
||||||
|
//
|
||||||
|
this.simpleButtonTypeConv.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Primary;
|
||||||
|
this.simpleButtonTypeConv.Appearance.Options.UseBackColor = true;
|
||||||
|
this.simpleButtonTypeConv.Location = new System.Drawing.Point(12, 601);
|
||||||
|
this.simpleButtonTypeConv.Name = "simpleButtonTypeConv";
|
||||||
|
this.simpleButtonTypeConv.Size = new System.Drawing.Size(321, 22);
|
||||||
|
this.simpleButtonTypeConv.StyleController = this.layoutControl1;
|
||||||
|
this.simpleButtonTypeConv.TabIndex = 1;
|
||||||
|
this.simpleButtonTypeConv.Text = "-";
|
||||||
|
this.simpleButtonTypeConv.Click += new System.EventHandler(this.simpleButtonTypeConv_Click);
|
||||||
|
//
|
||||||
|
// groupControl1
|
||||||
|
//
|
||||||
|
this.groupControl1.Controls.Add(this.vGridControlInfo);
|
||||||
|
this.groupControl1.Location = new System.Drawing.Point(12, 54);
|
||||||
|
this.groupControl1.Name = "groupControl1";
|
||||||
|
this.groupControl1.Size = new System.Drawing.Size(321, 543);
|
||||||
|
this.groupControl1.TabIndex = 5;
|
||||||
|
this.groupControl1.Text = "Test Information";
|
||||||
|
//
|
||||||
|
// vGridControlInfo
|
||||||
|
//
|
||||||
|
this.vGridControlInfo.Cursor = System.Windows.Forms.Cursors.Default;
|
||||||
|
this.vGridControlInfo.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.vGridControlInfo.Location = new System.Drawing.Point(2, 23);
|
||||||
|
this.vGridControlInfo.Name = "vGridControlInfo";
|
||||||
|
this.vGridControlInfo.Size = new System.Drawing.Size(317, 518);
|
||||||
|
this.vGridControlInfo.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// gridControlMain
|
||||||
|
//
|
||||||
|
this.gridControlMain.Location = new System.Drawing.Point(337, 12);
|
||||||
|
this.gridControlMain.MainView = this.gridViewMain;
|
||||||
|
this.gridControlMain.Name = "gridControlMain";
|
||||||
|
this.gridControlMain.Size = new System.Drawing.Size(830, 611);
|
||||||
|
this.gridControlMain.TabIndex = 4;
|
||||||
|
this.gridControlMain.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
|
||||||
|
this.gridViewMain});
|
||||||
|
//
|
||||||
|
// gridViewMain
|
||||||
|
//
|
||||||
|
this.gridViewMain.Appearance.Row.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.gridViewMain.Appearance.Row.Options.UseBackColor = true;
|
||||||
|
this.gridViewMain.GridControl = this.gridControlMain;
|
||||||
|
this.gridViewMain.Name = "gridViewMain";
|
||||||
|
this.gridViewMain.OptionsBehavior.Editable = false;
|
||||||
|
this.gridViewMain.OptionsBehavior.ReadOnly = true;
|
||||||
|
this.gridViewMain.OptionsView.HeaderFilterButtonShowMode = DevExpress.XtraEditors.Controls.FilterButtonShowMode.SmartTag;
|
||||||
|
this.gridViewMain.OptionsView.ShowAutoFilterRow = true;
|
||||||
|
this.gridViewMain.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.ShowAlways;
|
||||||
|
this.gridViewMain.OptionsView.ShowGroupPanel = false;
|
||||||
|
//
|
||||||
|
// Root
|
||||||
|
//
|
||||||
|
this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
|
||||||
|
this.Root.GroupBordersVisible = false;
|
||||||
|
this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
|
||||||
|
this.layoutControlItem1,
|
||||||
|
this.layoutControlItem2,
|
||||||
|
this.layoutControlItem3,
|
||||||
|
this.layoutControlItem4});
|
||||||
|
this.Root.Name = "Root";
|
||||||
|
this.Root.Size = new System.Drawing.Size(1179, 635);
|
||||||
|
this.Root.TextVisible = false;
|
||||||
|
//
|
||||||
|
// layoutControlItem1
|
||||||
|
//
|
||||||
|
this.layoutControlItem1.Control = this.gridControlMain;
|
||||||
|
this.layoutControlItem1.Location = new System.Drawing.Point(325, 0);
|
||||||
|
this.layoutControlItem1.Name = "layoutControlItem1";
|
||||||
|
this.layoutControlItem1.Size = new System.Drawing.Size(834, 615);
|
||||||
|
this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
|
||||||
|
this.layoutControlItem1.TextVisible = false;
|
||||||
|
//
|
||||||
|
// layoutControlItem2
|
||||||
|
//
|
||||||
|
this.layoutControlItem2.Control = this.groupControl1;
|
||||||
|
this.layoutControlItem2.Location = new System.Drawing.Point(0, 42);
|
||||||
|
this.layoutControlItem2.MaxSize = new System.Drawing.Size(325, 0);
|
||||||
|
this.layoutControlItem2.MinSize = new System.Drawing.Size(325, 5);
|
||||||
|
this.layoutControlItem2.Name = "layoutControlItem2";
|
||||||
|
this.layoutControlItem2.Size = new System.Drawing.Size(325, 547);
|
||||||
|
this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
|
||||||
|
this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
|
||||||
|
this.layoutControlItem2.TextVisible = false;
|
||||||
|
//
|
||||||
|
// layoutControlItem3
|
||||||
|
//
|
||||||
|
this.layoutControlItem3.Control = this.simpleButtonTypeConv;
|
||||||
|
this.layoutControlItem3.Location = new System.Drawing.Point(0, 589);
|
||||||
|
this.layoutControlItem3.MaxSize = new System.Drawing.Size(325, 26);
|
||||||
|
this.layoutControlItem3.MinSize = new System.Drawing.Size(325, 26);
|
||||||
|
this.layoutControlItem3.Name = "layoutControlItem3";
|
||||||
|
this.layoutControlItem3.Size = new System.Drawing.Size(325, 26);
|
||||||
|
this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
|
||||||
|
this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
|
||||||
|
this.layoutControlItem3.TextVisible = false;
|
||||||
|
//
|
||||||
|
// layoutControlItem4
|
||||||
|
//
|
||||||
|
this.layoutControlItem4.Control = this.panelControlResult;
|
||||||
|
this.layoutControlItem4.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.layoutControlItem4.MaxSize = new System.Drawing.Size(325, 42);
|
||||||
|
this.layoutControlItem4.MinSize = new System.Drawing.Size(325, 42);
|
||||||
|
this.layoutControlItem4.Name = "layoutControlItem4";
|
||||||
|
this.layoutControlItem4.Size = new System.Drawing.Size(325, 42);
|
||||||
|
this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
|
||||||
|
this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
|
||||||
|
this.layoutControlItem4.TextVisible = false;
|
||||||
|
//
|
||||||
|
// UcTRADetailTestResult
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Controls.Add(this.layoutControl1);
|
||||||
|
this.Name = "UcTRADetailTestResult";
|
||||||
|
this.Size = new System.Drawing.Size(1179, 635);
|
||||||
|
this.Load += new System.EventHandler(this.UcTRADetailTestResult_Load);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
|
||||||
|
this.layoutControl1.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.panelControlResult)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.groupControl1)).EndInit();
|
||||||
|
this.groupControl1.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.vGridControlInfo)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.gridControlMain)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.gridViewMain)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private DevExpress.XtraLayout.LayoutControl layoutControl1;
|
||||||
|
private DevExpress.XtraEditors.GroupControl groupControl1;
|
||||||
|
private DevExpress.XtraGrid.GridControl gridControlMain;
|
||||||
|
private DevExpress.XtraGrid.Views.Grid.GridView gridViewMain;
|
||||||
|
private DevExpress.XtraLayout.LayoutControlGroup Root;
|
||||||
|
private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
|
||||||
|
private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
|
||||||
|
private DevExpress.XtraVerticalGrid.VGridControl vGridControlInfo;
|
||||||
|
private DevExpress.XtraEditors.SimpleButton simpleButtonTypeConv;
|
||||||
|
private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
|
||||||
|
private DevExpress.XtraEditors.PanelControl panelControlResult;
|
||||||
|
private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,313 @@
|
|||||||
|
using DevExpress.Spreadsheet;
|
||||||
|
using DevExpress.XtraPrinting;
|
||||||
|
using DevExpress.XtraVerticalGrid;
|
||||||
|
using DevExpress.XtraVerticalGrid.Rows;
|
||||||
|
using System;
|
||||||
|
using System.Data;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using SystemX.Product.ALIS.Interface;
|
||||||
|
using SystemX.Product.TRA.DataManager;
|
||||||
|
|
||||||
|
using static SystemX.Product.CP.TRA.Commons;
|
||||||
|
using static SystemX.Product.TRA.DataManager.DMTestDetail;
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.UIControl
|
||||||
|
{
|
||||||
|
public partial class UcTRADetailTestResult : UcTRABaseView
|
||||||
|
{
|
||||||
|
public enum eColDataTable
|
||||||
|
{
|
||||||
|
StepNo,
|
||||||
|
Position,
|
||||||
|
Variant,
|
||||||
|
Gate,
|
||||||
|
MO,
|
||||||
|
Function,
|
||||||
|
Min,
|
||||||
|
MeasuredValue,
|
||||||
|
Max,
|
||||||
|
Dimension,
|
||||||
|
Result,
|
||||||
|
Duration
|
||||||
|
}
|
||||||
|
|
||||||
|
DMTestDetail DataManager { get; set; }
|
||||||
|
DetailTestDataCollection SearchSource { get; set; }
|
||||||
|
DataTable DTTestlistSrc { get; set; } = null;
|
||||||
|
DataTable DTTestLogSrc { get; set; } = null;
|
||||||
|
|
||||||
|
string TextShowTL { get; } = "Display the Testlist";
|
||||||
|
string TextShowLOG { get; } = "Display the Test Result";
|
||||||
|
|
||||||
|
private string GridViewGetActiveFilterText;
|
||||||
|
|
||||||
|
public UcTRADetailTestResult()
|
||||||
|
{
|
||||||
|
ContentsType = eContents.TestResult;
|
||||||
|
|
||||||
|
//this.ContextMenuStrip = base.contextMenuStripTest;
|
||||||
|
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetSQLConnection(eSelectDataView SelectView, IDataBaseController getDBController, DateTime dtStart)
|
||||||
|
{
|
||||||
|
DataManager = new DMTestDetail(SelectView, getDBController, dtStart);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public override void ExportData()
|
||||||
|
{
|
||||||
|
FolderBrowserDialog dlg = new FolderBrowserDialog();
|
||||||
|
|
||||||
|
if (dlg.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
string strFileName = CreateExportFileName();
|
||||||
|
string strExpPath = dlg.SelectedPath + "\\" + strFileName;
|
||||||
|
XlsxExportOptionsEx option = new XlsxExportOptionsEx();
|
||||||
|
string strFile = strExpPath + ".xlsx";
|
||||||
|
|
||||||
|
option.ShowGridLines = true;
|
||||||
|
option.ExportType = DevExpress.Export.ExportType.WYSIWYG;
|
||||||
|
option.ExportMode = XlsxExportMode.SingleFile;
|
||||||
|
option.SheetName = "Detail Test Data";
|
||||||
|
gridControlMain.ExportToXlsx(strFile, option);
|
||||||
|
|
||||||
|
Workbook wbook = new Workbook();
|
||||||
|
|
||||||
|
wbook.LoadDocument(strFile);
|
||||||
|
|
||||||
|
Worksheet worksheetInfo = wbook.Worksheets.Add("Detail Test Info.");
|
||||||
|
|
||||||
|
int nIdx = 0;
|
||||||
|
|
||||||
|
foreach (var row in vGridControlInfo.Rows)
|
||||||
|
{
|
||||||
|
if (row is CategoryRow)
|
||||||
|
{
|
||||||
|
worksheetInfo.Cells[nIdx, 0].Value = row.Properties.Caption.ToString();
|
||||||
|
|
||||||
|
CellRange cr = worksheetInfo.Range.FromLTRB(0, nIdx, 2, nIdx);
|
||||||
|
|
||||||
|
worksheetInfo.MergeCells(cr);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
worksheetInfo.Cells[nIdx, 1].Value = row.Properties.Caption.ToString();
|
||||||
|
worksheetInfo.Cells[nIdx, 2].Value = row.Properties.Value?.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
nIdx++;
|
||||||
|
}
|
||||||
|
|
||||||
|
worksheetInfo.Columns.AutoFit(0, 3);
|
||||||
|
worksheetInfo.AutoOutline();
|
||||||
|
wbook.SaveDocument(strFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string CreateExportFileName()
|
||||||
|
{
|
||||||
|
string strFileName = $"{this.ContentsType.ToString()}_{SearchSource.ProductID}_{SearchSource.ProductNo}_{SearchSource.TestCode}_{SearchSource.StationName}_{SearchSource.TestResult}";
|
||||||
|
|
||||||
|
strFileName += $"_{SearchSource.StartTime.ToString("yyyyMMddHHmmss")}";
|
||||||
|
|
||||||
|
return strFileName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ViewData(DetailTestDataCollection data)
|
||||||
|
{
|
||||||
|
if (data == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
SearchSource = data;
|
||||||
|
|
||||||
|
ShowProperties(data);
|
||||||
|
|
||||||
|
DTTestLogSrc = DataManager.SearchTestHistory(data);
|
||||||
|
DTTestlistSrc = DataManager.SearchTestlist(data);
|
||||||
|
|
||||||
|
ShowDetailData(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable CombineLogForm()
|
||||||
|
{
|
||||||
|
if (DTTestLogSrc == null || DTTestlistSrc == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
DataTable dtFinal = new DataTable();
|
||||||
|
|
||||||
|
foreach(string strCol in Enum.GetNames(typeof(eColDataTable)))
|
||||||
|
{
|
||||||
|
Type typCol = typeof(string);
|
||||||
|
|
||||||
|
if (strCol == eColDataTable.StepNo.ToString())
|
||||||
|
typCol = typeof(int);
|
||||||
|
if (strCol == eColDataTable.Position.ToString())
|
||||||
|
typCol = typeof(int);
|
||||||
|
else if (strCol == eColDataTable.Duration.ToString())
|
||||||
|
typCol = typeof(double);
|
||||||
|
|
||||||
|
dtFinal.Columns.Add(strCol, typCol);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (DataRow drLog in DTTestLogSrc.AsEnumerable())
|
||||||
|
{
|
||||||
|
//DataRow drTL = DTTestlistSrc.AsEnumerable().Where(x => Convert.ToInt32(x[eColTestlist.StepID.ToString()]) == Convert.ToInt32(drLog[eColTestLog.StepID.ToString()])).FirstOrDefault();
|
||||||
|
|
||||||
|
//PK 기준 검색
|
||||||
|
DataRow drTL = DTTestlistSrc.Rows.Find(drLog[eColTestLog.StepID.ToString()]);
|
||||||
|
|
||||||
|
if (drTL == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
DataRow drDisp = dtFinal.NewRow();
|
||||||
|
|
||||||
|
drDisp[eColDataTable.StepNo.ToString()] = Convert.ToInt32(Convert.ToInt32(drLog[eColTestLog.StepID.ToString()]));
|
||||||
|
drDisp[eColDataTable.Position.ToString()] = Convert.ToInt32(Convert.ToInt32(drTL[eColTestlist.Position.ToString()]));
|
||||||
|
drDisp[eColDataTable.Variant.ToString()] = drTL[eColTestlist.Variant.ToString()].ToString();
|
||||||
|
drDisp[eColDataTable.Gate.ToString()] = drTL[eColTestlist.Gate.ToString()].ToString();
|
||||||
|
drDisp[eColDataTable.MO.ToString()] = drTL[eColTestlist.StepDesc.ToString()].ToString();
|
||||||
|
drDisp[eColDataTable.Function.ToString()] = drTL[eColTestlist.UseFunction.ToString()].ToString();
|
||||||
|
|
||||||
|
bool bIsGlobal = (Convert.ToInt32(drTL[eColTestlist.IsGlobal.ToString()])) > 0 ? true : false;
|
||||||
|
|
||||||
|
drDisp[eColDataTable.Min.ToString()] = bIsGlobal ? drLog[eColTestLog.GlobalMin.ToString()].ToString() : drTL[eColTestlist.SpecMin.ToString()].ToString();
|
||||||
|
drDisp[eColDataTable.Max.ToString()] = bIsGlobal ? drLog[eColTestLog.GlobalMax.ToString()].ToString() : drTL[eColTestlist.SpecMax.ToString()].ToString();
|
||||||
|
|
||||||
|
string strMessage = drLog[eColTestLog.Message.ToString()].ToString();
|
||||||
|
string strMeasValStr = drLog[eColTestLog.MeasValStr.ToString()].ToString();
|
||||||
|
string strMeasVal = drLog[eColTestLog.MeasVal.ToString()].ToString();
|
||||||
|
|
||||||
|
string strMin = drDisp[eColDataTable.Min.ToString()].ToString();
|
||||||
|
string strMax = drDisp[eColDataTable.Max.ToString()].ToString();
|
||||||
|
|
||||||
|
bool bJustCallMacro = false;
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(strMin) &&
|
||||||
|
string.IsNullOrWhiteSpace(strMax) &&
|
||||||
|
strMeasVal == "0.00000")
|
||||||
|
bJustCallMacro = true;
|
||||||
|
|
||||||
|
/*
|
||||||
|
string strDispValue = string.IsNullOrWhiteSpace(strMessage) ?
|
||||||
|
(string.IsNullOrWhiteSpace(strMeasValStr) ? strMeasVal : strMeasValStr) : strMessage;
|
||||||
|
*/
|
||||||
|
|
||||||
|
string strDispValue = string.IsNullOrWhiteSpace(strMessage) ?
|
||||||
|
(string.IsNullOrWhiteSpace(strMeasValStr) ? (bJustCallMacro ? "" : strMeasVal) : strMeasValStr) : strMessage;
|
||||||
|
|
||||||
|
drDisp[eColDataTable.MeasuredValue.ToString()] = strDispValue;
|
||||||
|
|
||||||
|
drDisp[eColDataTable.Dimension.ToString()] = drTL[eColTestlist.Dim.ToString()].ToString();
|
||||||
|
drDisp[eColDataTable.Result.ToString()] = drLog[eColTestLog.Result.ToString()].ToString();
|
||||||
|
|
||||||
|
string strValue = drLog[(int)eColTestLog.SpentTime].ToString();
|
||||||
|
double dVal = string.IsNullOrWhiteSpace(strValue) ? double.NaN : Convert.ToDouble(strValue);
|
||||||
|
|
||||||
|
drDisp[eColDataTable.Duration.ToString()] = dVal;
|
||||||
|
|
||||||
|
dtFinal.Rows.Add(drDisp);
|
||||||
|
}
|
||||||
|
|
||||||
|
return dtFinal;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ShowDetailData(DetailTestDataCollection data)
|
||||||
|
{
|
||||||
|
DataTable dtResult = CombineLogForm();
|
||||||
|
|
||||||
|
GridViewGetActiveFilterText = gridViewMain.ActiveFilterString;
|
||||||
|
|
||||||
|
gridControlMain.BeginInit();
|
||||||
|
|
||||||
|
gridControlMain.DataSource = dtResult;
|
||||||
|
|
||||||
|
gridControlMain.Update();
|
||||||
|
gridControlMain.RefreshDataSource();
|
||||||
|
gridControlMain.ForceInitialize();
|
||||||
|
gridViewMain.PopulateColumns(dtResult);
|
||||||
|
gridControlMain.EndInit();
|
||||||
|
|
||||||
|
gridViewMain.ActiveFilterString = GridViewGetActiveFilterText;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ShowTestlistData(DetailTestDataCollection data)
|
||||||
|
{
|
||||||
|
DataTable dtResult = DTTestlistSrc;
|
||||||
|
|
||||||
|
GridViewGetActiveFilterText = gridViewMain.ActiveFilterString;
|
||||||
|
|
||||||
|
gridControlMain.BeginInit();
|
||||||
|
|
||||||
|
gridControlMain.DataSource = dtResult;
|
||||||
|
|
||||||
|
gridControlMain.Update();
|
||||||
|
gridControlMain.RefreshDataSource();
|
||||||
|
gridControlMain.ForceInitialize();
|
||||||
|
gridViewMain.PopulateColumns(dtResult);
|
||||||
|
|
||||||
|
foreach (string strColName in Enum.GetNames(typeof(eColHideListTL)))
|
||||||
|
{
|
||||||
|
if (gridViewMain.Columns.ColumnByFieldName(strColName) != null)
|
||||||
|
gridViewMain.Columns[strColName].Visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
gridControlMain.EndInit();
|
||||||
|
|
||||||
|
gridViewMain.ActiveFilterString = GridViewGetActiveFilterText;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ShowProperties(DetailTestDataCollection data)
|
||||||
|
{
|
||||||
|
vGridControlInfo.Rows.Clear();
|
||||||
|
|
||||||
|
foreach (PropertyInfo propInf in data.GetType().GetProperties())
|
||||||
|
{
|
||||||
|
EditorRow dtRow = new EditorRow();
|
||||||
|
|
||||||
|
dtRow.Properties.Caption = propInf.Name;
|
||||||
|
dtRow.Properties.Value = propInf.GetValue(data, null)?.ToString();
|
||||||
|
|
||||||
|
vGridControlInfo.Rows.Add(dtRow);
|
||||||
|
}
|
||||||
|
|
||||||
|
OnSizeChanged(vGridControlInfo);
|
||||||
|
|
||||||
|
if (data.TestResult.ToUpper() == "OK")
|
||||||
|
panelControlResult.Appearance.BackColor = Color.LightGreen;
|
||||||
|
else
|
||||||
|
panelControlResult.Appearance.BackColor = Color.IndianRed;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnSizeChanged(VGridControl grid)
|
||||||
|
{
|
||||||
|
int width = grid.ClientSize.Width / (grid.RecordCount + 1);
|
||||||
|
grid.RecordWidth = width;
|
||||||
|
grid.RowHeaderWidth = width;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UcTRADetailTestResult_Load(object sender, System.EventArgs e)
|
||||||
|
{
|
||||||
|
simpleButtonTypeConv.Text = TextShowTL;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void simpleButtonTypeConv_Click(object sender, System.EventArgs e)
|
||||||
|
{
|
||||||
|
if(simpleButtonTypeConv.Text == TextShowLOG)
|
||||||
|
{
|
||||||
|
simpleButtonTypeConv.Text = TextShowTL;
|
||||||
|
ShowDetailData(SearchSource);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
simpleButtonTypeConv.Text = TextShowLOG;
|
||||||
|
ShowTestlistData(SearchSource);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
130
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/UIControl/UcTRAOverview.Designer.cs
generated
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
namespace SystemX.Product.TRA.UIControl
|
||||||
|
{
|
||||||
|
partial class UcTRAOverview
|
||||||
|
{
|
||||||
|
/// <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 Component 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()
|
||||||
|
{
|
||||||
|
this.gridControlMain = new DevExpress.XtraGrid.GridControl();
|
||||||
|
this.gridViewMain = new DevExpress.XtraGrid.Views.Grid.GridView();
|
||||||
|
this.filterModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.filtrToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.gridControlMain)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.gridViewMain)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// gridControlMain
|
||||||
|
//
|
||||||
|
this.gridControlMain.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.gridControlMain.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.gridControlMain.MainView = this.gridViewMain;
|
||||||
|
this.gridControlMain.Name = "gridControlMain";
|
||||||
|
this.gridControlMain.Size = new System.Drawing.Size(1040, 576);
|
||||||
|
this.gridControlMain.TabIndex = 0;
|
||||||
|
this.gridControlMain.UseDirectXPaint = DevExpress.Utils.DefaultBoolean.True;
|
||||||
|
this.gridControlMain.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
|
||||||
|
this.gridViewMain});
|
||||||
|
//
|
||||||
|
// gridViewMain
|
||||||
|
//
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.BackColor = System.Drawing.Color.Snow;
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.BackColor2 = System.Drawing.Color.WhiteSmoke;
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.BorderColor = System.Drawing.Color.Red;
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.Font = new System.Drawing.Font("Times New Roman", 9F, System.Drawing.FontStyle.Bold);
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.Options.UseBackColor = true;
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.Options.UseBorderColor = true;
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.Options.UseFont = true;
|
||||||
|
this.gridViewMain.Appearance.FocusedRow.Options.UseForeColor = true;
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.BackColor = System.Drawing.Color.Snow;
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.BackColor2 = System.Drawing.Color.WhiteSmoke;
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.BorderColor = System.Drawing.Color.Red;
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.Font = new System.Drawing.Font("Times New Roman", 9F, System.Drawing.FontStyle.Bold);
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.Options.UseBackColor = true;
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.Options.UseBorderColor = true;
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.Options.UseFont = true;
|
||||||
|
this.gridViewMain.Appearance.HideSelectionRow.Options.UseForeColor = true;
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.BackColor = System.Drawing.Color.Snow;
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.BackColor2 = System.Drawing.Color.WhiteSmoke;
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.BorderColor = System.Drawing.Color.Red;
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.Font = new System.Drawing.Font("Times New Roman", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.Options.UseBackColor = true;
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.Options.UseBorderColor = true;
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.Options.UseFont = true;
|
||||||
|
this.gridViewMain.Appearance.SelectedRow.Options.UseForeColor = true;
|
||||||
|
this.gridViewMain.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus;
|
||||||
|
this.gridViewMain.GridControl = this.gridControlMain;
|
||||||
|
this.gridViewMain.Name = "gridViewMain";
|
||||||
|
this.gridViewMain.OptionsBehavior.Editable = false;
|
||||||
|
this.gridViewMain.OptionsScrollAnnotations.ShowSelectedRows = DevExpress.Utils.DefaultBoolean.True;
|
||||||
|
this.gridViewMain.OptionsSelection.EnableAppearanceFocusedCell = false;
|
||||||
|
this.gridViewMain.OptionsSelection.MultiSelect = true;
|
||||||
|
this.gridViewMain.OptionsView.AllowHtmlDrawGroups = false;
|
||||||
|
this.gridViewMain.OptionsView.BestFitMode = DevExpress.XtraGrid.Views.Grid.GridBestFitMode.Fast;
|
||||||
|
this.gridViewMain.OptionsView.ShowAutoFilterRow = true;
|
||||||
|
this.gridViewMain.OptionsView.ShowGroupPanel = false;
|
||||||
|
this.gridViewMain.RowClick += new DevExpress.XtraGrid.Views.Grid.RowClickEventHandler(this.gridViewMain_RowClick);
|
||||||
|
this.gridViewMain.RowCellClick += new DevExpress.XtraGrid.Views.Grid.RowCellClickEventHandler(this.gridViewMain_RowCellClick);
|
||||||
|
this.gridViewMain.RowStyle += new DevExpress.XtraGrid.Views.Grid.RowStyleEventHandler(this.gridViewMain_RowStyle);
|
||||||
|
this.gridViewMain.MouseDown += new System.Windows.Forms.MouseEventHandler(this.gridViewMain_MouseDown);
|
||||||
|
//
|
||||||
|
// filterModeToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.filterModeToolStripMenuItem.Name = "filterModeToolStripMenuItem";
|
||||||
|
this.filterModeToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||||
|
this.filterModeToolStripMenuItem.Text = "Merge Mode";
|
||||||
|
//
|
||||||
|
// filtrToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.filtrToolStripMenuItem.Name = "filtrToolStripMenuItem";
|
||||||
|
this.filtrToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||||
|
this.filtrToolStripMenuItem.Text = "Filter Row";
|
||||||
|
//
|
||||||
|
// UcTRAOverview
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Controls.Add(this.gridControlMain);
|
||||||
|
this.Name = "UcTRAOverview";
|
||||||
|
this.Size = new System.Drawing.Size(1040, 576);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.gridControlMain)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.gridViewMain)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem filterModeToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem filtrToolStripMenuItem;
|
||||||
|
private DevExpress.XtraGrid.GridControl gridControlMain;
|
||||||
|
public DevExpress.XtraGrid.Views.Grid.GridView gridViewMain;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,378 @@
|
|||||||
|
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 System.Data.SqlClient;
|
||||||
|
using SystemX.Product.TRA.DataManager;
|
||||||
|
using DevExpress.XtraGrid.Views.Grid;
|
||||||
|
using DevExpress.XtraGrid.Columns;
|
||||||
|
using SystemX.Product.TRA.UIControl.Helper;
|
||||||
|
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
|
||||||
|
using SystemX.Product.ALIS.Interface;
|
||||||
|
using SystemX.Net.Platform.Common.Util;
|
||||||
|
|
||||||
|
using static SystemX.Net.Platform.Common.Util.LogMessage;
|
||||||
|
using static SystemX.Product.CP.TRA.Commons;
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.UIControl
|
||||||
|
{
|
||||||
|
public partial class UcTRAOverview : UcTRABaseView
|
||||||
|
{
|
||||||
|
public enum eColHide
|
||||||
|
{
|
||||||
|
TestlistNo,
|
||||||
|
StepVersion,
|
||||||
|
RN
|
||||||
|
}
|
||||||
|
|
||||||
|
DMOverview DataManager { get; set; }
|
||||||
|
|
||||||
|
public string GetUseQuery()
|
||||||
|
{
|
||||||
|
return DataManager.strOverviewUseQuery;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OverviewSearchOption Option { get; set; }
|
||||||
|
|
||||||
|
public delegate void evtDataSelectHandler(SelectedDataCollection data);
|
||||||
|
public event evtDataSelectHandler OnSelect;
|
||||||
|
|
||||||
|
public DateTime SearchStart { get; set; }
|
||||||
|
public DateTime SearchEnd { get; set; }
|
||||||
|
|
||||||
|
public bool bAllowCheckedState;
|
||||||
|
|
||||||
|
private IChildController refChildInterface;
|
||||||
|
|
||||||
|
private string GridViewGetActiveFilterText;
|
||||||
|
|
||||||
|
public UcTRAOverview(IChildController getChildControl, eContents SetContentsType = eContents.Overview, bool bAllowMerge = false, bool bAutoFilterRow = false)
|
||||||
|
{
|
||||||
|
ContentsType = SetContentsType;
|
||||||
|
|
||||||
|
refChildInterface = getChildControl;
|
||||||
|
|
||||||
|
this.ContextMenuStrip = base.contextMenuStripTest;
|
||||||
|
|
||||||
|
this.ContextMenuStrip.ItemClicked += contextMenuStrip_ItemClicked;
|
||||||
|
|
||||||
|
SetMenuEnabled(ContentsType);
|
||||||
|
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
gridViewMain.OptionsView.AllowCellMerge = true;
|
||||||
|
bAllowCheckedState = bAllowMerge;
|
||||||
|
|
||||||
|
gridViewMain.OptionsView.ShowAutoFilterRow = bAutoFilterRow;
|
||||||
|
|
||||||
|
/*MergedRowsHelper helper = new MergedRowsHelper();
|
||||||
|
helper.Register(gridViewMain);
|
||||||
|
|
||||||
|
gridViewMain.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus;
|
||||||
|
gridViewMain.OptionsBehavior.Editable = false;
|
||||||
|
gridViewMain.OptionsSelection.EnableAppearanceFocusedCell = false;
|
||||||
|
DevExpress.Skins.Skin currentSkin = DevExpress.Skins.CommonSkins.GetSkin(gridControlMain.LookAndFeel);
|
||||||
|
Color color = currentSkin.Colors["Highlight"];
|
||||||
|
gridViewMain.Appearance.FocusedRow.BackColor = color;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
~UcTRAOverview()
|
||||||
|
{
|
||||||
|
this.ContextMenuStrip.ItemClicked -= contextMenuStrip_ItemClicked;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetSqlCommandCancel()
|
||||||
|
{
|
||||||
|
DataManager.SetSqlCommandCancel();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool GetSqlCommandCancelState()
|
||||||
|
{
|
||||||
|
return DataManager.GetSqlCommandCancelState();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void contextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
|
||||||
|
{
|
||||||
|
ToolStripItem tsp = e.ClickedItem;
|
||||||
|
|
||||||
|
int nTag = Convert.ToInt32(tsp.Tag);
|
||||||
|
|
||||||
|
switch (nTag)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
refChildInterface.SetNgHistView(ContentsType);
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
refChildInterface.SetDetailOverview();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetSQLConnection(eSelectDataView SelectView, eOverviewModelNameInfo SelectInfo, IDataBaseController getDBController)
|
||||||
|
{
|
||||||
|
DataManager = new DMOverview(SelectView, SelectInfo, getDBController);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetGridViewStyle()
|
||||||
|
{
|
||||||
|
gridViewMain.BeginUpdate();
|
||||||
|
|
||||||
|
foreach (GridColumn gc in gridViewMain.Columns)
|
||||||
|
{
|
||||||
|
if (gc.FieldName.CompareTo("TestDate") == 0)
|
||||||
|
{
|
||||||
|
gc.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.True;
|
||||||
|
gc.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
|
||||||
|
|
||||||
|
if(ContentsType == eContents.HostUseHistory)
|
||||||
|
gc.DisplayFormat.FormatString = "yyyy-MM-dd HH:mm:ss.fff";
|
||||||
|
}
|
||||||
|
else if (gc.FieldName.CompareTo("Host") == 0)
|
||||||
|
gc.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.True;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
if (bAllowCheckedState)
|
||||||
|
{
|
||||||
|
if (gc.FieldName.CompareTo("ProductNo") == 0)
|
||||||
|
gc.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.True;
|
||||||
|
else if (gc.FieldName.CompareTo("TestCode") == 0)
|
||||||
|
gc.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.True;
|
||||||
|
else
|
||||||
|
gc.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.False;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
gc.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.False;
|
||||||
|
*/
|
||||||
|
|
||||||
|
gc.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.False;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
int[] nGroupIdx = null;
|
||||||
|
|
||||||
|
nGroupIdx = new int[2] { 5, 6 };
|
||||||
|
|
||||||
|
for (int i = 0; i < nGroupIdx.Count(); i++)
|
||||||
|
{
|
||||||
|
if (bAllowCheckedState)
|
||||||
|
gridViewMain.Columns[nGroupIdx[0]].Group();
|
||||||
|
else
|
||||||
|
gridViewMain.Columns[nGroupIdx[0]].UnGroup();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bAllowCheckedState)
|
||||||
|
gridViewMain.CollapseAllGroups();
|
||||||
|
*/
|
||||||
|
|
||||||
|
gridViewMain.EndUpdate();
|
||||||
|
|
||||||
|
gridViewMain.ActiveFilterString = GridViewGetActiveFilterText;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<OverviewSearchOption> ViewData(eSelectDataView SelectView, DateTime dtStart, DateTime dtEnd, OverviewSearchOption OvOp, bool bMergeByPartNumber = false, bool bUseMainConn = false, string strTestQuery = "")
|
||||||
|
{
|
||||||
|
FrmOptionOverview dlgOption = new FrmOptionOverview();
|
||||||
|
|
||||||
|
Option = dlgOption.GetSelectedResult();
|
||||||
|
|
||||||
|
Option.DisplayByStation = OvOp.DisplayByStation;
|
||||||
|
Option.ViewOptionPanel = OvOp.ViewOptionPanel;
|
||||||
|
Option.FullScanData = OvOp.FullScanData;
|
||||||
|
Option.ProductID = OvOp.ProductID;
|
||||||
|
|
||||||
|
if (OvOp.ViewOptionPanel)
|
||||||
|
{
|
||||||
|
dlgOption.ShowDialog();
|
||||||
|
|
||||||
|
Option = dlgOption.GetSelectedResult();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Option.DisplayByStation = !bMergeByPartNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bMergeByPartNumber)
|
||||||
|
SetMenuFindErrorEnabled(!bMergeByPartNumber);
|
||||||
|
|
||||||
|
DataTable dtResult = await DataManager.GetDataView(SelectView, dtStart, dtEnd, Option, bUseMainConn, strTestQuery);
|
||||||
|
|
||||||
|
GridViewGetActiveFilterText = gridViewMain.ActiveFilterString;
|
||||||
|
|
||||||
|
gridControlMain.DataSource = null;
|
||||||
|
gridControlMain.RefreshDataSource();
|
||||||
|
gridViewMain.RefreshData();
|
||||||
|
|
||||||
|
gridControlMain.DataSource = dtResult;
|
||||||
|
gridControlMain.RefreshDataSource();
|
||||||
|
gridViewMain.RefreshData();
|
||||||
|
gridControlMain.ForceInitialize();
|
||||||
|
gridViewMain.PopulateColumns(dtResult);
|
||||||
|
|
||||||
|
foreach (string strName in Enum.GetNames(typeof(eColHide)))
|
||||||
|
{
|
||||||
|
if(gridViewMain.Columns.ColumnByFieldName(strName) != null)
|
||||||
|
gridViewMain.Columns[strName].Visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
gridControlMain.Update();
|
||||||
|
|
||||||
|
SetGridViewStyle();
|
||||||
|
|
||||||
|
return Option;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool DoSelect(DataRow dtRow)
|
||||||
|
{
|
||||||
|
if (dtRow == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
bool bDataCheckResult = true;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string strDate = dtRow[DMOverview.eColList.TestDate.ToString()].ToString();
|
||||||
|
string strStartTime = dtRow[DMOverview.eColList.FirstTestTime.ToString()].ToString();
|
||||||
|
string strEndTime = dtRow[DMOverview.eColList.FinalTestTime.ToString()].ToString();
|
||||||
|
|
||||||
|
DateTime dtDate = DateTime.Parse(strDate);
|
||||||
|
|
||||||
|
strStartTime = dtDate.ToShortDateString() + " " + strStartTime;
|
||||||
|
strEndTime = dtDate.ToShortDateString() + " " + strEndTime;
|
||||||
|
|
||||||
|
DateTime dtStart = DateTime.Parse(strStartTime);
|
||||||
|
DateTime dtEnd = DateTime.Parse(strEndTime);
|
||||||
|
|
||||||
|
//string strStnName, string strHostID, string strSectionID, string strTestType,
|
||||||
|
//string strProdNo, string strTestCode, string strParentNo, string strProdCode,
|
||||||
|
//string strFileVer, string strStepVer)
|
||||||
|
|
||||||
|
string strTestListCntID = string.Empty;
|
||||||
|
|
||||||
|
if (Option.DisplayByStation)
|
||||||
|
strTestListCntID = dtRow[DMOverview.eColList.TestListCntID.ToString()].ToString();
|
||||||
|
|
||||||
|
SelectedDataCollection selData = new SelectedDataCollection(
|
||||||
|
SearchStart,
|
||||||
|
SearchEnd,
|
||||||
|
dtStart,
|
||||||
|
dtEnd,
|
||||||
|
Option.DisplayByStation ? dtRow[DMOverview.eColList.StationName.ToString()].ToString() : string.Empty,
|
||||||
|
Option.DisplayByStation ? dtRow[DMOverview.eColList.Host.ToString()].ToString() : string.Empty,
|
||||||
|
Option.DisplayByStation ? dtRow[DMOverview.eColList.Section.ToString()].ToString() : string.Empty,
|
||||||
|
dtRow[DMOverview.eColList.TestType.ToString()].ToString(),
|
||||||
|
dtRow[DMOverview.eColList.ProductNo.ToString()].ToString(),
|
||||||
|
dtRow[DMOverview.eColList.TestCode.ToString()].ToString(),
|
||||||
|
dtRow[DMOverview.eColList.ParentNo.ToString()].ToString(),
|
||||||
|
dtRow[DMOverview.eColList.FileCode.ToString()].ToString(),
|
||||||
|
dtRow[DMOverview.eColList.TestListFileNo.ToString()].ToString(),
|
||||||
|
dtRow[DMOverview.eColList.TestListVariantNo.ToString()].ToString(),
|
||||||
|
dtRow[DMOverview.eColList.FileVersion.ToString()].ToString(),
|
||||||
|
dtRow[DMOverview.eColList.StepVersion.ToString()].ToString(),
|
||||||
|
strTestListCntID);
|
||||||
|
|
||||||
|
if (Option.ProductID.Length > 0)
|
||||||
|
selData.SetProdcutID(Option.ProductID);
|
||||||
|
|
||||||
|
refChildInterface.AnnounceContentsType(ContentsType);
|
||||||
|
|
||||||
|
OnSelect(selData);
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
MessageOutput.ConsoleWrite($"Overview DoSelect Error: {e.Message}", ConsoleColor.Red, LogMessage.LogMessageLevel.FATAL);
|
||||||
|
|
||||||
|
bDataCheckResult = false;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
;//
|
||||||
|
}
|
||||||
|
|
||||||
|
return bDataCheckResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
private DataRow GetRowInfo(object Viewer, int nRowHndl)
|
||||||
|
{
|
||||||
|
DataRow dtRow = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
GridView view = Viewer as GridView;
|
||||||
|
var dvRow = view.GetRow(nRowHndl);
|
||||||
|
dtRow = (dvRow as DataRowView).Row;
|
||||||
|
}
|
||||||
|
catch{
|
||||||
|
dtRow = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return dtRow;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void gridViewMain_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
|
||||||
|
{
|
||||||
|
int nRowHndl = e.RowHandle;
|
||||||
|
|
||||||
|
if (nRowHndl < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
DoSelect(GetRowInfo(sender, nRowHndl));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void gridViewMain_RowStyle(object sender, RowStyleEventArgs e)
|
||||||
|
{
|
||||||
|
GridView view = sender as GridView;
|
||||||
|
if (view.FocusedRowHandle == e.RowHandle)
|
||||||
|
{
|
||||||
|
GridViewInfo viewInfo = gridViewMain.GetViewInfo() as GridViewInfo;
|
||||||
|
e.Appearance.Assign(viewInfo.PaintAppearance.FocusedRow);
|
||||||
|
e.HighPriority = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void gridViewMain_RowCellClick(object sender, RowCellClickEventArgs e)
|
||||||
|
{
|
||||||
|
int nClickCnt = e.Clicks;
|
||||||
|
|
||||||
|
if (nClickCnt < 2)
|
||||||
|
return;
|
||||||
|
|
||||||
|
int nRowHndl = e.RowHandle;
|
||||||
|
|
||||||
|
if (nRowHndl < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(DoSelect(GetRowInfo(sender, nRowHndl)))
|
||||||
|
refChildInterface.CallDetailOverView();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void gridViewMain_MouseDown(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Button == MouseButtons.Right)
|
||||||
|
{
|
||||||
|
GridHitInfo hInfo = gridViewMain.CalcHitInfo(gridControlMain.PointToClient(Cursor.Position));
|
||||||
|
|
||||||
|
if (hInfo.RowInfo != null)
|
||||||
|
{
|
||||||
|
int nGetRowHandle = hInfo.RowInfo.RowHandle;
|
||||||
|
|
||||||
|
DoSelect(GetRowInfo(gridViewMain, nGetRowHandle));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
127
CPXV2 TRA JSON Recovery/SystemX.Product.CP.TRA/UIControl/UcTRAProdHistHost.Designer.cs
generated
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
namespace SystemX.Product.TRA.UIControl
|
||||||
|
{
|
||||||
|
partial class UcTRAProdHistHost
|
||||||
|
{
|
||||||
|
/// <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 Component 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()
|
||||||
|
{
|
||||||
|
this.gridControlMain = new DevExpress.XtraGrid.GridControl();
|
||||||
|
this.gridViewMain = new DevExpress.XtraGrid.Views.Grid.GridView();
|
||||||
|
this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
|
||||||
|
this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
|
||||||
|
this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.gridControlMain)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.gridViewMain)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
|
||||||
|
this.layoutControl1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// gridControlMain
|
||||||
|
//
|
||||||
|
this.gridControlMain.Location = new System.Drawing.Point(2, 2);
|
||||||
|
this.gridControlMain.MainView = this.gridViewMain;
|
||||||
|
this.gridControlMain.Name = "gridControlMain";
|
||||||
|
this.gridControlMain.Size = new System.Drawing.Size(916, 578);
|
||||||
|
this.gridControlMain.TabIndex = 0;
|
||||||
|
this.gridControlMain.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
|
||||||
|
this.gridViewMain});
|
||||||
|
//
|
||||||
|
// gridViewMain
|
||||||
|
//
|
||||||
|
this.gridViewMain.Appearance.Row.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.gridViewMain.Appearance.Row.Options.UseBackColor = true;
|
||||||
|
this.gridViewMain.GridControl = this.gridControlMain;
|
||||||
|
this.gridViewMain.Name = "gridViewMain";
|
||||||
|
this.gridViewMain.OptionsBehavior.Editable = false;
|
||||||
|
this.gridViewMain.OptionsBehavior.ReadOnly = true;
|
||||||
|
this.gridViewMain.OptionsView.HeaderFilterButtonShowMode = DevExpress.XtraEditors.Controls.FilterButtonShowMode.SmartTag;
|
||||||
|
this.gridViewMain.OptionsView.ShowAutoFilterRow = true;
|
||||||
|
this.gridViewMain.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.ShowAlways;
|
||||||
|
this.gridViewMain.OptionsView.ShowGroupPanel = false;
|
||||||
|
this.gridViewMain.DoubleClick += new System.EventHandler(this.gridViewMain_DoubleClick);
|
||||||
|
//
|
||||||
|
// layoutControl1
|
||||||
|
//
|
||||||
|
this.layoutControl1.Controls.Add(this.gridControlMain);
|
||||||
|
this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.layoutControl1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.layoutControl1.Name = "layoutControl1";
|
||||||
|
this.layoutControl1.Root = this.Root;
|
||||||
|
this.layoutControl1.Size = new System.Drawing.Size(920, 582);
|
||||||
|
this.layoutControl1.TabIndex = 1;
|
||||||
|
this.layoutControl1.Text = "layoutControl1";
|
||||||
|
//
|
||||||
|
// Root
|
||||||
|
//
|
||||||
|
this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
|
||||||
|
this.Root.GroupBordersVisible = false;
|
||||||
|
this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
|
||||||
|
this.layoutControlItem1});
|
||||||
|
this.Root.Name = "Root";
|
||||||
|
this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
|
||||||
|
this.Root.Size = new System.Drawing.Size(920, 582);
|
||||||
|
this.Root.Spacing = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
|
||||||
|
this.Root.TextVisible = false;
|
||||||
|
//
|
||||||
|
// layoutControlItem1
|
||||||
|
//
|
||||||
|
this.layoutControlItem1.Control = this.gridControlMain;
|
||||||
|
this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.layoutControlItem1.Name = "layoutControlItem1";
|
||||||
|
this.layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
|
||||||
|
this.layoutControlItem1.Size = new System.Drawing.Size(916, 578);
|
||||||
|
this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
|
||||||
|
this.layoutControlItem1.TextVisible = false;
|
||||||
|
//
|
||||||
|
// UcTRAProdHistHost
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Controls.Add(this.layoutControl1);
|
||||||
|
this.Name = "UcTRAProdHistHost";
|
||||||
|
this.Size = new System.Drawing.Size(920, 582);
|
||||||
|
this.Load += new System.EventHandler(this.UcTRATestHistHost_Load);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.gridControlMain)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.gridViewMain)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
|
||||||
|
this.layoutControl1.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private DevExpress.XtraGrid.GridControl gridControlMain;
|
||||||
|
private DevExpress.XtraGrid.Views.Grid.GridView gridViewMain;
|
||||||
|
private DevExpress.XtraLayout.LayoutControl layoutControl1;
|
||||||
|
private DevExpress.XtraLayout.LayoutControlGroup Root;
|
||||||
|
private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,161 @@
|
|||||||
|
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 System.Data.SqlClient;
|
||||||
|
using SystemX.Product.TRA.DataManager;
|
||||||
|
using static SystemX.Product.CP.TRA.MainForm;
|
||||||
|
using DevExpress.Utils;
|
||||||
|
using DevExpress.XtraGrid.Views.Grid;
|
||||||
|
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
|
||||||
|
using DevExpress.XtraPrinting;
|
||||||
|
using SystemX.Product.ALIS.Interface;
|
||||||
|
using static SystemX.Product.CP.TRA.Commons;
|
||||||
|
|
||||||
|
namespace SystemX.Product.TRA.UIControl
|
||||||
|
{
|
||||||
|
public partial class UcTRAProdHistHost : UcTRABaseView
|
||||||
|
{
|
||||||
|
public enum eColHide
|
||||||
|
{
|
||||||
|
TestListNo,
|
||||||
|
TestlistFile
|
||||||
|
}
|
||||||
|
|
||||||
|
DMTestHistory DataManager { get; set; }
|
||||||
|
TestHistorySearchOption Option { get; set; }
|
||||||
|
SelectedDataCollection SelectedData { get; set; }
|
||||||
|
|
||||||
|
public DataTable DataResult { get; private set; }
|
||||||
|
|
||||||
|
public delegate void evtDataDetailViewHandler(DetailTestDataCollection data);
|
||||||
|
public event evtDataDetailViewHandler OnDetailSelect;
|
||||||
|
|
||||||
|
private string GridViewGetActiveFilterText;
|
||||||
|
|
||||||
|
public UcTRAProdHistHost()
|
||||||
|
{
|
||||||
|
ContentsType = eContents.ProductHistory;
|
||||||
|
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetSQLConnection(eSelectDataView SelectView, IDataBaseController getDBController)
|
||||||
|
{
|
||||||
|
DataManager = new DMTestHistory(SelectView, getDBController);
|
||||||
|
}
|
||||||
|
|
||||||
|
public DetailTestDataCollection GetSearchInfo(DataRow dtRow)
|
||||||
|
{
|
||||||
|
DetailTestDataCollection drDetail = new DetailTestDataCollection();
|
||||||
|
|
||||||
|
//drDetail.TestID = dtRow[DMTestHistory.eColList.TestID.ToString()].ToString();
|
||||||
|
drDetail.No = Convert.ToInt64(dtRow[DMTestHistory.eColList.No.ToString()]);
|
||||||
|
drDetail.StartTime = DateTime.Parse(dtRow[DMTestHistory.eColList.TestDateTime.ToString()].ToString());
|
||||||
|
drDetail.Duration = Convert.ToInt64(dtRow[DMTestHistory.eColList.Duration.ToString()]);
|
||||||
|
drDetail.StationName = dtRow[DMTestHistory.eColList.StationName.ToString()].ToString();
|
||||||
|
drDetail.HostID = dtRow[DMTestHistory.eColList.Host.ToString()].ToString();
|
||||||
|
drDetail.SectionID = dtRow[DMTestHistory.eColList.Section.ToString()].ToString();
|
||||||
|
drDetail.TestType = dtRow[DMTestHistory.eColList.TestType.ToString()].ToString();
|
||||||
|
drDetail.ProductID = dtRow[DMTestHistory.eColList.ProductID.ToString()].ToString();
|
||||||
|
drDetail.ProductNo = dtRow[DMTestHistory.eColList.ProductNo.ToString()].ToString();
|
||||||
|
drDetail.TestCode = dtRow[DMTestHistory.eColList.TestCode.ToString()].ToString();
|
||||||
|
drDetail.ParentNo = dtRow[DMTestHistory.eColList.ParentNo.ToString()].ToString();
|
||||||
|
drDetail.FileCode = dtRow[DMTestHistory.eColList.FileCode.ToString()].ToString();
|
||||||
|
drDetail.FileVersion = dtRow[DMTestHistory.eColList.FileVersion.ToString()].ToString();
|
||||||
|
drDetail.TestlistFileName = dtRow[DMTestHistory.eColList.TestlistFileName.ToString()].ToString();
|
||||||
|
drDetail.TestListFileNo = dtRow[DMTestHistory.eColList.TestListFileNo.ToString()].ToString();
|
||||||
|
drDetail.TestListVariantNo = dtRow[DMTestHistory.eColList.TestListVariantNo.ToString()].ToString();
|
||||||
|
drDetail.StepVersion = dtRow[DMTestHistory.eColList.StepVersion.ToString()].ToString();
|
||||||
|
drDetail.TestRequestID = dtRow[DMTestHistory.eColList.TestlistReqID.ToString()].ToString();
|
||||||
|
drDetail.TestResult = dtRow[DMTestHistory.eColList.TestResult.ToString()].ToString();
|
||||||
|
|
||||||
|
return drDetail;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UcTRATestHistHost_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Option = new TestHistorySearchOption();
|
||||||
|
|
||||||
|
FrmOptionStationSearch dlgSearch = new FrmOptionStationSearch();
|
||||||
|
|
||||||
|
dlgSearch.ShowDialog();
|
||||||
|
|
||||||
|
if (dlgSearch.DialogResult == DialogResult.OK)
|
||||||
|
Option = dlgSearch.GetSelectedResult();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void gridViewMain_DoubleClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
DXMouseEventArgs ea = e as DXMouseEventArgs;
|
||||||
|
GridView view = sender as GridView;
|
||||||
|
GridHitInfo info = view.CalcHitInfo(ea.Location);
|
||||||
|
|
||||||
|
if (info.InRow || info.InRowCell)
|
||||||
|
{
|
||||||
|
int nRow = int.MinValue;
|
||||||
|
nRow = info.RowHandle;
|
||||||
|
|
||||||
|
if (nRow < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var dvRow = view.GetRow(nRow);
|
||||||
|
DataRow dtRow = (dvRow as DataRowView).Row;
|
||||||
|
DetailTestDataCollection drDetail = GetSearchInfo(dtRow);
|
||||||
|
|
||||||
|
OnDetailSelect(drDetail);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<DetailTestDataCollection> GetResultContents()
|
||||||
|
{
|
||||||
|
List<DetailTestDataCollection> vDetailData = new List<DetailTestDataCollection>();
|
||||||
|
GridView view = gridViewMain as GridView;
|
||||||
|
|
||||||
|
for(int i=0; i<view.RowCount; i++)
|
||||||
|
{
|
||||||
|
DataRow dtRow = (view.GetRow(i) as DataRowView).Row;
|
||||||
|
DetailTestDataCollection dtContent = GetSearchInfo(dtRow);
|
||||||
|
|
||||||
|
vDetailData.Add(dtContent);
|
||||||
|
}
|
||||||
|
|
||||||
|
return vDetailData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string CreateExportFileName()
|
||||||
|
{
|
||||||
|
string strFileName = $"{this.ContentsType.ToString()}_{SelectedData.ProductNo}_{SelectedData.TestCode}_{SelectedData.StationName}";
|
||||||
|
|
||||||
|
strFileName += $"_{SelectedData.StartTime.ToString("yyyyMMddHHmmss")}-{SelectedData.EndTime.ToString("yyyyMMddHHmmss")}";
|
||||||
|
|
||||||
|
return strFileName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void ExportData()
|
||||||
|
{
|
||||||
|
FolderBrowserDialog dlg = new FolderBrowserDialog();
|
||||||
|
|
||||||
|
if (dlg.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
|
||||||
|
string strFileName = CreateExportFileName();
|
||||||
|
string strExpPath = dlg.SelectedPath + "\\" + strFileName;
|
||||||
|
XlsxExportOptionsEx option = new XlsxExportOptionsEx();
|
||||||
|
string strFile = strExpPath + ".xlsx";
|
||||||
|
|
||||||
|
option.ShowGridLines = true;
|
||||||
|
option.ExportType = DevExpress.Export.ExportType.WYSIWYG;
|
||||||
|
option.ExportMode = XlsxExportMode.SingleFile;
|
||||||
|
option.SheetName = "Test History";
|
||||||
|
gridControlMain.ExportToXlsx(strFile, option);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||