diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/App.config b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/App.config
new file mode 100644
index 0000000..61d0069
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/ET_Demo.sln b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/ET_Demo.sln
new file mode 100644
index 0000000..cfdcadb
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/ET_Demo.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32630.194
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ET_Demo", "ET_Demo.vbproj", "{735A5B4F-8D51-408F-9411-235CDB01F9F3}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {735A5B4F-8D51-408F-9411-235CDB01F9F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {735A5B4F-8D51-408F-9411-235CDB01F9F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {735A5B4F-8D51-408F-9411-235CDB01F9F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {735A5B4F-8D51-408F-9411-235CDB01F9F3}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {05370154-7301-4A5A-B360-EAF02EF9EFDA}
+ EndGlobalSection
+EndGlobal
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/ET_Demo.vbproj b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/ET_Demo.vbproj
new file mode 100644
index 0000000..7d56649
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/ET_Demo.vbproj
@@ -0,0 +1,120 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {735A5B4F-8D51-408F-9411-235CDB01F9F3}
+ WinExe
+ ET_Demo.My.MyApplication
+ ET_Demo
+ ET_Demo
+ 512
+ WindowsForms
+ v4.6.2
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ true
+ true
+ bin\Debug\
+ ET_Demo.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ AnyCPU
+ pdbonly
+ false
+ true
+ true
+ bin\Release\
+ ET_Demo.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Form1.vb
+ Form
+
+
+
+ True
+ Application.myapp
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+ VbMyResourcesResXFileCodeGenerator
+ Resources.Designer.vb
+ My.Resources
+ Designer
+
+
+
+
+ MyApplicationCodeGenerator
+ Application.Designer.vb
+
+
+ SettingsSingleFileGenerator
+ My
+ Settings.Designer.vb
+
+
+
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/Application.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/Application.Designer.vb
new file mode 100644
index 0000000..deffe98
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/Application.Designer.vb
@@ -0,0 +1,38 @@
+'------------------------------------------------------------------------------
+'
+' 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.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ 'NOTE: This file is auto-generated; do not modify it directly. To make changes,
+ ' or if you encounter build errors in this file, go to the Project Designer
+ ' (go to Project Properties or double-click the My Project node in
+ ' Solution Explorer), and make changes on the Application tab.
+ '
+ Partial Friend Class MyApplication
+
+ _
+ Public Sub New()
+ MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
+ Me.IsSingleInstance = false
+ Me.EnableVisualStyles = true
+ Me.SaveMySettingsOnExit = true
+ Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
+ End Sub
+
+ _
+ Protected Overrides Sub OnCreateMainForm()
+ Me.MainForm = Global.ET_Demo.frmDemo
+ End Sub
+ End Class
+End Namespace
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/Application.myapp b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/Application.myapp
new file mode 100644
index 0000000..1243847
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/Application.myapp
@@ -0,0 +1,11 @@
+
+
+ true
+ Form1
+ false
+ 0
+ true
+ 0
+ 0
+ true
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/AssemblyInfo.vb b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/AssemblyInfo.vb
new file mode 100644
index 0000000..fd8a417
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/AssemblyInfo.vb
@@ -0,0 +1,35 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' 有关程序集的一般信息由以下
+' 控制。更改这些特性值可修改
+' 与程序集关联的信息。
+
+'查看程序集特性的值
+
+
+
+
+
+
+
+
+
+
+'如果此项目向 COM 公开,则下列 GUID 用于 typelib 的 ID
+
+
+' 程序集的版本信息由下列四个值组成:
+'
+' 主版本
+' 次版本
+' 生成号
+' 修订号
+'
+'可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
+'通过使用 "*",如下所示:
+'
+
+
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/Resources.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/Resources.Designer.vb
new file mode 100644
index 0000000..24dbe56
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/Resources.Designer.vb
@@ -0,0 +1,62 @@
+'------------------------------------------------------------------------------
+'
+' 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.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My.Resources
+
+ 'This class was auto-generated by the StronglyTypedResourceBuilder
+ 'class via a tool like ResGen or Visual Studio.
+ 'To add or remove a member, edit your .ResX file then rerun ResGen
+ 'with the /str option, or rebuild your VS project.
+ '''
+ ''' A strongly-typed resource class, for looking up localized strings, etc.
+ '''
+ _
+ Friend Module Resources
+
+ Private resourceMan As Global.System.Resources.ResourceManager
+
+ Private resourceCulture As Global.System.Globalization.CultureInfo
+
+ '''
+ ''' Returns the cached ResourceManager instance used by this class.
+ '''
+ _
+ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+ Get
+ If Object.ReferenceEquals(resourceMan, Nothing) Then
+ Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ET_Demo.Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' Overrides the current thread's CurrentUICulture property for all
+ ''' resource lookups using this strongly typed resource class.
+ '''
+ _
+ Friend Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set(ByVal value As Global.System.Globalization.CultureInfo)
+ resourceCulture = value
+ End Set
+ End Property
+ End Module
+End Namespace
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/Resources.resx b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/Settings.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/Settings.Designer.vb
new file mode 100644
index 0000000..551e93e
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/Settings.Designer.vb
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+'
+' 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.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ _
+ Partial Friend NotInheritable Class MySettings
+ Inherits Global.System.Configuration.ApplicationSettingsBase
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
+
+#Region "My.Settings Auto-Save Functionality"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
+#End If
+#End Region
+
+ Public Shared ReadOnly Property [Default]() As MySettings
+ Get
+
+#If _MyType = "WindowsForms" Then
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
+#End If
+ Return defaultInstance
+ End Get
+ End Property
+ End Class
+End Namespace
+
+Namespace My
+
+ _
+ Friend Module MySettingsProperty
+
+ _
+ Friend ReadOnly Property Settings() As Global.ET_Demo.My.MySettings
+ Get
+ Return Global.ET_Demo.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/Settings.settings b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/Settings.settings
new file mode 100644
index 0000000..85b890b
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/licenses.licx b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/licenses.licx
new file mode 100644
index 0000000..e14ac4a
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/My Project/licenses.licx
@@ -0,0 +1,7 @@
+Infragistics.Win.Misc.UltraPanel, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.Misc.UltraButton, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.UltraWinEditors.UltraTextEditor, Infragistics4.Win.UltraWinEditors.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.Misc.UltraSplitter, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.Misc.UltraLabel, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.UltraWinEditors.UltraRadioButton, Infragistics4.Win.UltraWinEditors.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.UltraWinEditors.UltraComboEditor, Infragistics4.Win.UltraWinEditors.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/frmDemo.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/frmDemo.Designer.vb
new file mode 100644
index 0000000..ee5dcb7
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/frmDemo.Designer.vb
@@ -0,0 +1,236 @@
+ _
+Partial Class frmDemo
+ ' Inherits System.Windows.Forms.Form
+ Inherits COM_Kit.frmBasisTemplat
+ 'Form 重写 Dispose,以清理组件列表。
+ _
+ Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+ Try
+ If disposing AndAlso components IsNot Nothing Then
+ components.Dispose()
+ End If
+ Finally
+ MyBase.Dispose(disposing)
+ End Try
+ End Sub
+
+ 'Windows 窗体设计器所必需的
+ Private components As System.ComponentModel.IContainer
+
+ '注意: 以下过程是 Windows 窗体设计器所必需的
+ '可以使用 Windows 窗体设计器修改它。
+ '不要使用代码编辑器修改它。
+ _
+ Private Sub InitializeComponent()
+ Me.iugBasis = New iMESUltraGrid.iMESUltraGridControl()
+ Me.iugDetail = New iMESUltraGrid.iMESUltraGridControl()
+ Me.btnClose = New Infragistics.Win.Misc.UltraButton()
+ Me.btnApprove = New Infragistics.Win.Misc.UltraButton()
+ Me.btnEMail = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDCopy = New Infragistics.Win.Misc.UltraButton()
+ Me.btnCopy = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDDel = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDEdit = New Infragistics.Win.Misc.UltraButton()
+ Me.btnAdd = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDAdd = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDel = New Infragistics.Win.Misc.UltraButton()
+ Me.btnEdit = New Infragistics.Win.Misc.UltraButton()
+ Me.SuspendLayout()
+ '
+ 'iugBasis
+ '
+ Me.iugBasis.EnterDirection = iMESUltraGrid.iMESUltraGridControl.EnterDirectionEnum.Down
+ Me.iugBasis.GroupBoxPromptText = "Drag a column header here to group by that column."
+ Me.iugBasis.GroupBoxTextForeColor = System.Drawing.Color.Red
+ Me.iugBasis.Identity = "iMES"
+ Me.iugBasis.IdentityForm = ""
+ Me.iugBasis.LayOutFilePath = ""
+ Me.iugBasis.Location = New System.Drawing.Point(12, 53)
+ Me.iugBasis.Name = "iugBasis"
+ Me.iugBasis.PrintFitWidthToPages = 0
+ Me.iugBasis.PrintLandscape = True
+ Me.iugBasis.PrintPageFooter = ""
+ Me.iugBasis.PrintPageFooterHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugBasis.PrintPageFooterHeight = 20
+ Me.iugBasis.PrintPageHeader = ""
+ Me.iugBasis.PrintPageHeaderHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugBasis.PrintPageHeaderHeight = 20
+ Me.iugBasis.PrintZoom = 1.0R
+ Me.iugBasis.Size = New System.Drawing.Size(791, 200)
+ Me.iugBasis.TabIndex = 41
+ Me.iugBasis.UserNo = "iMES"
+ '
+ 'iugDetail
+ '
+ Me.iugDetail.EnterDirection = iMESUltraGrid.iMESUltraGridControl.EnterDirectionEnum.Down
+ Me.iugDetail.GroupBoxPromptText = "Drag a column header here to group by that column."
+ Me.iugDetail.GroupBoxTextForeColor = System.Drawing.Color.Red
+ Me.iugDetail.Identity = "iMES"
+ Me.iugDetail.IdentityForm = ""
+ Me.iugDetail.LayOutFilePath = ""
+ Me.iugDetail.Location = New System.Drawing.Point(12, 260)
+ Me.iugDetail.Name = "iugDetail"
+ Me.iugDetail.PrintFitWidthToPages = 0
+ Me.iugDetail.PrintLandscape = True
+ Me.iugDetail.PrintPageFooter = ""
+ Me.iugDetail.PrintPageFooterHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugDetail.PrintPageFooterHeight = 20
+ Me.iugDetail.PrintPageHeader = ""
+ Me.iugDetail.PrintPageHeaderHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugDetail.PrintPageHeaderHeight = 20
+ Me.iugDetail.PrintZoom = 1.0R
+ Me.iugDetail.Size = New System.Drawing.Size(791, 291)
+ Me.iugDetail.TabIndex = 42
+ Me.iugDetail.UserNo = "iMES"
+ '
+ 'btnClose
+ '
+ Me.btnClose.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnClose.Location = New System.Drawing.Point(827, 523)
+ Me.btnClose.Name = "btnClose"
+ Me.btnClose.Size = New System.Drawing.Size(88, 32)
+ Me.btnClose.TabIndex = 48
+ Me.btnClose.Text = "Close (&X)"
+ '
+ 'btnApprove
+ '
+ Me.btnApprove.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnApprove.Location = New System.Drawing.Point(827, 213)
+ Me.btnApprove.Name = "btnApprove"
+ Me.btnApprove.Size = New System.Drawing.Size(88, 32)
+ Me.btnApprove.TabIndex = 53
+ Me.btnApprove.Text = "Approve(&Y)"
+ '
+ 'btnEMail
+ '
+ Me.btnEMail.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnEMail.Location = New System.Drawing.Point(827, 429)
+ Me.btnEMail.Name = "btnEMail"
+ Me.btnEMail.Size = New System.Drawing.Size(88, 32)
+ Me.btnEMail.TabIndex = 47
+ Me.btnEMail.Text = "Mail"
+ '
+ 'btnDCopy
+ '
+ Me.btnDCopy.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDCopy.Location = New System.Drawing.Point(827, 389)
+ Me.btnDCopy.Name = "btnDCopy"
+ Me.btnDCopy.Size = New System.Drawing.Size(88, 32)
+ Me.btnDCopy.TabIndex = 46
+ Me.btnDCopy.Text = "Copy"
+ '
+ 'btnCopy
+ '
+ Me.btnCopy.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnCopy.Location = New System.Drawing.Point(827, 173)
+ Me.btnCopy.Name = "btnCopy"
+ Me.btnCopy.Size = New System.Drawing.Size(88, 32)
+ Me.btnCopy.TabIndex = 52
+ Me.btnCopy.Text = "Copy(&C)"
+ '
+ 'btnDDel
+ '
+ Me.btnDDel.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDDel.Location = New System.Drawing.Point(827, 349)
+ Me.btnDDel.Name = "btnDDel"
+ Me.btnDDel.Size = New System.Drawing.Size(88, 32)
+ Me.btnDDel.TabIndex = 45
+ Me.btnDDel.Text = "DEL"
+ '
+ 'btnDEdit
+ '
+ Me.btnDEdit.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDEdit.Location = New System.Drawing.Point(827, 309)
+ Me.btnDEdit.Name = "btnDEdit"
+ Me.btnDEdit.Size = New System.Drawing.Size(88, 32)
+ Me.btnDEdit.TabIndex = 44
+ Me.btnDEdit.Text = "EDIT"
+ '
+ 'btnAdd
+ '
+ Me.btnAdd.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnAdd.Location = New System.Drawing.Point(827, 53)
+ Me.btnAdd.Name = "btnAdd"
+ Me.btnAdd.Size = New System.Drawing.Size(88, 32)
+ Me.btnAdd.TabIndex = 49
+ Me.btnAdd.Text = "Add(&A)"
+ '
+ 'btnDAdd
+ '
+ Me.btnDAdd.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDAdd.Location = New System.Drawing.Point(827, 269)
+ Me.btnDAdd.Name = "btnDAdd"
+ Me.btnDAdd.Size = New System.Drawing.Size(88, 32)
+ Me.btnDAdd.TabIndex = 43
+ Me.btnDAdd.Text = "ADD"
+ '
+ 'btnDel
+ '
+ Me.btnDel.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDel.Location = New System.Drawing.Point(827, 133)
+ Me.btnDel.Name = "btnDel"
+ Me.btnDel.Size = New System.Drawing.Size(88, 32)
+ Me.btnDel.TabIndex = 51
+ Me.btnDel.Text = "Del(&D)"
+ '
+ 'btnEdit
+ '
+ Me.btnEdit.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnEdit.Location = New System.Drawing.Point(827, 93)
+ Me.btnEdit.Name = "btnEdit"
+ Me.btnEdit.Size = New System.Drawing.Size(88, 32)
+ Me.btnEdit.TabIndex = 50
+ Me.btnEdit.Text = "Edit(&E)"
+ '
+ 'frmDemo
+ '
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 15.0!)
+ Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+ Me.ClientSize = New System.Drawing.Size(927, 562)
+ Me.Controls.Add(Me.btnClose)
+ Me.Controls.Add(Me.btnApprove)
+ Me.Controls.Add(Me.btnEMail)
+ Me.Controls.Add(Me.btnDCopy)
+ Me.Controls.Add(Me.btnCopy)
+ Me.Controls.Add(Me.btnDDel)
+ Me.Controls.Add(Me.btnDEdit)
+ Me.Controls.Add(Me.btnAdd)
+ Me.Controls.Add(Me.btnDAdd)
+ Me.Controls.Add(Me.btnDel)
+ Me.Controls.Add(Me.btnEdit)
+ Me.Controls.Add(Me.iugDetail)
+ Me.Controls.Add(Me.iugBasis)
+ Me.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
+ Me.Name = "frmDemo"
+ Me.Text = "Demo"
+ Me.Controls.SetChildIndex(Me.iugBasis, 0)
+ Me.Controls.SetChildIndex(Me.iugDetail, 0)
+ Me.Controls.SetChildIndex(Me.btnEdit, 0)
+ Me.Controls.SetChildIndex(Me.btnDel, 0)
+ Me.Controls.SetChildIndex(Me.btnDAdd, 0)
+ Me.Controls.SetChildIndex(Me.btnAdd, 0)
+ Me.Controls.SetChildIndex(Me.btnDEdit, 0)
+ Me.Controls.SetChildIndex(Me.btnDDel, 0)
+ Me.Controls.SetChildIndex(Me.btnCopy, 0)
+ Me.Controls.SetChildIndex(Me.btnDCopy, 0)
+ Me.Controls.SetChildIndex(Me.btnEMail, 0)
+ Me.Controls.SetChildIndex(Me.btnApprove, 0)
+ Me.Controls.SetChildIndex(Me.btnClose, 0)
+ Me.ResumeLayout(False)
+
+ End Sub
+
+ Friend WithEvents iugBasis As iMESUltraGrid.iMESUltraGridControl
+ Friend WithEvents iugDetail As iMESUltraGrid.iMESUltraGridControl
+ Friend WithEvents btnClose As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnApprove As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnEMail As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDCopy As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnCopy As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDDel As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDEdit As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnAdd As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDAdd As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDel As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnEdit As Infragistics.Win.Misc.UltraButton
+End Class
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/frmDemo.resx b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/frmDemo.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/frmDemo.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/frmDemo.vb b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/frmDemo.vb
new file mode 100644
index 0000000..4d5c94c
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Demo/frmDemo.vb
@@ -0,0 +1,14 @@
+Imports iMESExceptionManager
+
+Imports Infragistics.Win
+Imports Infragistics.Win.UltraWinGrid
+Public Class frmDemo
+
+ Private Sub frmDemo_Load(sender As Object, e As EventArgs) Handles MyBase.Load
+
+ End Sub
+
+ Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
+
+ End Sub
+End Class
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/ET_Subcontractor.sln b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/ET_Subcontractor.sln
new file mode 100644
index 0000000..85b1902
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/ET_Subcontractor.sln
@@ -0,0 +1,39 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25123.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ET_Subcontractor", "ET_Subcontractor.vbproj", "{D6EE7B96-F10E-44E2-9731-162B70B4C8DD}"
+EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Test", "..\..\Test\Test.vbproj", "{C4A48E3F-38E4-4E88-A47D-FA5510686E57}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}.Debug|x86.ActiveCfg = Debug|x86
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}.Debug|x86.Build.0 = Debug|x86
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}.Release|x86.ActiveCfg = Release|x86
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}.Release|x86.Build.0 = Release|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Debug|x86.ActiveCfg = Debug|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Debug|x86.Build.0 = Debug|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Release|x86.ActiveCfg = Release|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(TeamFoundationVersionControl) = preSolution
+ SccNumberOfProjects = 3
+ SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
+ SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6
+ SccProjectUniqueName0 = ET_Subcontractor.vbproj
+ SccLocalPath0 = .
+ SccProjectUniqueName1 = ..\\..\\Test\\Test.vbproj
+ SccProjectName1 = ../../Test
+ SccLocalPath1 = ..\\..\\Test
+ SccLocalPath2 = .
+ EndGlobalSection
+EndGlobal
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/ET_Subcontractor.vbproj b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/ET_Subcontractor.vbproj
new file mode 100644
index 0000000..0c339dc
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/ET_Subcontractor.vbproj
@@ -0,0 +1,205 @@
+
+
+
+
+ Debug
+ x86
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}
+ Library
+ ET_Subcontractor
+ ET_Subcontractor
+ 512
+ Windows
+ v4.6.2
+
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+ true
+ true
+ true
+ ..\..\..\MESClient\
+ ET_Subcontractor.xml
+ 0
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ full
+ x86
+ MinimumRecommendedRules.ruleset
+ false
+
+
+ true
+ ..\..\..\MESClient\
+ ET_Subcontractor.xml
+ true
+ 0
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ pdbonly
+ x86
+ MinimumRecommendedRules.ruleset
+ false
+
+
+ true
+
+
+ iMES.snk
+
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.v19.1.dll
+ False
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinGrid.v19.1.dll
+ False
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinEditors.v19.1.dll
+ False
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.Misc.v19.1.dll
+ False
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Shared.v19.1.dll
+ False
+
+
+ ..\..\..\MESClient\COM_Kit.dll
+ False
+
+
+ ..\..\..\MES_C_DLL\iMESExceptionManager.dll
+ False
+
+
+ ..\..\..\MES_C_DLL\iMESUltraGrid.dll
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ modConstant.vb
+
+
+ Form1.vb
+
+
+ Form
+
+
+ Form
+
+
+ Form
+
+
+ Form
+
+
+ Form
+
+
+
+ True
+ Application.myapp
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+ frmBusiness21670.vb
+
+
+ frmSubcontractor.vb
+
+
+ frmSubcontractorContDef.vb
+
+
+ frmSubcontractorDef.vb
+
+
+
+ VbMyResourcesResXFileCodeGenerator
+ Resources.Designer.vb
+ My.Resources
+ Designer
+
+
+
+
+
+ MyApplicationCodeGenerator
+ Application.Designer.vb
+
+
+ SettingsSingleFileGenerator
+ My
+ Settings.Designer.vb
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/ET_Subcontractor.vbproj.vspscc b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/ET_Subcontractor.vbproj.vspscc
new file mode 100644
index 0000000..b6d3289
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/ET_Subcontractor.vbproj.vspscc
@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = ""
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/Form1.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/Form1.Designer.vb
new file mode 100644
index 0000000..c29cf72
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/Form1.Designer.vb
@@ -0,0 +1,32 @@
+
+Partial Class Form1
+
+
+ Inherits COM_Kit.frmBasisTemplat
+
+ 'Form 重写 Dispose,以清理组件列表。
+
+ Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+ Try
+ If disposing AndAlso components IsNot Nothing Then
+ components.Dispose()
+ End If
+ Finally
+ MyBase.Dispose(disposing)
+ End Try
+ End Sub
+
+ 'Windows 窗体设计器所必需的
+ Private components As System.ComponentModel.IContainer
+
+ '注意: 以下过程是 Windows 窗体设计器所必需的
+ '可以使用 Windows 窗体设计器修改它。
+ '不要使用代码编辑器修改它。
+
+ Private Sub InitializeComponent()
+ components = New System.ComponentModel.Container
+ Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+ Me.ClientSize = New System.Drawing.Size(800, 450)
+ Me.Text = "Form1"
+ End Sub
+End Class
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/Form1.vb b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/Form1.vb
new file mode 100644
index 0000000..10d55d4
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/Form1.vb
@@ -0,0 +1,3 @@
+Public Class Form1
+
+End Class
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/Application.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/Application.Designer.vb
new file mode 100644
index 0000000..4f9342a
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/Application.Designer.vb
@@ -0,0 +1,13 @@
+'------------------------------------------------------------------------------
+'
+' 這段程式碼是由工具產生的。
+' 執行階段版本:4.0.30319.42000
+'
+' 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
+' 變更將會遺失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/Application.myapp b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/Application.myapp
new file mode 100644
index 0000000..758895d
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/Application.myapp
@@ -0,0 +1,10 @@
+
+
+ false
+ false
+ 0
+ true
+ 0
+ 1
+ true
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/AssemblyInfo.vb b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/AssemblyInfo.vb
new file mode 100644
index 0000000..b0cdd98
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/AssemblyInfo.vb
@@ -0,0 +1,35 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' 組件的一般資訊是由下列的屬性集控制。
+' 變更這些屬性的值即可修改組件的相關
+' 資訊。
+
+' 檢閱組件屬性的值
+
+
+
+
+
+
+
+
+
+
+'下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID
+
+
+' 組件的版本資訊由下列四個值所組成:
+'
+' 主要版本
+' 次要版本
+' 組建編號
+' 修訂編號
+'
+' 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號
+' 指定為預設值:
+'
+
+
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/BuildIncrementVersionInfo.vb b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/BuildIncrementVersionInfo.vb
new file mode 100644
index 0000000..755cff8
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/BuildIncrementVersionInfo.vb
@@ -0,0 +1 @@
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/Resources.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/Resources.Designer.vb
new file mode 100644
index 0000000..4bb7628
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/Resources.Designer.vb
@@ -0,0 +1,63 @@
+'------------------------------------------------------------------------------
+'
+' 這段程式碼是由工具產生的。
+' 執行階段版本:4.0.30319.42000
+'
+' 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
+' 變更將會遺失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+Imports System
+
+Namespace My.Resources
+
+ '這個類別是自動產生的,是利用 StronglyTypedResourceBuilder
+ '類別透過 ResGen 或 Visual Studio 這類工具。
+ '若要加入或移除成員,請編輯您的 .ResX 檔,然後重新執行 ResGen
+ '(利用 /str 選項),或重建您的 VS 專案。
+ '''
+ ''' 用於查詢當地語系化字串等的強類型資源類別。
+ '''
+ _
+ Friend Module Resources
+
+ Private resourceMan As Global.System.Resources.ResourceManager
+
+ Private resourceCulture As Global.System.Globalization.CultureInfo
+
+ '''
+ ''' 傳回這個類別使用的快取的 ResourceManager 執行個體。
+ '''
+ _
+ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+ Get
+ If Object.ReferenceEquals(resourceMan, Nothing) Then
+ Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ET_Subcontractor.Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' 覆寫目前執行緒的 CurrentUICulture 屬性,對象是所有
+ ''' 使用這個強類型資源類別的資源查閱。
+ '''
+ _
+ Friend Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set
+ resourceCulture = value
+ End Set
+ End Property
+ End Module
+End Namespace
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/Resources.resx b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/Settings.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/Settings.Designer.vb
new file mode 100644
index 0000000..1ba8a79
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/Settings.Designer.vb
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+'
+' 這段程式碼是由工具產生的。
+' 執行階段版本:4.0.30319.42000
+'
+' 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
+' 變更將會遺失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ _
+ Partial Friend NotInheritable Class MySettings
+ Inherits Global.System.Configuration.ApplicationSettingsBase
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
+
+#Region "My.Settings 自動儲存功能"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
+#End If
+#End Region
+
+ Public Shared ReadOnly Property [Default]() As MySettings
+ Get
+
+#If _MyType = "WindowsForms" Then
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
+#End If
+ Return defaultInstance
+ End Get
+ End Property
+ End Class
+End Namespace
+
+Namespace My
+
+ _
+ Friend Module MySettingsProperty
+
+ _
+ Friend ReadOnly Property Settings() As Global.ET_Subcontractor.My.MySettings
+ Get
+ Return Global.ET_Subcontractor.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/Settings.settings b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/Settings.settings
new file mode 100644
index 0000000..85b890b
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/licenses.licx b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/licenses.licx
new file mode 100644
index 0000000..e3f40e2
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/My Project/licenses.licx
@@ -0,0 +1,7 @@
+Infragistics.Win.Misc.UltraButton, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.UltraWinEditors.UltraRadioButton, Infragistics4.Win.UltraWinEditors.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.UltraWinEditors.UltraComboEditor, Infragistics4.Win.UltraWinEditors.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.Misc.UltraGroupBox, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.UltraWinEditors.UltraTextEditor, Infragistics4.Win.UltraWinEditors.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.Misc.UltraLabel, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.Misc.UltraPanel, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmBusiness21670.resx b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmBusiness21670.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmBusiness21670.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmBusiness21670.vb b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmBusiness21670.vb
new file mode 100644
index 0000000..cbad98c
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmBusiness21670.vb
@@ -0,0 +1,1129 @@
+Imports iMESExceptionManager
+
+Imports Infragistics.Win
+Imports Infragistics.Win.UltraWinGrid
+Public Class frmSubcontractor1
+
+ Inherits COM_Kit.frmBasisTemplat
+
+ Public PrivFunNo As String = defString
+
+ '//WS相關變數
+ ' 2016 YF, Dim wsENT As New wsENT.wsENT '宣告Web Service物件?
+ Dim tmpStringReader As System.IO.StringReader '將字串轉換成可讀入DataSet的物件
+ Dim XmlData As String '儲存取回之資料
+ Dim XmlSchema As String '儲存取回之資料結構
+ Dim InXml As String '儲存呼叫Web Service的傳入參數(Request字串)
+ Dim OutXml As String '儲存Web Service的傳回值(Response字串)
+ Dim strIdentity As String '儲存Identity XML字串?
+ Dim strParameter As String '儲存Parameter XML字串
+
+ '//資料表相關變數
+
+ Dim dsENT As New DataSet '資料集:儲存取回之資料?
+
+ Dim tblENTSubcontractor As String '儲存取回資料表的名稱(master)?
+ Dim tblENTSubcontractorCont As String '明細資料表名稱(detail)
+ Dim strFilter As String 'Filter string及列印的過濾條件
+
+ '//其他共用變數
+ Dim SubcontractorNo As String 'for Gird to Focus
+ Dim ContactorName As String 'for DetailGrid to Focus
+ Dim ugrRow As Infragistics.Win.UltraWinGrid.UltraGridRow
+ Friend WithEvents btnAdd As Misc.UltraButton
+ Friend WithEvents btnEdit As Misc.UltraButton
+ Friend WithEvents btnDel As Misc.UltraButton
+ Friend WithEvents btnCopy As Misc.UltraButton
+ Friend WithEvents btnApprove As Misc.UltraButton
+ Friend WithEvents iugSubcontractor As iMESUltraGrid.iMESUltraGridControl
+ Dim i As Integer
+
+#Region " Windows Form Designer generated code "
+
+ Public Sub New()
+ MyBase.New()
+
+ 'This call is required by the Windows Form Designer.
+ InitializeComponent()
+
+ 'Add any initialization after the InitializeComponent() call
+
+ End Sub
+
+ 'Form overrides dispose to clean up the component list.
+ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
+ If disposing Then
+ If Not (components Is Nothing) Then
+ components.Dispose()
+ End If
+ End If
+ MyBase.Dispose(disposing)
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.Container
+ Friend WithEvents iugDetail As iMESUltraGrid.iMESUltraGridControl
+ Friend WithEvents btnClose As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnEMail As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDCopy As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDDel As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDEdit As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDAdd As Infragistics.Win.Misc.UltraButton
+ Private Sub InitializeComponent()
+ Me.btnClose = New Infragistics.Win.Misc.UltraButton()
+ Me.btnEMail = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDCopy = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDDel = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDEdit = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDAdd = New Infragistics.Win.Misc.UltraButton()
+ Me.iugDetail = New iMESUltraGrid.iMESUltraGridControl()
+ Me.btnAdd = New Infragistics.Win.Misc.UltraButton()
+ Me.btnEdit = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDel = New Infragistics.Win.Misc.UltraButton()
+ Me.btnCopy = New Infragistics.Win.Misc.UltraButton()
+ Me.btnApprove = New Infragistics.Win.Misc.UltraButton()
+ Me.iugSubcontractor = New iMESUltraGrid.iMESUltraGridControl()
+ Me.SuspendLayout()
+ '
+ 'btnClose
+ '
+ Me.btnClose.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnClose.Location = New System.Drawing.Point(912, 552)
+ Me.btnClose.Name = "btnClose"
+ Me.btnClose.Size = New System.Drawing.Size(88, 32)
+ Me.btnClose.TabIndex = 18
+ Me.btnClose.Text = "Close (&X)"
+ '
+ 'btnEMail
+ '
+ Me.btnEMail.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnEMail.Location = New System.Drawing.Point(912, 429)
+ Me.btnEMail.Name = "btnEMail"
+ Me.btnEMail.Size = New System.Drawing.Size(88, 32)
+ Me.btnEMail.TabIndex = 17
+ Me.btnEMail.Text = "Mail"
+ '
+ 'btnDCopy
+ '
+ Me.btnDCopy.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDCopy.Location = New System.Drawing.Point(912, 389)
+ Me.btnDCopy.Name = "btnDCopy"
+ Me.btnDCopy.Size = New System.Drawing.Size(88, 32)
+ Me.btnDCopy.TabIndex = 16
+ Me.btnDCopy.Text = "Copy"
+ '
+ 'btnDDel
+ '
+ Me.btnDDel.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDDel.Location = New System.Drawing.Point(912, 349)
+ Me.btnDDel.Name = "btnDDel"
+ Me.btnDDel.Size = New System.Drawing.Size(88, 32)
+ Me.btnDDel.TabIndex = 15
+ Me.btnDDel.Text = "DEL"
+ '
+ 'btnDEdit
+ '
+ Me.btnDEdit.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDEdit.Location = New System.Drawing.Point(912, 309)
+ Me.btnDEdit.Name = "btnDEdit"
+ Me.btnDEdit.Size = New System.Drawing.Size(88, 32)
+ Me.btnDEdit.TabIndex = 14
+ Me.btnDEdit.Text = "EDIT"
+ '
+ 'btnDAdd
+ '
+ Me.btnDAdd.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDAdd.Location = New System.Drawing.Point(912, 269)
+ Me.btnDAdd.Name = "btnDAdd"
+ Me.btnDAdd.Size = New System.Drawing.Size(88, 32)
+ Me.btnDAdd.TabIndex = 13
+ Me.btnDAdd.Text = "ADD"
+ '
+ 'iugDetail
+ '
+ Me.iugDetail.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.iugDetail.EnterDirection = iMESUltraGrid.iMESUltraGridControl.EnterDirectionEnum.Down
+ Me.iugDetail.GroupBoxPromptText = "Drag a column header here to group by that column."
+ Me.iugDetail.GroupBoxTextForeColor = System.Drawing.Color.Red
+ Me.iugDetail.Identity = "IMes"
+ Me.iugDetail.IdentityForm = ""
+ Me.iugDetail.LayOutFilePath = ""
+ Me.iugDetail.Location = New System.Drawing.Point(12, 270)
+ Me.iugDetail.Name = "iugDetail"
+ Me.iugDetail.PrintFitWidthToPages = 0
+ Me.iugDetail.PrintLandscape = True
+ Me.iugDetail.PrintPageFooter = ""
+ Me.iugDetail.PrintPageFooterHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugDetail.PrintPageFooterHeight = 20
+ Me.iugDetail.PrintPageHeader = ""
+ Me.iugDetail.PrintPageHeaderHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugDetail.PrintPageHeaderHeight = 20
+ Me.iugDetail.PrintZoom = 1.0R
+ Me.iugDetail.Size = New System.Drawing.Size(894, 314)
+ Me.iugDetail.TabIndex = 12
+ Me.iugDetail.UserNo = "IMes"
+ '
+ 'btnAdd
+ '
+ Me.btnAdd.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnAdd.Location = New System.Drawing.Point(912, 53)
+ Me.btnAdd.Name = "btnAdd"
+ Me.btnAdd.Size = New System.Drawing.Size(88, 32)
+ Me.btnAdd.TabIndex = 20
+ Me.btnAdd.Text = "Add(&A)"
+ '
+ 'btnEdit
+ '
+ Me.btnEdit.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnEdit.Location = New System.Drawing.Point(912, 93)
+ Me.btnEdit.Name = "btnEdit"
+ Me.btnEdit.Size = New System.Drawing.Size(88, 32)
+ Me.btnEdit.TabIndex = 21
+ Me.btnEdit.Text = "Edit(&E)"
+ '
+ 'btnDel
+ '
+ Me.btnDel.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDel.Location = New System.Drawing.Point(912, 133)
+ Me.btnDel.Name = "btnDel"
+ Me.btnDel.Size = New System.Drawing.Size(88, 32)
+ Me.btnDel.TabIndex = 22
+ Me.btnDel.Text = "Del(&D)"
+ '
+ 'btnCopy
+ '
+ Me.btnCopy.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnCopy.Location = New System.Drawing.Point(912, 173)
+ Me.btnCopy.Name = "btnCopy"
+ Me.btnCopy.Size = New System.Drawing.Size(88, 32)
+ Me.btnCopy.TabIndex = 23
+ Me.btnCopy.Text = "Copy(&C)"
+ '
+ 'btnApprove
+ '
+ Me.btnApprove.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnApprove.Location = New System.Drawing.Point(912, 213)
+ Me.btnApprove.Name = "btnApprove"
+ Me.btnApprove.Size = New System.Drawing.Size(88, 32)
+ Me.btnApprove.TabIndex = 24
+ Me.btnApprove.Text = "Approve(&Y)"
+ '
+ 'iugSubcontractor
+ '
+ Me.iugSubcontractor.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.iugSubcontractor.EnterDirection = iMESUltraGrid.iMESUltraGridControl.EnterDirectionEnum.Down
+ Me.iugSubcontractor.GroupBoxPromptText = "Drag a column header here to group by that column."
+ Me.iugSubcontractor.GroupBoxTextForeColor = System.Drawing.Color.Red
+ Me.iugSubcontractor.Identity = "IMes"
+ Me.iugSubcontractor.IdentityForm = ""
+ Me.iugSubcontractor.LayOutFilePath = ""
+ Me.iugSubcontractor.Location = New System.Drawing.Point(12, 53)
+ Me.iugSubcontractor.Name = "iugSubcontractor"
+ Me.iugSubcontractor.PrintFitWidthToPages = 0
+ Me.iugSubcontractor.PrintLandscape = True
+ Me.iugSubcontractor.PrintPageFooter = ""
+ Me.iugSubcontractor.PrintPageFooterHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugSubcontractor.PrintPageFooterHeight = 20
+ Me.iugSubcontractor.PrintPageHeader = ""
+ Me.iugSubcontractor.PrintPageHeaderHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugSubcontractor.PrintPageHeaderHeight = 20
+ Me.iugSubcontractor.PrintZoom = 1.0R
+ Me.iugSubcontractor.Size = New System.Drawing.Size(894, 192)
+ Me.iugSubcontractor.TabIndex = 25
+ Me.iugSubcontractor.UserNo = "IMes"
+ '
+ 'frmSubcontractor
+ '
+ Me.ClientSize = New System.Drawing.Size(1008, 591)
+ Me.Controls.Add(Me.btnClose)
+ Me.Controls.Add(Me.btnApprove)
+ Me.Controls.Add(Me.btnEMail)
+ Me.Controls.Add(Me.btnDCopy)
+ Me.Controls.Add(Me.btnCopy)
+ Me.Controls.Add(Me.btnDDel)
+ Me.Controls.Add(Me.iugSubcontractor)
+ Me.Controls.Add(Me.btnDEdit)
+ Me.Controls.Add(Me.btnAdd)
+ Me.Controls.Add(Me.btnDAdd)
+ Me.Controls.Add(Me.btnDel)
+ Me.Controls.Add(Me.iugDetail)
+ Me.Controls.Add(Me.btnEdit)
+ Me.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Name = "frmSubcontractor"
+ Me.Text = "ENT Subcontractor & Contactor"
+ Me.WindowState = System.Windows.Forms.FormWindowState.Maximized
+ Me.Controls.SetChildIndex(Me.btnEdit, 0)
+ Me.Controls.SetChildIndex(Me.iugDetail, 0)
+ Me.Controls.SetChildIndex(Me.btnDel, 0)
+ Me.Controls.SetChildIndex(Me.btnDAdd, 0)
+ Me.Controls.SetChildIndex(Me.btnAdd, 0)
+ Me.Controls.SetChildIndex(Me.btnDEdit, 0)
+ Me.Controls.SetChildIndex(Me.iugSubcontractor, 0)
+ Me.Controls.SetChildIndex(Me.btnDDel, 0)
+ Me.Controls.SetChildIndex(Me.btnCopy, 0)
+ Me.Controls.SetChildIndex(Me.btnDCopy, 0)
+ Me.Controls.SetChildIndex(Me.btnEMail, 0)
+ Me.Controls.SetChildIndex(Me.btnApprove, 0)
+ Me.Controls.SetChildIndex(Me.btnClose, 0)
+ Me.ResumeLayout(False)
+
+ End Sub
+
+#End Region
+
+ Private Sub frmSubcontractor_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
+
+ Cursor.Current = Cursors.WaitCursor
+
+ ' 2016 YF, wsENT.Url = LocalizeWebService(wsENT.Url.ToString)
+ ' 2016 YF, wsENT.EnableDecompression = True
+
+ Call funiMESUltraGridIni() 'Grid初始設定
+
+ '//取出資料
+ Call funLoadSubcontractor()
+
+ SetIssueState(Issue.Unfrozen) '預設在Unforzen上
+ SetSearchFieldName(New String() {"SubcontractorNo", "SubcontractorNaME"}) '設置搜尋欄位
+
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ ExeGroupControlPriv(Me, PrivFunNo)
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub frmSubcontractor_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
+ If Not dsENT Is Nothing Then dsENT.Dispose()
+ ' 2016 YF, If Not wsENT Is Nothing Then wsENT.Dispose()
+ End Sub
+
+ Protected Overrides Sub rdoIssue_CheckedChanged(sender As Object, e As EventArgs)
+ If IsNothing(dsENT) Then Exit Sub
+
+ Select Case GetIssueState()
+ Case Issue.Unfrozen
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = "IssueState=0"
+ Case Issue.Pending
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = "IssueState=1"
+ Case Issue.Active
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = "IssueState=2"
+ Case Issue.Unused
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = "IssueState=-1"
+ End Select
+ Me.iugSubcontractor.iMESUltraGrid.DataSource = dsENT.Tables(tblENTSubcontractor).DefaultView
+ Call funShowActiveDetail()
+ End Sub
+
+ Protected Overrides Sub Finalize()
+ MyBase.Finalize()
+ End Sub
+
+ Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
+
+ Dim fSubcontractorDef As New frmSubcontractorDef
+
+ fSubcontractorDef.DefMode = 0
+ fSubcontractorDef.ShowDialog(Me)
+ fSubcontractorDef.Dispose()
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ SubcontractorNo = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractor()
+
+ If GetIssueState() = Issue.Unfrozen Then
+ ugrRow = FindRecordPosition(iugSubcontractor, "SubcontractorNo", SubcontractorNo)
+ If Not ugrRow Is Nothing Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ End If
+
+ End Sub
+
+ Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
+
+
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+ 'IsGroupByRow不做任何處理
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then
+ Exit Sub
+ End If
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractor).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'")
+
+ '核准狀態為"Unfrozen"者才可修改
+
+ If Rows(0).Item("IssueState") <> 0 Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-202202", "[%NOT ALLOWED TO EDIT%]"), MsgBoxStyle.Exclamation, Me.Text)
+ Exit Sub
+ End If
+
+ Dim fSubcontractorDef As New frmSubcontractorDef
+ fSubcontractorDef.DefMode = 1
+ fSubcontractorDef.EditDataRow = Rows(0)
+ fSubcontractorDef.ShowDialog(Me)
+ fSubcontractorDef.Dispose()
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ SubcontractorNo = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractor()
+
+ If GetIssueState() = Issue.Unfrozen Then
+ ugrRow = FindRecordPosition(iugSubcontractor, "SubcontractorNo", SubcontractorNo)
+ If Not ugrRow Is Nothing Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ End If
+
+ End If
+ End Sub
+
+ Private Sub btnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel.Click
+
+
+
+ '1.先檢查是否為單筆,是:將其Selecte
+ If Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then Exit Sub
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Cursor.Current = Cursors.WaitCursor
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ '2.Multi
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count > 0 Then
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Item(0).IsGroupByRow Then
+ Exit Sub 'Selected.Rows,不會包含GroupRow & 一般的Row在一起,故若是GroupRow不做任何處理
+ End If
+ If iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-100001", "[%ARE YOU SURE TO DELETE ALL SELECTED RECORDS%]"), MsgBoxStyle.OkCancel + MsgBoxStyle.Question + MsgBoxStyle.DefaultButton2, Me.Text) = MsgBoxResult.Cancel Then
+ Exit Sub
+ End If
+
+ '共用資料
+ Dim XmlDoc As New XmlDocument
+ Dim blnReLoad As Boolean = False
+ Dim intIssueState As Integer
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ For i = 0 To Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count - 1
+ intIssueState = Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("IssueState").Value
+ If intIssueState = 0 Or intIssueState = -1 Or intIssueState = 2 Then '狀態為Unforzen或Unused時直接刪除
+
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", CInput(Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("SubcontractorNo").Value.ToString), "")
+ strParameter = strParameter & CombineXMLParameter("issuestate", "IssueState", "String", CInput(intIssueState), "")
+ strParameter = strParameter & CombineXMLParameter("datastamp", "DataStamp", "Integer", iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("DataStamp").Value, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ Try
+ ' 2016 YF, OutXml = wsENT.DelSubcontractor(InXml)
+ 'OutXml = InvokeSrv("wsENT.DelSubcontractor", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.DelSubcontractor", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ If Not blnReLoad Then blnReLoad = True
+ Else
+ '找出Exception訊並顯示出來
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit For
+ End If
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Delete failed," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ Exit For
+ End Try
+ Else
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200021", "[%NOT ALLOWED TO delete%]"), MsgBoxStyle.Exclamation, Me.Text)
+ End If
+ Next
+
+ XmlDoc = Nothing
+
+ If blnReLoad Then
+
+ Call funLoadSubcontractor()
+
+ Call funShowActiveDetail()
+
+ End If
+
+ End If
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub btnCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCopy.Click
+
+
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+ 'IsGroupByRow不做任何處理
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then
+ Exit Sub
+ End If
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractor).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'")
+
+ Dim fSubcontractorDef As New frmSubcontractorDef
+ fSubcontractorDef.DefMode = 2
+ fSubcontractorDef.EditDataRow = Rows(0)
+ fSubcontractorDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ SubcontractorNo = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractor()
+
+ If GetIssueState() = Issue.Unfrozen Then
+ ugrRow = FindRecordPosition(iugSubcontractor, "SubcontractorNo", SubcontractorNo)
+ If Not ugrRow Is Nothing Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ End If
+
+ End If
+ End Sub
+
+ Private Sub btnApprove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnApprove.Click
+
+
+
+ '1.先檢查是否為單筆,是:將其Selecte
+ If Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then Exit Sub
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Cursor.Current = Cursors.WaitCursor
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ '2.Multi
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count > 0 Then
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Item(0).IsGroupByRow Then
+ Exit Sub 'Selected.Rows,不會包含GroupRow & 一般的Row在一起,故若是GroupRow不做任何處理
+ End If
+ If iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-100002", "[%ARE YOU SURE TO APPROVE ALL SELECTED RECORDS%]"), MsgBoxStyle.OkCancel + MsgBoxStyle.Question + MsgBoxStyle.DefaultButton2, Me.Text) = MsgBoxResult.Cancel Then
+ Exit Sub
+ End If
+
+ '共用資料
+ Dim XmlDoc As New XmlDocument
+ Dim blnReLoad As Boolean = False
+ Dim intIssueState As Integer
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ For i = 0 To Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count - 1
+ intIssueState = Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("IssueState").Value
+ If intIssueState = 0 Then
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", CInput(Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("SubcontractorNo").Value.ToString), "")
+ strParameter += CombineXMLParameter("issuestate", "IssueState", "String", intIssueState, "")
+ strParameter += CombineXMLParameter("creator", "Creator", "String", gUserNo, "")
+ strParameter = strParameter & CombineXMLParameter("datastamp", "DataStamp", "Integer", iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("DataStamp").Value, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ Try
+ ' 2016 YF, OutXml = wsENT.ApproveSubcontractor(InXml)
+ 'OutXml = InvokeSrv("wsENT.ApproveSubcontractor", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.ApproveSubcontractor", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ If Not blnReLoad Then blnReLoad = True
+ Else
+ '找出Exception訊並顯示出來
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit For
+ End If
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Approve failed," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ Exit For
+ End Try
+ Else
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200021", "[%NOT ALLOW TO APPROVE%]"), MsgBoxStyle.Exclamation, Me.Text)
+ End If
+ Next
+
+ XmlDoc = Nothing
+
+ If blnReLoad Then
+
+ Call funLoadSubcontractor()
+
+ Call funShowActiveDetail()
+
+ End If
+
+ End If
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub btnDAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDAdd.Click
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+
+ 'Dim Rows As DataRow()
+ Dim fSubcontractorContDef As New frmSubcontractorContDef
+
+ fSubcontractorContDef.DefMode = 0
+ fSubcontractorContDef.SubcontractorNo = Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString
+ fSubcontractorContDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ ContactorName = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ ugrRow = FindRecordPosition(iugDetail, "ContactorName", ContactorName)
+ If Not ugrRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ End If
+ End Sub
+
+ Private Sub btnDEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDEdit.Click
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing And Not Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow OrElse iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractorCont).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'" _
+ & " And ContactorName = '" & Replace(Me.iugDetail.iMESUltraGrid.ActiveRow.Cells("ContactorName").Value.ToString, "'", "''") & "'")
+
+ Dim fSubcontractorContDef As New frmSubcontractorContDef
+ fSubcontractorContDef.DefMode = 1
+ fSubcontractorContDef.EditDataRow = Rows(0)
+ fSubcontractorContDef.SubcontractorNo = Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString
+ fSubcontractorContDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ ContactorName = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ ugrRow = FindRecordPosition(iugDetail, "ContactorName", ContactorName)
+ If Not ugrRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ Else
+
+ Exit Sub
+ End If
+
+ End Sub
+
+ Private Sub btnDDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDDel.Click
+
+
+ '1.先檢查是否為單筆,是:將其Selecte
+ If Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then Exit Sub
+ If iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If Not Me.iugDetail.iMESUltraGrid.ActiveRow.Selected Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ '2.Multi
+ If Me.iugDetail.iMESUltraGrid.Selected.Rows.Count > 0 Then
+ If Me.iugDetail.iMESUltraGrid.Selected.Rows.Item(0).IsGroupByRow Then
+ Exit Sub 'Selected.Rows,不會包含GroupRow & 一般的Row在一起,故若是GroupRow不做任何處理
+ End If
+ If iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-100001", "[%ARE YOU SURE TO DELETE ALL SELECTED RECORDS%]"), MsgBoxStyle.OkCancel + MsgBoxStyle.Question + MsgBoxStyle.DefaultButton2, Me.Text) = MsgBoxResult.Cancel Then
+ Exit Sub
+ End If
+
+ '共用資料
+ Dim XmlDoc As New XmlDocument
+ Dim blnReLoad As Boolean = False
+ Dim intIssueState As Integer
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ For i = 0 To Me.iugDetail.iMESUltraGrid.Selected.Rows.Count - 1
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", CInput(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString), "")
+ strParameter = strParameter & CombineXMLParameter("ContactorName", "ContactorName", "String", CInput(Me.iugDetail.iMESUltraGrid.Selected.Rows(i).Cells("ContactorName").Value.ToString), "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ Try
+ ' 2016 YF, OutXml = wsENT.DelSubcontractorCont(InXml)
+ 'OutXml = InvokeSrv("wsENT.DelSubcontractorCont", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.DelSubcontractorCont", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ If Not blnReLoad Then blnReLoad = True
+ Else
+ '找出Exception訊並顯示出來
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit For
+ End If
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Delete failed," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ Exit For
+ End Try
+
+ Next
+
+ XmlDoc = Nothing
+
+ If blnReLoad Then Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ End If
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub btnDCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDCopy.Click
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing And Not Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow OrElse iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractorCont).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'" _
+ & " And ContactorName = '" & Replace(Me.iugDetail.iMESUltraGrid.ActiveRow.Cells("ContactorName").Value.ToString, "'", "''") & "'")
+
+ Dim fSubcontractorContDef As New frmSubcontractorContDef
+ fSubcontractorContDef.DefMode = 2
+ fSubcontractorContDef.EditDataRow = Rows(0)
+ fSubcontractorContDef.SubcontractorNo = Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString
+ fSubcontractorContDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ ContactorName = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ ugrRow = FindRecordPosition(iugDetail, "ContactorName", ContactorName)
+ If Not ugrRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ Else
+
+ Exit Sub
+ End If
+
+ End Sub
+
+ Private Sub btnEMail_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEMail.Click
+
+ If Not Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then
+ If iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Dim Rows As DataRow()
+ Dim proMail As New System.Diagnostics.Process
+ Dim strAccount As String
+
+ Rows = dsENT.Tables(tblENTSubcontractorCont).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'" _
+ & " And ContactorName = '" & Replace(Me.iugDetail.iMESUltraGrid.ActiveRow.Cells("ContactorName").Value.ToString, "'", "''") & "'")
+
+ strAccount = "mailto:" & Rows(0).Item("EMail").ToString
+ proMail.Start(strAccount)
+
+ End If
+
+ End Sub
+
+ Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
+ Me.Close()
+ End Sub
+
+ Protected Overrides Sub btnQuery_Click(sender As Object, e As EventArgs)
+ Cursor.Current = Cursors.WaitCursor
+
+ funLoadSubcontractor()
+
+ Cursor.Current = Cursors.Default
+ End Sub
+
+#Region "Ultra Grid"
+
+ Private Sub iugSubcontractor_iMESUltraGrid_InitializeLayOut(ByVal sender As System.Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) Handles iugSubcontractor.iMESUltraGrid_InitializeLayOut
+
+ With e.Layout
+ With .Bands(0).Columns("SubcontractorNo")
+ .Header.Caption = "SubcontractorNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 0
+ End With
+ With .Bands(0).Columns("SubcontractorName")
+ .Header.Caption = "SubcontractorName"
+ .Width = 110
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 1
+ End With
+ With .Bands(0).Columns("Description")
+ .Header.Caption = "Description"
+ .Width = 110
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 2
+ End With
+ With .Bands(0).Columns("Creator")
+ .Header.Caption = "Creator"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 3
+ End With
+ With .Bands(0).Columns("CreateDate")
+ .Header.Caption = "CreateDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 4
+ End With
+ With .Bands(0).Columns("IssueState")
+ .Header.Caption = "IssueState"
+ .Width = 114
+ .Hidden = True
+ .Header.VisiblePosition = 5
+ End With
+ With .Bands(0).Columns("Reviser")
+ .Header.Caption = "Reviser"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 6
+ End With
+ With .Bands(0).Columns("ReviseDate")
+ .Header.Caption = "ReviseDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 7
+ End With
+ With e.Layout.Bands(0).Columns("DataStamp")
+ .Hidden = True
+ End With
+ End With
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ End Sub
+
+ Private Sub iugSubcontractor_iMESUltraGrid_AfterRowActivate(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles iugSubcontractor.iMESUltraGrid_AfterRowActivate
+
+ 'IsGroupByRow不做任何處理
+ If Not iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+ Else
+ Exit Sub
+ End If
+
+ End Sub
+
+ Private Sub iugDetail_iMESUltraGrid_InitializeLayOut(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) Handles iugDetail.iMESUltraGrid_InitializeLayOut
+
+ With e.Layout
+ With .Bands(0).Columns("SubcontractorNo")
+ .Header.Caption = "SubcontractorNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 0
+ End With
+ With .Bands(0).Columns("ContactorName")
+ .Header.Caption = "ContactorName"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 1
+ End With
+ With .Bands(0).Columns("TelNo")
+ .Header.Caption = "TelNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 2
+ End With
+ With .Bands(0).Columns("FaxNo")
+ .Header.Caption = "FaxNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 3
+ End With
+ With .Bands(0).Columns("Title")
+ .Header.Caption = "Title"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 4
+ End With
+ With .Bands(0).Columns("Address")
+ .Header.Caption = "Address"
+ .Width = 110
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 5
+ End With
+ With .Bands(0).Columns("EMail")
+ .Header.Caption = "EMail"
+ .Width = 150
+ .Hidden = False
+ .CellAppearance.ForeColor = System.Drawing.Color.Blue
+ .CellAppearance.FontData.Underline = DefaultableBoolean.True
+ .Header.VisiblePosition = 6
+ End With
+ With .Bands(0).Columns("Description")
+ .Header.Caption = "Description"
+ .Width = 200
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 7
+ End With
+ With .Bands(0).Columns("Creator")
+ .Header.Caption = "Creator"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 8
+ End With
+ With .Bands(0).Columns("CreateDate")
+ .Header.Caption = "CreateDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 9
+ End With
+ With .Bands(0).Columns("Reviser")
+ .Header.Caption = "Reviser"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 10
+ End With
+ With .Bands(0).Columns("ReviseDate")
+ .Header.Caption = "ReviseDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 11
+ End With
+ With e.Layout.Bands(0).Columns("DataStamp")
+ .Hidden = True
+ End With
+ End With
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ End Sub
+
+#End Region
+
+#Region "Load Function"
+
+ '//取出tblENTSubcontractor 外包商資料
+
+ Private Sub funLoadSubcontractor()
+
+ '先判斷是否dataset中已有ENTSubcontractor之datatable,若有,需先remove否則會有錯誤
+ If Not IsNothing(dsENT.Tables(tblENTSubcontractor)) Then
+ dsENT.Tables.Remove(tblENTSubcontractor)
+ End If
+
+ '組InXml的字串
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ '加上IssueState要求取出所有資料
+ strParameter = CombineXMLParameter("issuestate", "IssueState", "Integer", defInteger, "")
+ '加上查詢條件 cboSearchFieldName,txtSearchFieldValue
+ strParameter += CombineXMLQueryCondition()
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ Try
+ ' 2016 YF, OutXml = wsENT.LoadSubcontractor(InXml)
+ 'OutXml = InvokeSrv("wsENT.LoadSubcontractor", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.LoadSubcontractor", InXml)
+
+ Dim XmlDoc As New XmlDocument '處理Xml字串之物件?
+
+ '利用XmlDoc物件處理ReturnValue
+ XmlDoc.LoadXml(OutXml)
+
+ If ChkExecutionSuccess(XmlDoc) Then
+ '讀取取出資料表之名稱
+
+ tblENTSubcontractor = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loadSubcontractor").Item(0).SelectNodes("name").Item(0).InnerXml
+ '取出Schema,dataset讀取Schema可防止Null Field及DateTime的問題
+
+ XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractor").Item(0).SelectNodes("schema").Item(0).InnerXml
+ If XmlSchema <> "" Then
+ '將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件
+ tmpStringReader = New System.IO.StringReader(XmlSchema)
+ dsENT.ReadXmlSchema(tmpStringReader)
+ tmpStringReader.Close()
+ End If
+
+ '取出Data
+ XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractor").Item(0).SelectNodes("value").Item(0).InnerXml
+ If XmlData <> "" Then
+ tmpStringReader = New System.IO.StringReader(XmlData)
+ dsENT.ReadXml(tmpStringReader, XmlReadMode.InferSchema)
+ tmpStringReader.Close()
+ End If
+
+ strFilter = ""
+ Select Case GetIssueState()
+ Case Issue.Unfrozen
+ strFilter = FilterByInteger(strFilter, "IssueState", 0)
+ Case Issue.Pending
+ strFilter = FilterByInteger(strFilter, "IssueState", 1)
+ Case Issue.Active
+ strFilter = FilterByInteger(strFilter, "IssueState", 2)
+ Case Issue.Unused
+ strFilter = FilterByInteger(strFilter, "IssueState", -1)
+ End Select
+
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = strFilter
+ dsENT.Tables(tblENTSubcontractor).DefaultView.Sort = "SubcontractorNo"
+
+ Me.iugSubcontractor.iMESUltraGrid.DataSource = dsENT.Tables(tblENTSubcontractor).DefaultView
+
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit Sub
+ End If
+
+ XmlDoc = Nothing
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Load ENT Subcontractor Failed!!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ End Sub
+
+ '//取出tblENTSubcontractorCont聯絡人資料
+
+ Private Sub funLoadSubcontractorCont(ByRef SubcontractorNo As String)
+
+ If Not IsNothing(dsENT.Tables(tblENTSubcontractorCont)) Then
+ dsENT.Tables.Remove(tblENTSubcontractorCont)
+ End If
+
+ '組InXml的字串
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", SubcontractorNo, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ Try
+ ' 2016 YF, OutXml = wsENT.LoadSubcontractorCont(InXml)
+ 'OutXml = InvokeSrv("wsENT.LoadSubcontractorCont", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.LoadSubcontractorCont", InXml)
+
+ Dim XmlDoc As New XmlDocument '處理Xml字串之物件?
+
+ '利用XmlDoc物件處理ReturnValue
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ '讀取取出資料表之名稱
+
+ tblENTSubcontractorCont = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loadSubcontractorcont").Item(0).SelectNodes("name").Item(0).InnerXml
+ '取出Schema,dataset讀取Schema可防止Null Field及DateTime的問題
+ XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractorcont").Item(0).SelectNodes("schema").Item(0).InnerXml
+ If XmlSchema <> "" Then
+ '將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件
+ tmpStringReader = New System.IO.StringReader(XmlSchema)
+ dsENT.ReadXmlSchema(tmpStringReader)
+ tmpStringReader.Close()
+ End If
+
+ '取出Data
+ XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractorcont").Item(0).SelectNodes("value").Item(0).InnerXml
+ If XmlData <> "" Then
+ tmpStringReader = New System.IO.StringReader(XmlData)
+ dsENT.ReadXml(tmpStringReader, XmlReadMode.InferSchema)
+ tmpStringReader.Close()
+ End If
+
+ Me.iugDetail.iMESUltraGrid.DataSource = dsENT.Tables(tblENTSubcontractorCont).DefaultView
+
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ End If
+
+ XmlDoc = Nothing
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Load ENT Subcontractor Cont Failed!!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ End Sub
+
+ Private Sub funShowActiveDetail()
+
+ If Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.DataSource = Nothing
+ Else
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+ End If
+
+ End Sub
+
+ Private Sub funiMESUltraGridIni()
+
+ 'iugSubcontractor 初始設定
+ With Me.iugSubcontractor.iMESUltraGrid
+ .Text = ""
+ .DisplayLayout.GroupByBox.Hidden = True
+ .DisplayLayout.UseFixedHeaders = False
+ End With
+
+ '系統會以UserNo做為Layout的檔名
+
+ iugSubcontractor.UserNo = gUserNo
+
+ 'iugDetail 初始設定
+ With Me.iugDetail.iMESUltraGrid.DisplayLayout
+ .GroupByBox.Hidden = True
+ .Override.ExpansionIndicator = ShowExpansionIndicator.Default
+ .ViewStyle = ViewStyle.SingleBand
+ .RowConnectorStyle = RowConnectorStyle.Default
+
+ End With
+
+ '系統會以UserNo做為Layout的檔名
+
+ iugDetail.UserNo = gUserNo
+
+ End Sub
+
+
+#End Region
+
+End Class
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmSubcontractor.resx b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmSubcontractor.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmSubcontractor.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmSubcontractor.vb b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmSubcontractor.vb
new file mode 100644
index 0000000..64a05ce
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmSubcontractor.vb
@@ -0,0 +1,1129 @@
+Imports iMESExceptionManager
+
+Imports Infragistics.Win
+Imports Infragistics.Win.UltraWinGrid
+Public Class frmSubcontractor
+
+ Inherits COM_Kit.frmBasisTemplat
+
+ Public PrivFunNo As String = defString
+
+ '//WS相關變數
+ ' 2016 YF, Dim wsENT As New wsENT.wsENT '宣告Web Service物件?
+ Dim tmpStringReader As System.IO.StringReader '將字串轉換成可讀入DataSet的物件
+ Dim XmlData As String '儲存取回之資料
+ Dim XmlSchema As String '儲存取回之資料結構
+ Dim InXml As String '儲存呼叫Web Service的傳入參數(Request字串)
+ Dim OutXml As String '儲存Web Service的傳回值(Response字串)
+ Dim strIdentity As String '儲存Identity XML字串?
+ Dim strParameter As String '儲存Parameter XML字串
+
+ '//資料表相關變數
+
+ Dim dsENT As New DataSet '資料集:儲存取回之資料?
+
+ Dim tblENTSubcontractor As String '儲存取回資料表的名稱(master)?
+ Dim tblENTSubcontractorCont As String '明細資料表名稱(detail)
+ Dim strFilter As String 'Filter string及列印的過濾條件
+
+ '//其他共用變數
+ Dim SubcontractorNo As String 'for Gird to Focus
+ Dim ContactorName As String 'for DetailGrid to Focus
+ Dim ugrRow As Infragistics.Win.UltraWinGrid.UltraGridRow
+ Friend WithEvents btnAdd As Misc.UltraButton
+ Friend WithEvents btnEdit As Misc.UltraButton
+ Friend WithEvents btnDel As Misc.UltraButton
+ Friend WithEvents btnCopy As Misc.UltraButton
+ Friend WithEvents btnApprove As Misc.UltraButton
+ Friend WithEvents iugSubcontractor As iMESUltraGrid.iMESUltraGridControl
+ Dim i As Integer
+
+#Region " Windows Form Designer generated code "
+
+ Public Sub New()
+ MyBase.New()
+
+ 'This call is required by the Windows Form Designer.
+ InitializeComponent()
+
+ 'Add any initialization after the InitializeComponent() call
+
+ End Sub
+
+ 'Form overrides dispose to clean up the component list.
+ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
+ If disposing Then
+ If Not (components Is Nothing) Then
+ components.Dispose()
+ End If
+ End If
+ MyBase.Dispose(disposing)
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.Container
+ Friend WithEvents iugDetail As iMESUltraGrid.iMESUltraGridControl
+ Friend WithEvents btnClose As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnEMail As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDCopy As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDDel As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDEdit As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDAdd As Infragistics.Win.Misc.UltraButton
+ Private Sub InitializeComponent()
+ Me.btnClose = New Infragistics.Win.Misc.UltraButton()
+ Me.btnEMail = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDCopy = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDDel = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDEdit = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDAdd = New Infragistics.Win.Misc.UltraButton()
+ Me.iugDetail = New iMESUltraGrid.iMESUltraGridControl()
+ Me.btnAdd = New Infragistics.Win.Misc.UltraButton()
+ Me.btnEdit = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDel = New Infragistics.Win.Misc.UltraButton()
+ Me.btnCopy = New Infragistics.Win.Misc.UltraButton()
+ Me.btnApprove = New Infragistics.Win.Misc.UltraButton()
+ Me.iugSubcontractor = New iMESUltraGrid.iMESUltraGridControl()
+ Me.SuspendLayout()
+ '
+ 'btnClose
+ '
+ Me.btnClose.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnClose.Location = New System.Drawing.Point(912, 552)
+ Me.btnClose.Name = "btnClose"
+ Me.btnClose.Size = New System.Drawing.Size(88, 32)
+ Me.btnClose.TabIndex = 18
+ Me.btnClose.Text = "Close (&X)"
+ '
+ 'btnEMail
+ '
+ Me.btnEMail.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnEMail.Location = New System.Drawing.Point(912, 429)
+ Me.btnEMail.Name = "btnEMail"
+ Me.btnEMail.Size = New System.Drawing.Size(88, 32)
+ Me.btnEMail.TabIndex = 17
+ Me.btnEMail.Text = "Mail"
+ '
+ 'btnDCopy
+ '
+ Me.btnDCopy.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDCopy.Location = New System.Drawing.Point(912, 389)
+ Me.btnDCopy.Name = "btnDCopy"
+ Me.btnDCopy.Size = New System.Drawing.Size(88, 32)
+ Me.btnDCopy.TabIndex = 16
+ Me.btnDCopy.Text = "Copy"
+ '
+ 'btnDDel
+ '
+ Me.btnDDel.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDDel.Location = New System.Drawing.Point(912, 349)
+ Me.btnDDel.Name = "btnDDel"
+ Me.btnDDel.Size = New System.Drawing.Size(88, 32)
+ Me.btnDDel.TabIndex = 15
+ Me.btnDDel.Text = "DEL"
+ '
+ 'btnDEdit
+ '
+ Me.btnDEdit.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDEdit.Location = New System.Drawing.Point(912, 309)
+ Me.btnDEdit.Name = "btnDEdit"
+ Me.btnDEdit.Size = New System.Drawing.Size(88, 32)
+ Me.btnDEdit.TabIndex = 14
+ Me.btnDEdit.Text = "EDIT"
+ '
+ 'btnDAdd
+ '
+ Me.btnDAdd.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDAdd.Location = New System.Drawing.Point(912, 269)
+ Me.btnDAdd.Name = "btnDAdd"
+ Me.btnDAdd.Size = New System.Drawing.Size(88, 32)
+ Me.btnDAdd.TabIndex = 13
+ Me.btnDAdd.Text = "ADD"
+ '
+ 'iugDetail
+ '
+ Me.iugDetail.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.iugDetail.EnterDirection = iMESUltraGrid.iMESUltraGridControl.EnterDirectionEnum.Down
+ Me.iugDetail.GroupBoxPromptText = "Drag a column header here to group by that column."
+ Me.iugDetail.GroupBoxTextForeColor = System.Drawing.Color.Red
+ Me.iugDetail.Identity = "IMes"
+ Me.iugDetail.IdentityForm = ""
+ Me.iugDetail.LayOutFilePath = ""
+ Me.iugDetail.Location = New System.Drawing.Point(12, 269)
+ Me.iugDetail.Name = "iugDetail"
+ Me.iugDetail.PrintFitWidthToPages = 0
+ Me.iugDetail.PrintLandscape = True
+ Me.iugDetail.PrintPageFooter = ""
+ Me.iugDetail.PrintPageFooterHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugDetail.PrintPageFooterHeight = 20
+ Me.iugDetail.PrintPageHeader = ""
+ Me.iugDetail.PrintPageHeaderHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugDetail.PrintPageHeaderHeight = 20
+ Me.iugDetail.PrintZoom = 1.0R
+ Me.iugDetail.Size = New System.Drawing.Size(894, 314)
+ Me.iugDetail.TabIndex = 12
+ Me.iugDetail.UserNo = "IMes"
+ '
+ 'btnAdd
+ '
+ Me.btnAdd.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnAdd.Location = New System.Drawing.Point(912, 53)
+ Me.btnAdd.Name = "btnAdd"
+ Me.btnAdd.Size = New System.Drawing.Size(88, 32)
+ Me.btnAdd.TabIndex = 20
+ Me.btnAdd.Text = "Add(&A)"
+ '
+ 'btnEdit
+ '
+ Me.btnEdit.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnEdit.Location = New System.Drawing.Point(912, 93)
+ Me.btnEdit.Name = "btnEdit"
+ Me.btnEdit.Size = New System.Drawing.Size(88, 32)
+ Me.btnEdit.TabIndex = 21
+ Me.btnEdit.Text = "Edit(&E)"
+ '
+ 'btnDel
+ '
+ Me.btnDel.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDel.Location = New System.Drawing.Point(912, 133)
+ Me.btnDel.Name = "btnDel"
+ Me.btnDel.Size = New System.Drawing.Size(88, 32)
+ Me.btnDel.TabIndex = 22
+ Me.btnDel.Text = "Del(&D)"
+ '
+ 'btnCopy
+ '
+ Me.btnCopy.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnCopy.Location = New System.Drawing.Point(912, 173)
+ Me.btnCopy.Name = "btnCopy"
+ Me.btnCopy.Size = New System.Drawing.Size(88, 32)
+ Me.btnCopy.TabIndex = 23
+ Me.btnCopy.Text = "Copy(&C)"
+ '
+ 'btnApprove
+ '
+ Me.btnApprove.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnApprove.Location = New System.Drawing.Point(912, 213)
+ Me.btnApprove.Name = "btnApprove"
+ Me.btnApprove.Size = New System.Drawing.Size(88, 32)
+ Me.btnApprove.TabIndex = 24
+ Me.btnApprove.Text = "Approve(&Y)"
+ '
+ 'iugSubcontractor
+ '
+ Me.iugSubcontractor.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.iugSubcontractor.EnterDirection = iMESUltraGrid.iMESUltraGridControl.EnterDirectionEnum.Down
+ Me.iugSubcontractor.GroupBoxPromptText = "Drag a column header here to group by that column."
+ Me.iugSubcontractor.GroupBoxTextForeColor = System.Drawing.Color.Red
+ Me.iugSubcontractor.Identity = "IMes"
+ Me.iugSubcontractor.IdentityForm = ""
+ Me.iugSubcontractor.LayOutFilePath = ""
+ Me.iugSubcontractor.Location = New System.Drawing.Point(12, 53)
+ Me.iugSubcontractor.Name = "iugSubcontractor"
+ Me.iugSubcontractor.PrintFitWidthToPages = 0
+ Me.iugSubcontractor.PrintLandscape = True
+ Me.iugSubcontractor.PrintPageFooter = ""
+ Me.iugSubcontractor.PrintPageFooterHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugSubcontractor.PrintPageFooterHeight = 20
+ Me.iugSubcontractor.PrintPageHeader = ""
+ Me.iugSubcontractor.PrintPageHeaderHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugSubcontractor.PrintPageHeaderHeight = 20
+ Me.iugSubcontractor.PrintZoom = 1.0R
+ Me.iugSubcontractor.Size = New System.Drawing.Size(894, 192)
+ Me.iugSubcontractor.TabIndex = 25
+ Me.iugSubcontractor.UserNo = "IMes"
+ '
+ 'frmSubcontractor
+ '
+ Me.ClientSize = New System.Drawing.Size(1008, 591)
+ Me.Controls.Add(Me.btnClose)
+ Me.Controls.Add(Me.btnApprove)
+ Me.Controls.Add(Me.btnEMail)
+ Me.Controls.Add(Me.btnDCopy)
+ Me.Controls.Add(Me.btnCopy)
+ Me.Controls.Add(Me.btnDDel)
+ Me.Controls.Add(Me.iugSubcontractor)
+ Me.Controls.Add(Me.btnDEdit)
+ Me.Controls.Add(Me.btnAdd)
+ Me.Controls.Add(Me.btnDAdd)
+ Me.Controls.Add(Me.btnDel)
+ Me.Controls.Add(Me.iugDetail)
+ Me.Controls.Add(Me.btnEdit)
+ Me.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Name = "frmSubcontractor"
+ Me.Text = "ENT Subcontractor & Contactor"
+ Me.WindowState = System.Windows.Forms.FormWindowState.Maximized
+ Me.Controls.SetChildIndex(Me.btnEdit, 0)
+ Me.Controls.SetChildIndex(Me.iugDetail, 0)
+ Me.Controls.SetChildIndex(Me.btnDel, 0)
+ Me.Controls.SetChildIndex(Me.btnDAdd, 0)
+ Me.Controls.SetChildIndex(Me.btnAdd, 0)
+ Me.Controls.SetChildIndex(Me.btnDEdit, 0)
+ Me.Controls.SetChildIndex(Me.iugSubcontractor, 0)
+ Me.Controls.SetChildIndex(Me.btnDDel, 0)
+ Me.Controls.SetChildIndex(Me.btnCopy, 0)
+ Me.Controls.SetChildIndex(Me.btnDCopy, 0)
+ Me.Controls.SetChildIndex(Me.btnEMail, 0)
+ Me.Controls.SetChildIndex(Me.btnApprove, 0)
+ Me.Controls.SetChildIndex(Me.btnClose, 0)
+ Me.ResumeLayout(False)
+
+ End Sub
+
+#End Region
+
+ Private Sub frmSubcontractor_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
+
+ Cursor.Current = Cursors.WaitCursor
+
+ ' 2016 YF, wsENT.Url = LocalizeWebService(wsENT.Url.ToString)
+ ' 2016 YF, wsENT.EnableDecompression = True
+
+ Call funiMESUltraGridIni() 'Grid初始設定
+
+ '//取出資料
+ Call funLoadSubcontractor()
+
+ SetIssueState(Issue.Unfrozen) '預設在Unforzen上
+ SetSearchFieldName(New String() {"SubcontractorNo", "SubcontractorNaME"}) '設置搜尋欄位
+
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ ExeGroupControlPriv(Me, PrivFunNo)
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub frmSubcontractor_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
+ If Not dsENT Is Nothing Then dsENT.Dispose()
+ ' 2016 YF, If Not wsENT Is Nothing Then wsENT.Dispose()
+ End Sub
+
+ Protected Overrides Sub rdoIssue_CheckedChanged(sender As Object, e As EventArgs)
+ If IsNothing(dsENT) Then Exit Sub
+
+ Select Case GetIssueState()
+ Case Issue.Unfrozen
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = "IssueState=0"
+ Case Issue.Pending
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = "IssueState=1"
+ Case Issue.Active
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = "IssueState=2"
+ Case Issue.Unused
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = "IssueState=-1"
+ End Select
+ Me.iugSubcontractor.iMESUltraGrid.DataSource = dsENT.Tables(tblENTSubcontractor).DefaultView
+ Call funShowActiveDetail()
+ End Sub
+
+ Protected Overrides Sub Finalize()
+ MyBase.Finalize()
+ End Sub
+
+ Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
+
+ Dim fSubcontractorDef As New frmSubcontractorDef
+
+ fSubcontractorDef.DefMode = 0
+ fSubcontractorDef.ShowDialog(Me)
+ fSubcontractorDef.Dispose()
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ SubcontractorNo = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractor()
+
+ If GetIssueState() = Issue.Unfrozen Then
+ ugrRow = FindRecordPosition(iugSubcontractor, "SubcontractorNo", SubcontractorNo)
+ If Not ugrRow Is Nothing Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ End If
+
+ End Sub
+
+ Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
+
+
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+ 'IsGroupByRow不做任何處理
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then
+ Exit Sub
+ End If
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractor).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'")
+
+ '核准狀態為"Unfrozen"者才可修改
+
+ If Rows(0).Item("IssueState") <> 0 Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-202202", "[%NOT ALLOWED TO EDIT%]"), MsgBoxStyle.Exclamation, Me.Text)
+ Exit Sub
+ End If
+
+ Dim fSubcontractorDef As New frmSubcontractorDef
+ fSubcontractorDef.DefMode = 1
+ fSubcontractorDef.EditDataRow = Rows(0)
+ fSubcontractorDef.ShowDialog(Me)
+ fSubcontractorDef.Dispose()
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ SubcontractorNo = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractor()
+
+ If GetIssueState() = Issue.Unfrozen Then
+ ugrRow = FindRecordPosition(iugSubcontractor, "SubcontractorNo", SubcontractorNo)
+ If Not ugrRow Is Nothing Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ End If
+
+ End If
+ End Sub
+
+ Private Sub btnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel.Click
+
+
+
+ '1.先檢查是否為單筆,是:將其Selecte
+ If Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then Exit Sub
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Cursor.Current = Cursors.WaitCursor
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ '2.Multi
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count > 0 Then
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Item(0).IsGroupByRow Then
+ Exit Sub 'Selected.Rows,不會包含GroupRow & 一般的Row在一起,故若是GroupRow不做任何處理
+ End If
+ If iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-100001", "[%ARE YOU SURE TO DELETE ALL SELECTED RECORDS%]"), MsgBoxStyle.OkCancel + MsgBoxStyle.Question + MsgBoxStyle.DefaultButton2, Me.Text) = MsgBoxResult.Cancel Then
+ Exit Sub
+ End If
+
+ '共用資料
+ Dim XmlDoc As New XmlDocument
+ Dim blnReLoad As Boolean = False
+ Dim intIssueState As Integer
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ For i = 0 To Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count - 1
+ intIssueState = Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("IssueState").Value
+ If intIssueState = 0 Or intIssueState = -1 Or intIssueState = 2 Then '狀態為Unforzen或Unused時直接刪除
+
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", CInput(Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("SubcontractorNo").Value.ToString), "")
+ strParameter = strParameter & CombineXMLParameter("issuestate", "IssueState", "String", CInput(intIssueState), "")
+ strParameter = strParameter & CombineXMLParameter("datastamp", "DataStamp", "Integer", iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("DataStamp").Value, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ Try
+ ' 2016 YF, OutXml = wsENT.DelSubcontractor(InXml)
+ 'OutXml = InvokeSrv("wsENT.DelSubcontractor", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.DelSubcontractor", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ If Not blnReLoad Then blnReLoad = True
+ Else
+ '找出Exception訊並顯示出來
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit For
+ End If
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Delete failed," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ Exit For
+ End Try
+ Else
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200021", "[%NOT ALLOWED TO delete%]"), MsgBoxStyle.Exclamation, Me.Text)
+ End If
+ Next
+
+ XmlDoc = Nothing
+
+ If blnReLoad Then
+
+ Call funLoadSubcontractor()
+
+ Call funShowActiveDetail()
+
+ End If
+
+ End If
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub btnCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCopy.Click
+
+
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+ 'IsGroupByRow不做任何處理
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then
+ Exit Sub
+ End If
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractor).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'")
+
+ Dim fSubcontractorDef As New frmSubcontractorDef
+ fSubcontractorDef.DefMode = 2
+ fSubcontractorDef.EditDataRow = Rows(0)
+ fSubcontractorDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ SubcontractorNo = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractor()
+
+ If GetIssueState() = Issue.Unfrozen Then
+ ugrRow = FindRecordPosition(iugSubcontractor, "SubcontractorNo", SubcontractorNo)
+ If Not ugrRow Is Nothing Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ End If
+
+ End If
+ End Sub
+
+ Private Sub btnApprove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnApprove.Click
+
+
+
+ '1.先檢查是否為單筆,是:將其Selecte
+ If Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then Exit Sub
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Cursor.Current = Cursors.WaitCursor
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ '2.Multi
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count > 0 Then
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Item(0).IsGroupByRow Then
+ Exit Sub 'Selected.Rows,不會包含GroupRow & 一般的Row在一起,故若是GroupRow不做任何處理
+ End If
+ If iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-100002", "[%ARE YOU SURE TO APPROVE ALL SELECTED RECORDS%]"), MsgBoxStyle.OkCancel + MsgBoxStyle.Question + MsgBoxStyle.DefaultButton2, Me.Text) = MsgBoxResult.Cancel Then
+ Exit Sub
+ End If
+
+ '共用資料
+ Dim XmlDoc As New XmlDocument
+ Dim blnReLoad As Boolean = False
+ Dim intIssueState As Integer
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ For i = 0 To Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count - 1
+ intIssueState = Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("IssueState").Value
+ If intIssueState = 0 Then
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", CInput(Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("SubcontractorNo").Value.ToString), "")
+ strParameter += CombineXMLParameter("issuestate", "IssueState", "String", intIssueState, "")
+ strParameter += CombineXMLParameter("creator", "Creator", "String", gUserNo, "")
+ strParameter = strParameter & CombineXMLParameter("datastamp", "DataStamp", "Integer", iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("DataStamp").Value, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ Try
+ ' 2016 YF, OutXml = wsENT.ApproveSubcontractor(InXml)
+ 'OutXml = InvokeSrv("wsENT.ApproveSubcontractor", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.ApproveSubcontractor", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ If Not blnReLoad Then blnReLoad = True
+ Else
+ '找出Exception訊並顯示出來
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit For
+ End If
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Approve failed," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ Exit For
+ End Try
+ Else
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200021", "[%NOT ALLOW TO APPROVE%]"), MsgBoxStyle.Exclamation, Me.Text)
+ End If
+ Next
+
+ XmlDoc = Nothing
+
+ If blnReLoad Then
+
+ Call funLoadSubcontractor()
+
+ Call funShowActiveDetail()
+
+ End If
+
+ End If
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub btnDAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDAdd.Click
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+
+ 'Dim Rows As DataRow()
+ Dim fSubcontractorContDef As New frmSubcontractorContDef
+
+ fSubcontractorContDef.DefMode = 0
+ fSubcontractorContDef.SubcontractorNo = Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString
+ fSubcontractorContDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ ContactorName = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ ugrRow = FindRecordPosition(iugDetail, "ContactorName", ContactorName)
+ If Not ugrRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ End If
+ End Sub
+
+ Private Sub btnDEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDEdit.Click
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing And Not Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow OrElse iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractorCont).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'" _
+ & " And ContactorName = '" & Replace(Me.iugDetail.iMESUltraGrid.ActiveRow.Cells("ContactorName").Value.ToString, "'", "''") & "'")
+
+ Dim fSubcontractorContDef As New frmSubcontractorContDef
+ fSubcontractorContDef.DefMode = 1
+ fSubcontractorContDef.EditDataRow = Rows(0)
+ fSubcontractorContDef.SubcontractorNo = Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString
+ fSubcontractorContDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ ContactorName = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ ugrRow = FindRecordPosition(iugDetail, "ContactorName", ContactorName)
+ If Not ugrRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ Else
+
+ Exit Sub
+ End If
+
+ End Sub
+
+ Private Sub btnDDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDDel.Click
+
+
+ '1.先檢查是否為單筆,是:將其Selecte
+ If Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then Exit Sub
+ If iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If Not Me.iugDetail.iMESUltraGrid.ActiveRow.Selected Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ '2.Multi
+ If Me.iugDetail.iMESUltraGrid.Selected.Rows.Count > 0 Then
+ If Me.iugDetail.iMESUltraGrid.Selected.Rows.Item(0).IsGroupByRow Then
+ Exit Sub 'Selected.Rows,不會包含GroupRow & 一般的Row在一起,故若是GroupRow不做任何處理
+ End If
+ If iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-100001", "[%ARE YOU SURE TO DELETE ALL SELECTED RECORDS%]"), MsgBoxStyle.OkCancel + MsgBoxStyle.Question + MsgBoxStyle.DefaultButton2, Me.Text) = MsgBoxResult.Cancel Then
+ Exit Sub
+ End If
+
+ '共用資料
+ Dim XmlDoc As New XmlDocument
+ Dim blnReLoad As Boolean = False
+ Dim intIssueState As Integer
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ For i = 0 To Me.iugDetail.iMESUltraGrid.Selected.Rows.Count - 1
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", CInput(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString), "")
+ strParameter = strParameter & CombineXMLParameter("ContactorName", "ContactorName", "String", CInput(Me.iugDetail.iMESUltraGrid.Selected.Rows(i).Cells("ContactorName").Value.ToString), "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ Try
+ ' 2016 YF, OutXml = wsENT.DelSubcontractorCont(InXml)
+ 'OutXml = InvokeSrv("wsENT.DelSubcontractorCont", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.DelSubcontractorCont", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ If Not blnReLoad Then blnReLoad = True
+ Else
+ '找出Exception訊並顯示出來
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit For
+ End If
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Delete failed," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ Exit For
+ End Try
+
+ Next
+
+ XmlDoc = Nothing
+
+ If blnReLoad Then Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ End If
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub btnDCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDCopy.Click
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing And Not Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow OrElse iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractorCont).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'" _
+ & " And ContactorName = '" & Replace(Me.iugDetail.iMESUltraGrid.ActiveRow.Cells("ContactorName").Value.ToString, "'", "''") & "'")
+
+ Dim fSubcontractorContDef As New frmSubcontractorContDef
+ fSubcontractorContDef.DefMode = 2
+ fSubcontractorContDef.EditDataRow = Rows(0)
+ fSubcontractorContDef.SubcontractorNo = Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString
+ fSubcontractorContDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ ContactorName = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ ugrRow = FindRecordPosition(iugDetail, "ContactorName", ContactorName)
+ If Not ugrRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ Else
+
+ Exit Sub
+ End If
+
+ End Sub
+
+ Private Sub btnEMail_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEMail.Click
+
+ If Not Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then
+ If iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Dim Rows As DataRow()
+ Dim proMail As New System.Diagnostics.Process
+ Dim strAccount As String
+
+ Rows = dsENT.Tables(tblENTSubcontractorCont).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'" _
+ & " And ContactorName = '" & Replace(Me.iugDetail.iMESUltraGrid.ActiveRow.Cells("ContactorName").Value.ToString, "'", "''") & "'")
+
+ strAccount = "mailto:" & Rows(0).Item("EMail").ToString
+ proMail.Start(strAccount)
+
+ End If
+
+ End Sub
+
+ Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
+ Me.Close()
+ End Sub
+
+ Protected Overrides Sub btnQuery_Click(sender As Object, e As EventArgs)
+ Cursor.Current = Cursors.WaitCursor
+
+ funLoadSubcontractor()
+
+ Cursor.Current = Cursors.Default
+ End Sub
+
+#Region "Ultra Grid"
+
+ Private Sub iugSubcontractor_iMESUltraGrid_InitializeLayOut(ByVal sender As System.Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) Handles iugSubcontractor.iMESUltraGrid_InitializeLayOut
+
+ With e.Layout
+ With .Bands(0).Columns("SubcontractorNo")
+ .Header.Caption = "SubcontractorNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 0
+ End With
+ With .Bands(0).Columns("SubcontractorName")
+ .Header.Caption = "SubcontractorName"
+ .Width = 110
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 1
+ End With
+ With .Bands(0).Columns("Description")
+ .Header.Caption = "Description"
+ .Width = 110
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 2
+ End With
+ With .Bands(0).Columns("Creator")
+ .Header.Caption = "Creator"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 3
+ End With
+ With .Bands(0).Columns("CreateDate")
+ .Header.Caption = "CreateDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 4
+ End With
+ With .Bands(0).Columns("IssueState")
+ .Header.Caption = "IssueState"
+ .Width = 114
+ .Hidden = True
+ .Header.VisiblePosition = 5
+ End With
+ With .Bands(0).Columns("Reviser")
+ .Header.Caption = "Reviser"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 6
+ End With
+ With .Bands(0).Columns("ReviseDate")
+ .Header.Caption = "ReviseDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 7
+ End With
+ With e.Layout.Bands(0).Columns("DataStamp")
+ .Hidden = True
+ End With
+ End With
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ End Sub
+
+ Private Sub iugSubcontractor_iMESUltraGrid_AfterRowActivate(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles iugSubcontractor.iMESUltraGrid_AfterRowActivate
+
+ 'IsGroupByRow不做任何處理
+ If Not iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+ Else
+ Exit Sub
+ End If
+
+ End Sub
+
+ Private Sub iugDetail_iMESUltraGrid_InitializeLayOut(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) Handles iugDetail.iMESUltraGrid_InitializeLayOut
+
+ With e.Layout
+ With .Bands(0).Columns("SubcontractorNo")
+ .Header.Caption = "SubcontractorNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 0
+ End With
+ With .Bands(0).Columns("ContactorName")
+ .Header.Caption = "ContactorName"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 1
+ End With
+ With .Bands(0).Columns("TelNo")
+ .Header.Caption = "TelNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 2
+ End With
+ With .Bands(0).Columns("FaxNo")
+ .Header.Caption = "FaxNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 3
+ End With
+ With .Bands(0).Columns("Title")
+ .Header.Caption = "Title"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 4
+ End With
+ With .Bands(0).Columns("Address")
+ .Header.Caption = "Address"
+ .Width = 110
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 5
+ End With
+ With .Bands(0).Columns("EMail")
+ .Header.Caption = "EMail"
+ .Width = 150
+ .Hidden = False
+ .CellAppearance.ForeColor = System.Drawing.Color.Blue
+ .CellAppearance.FontData.Underline = DefaultableBoolean.True
+ .Header.VisiblePosition = 6
+ End With
+ With .Bands(0).Columns("Description")
+ .Header.Caption = "Description"
+ .Width = 200
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 7
+ End With
+ With .Bands(0).Columns("Creator")
+ .Header.Caption = "Creator"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 8
+ End With
+ With .Bands(0).Columns("CreateDate")
+ .Header.Caption = "CreateDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 9
+ End With
+ With .Bands(0).Columns("Reviser")
+ .Header.Caption = "Reviser"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 10
+ End With
+ With .Bands(0).Columns("ReviseDate")
+ .Header.Caption = "ReviseDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 11
+ End With
+ With e.Layout.Bands(0).Columns("DataStamp")
+ .Hidden = True
+ End With
+ End With
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ End Sub
+
+#End Region
+
+#Region "Load Function"
+
+ '//取出tblENTSubcontractor 外包商資料
+
+ Private Sub funLoadSubcontractor()
+
+ '先判斷是否dataset中已有ENTSubcontractor之datatable,若有,需先remove否則會有錯誤
+ If Not IsNothing(dsENT.Tables(tblENTSubcontractor)) Then
+ dsENT.Tables.Remove(tblENTSubcontractor)
+ End If
+
+ '組InXml的字串
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ '加上IssueState要求取出所有資料
+ strParameter = CombineXMLParameter("issuestate", "IssueState", "Integer", defInteger, "")
+ '加上查詢條件 cboSearchFieldName,txtSearchFieldValue
+ strParameter += CombineXMLQueryCondition()
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ Try
+ ' 2016 YF, OutXml = wsENT.LoadSubcontractor(InXml)
+ 'OutXml = InvokeSrv("wsENT.LoadSubcontractor", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.LoadSubcontractor", InXml)
+
+ Dim XmlDoc As New XmlDocument '處理Xml字串之物件?
+
+ '利用XmlDoc物件處理ReturnValue
+ XmlDoc.LoadXml(OutXml)
+
+ If ChkExecutionSuccess(XmlDoc) Then
+ '讀取取出資料表之名稱
+
+ tblENTSubcontractor = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loadSubcontractor").Item(0).SelectNodes("name").Item(0).InnerXml
+ '取出Schema,dataset讀取Schema可防止Null Field及DateTime的問題
+
+ XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractor").Item(0).SelectNodes("schema").Item(0).InnerXml
+ If XmlSchema <> "" Then
+ '將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件
+ tmpStringReader = New System.IO.StringReader(XmlSchema)
+ dsENT.ReadXmlSchema(tmpStringReader)
+ tmpStringReader.Close()
+ End If
+
+ '取出Data
+ XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractor").Item(0).SelectNodes("value").Item(0).InnerXml
+ If XmlData <> "" Then
+ tmpStringReader = New System.IO.StringReader(XmlData)
+ dsENT.ReadXml(tmpStringReader, XmlReadMode.InferSchema)
+ tmpStringReader.Close()
+ End If
+
+ strFilter = ""
+ Select Case GetIssueState()
+ Case Issue.Unfrozen
+ strFilter = FilterByInteger(strFilter, "IssueState", 0)
+ Case Issue.Pending
+ strFilter = FilterByInteger(strFilter, "IssueState", 1)
+ Case Issue.Active
+ strFilter = FilterByInteger(strFilter, "IssueState", 2)
+ Case Issue.Unused
+ strFilter = FilterByInteger(strFilter, "IssueState", -1)
+ End Select
+
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = strFilter
+ dsENT.Tables(tblENTSubcontractor).DefaultView.Sort = "SubcontractorNo"
+
+ Me.iugSubcontractor.iMESUltraGrid.DataSource = dsENT.Tables(tblENTSubcontractor).DefaultView
+
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit Sub
+ End If
+
+ XmlDoc = Nothing
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Load ENT Subcontractor Failed!!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ End Sub
+
+ '//取出tblENTSubcontractorCont聯絡人資料
+
+ Private Sub funLoadSubcontractorCont(ByRef SubcontractorNo As String)
+
+ If Not IsNothing(dsENT.Tables(tblENTSubcontractorCont)) Then
+ dsENT.Tables.Remove(tblENTSubcontractorCont)
+ End If
+
+ '組InXml的字串
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", SubcontractorNo, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ Try
+ ' 2016 YF, OutXml = wsENT.LoadSubcontractorCont(InXml)
+ 'OutXml = InvokeSrv("wsENT.LoadSubcontractorCont", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.LoadSubcontractorCont", InXml)
+
+ Dim XmlDoc As New XmlDocument '處理Xml字串之物件?
+
+ '利用XmlDoc物件處理ReturnValue
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ '讀取取出資料表之名稱
+
+ tblENTSubcontractorCont = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loadSubcontractorcont").Item(0).SelectNodes("name").Item(0).InnerXml
+ '取出Schema,dataset讀取Schema可防止Null Field及DateTime的問題
+ XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractorcont").Item(0).SelectNodes("schema").Item(0).InnerXml
+ If XmlSchema <> "" Then
+ '將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件
+ tmpStringReader = New System.IO.StringReader(XmlSchema)
+ dsENT.ReadXmlSchema(tmpStringReader)
+ tmpStringReader.Close()
+ End If
+
+ '取出Data
+ XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractorcont").Item(0).SelectNodes("value").Item(0).InnerXml
+ If XmlData <> "" Then
+ tmpStringReader = New System.IO.StringReader(XmlData)
+ dsENT.ReadXml(tmpStringReader, XmlReadMode.InferSchema)
+ tmpStringReader.Close()
+ End If
+
+ Me.iugDetail.iMESUltraGrid.DataSource = dsENT.Tables(tblENTSubcontractorCont).DefaultView
+
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ End If
+
+ XmlDoc = Nothing
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Load ENT Subcontractor Cont Failed!!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ End Sub
+
+ Private Sub funShowActiveDetail()
+
+ If Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.DataSource = Nothing
+ Else
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+ End If
+
+ End Sub
+
+ Private Sub funiMESUltraGridIni()
+
+ 'iugSubcontractor 初始設定
+ With Me.iugSubcontractor.iMESUltraGrid
+ .Text = ""
+ .DisplayLayout.GroupByBox.Hidden = True
+ .DisplayLayout.UseFixedHeaders = False
+ End With
+
+ '系統會以UserNo做為Layout的檔名
+
+ iugSubcontractor.UserNo = gUserNo
+
+ 'iugDetail 初始設定
+ With Me.iugDetail.iMESUltraGrid.DisplayLayout
+ .GroupByBox.Hidden = True
+ .Override.ExpansionIndicator = ShowExpansionIndicator.Default
+ .ViewStyle = ViewStyle.SingleBand
+ .RowConnectorStyle = RowConnectorStyle.Default
+
+ End With
+
+ '系統會以UserNo做為Layout的檔名
+
+ iugDetail.UserNo = gUserNo
+
+ End Sub
+
+
+#End Region
+
+End Class
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmSubcontractorContDef.resx b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmSubcontractorContDef.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmSubcontractorContDef.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmSubcontractorContDef.vb b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmSubcontractorContDef.vb
new file mode 100644
index 0000000..c489735
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmSubcontractorContDef.vb
@@ -0,0 +1,656 @@
+Imports iMESExceptionManager
+
+Public Class frmSubcontractorContDef
+
+ Inherits COM_Kit.frmDefTemplat
+
+ '//Public Variables
+ Public EditDataRow As DataRow
+ Public DefMode As Integer = 0 '0. ADD, 1.Edit, 2. Copy
+
+ Public SubcontractorNo As String = defString
+ Public PrivFunNo As String = defString
+
+ '//Web Service相關變數
+ ' 2016 YF, Dim wsENT As New wsENT.wsENT
+ Dim InXml As String
+ Dim OutXml As String
+
+ Dim strIdentity As String
+ Dim strParameter As String
+ Dim intDataStamp As Integer '紀錄DataStamp
+
+#Region " Windows Form Designer generated code "
+
+ Public Sub New()
+ MyBase.New()
+
+ 'This call is required by the Windows Form Designer.
+ InitializeComponent()
+
+ 'Add any initialization after the InitializeComponent() call
+
+ End Sub
+
+ 'Form overrides dispose to clean up the component list.
+ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
+ If disposing Then
+ If Not (components Is Nothing) Then
+ components.Dispose()
+ End If
+ End If
+ MyBase.Dispose(disposing)
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.IContainer
+
+ 'NOTE: The following procedure is required by the Windows Form Designer
+ 'It can be modified using the Windows Form Designer.
+ 'Do not modify it using the code editor.
+ Friend WithEvents txtDescription As System.Windows.Forms.RichTextBox
+ Friend WithEvents lblAddress As System.Windows.Forms.Label
+ Friend WithEvents lblEMail As System.Windows.Forms.Label
+ Friend WithEvents lblTitle As System.Windows.Forms.Label
+ Friend WithEvents lblFaxNo As System.Windows.Forms.Label
+ Friend WithEvents lblTelNo As System.Windows.Forms.Label
+ Friend WithEvents lblDescription As System.Windows.Forms.Label
+ Friend WithEvents lblContactorName As System.Windows.Forms.Label
+ Friend WithEvents lblSubcontractorNo As System.Windows.Forms.Label
+ Friend WithEvents gbxSubcontractorContData As System.Windows.Forms.GroupBox
+ Friend WithEvents txtSubcontractorNo As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtContactorName As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtFaxNo As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtTelNo As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtEMail As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtTitle As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtAddress As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Private Sub InitializeComponent()
+ Dim Appearance1 As Infragistics.Win.Appearance = New Infragistics.Win.Appearance()
+ Me.gbxSubcontractorContData = New System.Windows.Forms.GroupBox()
+ Me.txtAddress = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtEMail = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtTitle = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtFaxNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.lblAddress = New System.Windows.Forms.Label()
+ Me.lblEMail = New System.Windows.Forms.Label()
+ Me.lblTitle = New System.Windows.Forms.Label()
+ Me.lblFaxNo = New System.Windows.Forms.Label()
+ Me.lblTelNo = New System.Windows.Forms.Label()
+ Me.txtDescription = New System.Windows.Forms.RichTextBox()
+ Me.lblDescription = New System.Windows.Forms.Label()
+ Me.lblSubcontractorNo = New System.Windows.Forms.Label()
+ Me.lblContactorName = New System.Windows.Forms.Label()
+ Me.txtSubcontractorNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtContactorName = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtTelNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.gbxSubcontractorContData.SuspendLayout()
+ CType(Me.txtAddress, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtEMail, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtTitle, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtFaxNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtSubcontractorNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtContactorName, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtTelNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SuspendLayout()
+ '
+ 'gbxBasisData
+ '
+ Me.gbxBasisData.Location = New System.Drawing.Point(12, 322)
+ Me.gbxBasisData.Size = New System.Drawing.Size(472, 70)
+ '
+ 'btnApply
+ '
+ Me.btnApply.Location = New System.Drawing.Point(396, 401)
+ '
+ 'btnConfirm
+ '
+ Me.btnConfirm.Location = New System.Drawing.Point(208, 401)
+ '
+ 'btnClose
+ '
+ Me.btnClose.Location = New System.Drawing.Point(302, 401)
+ '
+ 'gbxSubcontractorContData
+ '
+ Me.gbxSubcontractorContData.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtAddress)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtEMail)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtTitle)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtFaxNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblAddress)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblEMail)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblTitle)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblFaxNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblTelNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtDescription)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblDescription)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblSubcontractorNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblContactorName)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtSubcontractorNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtContactorName)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtTelNo)
+ Me.gbxSubcontractorContData.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.gbxSubcontractorContData.Location = New System.Drawing.Point(15, 8)
+ Me.gbxSubcontractorContData.Name = "gbxSubcontractorContData"
+ Me.gbxSubcontractorContData.Size = New System.Drawing.Size(469, 306)
+ Me.gbxSubcontractorContData.TabIndex = 0
+ Me.gbxSubcontractorContData.TabStop = False
+ Me.gbxSubcontractorContData.Text = "ENT Subcontractor Contactor Data"
+ '
+ 'txtAddress
+ '
+ Me.txtAddress.Location = New System.Drawing.Point(120, 152)
+ Me.txtAddress.Name = "txtAddress"
+ Me.txtAddress.Size = New System.Drawing.Size(336, 22)
+ Me.txtAddress.TabIndex = 13
+ '
+ 'txtEMail
+ '
+ Me.txtEMail.Location = New System.Drawing.Point(320, 120)
+ Me.txtEMail.Name = "txtEMail"
+ Me.txtEMail.Size = New System.Drawing.Size(136, 22)
+ Me.txtEMail.TabIndex = 11
+ '
+ 'txtTitle
+ '
+ Me.txtTitle.Location = New System.Drawing.Point(120, 120)
+ Me.txtTitle.Name = "txtTitle"
+ Me.txtTitle.Size = New System.Drawing.Size(114, 22)
+ Me.txtTitle.TabIndex = 9
+ '
+ 'txtFaxNo
+ '
+ Me.txtFaxNo.Location = New System.Drawing.Point(320, 88)
+ Me.txtFaxNo.Name = "txtFaxNo"
+ Me.txtFaxNo.Size = New System.Drawing.Size(136, 22)
+ Me.txtFaxNo.TabIndex = 7
+ '
+ 'lblAddress
+ '
+ Me.lblAddress.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblAddress.Location = New System.Drawing.Point(24, 154)
+ Me.lblAddress.Name = "lblAddress"
+ Me.lblAddress.Size = New System.Drawing.Size(86, 14)
+ Me.lblAddress.TabIndex = 12
+ Me.lblAddress.Text = "Address"
+ Me.lblAddress.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblEMail
+ '
+ Me.lblEMail.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblEMail.Location = New System.Drawing.Point(248, 123)
+ Me.lblEMail.Name = "lblEMail"
+ Me.lblEMail.Size = New System.Drawing.Size(64, 14)
+ Me.lblEMail.TabIndex = 10
+ Me.lblEMail.Text = "EMail"
+ Me.lblEMail.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblTitle
+ '
+ Me.lblTitle.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblTitle.Location = New System.Drawing.Point(24, 121)
+ Me.lblTitle.Name = "lblTitle"
+ Me.lblTitle.Size = New System.Drawing.Size(86, 14)
+ Me.lblTitle.TabIndex = 8
+ Me.lblTitle.Text = "Title"
+ Me.lblTitle.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblFaxNo
+ '
+ Me.lblFaxNo.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblFaxNo.Location = New System.Drawing.Point(248, 90)
+ Me.lblFaxNo.Name = "lblFaxNo"
+ Me.lblFaxNo.Size = New System.Drawing.Size(64, 14)
+ Me.lblFaxNo.TabIndex = 6
+ Me.lblFaxNo.Text = "FaxNo"
+ Me.lblFaxNo.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblTelNo
+ '
+ Me.lblTelNo.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblTelNo.Location = New System.Drawing.Point(24, 90)
+ Me.lblTelNo.Name = "lblTelNo"
+ Me.lblTelNo.Size = New System.Drawing.Size(86, 14)
+ Me.lblTelNo.TabIndex = 4
+ Me.lblTelNo.Text = "TelNo"
+ Me.lblTelNo.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'txtDescription
+ '
+ Me.txtDescription.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.txtDescription.Location = New System.Drawing.Point(120, 184)
+ Me.txtDescription.Name = "txtDescription"
+ Me.txtDescription.Size = New System.Drawing.Size(336, 108)
+ Me.txtDescription.TabIndex = 15
+ Me.txtDescription.Text = ""
+ '
+ 'lblDescription
+ '
+ Me.lblDescription.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblDescription.Location = New System.Drawing.Point(24, 186)
+ Me.lblDescription.Name = "lblDescription"
+ Me.lblDescription.Size = New System.Drawing.Size(86, 14)
+ Me.lblDescription.TabIndex = 14
+ Me.lblDescription.Text = "Description"
+ Me.lblDescription.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblSubcontractorNo
+ '
+ Me.lblSubcontractorNo.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblSubcontractorNo.Location = New System.Drawing.Point(14, 29)
+ Me.lblSubcontractorNo.Name = "lblSubcontractorNo"
+ Me.lblSubcontractorNo.Size = New System.Drawing.Size(96, 14)
+ Me.lblSubcontractorNo.TabIndex = 0
+ Me.lblSubcontractorNo.Text = "Subcontractor No"
+ Me.lblSubcontractorNo.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblContactorName
+ '
+ Me.lblContactorName.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblContactorName.Location = New System.Drawing.Point(24, 59)
+ Me.lblContactorName.Name = "lblContactorName"
+ Me.lblContactorName.Size = New System.Drawing.Size(86, 14)
+ Me.lblContactorName.TabIndex = 2
+ Me.lblContactorName.Text = "Contactor Name"
+ Me.lblContactorName.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'txtSubcontractorNo
+ '
+ Me.txtSubcontractorNo.Location = New System.Drawing.Point(120, 24)
+ Me.txtSubcontractorNo.Name = "txtSubcontractorNo"
+ Me.txtSubcontractorNo.ReadOnly = True
+ Me.txtSubcontractorNo.Size = New System.Drawing.Size(114, 22)
+ Me.txtSubcontractorNo.TabIndex = 1
+ Me.txtSubcontractorNo.TabStop = False
+ '
+ 'txtContactorName
+ '
+ Appearance1.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtContactorName.Appearance = Appearance1
+ Me.txtContactorName.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtContactorName.Location = New System.Drawing.Point(120, 56)
+ Me.txtContactorName.Name = "txtContactorName"
+ Me.txtContactorName.Size = New System.Drawing.Size(160, 22)
+ Me.txtContactorName.TabIndex = 3
+ '
+ 'txtTelNo
+ '
+ Me.txtTelNo.Location = New System.Drawing.Point(120, 88)
+ Me.txtTelNo.Name = "txtTelNo"
+ Me.txtTelNo.Size = New System.Drawing.Size(114, 22)
+ Me.txtTelNo.TabIndex = 5
+ '
+ 'frmSubcontractorContDef
+ '
+ Me.ClientSize = New System.Drawing.Size(496, 446)
+ Me.Controls.Add(Me.gbxSubcontractorContData)
+ Me.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Name = "frmSubcontractorContDef"
+ Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
+ Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
+ Me.Text = "ENT Subcontractor Contactor Define"
+ Me.Controls.SetChildIndex(Me.btnClose, 0)
+ Me.Controls.SetChildIndex(Me.btnConfirm, 0)
+ Me.Controls.SetChildIndex(Me.btnApply, 0)
+ Me.Controls.SetChildIndex(Me.gbxBasisData, 0)
+ Me.Controls.SetChildIndex(Me.gbxSubcontractorContData, 0)
+ CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.gbxSubcontractorContData.ResumeLayout(False)
+ Me.gbxSubcontractorContData.PerformLayout()
+ CType(Me.txtAddress, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtEMail, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtTitle, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtFaxNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtSubcontractorNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtContactorName, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtTelNo, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.ResumeLayout(False)
+
+ End Sub
+
+#End Region
+
+ Private Sub frmSubcontractorContDef_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
+
+ Cursor.Current = Cursors.WaitCursor
+
+ Select Case DefMode
+ Case 0
+ Me.Text = Me.Text & "(ADD)"
+ Case 1
+ Me.Text = Me.Text & "(EDIT)"
+ Case 2
+ Me.Text = Me.Text & "(Copy)"
+ Case Else
+ Me.Text = Me.Text & "(Unknown)"
+ End Select
+
+ '做為MainForm判斷是否重新LoadData的依據()
+ gReturnKeyValue = ""
+
+ ' 2016 YF, wsENT.Url = LocalizeWebService(wsENT.Url.ToString)
+ ' 2016 YF, wsENT.EnableDecompression = True
+ If DefMode = 0 Or DefMode = 2 Then
+ SetCreateDate(Now)
+ SetCreator(gUserNo)
+ End If
+ If Not EditDataRow Is Nothing Then '修改 or Copy
+ txtSubcontractorNo.Text = EditDataRow.Item("SubcontractorNo").ToString
+ txtContactorName.Text = EditDataRow.Item("ContactorName").ToString
+ txtTelNo.Text = EditDataRow.Item("TelNo").ToString
+ txtFaxNo.Text = EditDataRow.Item("FaxNo").ToString
+ txtTitle.Text = EditDataRow.Item("Title").ToString
+ txtAddress.Text = EditDataRow.Item("Address").ToString
+ txtEMail.Text = EditDataRow.Item("EMail").ToString
+ 'txtDescription是RichTextBox(Control, 因為TextBox無法正常顯示多行換行的資料)
+ txtDescription.Text = EditDataRow.Item("Description").ToString
+ If DefMode = 1 Then
+ If (Not IsDBNull(EditDataRow("Creator"))) Then
+ SetCreateDate(Convert.ToDateTime(EditDataRow.Item("CreateDate")))
+ SetCreator(EditDataRow.Item("Creator").ToString)
+ End If
+ End If
+ End If
+
+ If DefMode = 0 Then 'Add
+ txtSubcontractorNo.Text = SubcontractorNo
+ SetCreateDate(Now)
+ SetCreator(gUserNo)
+ ElseIf DefMode = 1 Then 'Edit
+ txtContactorName.ReadOnly = True
+ SetReviseDate(Now)
+ SetReviser(gUserNo)
+ intDataStamp = EditDataRow.Item("DataStamp")
+ End If
+
+ btnApplyEnabled = False
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ ExeGroupControlPriv(Me, PrivFunNo)
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub frmSubcontractorContDef_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
+ If DefMode = 0 Or DefMode = 2 Then
+ txtContactorName.Focus()
+ Else
+ txtTelNo.Focus()
+ End If
+ End Sub
+
+ Protected Overrides Sub btnConfirm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If funAddorEdit(sender) < 0 Then Exit Sub
+
+ Me.Close()
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Protected Overrides Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+ Me.Close()
+ End Sub
+
+ Protected Overrides Sub btnApply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If funAddorEdit(sender) < 0 Then Exit Sub
+
+ If DefMode = 0 Or DefMode = 2 Then
+ txtContactorName.Focus()
+ Else
+ txtTelNo.Focus()
+ End If
+
+ txtEMail.Text = ""
+ btnApplyEnabled = False
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+#Region "Control KeyPress"
+
+ Private Sub txtSubcontractorNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Click
+ txtSubcontractorNo.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorNo_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Enter
+ txtSubcontractorNo.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorNo_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSubcontractorNo.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtSubcontractorNo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtContactorName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtContactorName.Click
+ txtContactorName.SelectAll()
+ End Sub
+
+ Private Sub txtContactorName_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtContactorName.Enter
+ txtContactorName.SelectAll()
+ End Sub
+
+ Private Sub txtContactorName_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtContactorName.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtContactorName_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtContactorName.Leave
+ If txtContactorName.Text <> "" And txtEMail.Text = "" Then
+ txtEMail.Text = txtContactorName.Text & "@"
+ End If
+ txtContactorName.Text = UCase(txtContactorName.Text)
+ End Sub
+
+ Private Sub txtContactorName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtContactorName.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtTelNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTelNo.Click
+ txtTelNo.SelectAll()
+ End Sub
+
+ Private Sub txtTelNo_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTelNo.Enter
+ txtTelNo.SelectAll()
+ End Sub
+
+ Private Sub txtTelNo_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTelNo.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtTelNo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTelNo.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtFaxNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFaxNo.Click
+ txtFaxNo.SelectAll()
+ End Sub
+
+ Private Sub txtFaxNo_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFaxNo.Enter
+ txtFaxNo.SelectAll()
+ End Sub
+
+ Private Sub txtFaxNo_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtFaxNo.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtFaxNo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFaxNo.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtTitle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTitle.Click
+ txtTitle.SelectAll()
+ End Sub
+
+ Private Sub txtTitle_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTitle.Enter
+ txtTitle.SelectAll()
+ End Sub
+
+ Private Sub txtTitle_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTitle.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtTitle_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTitle.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtEMail_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtEMail.Click
+ txtEMail.SelectAll()
+ End Sub
+
+ Private Sub txtEMail_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtEMail.Enter
+ txtEMail.SelectAll()
+ End Sub
+
+ Private Sub txtEMail_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtEMail.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtEMail_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtEMail.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtAddress_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtAddress.Click
+ txtAddress.SelectAll()
+ End Sub
+
+ Private Sub txtAddress_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtAddress.Enter
+ txtAddress.SelectAll()
+ End Sub
+
+ Private Sub txtAddress_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtAddress.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtAddress_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtAddress.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtDescription_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDescription.Click
+ txtDescription.SelectAll()
+ End Sub
+
+ Private Sub txtDescription_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDescription.Enter
+ txtDescription.SelectAll()
+ End Sub
+
+ Private Sub txtDescription_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtDescription.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtDescription_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDescription.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+#End Region
+
+#Region "Others"
+
+ Private Function funAddorEdit(sender As Object) As Integer
+
+ funAddorEdit = -1
+
+ '******************************************************************************
+ '1.基本檢查()
+ '******************************************************************************
+ If txtSubcontractorNo.Text = "" Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200001", "[%SubcontractorNo%]"), MsgBoxStyle.Exclamation, Me.Text)
+ txtSubcontractorNo.Focus()
+ Exit Function
+ End If
+ If txtContactorName.Text = "" Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200001", "[%ContactorName%]"), MsgBoxStyle.Exclamation, Me.Text)
+ txtContactorName.Focus()
+ Exit Function
+ End If
+
+ '******************************************************************************
+ '2.寫回資料庫()
+ '******************************************************************************
+ Dim XmlDoc As New XmlDocument
+
+ Try
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ strParameter = CombineXMLParameter("subcontractorno", "SubcontractorNo", "String", CInput(txtSubcontractorNo.Text), "")
+ strParameter = strParameter & CombineXMLParameter("contactorname", "ContactorName", "String", CInput(txtContactorName.Text), "")
+ strParameter = strParameter & CombineXMLParameter("telno", "TelNo", "String", txtTelNo.Text, "")
+ strParameter = strParameter & CombineXMLParameter("faxno", "FaxNo", "String", txtFaxNo.Text, "")
+ strParameter = strParameter & CombineXMLParameter("title", "Title", "String", CInput(txtTitle.Text), "")
+ strParameter = strParameter & CombineXMLParameter("address", "Address", "String", CInput(txtAddress.Text), "")
+ strParameter = strParameter & CombineXMLParameter("email", "EMail", "String", CInput(txtEMail.Text), "")
+ strParameter = strParameter & CombineXMLParameter("description", "Description", "String", CInput(txtDescription.Text), "")
+
+
+ If DefMode = 0 Or DefMode = 2 Then 'Add or Copy
+ strParameter += CombineXMLParameter("creator", "Creator", "String", gUserNo, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ ' 2016 YF, OutXml = wsENT.AddSubcontractorCont(InXml)
+ OutXml = InvokeSrv("SXS.wsENT.AddSubcontractorCont", InXml)
+
+ Else 'Edit
+ ' 增加Datastamp
+ strParameter += CombineXMLParameter("datastamp", "Datastamp", "Integer", intDataStamp, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ ' 2016 YF, OutXml = wsENT.EditSubcontractorCont(InXml)
+ OutXml = InvokeSrv("SXS.wsENT.EditSubcontractorCont", InXml)
+
+ End If
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ gReturnKeyValue = txtContactorName.Text
+
+ funAddorEdit = 0
+ If sender.Equals(btnApply) Then
+ intDataStamp += 1
+ End If
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ End If
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Add or Edit ENT Subcontractor Contactor Failed!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ XmlDoc = Nothing
+
+ End Function
+#End Region
+
+
+ Private Sub frmSubcontractorContDef_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
+ ' 2016 YF, If Not wsENT Is Nothing Then wsENT.Dispose()
+ End Sub
+End Class
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmSubcontractorDef.resx b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmSubcontractorDef.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmSubcontractorDef.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmSubcontractorDef.vb b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmSubcontractorDef.vb
new file mode 100644
index 0000000..ff97a9a
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/frmSubcontractorDef.vb
@@ -0,0 +1,421 @@
+Imports iMESExceptionManager
+
+Public Class frmSubcontractorDef
+
+ Inherits COM_Kit.frmDefTemplat
+
+ '//Public Variables
+ Public EditDataRow As DataRow
+ Public DefMode As Integer = 0 '0. ADD, 1.Edit, 2. Copy
+ Public PrivFunNo As String = defString
+
+ '//Web Service相關變數
+ ' 2016 YF, Dim wsENT As New wsENT.wsENT
+ Dim InXml As String
+ Dim OutXml As String
+
+ Dim strIdentity As String
+ Dim strParameter As String
+ Dim intDataStamp As Integer '紀錄DataStamp
+
+#Region " Windows Form Designer generated code "
+
+ Public Sub New()
+ MyBase.New()
+
+ 'This call is required by the Windows Form Designer.
+ InitializeComponent()
+
+ 'Add any initialization after the InitializeComponent() call
+
+ End Sub
+
+ 'Form overrides dispose to clean up the component list.
+ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
+ If disposing Then
+ If Not (components Is Nothing) Then
+ components.Dispose()
+ End If
+ End If
+ MyBase.Dispose(disposing)
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.IContainer
+
+ 'NOTE: The following procedure is required by the Windows Form Designer
+ 'It can be modified using the Windows Form Designer.
+ 'Do not modify it using the code editor.
+ Friend WithEvents txtDescription As System.Windows.Forms.RichTextBox
+ Friend WithEvents lblDescription As System.Windows.Forms.Label
+ Friend WithEvents lblSubcontractorNo As System.Windows.Forms.Label
+ Friend WithEvents lblSubcontractorName As System.Windows.Forms.Label
+ Friend WithEvents gbxSubcontractorData As System.Windows.Forms.GroupBox
+ Friend WithEvents txtSubcontractorNo As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtSubcontractorName As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Private Sub InitializeComponent()
+ Dim Appearance1 As Infragistics.Win.Appearance = New Infragistics.Win.Appearance()
+ Dim Appearance2 As Infragistics.Win.Appearance = New Infragistics.Win.Appearance()
+ Me.gbxSubcontractorData = New System.Windows.Forms.GroupBox()
+ Me.txtDescription = New System.Windows.Forms.RichTextBox()
+ Me.lblDescription = New System.Windows.Forms.Label()
+ Me.lblSubcontractorNo = New System.Windows.Forms.Label()
+ Me.lblSubcontractorName = New System.Windows.Forms.Label()
+ Me.txtSubcontractorNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtSubcontractorName = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.gbxSubcontractorData.SuspendLayout()
+ CType(Me.txtSubcontractorNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtSubcontractorName, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SuspendLayout()
+ '
+ 'gbxBasisData
+ '
+ Me.gbxBasisData.Location = New System.Drawing.Point(12, 185)
+ Me.gbxBasisData.Size = New System.Drawing.Size(479, 70)
+ '
+ 'btnApply
+ '
+ Me.btnApply.Location = New System.Drawing.Point(403, 264)
+ '
+ 'btnConfirm
+ '
+ Me.btnConfirm.Location = New System.Drawing.Point(215, 264)
+ '
+ 'btnClose
+ '
+ Me.btnClose.Location = New System.Drawing.Point(309, 264)
+ '
+ 'gbxSubcontractorData
+ '
+ Me.gbxSubcontractorData.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.gbxSubcontractorData.Controls.Add(Me.txtDescription)
+ Me.gbxSubcontractorData.Controls.Add(Me.lblDescription)
+ Me.gbxSubcontractorData.Controls.Add(Me.lblSubcontractorNo)
+ Me.gbxSubcontractorData.Controls.Add(Me.lblSubcontractorName)
+ Me.gbxSubcontractorData.Controls.Add(Me.txtSubcontractorNo)
+ Me.gbxSubcontractorData.Controls.Add(Me.txtSubcontractorName)
+ Me.gbxSubcontractorData.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.gbxSubcontractorData.Location = New System.Drawing.Point(12, 8)
+ Me.gbxSubcontractorData.Name = "gbxSubcontractorData"
+ Me.gbxSubcontractorData.Size = New System.Drawing.Size(479, 169)
+ Me.gbxSubcontractorData.TabIndex = 7
+ Me.gbxSubcontractorData.TabStop = False
+ Me.gbxSubcontractorData.Text = "Subcontractor Data"
+ '
+ 'txtDescription
+ '
+ Me.txtDescription.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.txtDescription.Location = New System.Drawing.Point(128, 86)
+ Me.txtDescription.Name = "txtDescription"
+ Me.txtDescription.Size = New System.Drawing.Size(334, 67)
+ Me.txtDescription.TabIndex = 2
+ Me.txtDescription.Text = ""
+ '
+ 'lblDescription
+ '
+ Me.lblDescription.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblDescription.Location = New System.Drawing.Point(56, 88)
+ Me.lblDescription.Name = "lblDescription"
+ Me.lblDescription.Size = New System.Drawing.Size(64, 14)
+ Me.lblDescription.TabIndex = 13
+ Me.lblDescription.Text = "Description"
+ Me.lblDescription.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblSubcontractorNo
+ '
+ Me.lblSubcontractorNo.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblSubcontractorNo.Location = New System.Drawing.Point(24, 24)
+ Me.lblSubcontractorNo.Name = "lblSubcontractorNo"
+ Me.lblSubcontractorNo.Size = New System.Drawing.Size(96, 32)
+ Me.lblSubcontractorNo.TabIndex = 5
+ Me.lblSubcontractorNo.Text = "Subcontractor No"
+ Me.lblSubcontractorNo.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblSubcontractorName
+ '
+ Me.lblSubcontractorName.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblSubcontractorName.Location = New System.Drawing.Point(8, 56)
+ Me.lblSubcontractorName.Name = "lblSubcontractorName"
+ Me.lblSubcontractorName.Size = New System.Drawing.Size(112, 32)
+ Me.lblSubcontractorName.TabIndex = 9
+ Me.lblSubcontractorName.Text = "Subcontractor Name"
+ Me.lblSubcontractorName.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'txtSubcontractorNo
+ '
+ Appearance1.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtSubcontractorNo.Appearance = Appearance1
+ Me.txtSubcontractorNo.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtSubcontractorNo.Location = New System.Drawing.Point(128, 24)
+ Me.txtSubcontractorNo.Name = "txtSubcontractorNo"
+ Me.txtSubcontractorNo.Size = New System.Drawing.Size(152, 22)
+ Me.txtSubcontractorNo.TabIndex = 0
+ '
+ 'txtSubcontractorName
+ '
+ Appearance2.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtSubcontractorName.Appearance = Appearance2
+ Me.txtSubcontractorName.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtSubcontractorName.Location = New System.Drawing.Point(128, 55)
+ Me.txtSubcontractorName.Name = "txtSubcontractorName"
+ Me.txtSubcontractorName.Size = New System.Drawing.Size(334, 22)
+ Me.txtSubcontractorName.TabIndex = 1
+ '
+ 'frmSubcontractorDef
+ '
+ Me.ClientSize = New System.Drawing.Size(503, 309)
+ Me.Controls.Add(Me.gbxSubcontractorData)
+ Me.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Name = "frmSubcontractorDef"
+ Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
+ Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
+ Me.Text = "ENT Subcontractor Define"
+ Me.Controls.SetChildIndex(Me.btnClose, 0)
+ Me.Controls.SetChildIndex(Me.btnConfirm, 0)
+ Me.Controls.SetChildIndex(Me.btnApply, 0)
+ Me.Controls.SetChildIndex(Me.gbxBasisData, 0)
+ Me.Controls.SetChildIndex(Me.gbxSubcontractorData, 0)
+ CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.gbxSubcontractorData.ResumeLayout(False)
+ Me.gbxSubcontractorData.PerformLayout()
+ CType(Me.txtSubcontractorNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtSubcontractorName, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.ResumeLayout(False)
+
+ End Sub
+
+#End Region
+
+ Private Sub frmSubcontractorDef_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
+
+ Cursor.Current = Cursors.WaitCursor
+
+ Select Case DefMode
+ Case 0
+ Me.Text = Me.Text & "(ADD)"
+ Case 1
+ Me.Text = Me.Text & "(EDIT)"
+ Case 2
+ Me.Text = Me.Text & "(Copy)"
+ Case Else
+ Me.Text = Me.Text & "(Unknown)"
+ End Select
+
+ '做為MainForm判斷是否重新LoadData的依據
+ gReturnKeyValue = ""
+
+ ' 2016 YF, wsENT.Url = LocalizeWebService(wsENT.Url.ToString)
+ ' 2016 YF, wsENT.EnableDecompression = True
+
+ If Not EditDataRow Is Nothing Then
+ txtSubcontractorNo.Text = EditDataRow.Item("SubcontractorNo").ToString
+ txtSubcontractorName.Text = EditDataRow.Item("SubcontractorName").ToString
+ 'txtDescription是RichTextBox Control,因為TextBox無法正常顯示多行換行的資料
+ txtDescription.Text = EditDataRow.Item("Description").ToString
+ End If
+
+ If DefMode = 0 Or DefMode = 2 Then 'Add or Copy
+ SetCreator(gUserNo)
+ SetCreateDate(Now)
+ ElseIf DefMode = 1 Then 'Edit
+ txtSubcontractorNo.ReadOnly = True
+ SetCreator(EditDataRow.Item("Creator").ToString)
+ SetCreateDate(Convert.ToDateTime(EditDataRow.Item("CreateDate")))
+ SetReviser(gUserNo)
+ SetReviseDate(Now)
+ intDataStamp = EditDataRow.Item("DataStamp")
+ End If
+
+ btnApplyEnabled = False
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ ExeGroupControlPriv(Me, PrivFunNo)
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub frmSubcontractorDef_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
+ If DefMode = 0 Or DefMode = 2 Then
+ txtSubcontractorNo.Focus()
+ Else
+ txtSubcontractorName.Focus()
+ End If
+ End Sub
+
+ Protected Overrides Sub btnConfirm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If funAddorEdit(sender) < 0 Then Exit Sub
+
+ Me.Close()
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Protected Overrides Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+ Me.Close()
+ End Sub
+
+ Protected Overrides Sub btnApply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If funAddorEdit(sender) < 0 Then Exit Sub
+
+ If DefMode = 0 Or DefMode = 2 Then
+ txtSubcontractorNo.Focus()
+ Else
+ txtSubcontractorName.Focus()
+
+ End If
+
+ Cursor.Current = Cursors.Default
+ btnApplyEnabled = False
+
+ End Sub
+
+ Private Sub frmSubcontractorDef_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
+ ' 2016 YF, If Not wsENT Is Nothing Then wsENT.Dispose()
+ End Sub
+
+#Region "Control KeyPress"
+
+ Private Sub txtSubcontractorNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Click
+ txtSubcontractorNo.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorNo_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Enter
+ txtSubcontractorNo.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorNo_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSubcontractorNo.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtSubcontractorNo_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Leave
+ txtSubcontractorNo.Text = UCase(txtSubcontractorNo.Text)
+ End Sub
+
+ Private Sub txtSubcontractorNo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtSubcontractorName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorName.Click
+ txtSubcontractorName.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorName_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorName.Enter
+ txtSubcontractorName.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorName_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSubcontractorName.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtSubcontractorName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorName.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtDescription_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDescription.Click
+ txtDescription.SelectAll()
+ End Sub
+
+ Private Sub txtDescription_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDescription.Enter
+ txtDescription.SelectAll()
+ End Sub
+
+ Private Sub txtDescription_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDescription.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+#End Region
+
+#Region "Others"
+
+ Private Function funAddorEdit(sender As Object) As Integer
+
+ funAddorEdit = -1
+
+ '******************************************************************************
+ '1.基本檢查
+ '******************************************************************************
+ If txtSubcontractorNo.Text = "" Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200001", "[%SubcontractorNo%]"), MsgBoxStyle.Exclamation, Me.Text)
+ txtSubcontractorNo.Focus()
+ Exit Function
+ End If
+
+ If txtSubcontractorName.Text = "" Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200001", "[%SubcontractorName%]"), MsgBoxStyle.Exclamation, Me.Text)
+ txtSubcontractorName.Focus()
+ Exit Function
+ End If
+
+ '2.
+ '******************************************************************************
+ '寫回資料庫
+ '******************************************************************************
+ Dim XmlDoc As New XmlDocument
+
+ Try
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ strParameter = CombineXMLParameter("subcontractorno", "SubcontractorNo", "String", CInput(txtSubcontractorNo.Text), "")
+ strParameter = strParameter & CombineXMLParameter("subcontractorname", "SubcontractorName", "String", CInput(txtSubcontractorName.Text), "")
+ strParameter = strParameter & CombineXMLParameter("description", "Description", "String", CInput(txtDescription.Text), "")
+
+ If DefMode = 0 Or DefMode = 2 Then 'Add or Copy
+ strParameter = strParameter & CombineXMLParameter("creator", "Creator", "String", gUserNo, "")
+ strParameter = strParameter & CombineXMLParameter("createdate", "CreateDate", "DateTime", Format(Now, "yyyy/MM/dd HH:mm:ss"), "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ ' 2016 YF, OutXml = wsENT.AddSubcontractor(InXml)
+ OutXml = InvokeSrv("wsENT.AddSubcontractor", InXml)
+
+ Else
+ '修改
+ strParameter = strParameter & CombineXMLParameter("issuestate", "IssueState", "String", EditDataRow.Item("IssueState").ToString, "")
+ ' 增加Datastamp
+ strParameter += CombineXMLParameter("datastamp", "Datastamp", "Integer", intDataStamp, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ ' 2016 YF, OutXml = wsENT.EditSubcontractor(InXml)
+ OutXml = InvokeSrv("wsENT.EditSubcontractor", InXml)
+
+ End If
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ gReturnKeyValue = txtSubcontractorNo.Text
+
+ funAddorEdit = 0
+ If sender.Equals(btnApply) Then
+ intDataStamp += 1
+ End If
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ End If
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Add or Edit ENT Subcontractor Failed!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ XmlDoc = Nothing
+
+ End Function
+
+#End Region
+
+End Class
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/iMES.snk b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/iMES.snk
new file mode 100644
index 0000000..4206cdc
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/ENT/ET_Subcontractor/iMES.snk differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/AUT.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/AUT.png
new file mode 100644
index 0000000..a0b4091
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/AUT.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/AutoRPTMeasureData.xls b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/AutoRPTMeasureData.xls
new file mode 100644
index 0000000..471b5c5
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/AutoRPTMeasureData.xls differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/AutoRPTPareto.xls b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/AutoRPTPareto.xls
new file mode 100644
index 0000000..251060d
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/AutoRPTPareto.xls differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/AutoRPTVarMonthReport.xls b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/AutoRPTVarMonthReport.xls
new file mode 100644
index 0000000..f781fe3
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/AutoRPTVarMonthReport.xls differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/DEFAULT.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/DEFAULT.png
new file mode 100644
index 0000000..b566b9f
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/DEFAULT.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/DT.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/DT.png
new file mode 100644
index 0000000..38f7231
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/DT.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/DirectionDown.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/DirectionDown.png
new file mode 100644
index 0000000..8f89533
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/DirectionDown.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/DirectionLeft.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/DirectionLeft.png
new file mode 100644
index 0000000..80ea854
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/DirectionLeft.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/DirectionRight.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/DirectionRight.png
new file mode 100644
index 0000000..cc26c41
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/DirectionRight.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/DirectionUp.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/DirectionUp.png
new file mode 100644
index 0000000..1f2c2ab
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/DirectionUp.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/EMS.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/EMS.png
new file mode 100644
index 0000000..80b96c7
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/EMS.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ENT.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ENT.png
new file mode 100644
index 0000000..fa35ea8
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ENT.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/EQP.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/EQP.png
new file mode 100644
index 0000000..c317f14
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/EQP.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/FINIAL WEEKLY REPORT.xls b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/FINIAL WEEKLY REPORT.xls
new file mode 100644
index 0000000..e4a86f2
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/FINIAL WEEKLY REPORT.xls differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/IEW.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/IEW.png
new file mode 100644
index 0000000..4268fb0
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/IEW.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/INV.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/INV.png
new file mode 100644
index 0000000..b3a8a61
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/INV.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ISU.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ISU.png
new file mode 100644
index 0000000..1993304
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ISU.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ImportSample-AttributesQCItem.xls b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ImportSample-AttributesQCItem.xls
new file mode 100644
index 0000000..0ddf7e0
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ImportSample-AttributesQCItem.xls differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ImportSample-Equipment1.csv b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ImportSample-Equipment1.csv
new file mode 100644
index 0000000..d13f678
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ImportSample-Equipment1.csv
@@ -0,0 +1,17 @@
+Lot No.,80501,,,,,,,,,,,,,,
+Type,CEBHM13-X10-1,,,,,,,,,,,,,,
+Date,2007/3/8 AM 11:29:11,,,,,,,,,,,,,,
+Q'ty,,,,,,,,,,,,,,,
+ ,Min,Max,,,,,,,,,,,,,
+Vf2(V),,,,,,,,,,,,,,,
+Iv(mcd),,,,,,,,,,,,,,,
+Wd(nm),,,,,,,,,,,,,,,
+Calibrate File,blue(450~475)-06.03.23.cal,,,,,,,,,,,,,,
+Condition,If1(uA)=10.0\If2(mA)=20.0,,,,,,,,,,,,,,
+Condition,Ir(uA)=0.5\Vr(V)=5.0\If4(mA)=1.0,,,,,,,,,,,,,,
+QCItemNo.,IPQC-ԤO,Vf2(V),Vr(V),Ir(uA),Iv(mcd),fd(nm),fp(nm),Gf(nm),CIE-x,CIE-y,Vf4(V),PeakData,Vf3(V),Vscr(V),Vth(V)
+1,2.38,3.17,10,0,49.47,469.9,465.3,21.2,0.13,0.0632,2.27,2130,0,0,0
+2,2.38,3.17,10,0,50.58,469.7,467.2,20.3,0.1307,0.0616,2.27,2350,0,0,0
+3,2.38,3.12,10,0,48.93,470.4,468.2,20.1,0.1289,0.0656,2.27,2228.8,0,0,0
+4,2.38,3.12,10,0,48.95,470.4,468.2,20.1,0.1289,0.0657,2.27,2218.6,0,0,0
+5,2.34,3.16,10,0,50.27,469.7,465.3,21.4,0.1305,0.0621,2.22,2196.6,0,0,0
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ImportSample-Equipment2.txt b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ImportSample-Equipment2.txt
new file mode 100644
index 0000000..4f9d025
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ImportSample-Equipment2.txt
@@ -0,0 +1,29 @@
+Printer Report
+Date:03/07/2007
+Time:14:22:19
+Method :7
+Sample :
+Lot :
+Operator :
+Note :
+ 1 009.4c
+ 2 009.6c
+ 3 010.0c
+ 4 010.0
+ 5 010.0c
+ 6 009.8c
+ 7 009.9c
+ 8 009.6c
+ 9 009.9c
+ 10 009.1c
+ 11 009.7
+ 12 009.3c
+ 13 010.0c
+ 14 009.9c
+ 15 009.6c
+ 16 010.3c
+ 17 009.8
+ 18 010.0c
+ 19 009.5
+ 20 010.1c
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ImportSample-QCChar.xls b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ImportSample-QCChar.xls
new file mode 100644
index 0000000..f6ec43e
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ImportSample-QCChar.xls differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ImportSample-SPCData.xls b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ImportSample-SPCData.xls
new file mode 100644
index 0000000..d44a766
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ImportSample-SPCData.xls differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ImportSample-VariablesQCItem.xls b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ImportSample-VariablesQCItem.xls
new file mode 100644
index 0000000..e345d80
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/ImportSample-VariablesQCItem.xls differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/MSA.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/MSA.png
new file mode 100644
index 0000000..51a87c7
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/MSA.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/MTL.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/MTL.png
new file mode 100644
index 0000000..01ce547
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/MTL.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/OE.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/OE.png
new file mode 100644
index 0000000..4b61ef0
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/OE.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/OP.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/OP.png
new file mode 100644
index 0000000..a3d8f6c
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/OP.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/PM.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/PM.png
new file mode 100644
index 0000000..7bbc6d5
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/PM.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/PRD.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/PRD.png
new file mode 100644
index 0000000..975164b
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/PRD.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/PRS.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/PRS.png
new file mode 100644
index 0000000..cca6bd8
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/PRS.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/QC.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/QC.png
new file mode 100644
index 0000000..4434746
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/QC.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/RPT.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/RPT.png
new file mode 100644
index 0000000..dc0400e
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/RPT.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SMD.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SMD.png
new file mode 100644
index 0000000..3c3d88e
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SMD.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPC.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPC.png
new file mode 100644
index 0000000..40edf2a
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPC.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCExport_2003_Standard.xls b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCExport_2003_Standard.xls
new file mode 100644
index 0000000..b27df0a
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCExport_2003_Standard.xls differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCExport_STD.xls b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCExport_STD.xls
new file mode 100644
index 0000000..ca1cc0b
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCExport_STD.xls differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCExport_STD02.xls b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCExport_STD02.xls
new file mode 100644
index 0000000..ddf4bd4
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCExport_STD02.xls differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCExport_STD02_2003.xls b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCExport_STD02_2003.xls
new file mode 100644
index 0000000..02056c1
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCExport_STD02_2003.xls differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCExport_STD_190111.xls b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCExport_STD_190111.xls
new file mode 100644
index 0000000..f5851ee
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCExport_STD_190111.xls differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCExport_STD_190111H.xlsm b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCExport_STD_190111H.xlsm
new file mode 100644
index 0000000..ae66fc3
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCExport_STD_190111H.xlsm differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCReport.xls b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCReport.xls
new file mode 100644
index 0000000..7f45579
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SPCReport.xls differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SYS.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SYS.png
new file mode 100644
index 0000000..63e3dbb
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/SYS.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/USR.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/USR.png
new file mode 100644
index 0000000..d3c0d1c
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/USR.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/WIP.png b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/WIP.png
new file mode 100644
index 0000000..a390d74
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/WIP.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/WIPReport.xls b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/WIPReport.xls
new file mode 100644
index 0000000..3a9694e
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/WIPReport.xls differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/mesresource.en.resources91 b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/mesresource.en.resources91
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/mesresource.en.resources91 differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/mesresource.zh-chs.resources91 b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/mesresource.zh-chs.resources91
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/mesresource.zh-chs.resources91 differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/mesresource.zh-cht.resources91 b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/mesresource.zh-cht.resources91
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/mesresource.zh-cht.resources91 differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/msg_action.en.resources b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/msg_action.en.resources
new file mode 100644
index 0000000..19fb658
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/msg_action.en.resources differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/msg_action.zh-chs.resources b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/msg_action.zh-chs.resources
new file mode 100644
index 0000000..1c99d89
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/msg_action.zh-chs.resources differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/msg_action.zh-cht.resources b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/msg_action.zh-cht.resources
new file mode 100644
index 0000000..1709fdc
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/msg_action.zh-cht.resources differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/msg_name.en.resources b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/msg_name.en.resources
new file mode 100644
index 0000000..614b483
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/msg_name.en.resources differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/msg_name.zh-chs.resources b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/msg_name.zh-chs.resources
new file mode 100644
index 0000000..336b894
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/msg_name.zh-chs.resources differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Resources/msg_name.zh-cht.resources b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/msg_name.zh-cht.resources
new file mode 100644
index 0000000..5b51a68
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Resources/msg_name.zh-cht.resources differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS1/新建 文本文档.txt b/SRC/MESWin/SYS4/21670ll/MESWin/SYS1/新建 文本文档.txt
new file mode 100644
index 0000000..e69de29
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS2/新建 文本文档.txt b/SRC/MESWin/SYS4/21670ll/MESWin/SYS2/新建 文本文档.txt
new file mode 100644
index 0000000..e69de29
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS3/新建 文本文档.txt b/SRC/MESWin/SYS4/21670ll/MESWin/SYS3/新建 文本文档.txt
new file mode 100644
index 0000000..e69de29
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/ET_Subcontractor.sln b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/ET_Subcontractor.sln
new file mode 100644
index 0000000..85b1902
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/ET_Subcontractor.sln
@@ -0,0 +1,39 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25123.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ET_Subcontractor", "ET_Subcontractor.vbproj", "{D6EE7B96-F10E-44E2-9731-162B70B4C8DD}"
+EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Test", "..\..\Test\Test.vbproj", "{C4A48E3F-38E4-4E88-A47D-FA5510686E57}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}.Debug|x86.ActiveCfg = Debug|x86
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}.Debug|x86.Build.0 = Debug|x86
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}.Release|x86.ActiveCfg = Release|x86
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}.Release|x86.Build.0 = Release|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Debug|x86.ActiveCfg = Debug|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Debug|x86.Build.0 = Debug|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Release|x86.ActiveCfg = Release|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(TeamFoundationVersionControl) = preSolution
+ SccNumberOfProjects = 3
+ SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
+ SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6
+ SccProjectUniqueName0 = ET_Subcontractor.vbproj
+ SccLocalPath0 = .
+ SccProjectUniqueName1 = ..\\..\\Test\\Test.vbproj
+ SccProjectName1 = ../../Test
+ SccLocalPath1 = ..\\..\\Test
+ SccLocalPath2 = .
+ EndGlobalSection
+EndGlobal
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/ET_Subcontractor.vbproj b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/ET_Subcontractor.vbproj
new file mode 100644
index 0000000..8059f21
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/ET_Subcontractor.vbproj
@@ -0,0 +1,194 @@
+
+
+
+
+ Debug
+ x86
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}
+ Library
+ ET_Subcontractor_21670
+ ET_Subcontractor_21670
+ 512
+ Windows
+ v4.6.2
+
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+ true
+ true
+ true
+ ..\..\..\MESClient\
+ ET_Subcontractor_21670.xml
+ 0
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ full
+ x86
+ MinimumRecommendedRules.ruleset
+ false
+
+
+ true
+ ..\..\..\MESClient\
+ ET_Subcontractor_21670.xml
+ true
+ 0
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ pdbonly
+ x86
+ MinimumRecommendedRules.ruleset
+ false
+
+
+ true
+
+
+ iMES.snk
+
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.v19.1.dll
+ False
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinGrid.v19.1.dll
+ False
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinEditors.v19.1.dll
+ False
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.Misc.v19.1.dll
+ False
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Shared.v19.1.dll
+ False
+
+
+ ..\..\..\MESClient\COM_Kit.dll
+ False
+
+
+ ..\..\..\MES_C_DLL\iMESExceptionManager.dll
+ False
+
+
+ ..\..\..\MES_C_DLL\iMESUltraGrid.dll
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ modConstant.vb
+
+
+ Form
+
+
+ Form
+
+
+ Form
+
+
+
+ True
+ Application.myapp
+ True
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+ frmSubcontractor.vb
+
+
+ frmSubcontractorContDef.vb
+
+
+ frmSubcontractorDef.vb
+
+
+
+ VbMyResourcesResXFileCodeGenerator
+ Resources.Designer.vb
+ My.Resources
+ Designer
+
+
+
+
+
+ MyApplicationCodeGenerator
+ Application.Designer.vb
+
+
+ SettingsSingleFileGenerator
+ My
+ Settings.Designer.vb
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/ET_Subcontractor.vbproj.vspscc b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/ET_Subcontractor.vbproj.vspscc
new file mode 100644
index 0000000..b6d3289
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/ET_Subcontractor.vbproj.vspscc
@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = ""
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/Application.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/Application.Designer.vb
new file mode 100644
index 0000000..537244b
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/Application.Designer.vb
@@ -0,0 +1,13 @@
+'------------------------------------------------------------------------------
+'
+' 此代码由工具生成。
+' 运行时版本:4.0.30319.42000
+'
+' 对此文件的更改可能会导致不正确的行为,并且如果
+' 重新生成代码,这些更改将会丢失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/Application.myapp b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/Application.myapp
new file mode 100644
index 0000000..758895d
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/Application.myapp
@@ -0,0 +1,10 @@
+
+
+ false
+ false
+ 0
+ true
+ 0
+ 1
+ true
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/AssemblyInfo.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/AssemblyInfo.vb
new file mode 100644
index 0000000..b0cdd98
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/AssemblyInfo.vb
@@ -0,0 +1,35 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' 組件的一般資訊是由下列的屬性集控制。
+' 變更這些屬性的值即可修改組件的相關
+' 資訊。
+
+' 檢閱組件屬性的值
+
+
+
+
+
+
+
+
+
+
+'下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID
+
+
+' 組件的版本資訊由下列四個值所組成:
+'
+' 主要版本
+' 次要版本
+' 組建編號
+' 修訂編號
+'
+' 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號
+' 指定為預設值:
+'
+
+
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/BuildIncrementVersionInfo.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/BuildIncrementVersionInfo.vb
new file mode 100644
index 0000000..d2f2e21
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/BuildIncrementVersionInfo.vb
@@ -0,0 +1 @@
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/Resources.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/Resources.Designer.vb
new file mode 100644
index 0000000..718820f
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/Resources.Designer.vb
@@ -0,0 +1,63 @@
+'------------------------------------------------------------------------------
+'
+' 此代码由工具生成。
+' 运行时版本:4.0.30319.42000
+'
+' 对此文件的更改可能会导致不正确的行为,并且如果
+' 重新生成代码,这些更改将会丢失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+Imports System
+
+Namespace My.Resources
+
+ '此类是由 StronglyTypedResourceBuilder
+ '类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
+ '若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
+ '(以 /str 作为命令选项),或重新生成 VS 项目。
+ '''
+ ''' 一个强类型的资源类,用于查找本地化的字符串等。
+ '''
+ _
+ Friend Module Resources
+
+ Private resourceMan As Global.System.Resources.ResourceManager
+
+ Private resourceCulture As Global.System.Globalization.CultureInfo
+
+ '''
+ ''' 返回此类使用的缓存的 ResourceManager 实例。
+ '''
+ _
+ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+ Get
+ If Object.ReferenceEquals(resourceMan, Nothing) Then
+ Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ET_Subcontractor_21670.Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' 重写当前线程的 CurrentUICulture 属性,对
+ ''' 使用此强类型资源类的所有资源查找执行重写。
+ '''
+ _
+ Friend Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set
+ resourceCulture = value
+ End Set
+ End Property
+ End Module
+End Namespace
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/Resources.resx b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/Settings.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/Settings.Designer.vb
new file mode 100644
index 0000000..59fb44f
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/Settings.Designer.vb
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+'
+' 此代码由工具生成。
+' 运行时版本:4.0.30319.42000
+'
+' 对此文件的更改可能会导致不正确的行为,并且如果
+' 重新生成代码,这些更改将会丢失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ _
+ Partial Friend NotInheritable Class MySettings
+ Inherits Global.System.Configuration.ApplicationSettingsBase
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
+
+#Region "My.Settings 自动保存功能"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
+#End If
+#End Region
+
+ Public Shared ReadOnly Property [Default]() As MySettings
+ Get
+
+#If _MyType = "WindowsForms" Then
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
+#End If
+ Return defaultInstance
+ End Get
+ End Property
+ End Class
+End Namespace
+
+Namespace My
+
+ _
+ Friend Module MySettingsProperty
+
+ _
+ Friend ReadOnly Property Settings() As Global.ET_Subcontractor_21670.My.MySettings
+ Get
+ Return Global.ET_Subcontractor_21670.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/Settings.settings b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/Settings.settings
new file mode 100644
index 0000000..85b890b
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/licenses.licx b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/licenses.licx
new file mode 100644
index 0000000..e3f40e2
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/My Project/licenses.licx
@@ -0,0 +1,7 @@
+Infragistics.Win.Misc.UltraButton, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.UltraWinEditors.UltraRadioButton, Infragistics4.Win.UltraWinEditors.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.UltraWinEditors.UltraComboEditor, Infragistics4.Win.UltraWinEditors.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.Misc.UltraGroupBox, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.UltraWinEditors.UltraTextEditor, Infragistics4.Win.UltraWinEditors.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.Misc.UltraLabel, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.Misc.UltraPanel, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/frmSubcontractor.resx b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/frmSubcontractor.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/frmSubcontractor.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/frmSubcontractor.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/frmSubcontractor.vb
new file mode 100644
index 0000000..af66c78
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/frmSubcontractor.vb
@@ -0,0 +1,1137 @@
+Imports iMESExceptionManager
+
+Imports Infragistics.Win
+Imports Infragistics.Win.UltraWinGrid
+Public Class frmSubcontractor
+
+ Inherits COM_Kit.frmBasisTemplat
+
+ Public PrivFunNo As String = defString
+
+ '//WS相關變數
+ ' 2016 YF, Dim wsENT As New wsENT.wsENT '宣告Web Service物件?
+ Dim tmpStringReader As System.IO.StringReader '將字串轉換成可讀入DataSet的物件
+ Dim XmlData As String '儲存取回之資料
+ Dim XmlSchema As String '儲存取回之資料結構
+ Dim InXml As String '儲存呼叫Web Service的傳入參數(Request字串)
+ Dim OutXml As String '儲存Web Service的傳回值(Response字串)
+ Dim strIdentity As String '儲存Identity XML字串?
+ Dim strParameter As String '儲存Parameter XML字串
+
+ '//資料表相關變數
+
+ Dim dsENT As New DataSet '資料集:儲存取回之資料?
+
+ Dim tblENTSubcontractor_21670 As String '儲存取回資料表的名稱(master)?
+ Dim tblENTSubcontractorCont_21670 As String '明細資料表名稱(detail)
+ Dim strFilter As String 'Filter string及列印的過濾條件
+
+ '//其他共用變數
+ Dim SubcontractorNo As String 'for Gird to Focus
+ Dim ContactorName As String 'for DetailGrid to Focus
+ Dim ugrRow As Infragistics.Win.UltraWinGrid.UltraGridRow
+ Friend WithEvents btnAdd As Misc.UltraButton
+ Friend WithEvents btnEdit As Misc.UltraButton
+ Friend WithEvents btnDel As Misc.UltraButton
+ Friend WithEvents btnCopy As Misc.UltraButton
+ Friend WithEvents btnApprove As Misc.UltraButton
+ Friend WithEvents iugSubcontractor As iMESUltraGrid.iMESUltraGridControl
+ Dim i As Integer
+
+#Region " Windows Form Designer generated code "
+
+ Public Sub New()
+ MyBase.New()
+
+ 'This call is required by the Windows Form Designer.
+ InitializeComponent()
+
+ 'Add any initialization after the InitializeComponent() call
+
+ End Sub
+
+ 'Form overrides dispose to clean up the component list.
+ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
+ If disposing Then
+ If Not (components Is Nothing) Then
+ components.Dispose()
+ End If
+ End If
+ MyBase.Dispose(disposing)
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.Container
+ Friend WithEvents iugDetail As iMESUltraGrid.iMESUltraGridControl
+ Friend WithEvents btnClose As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnEMail As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDCopy As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDDel As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDEdit As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDAdd As Infragistics.Win.Misc.UltraButton
+ Private Sub InitializeComponent()
+ Me.btnClose = New Infragistics.Win.Misc.UltraButton()
+ Me.btnEMail = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDCopy = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDDel = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDEdit = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDAdd = New Infragistics.Win.Misc.UltraButton()
+ Me.iugDetail = New iMESUltraGrid.iMESUltraGridControl()
+ Me.btnAdd = New Infragistics.Win.Misc.UltraButton()
+ Me.btnEdit = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDel = New Infragistics.Win.Misc.UltraButton()
+ Me.btnCopy = New Infragistics.Win.Misc.UltraButton()
+ Me.btnApprove = New Infragistics.Win.Misc.UltraButton()
+ Me.iugSubcontractor = New iMESUltraGrid.iMESUltraGridControl()
+ Me.SuspendLayout()
+ '
+ 'btnClose
+ '
+ Me.btnClose.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnClose.Location = New System.Drawing.Point(912, 552)
+ Me.btnClose.Name = "btnClose"
+ Me.btnClose.Size = New System.Drawing.Size(88, 32)
+ Me.btnClose.TabIndex = 18
+ Me.btnClose.Text = "Close (&X)"
+ '
+ 'btnEMail
+ '
+ Me.btnEMail.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnEMail.Location = New System.Drawing.Point(912, 429)
+ Me.btnEMail.Name = "btnEMail"
+ Me.btnEMail.Size = New System.Drawing.Size(88, 32)
+ Me.btnEMail.TabIndex = 17
+ Me.btnEMail.Text = "Mail"
+ '
+ 'btnDCopy
+ '
+ Me.btnDCopy.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDCopy.Location = New System.Drawing.Point(912, 389)
+ Me.btnDCopy.Name = "btnDCopy"
+ Me.btnDCopy.Size = New System.Drawing.Size(88, 32)
+ Me.btnDCopy.TabIndex = 16
+ Me.btnDCopy.Text = "Copy"
+ '
+ 'btnDDel
+ '
+ Me.btnDDel.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDDel.Location = New System.Drawing.Point(912, 349)
+ Me.btnDDel.Name = "btnDDel"
+ Me.btnDDel.Size = New System.Drawing.Size(88, 32)
+ Me.btnDDel.TabIndex = 15
+ Me.btnDDel.Text = "DEL"
+ '
+ 'btnDEdit
+ '
+ Me.btnDEdit.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDEdit.Location = New System.Drawing.Point(912, 309)
+ Me.btnDEdit.Name = "btnDEdit"
+ Me.btnDEdit.Size = New System.Drawing.Size(88, 32)
+ Me.btnDEdit.TabIndex = 14
+ Me.btnDEdit.Text = "EDIT"
+ '
+ 'btnDAdd
+ '
+ Me.btnDAdd.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDAdd.Location = New System.Drawing.Point(912, 269)
+ Me.btnDAdd.Name = "btnDAdd"
+ Me.btnDAdd.Size = New System.Drawing.Size(88, 32)
+ Me.btnDAdd.TabIndex = 13
+ Me.btnDAdd.Text = "ADD"
+ '
+ 'iugDetail
+ '
+ Me.iugDetail.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.iugDetail.EnterDirection = iMESUltraGrid.iMESUltraGridControl.EnterDirectionEnum.Down
+ Me.iugDetail.GroupBoxPromptText = "Drag a column header here to group by that column."
+ Me.iugDetail.GroupBoxTextForeColor = System.Drawing.Color.Red
+ Me.iugDetail.Identity = "IMes"
+ Me.iugDetail.IdentityForm = ""
+ Me.iugDetail.LayOutFilePath = ""
+ Me.iugDetail.Location = New System.Drawing.Point(12, 269)
+ Me.iugDetail.Name = "iugDetail"
+ Me.iugDetail.PrintFitWidthToPages = 0
+ Me.iugDetail.PrintLandscape = True
+ Me.iugDetail.PrintPageFooter = ""
+ Me.iugDetail.PrintPageFooterHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugDetail.PrintPageFooterHeight = 20
+ Me.iugDetail.PrintPageHeader = ""
+ Me.iugDetail.PrintPageHeaderHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugDetail.PrintPageHeaderHeight = 20
+ Me.iugDetail.PrintZoom = 1.0R
+ Me.iugDetail.Size = New System.Drawing.Size(894, 314)
+ Me.iugDetail.TabIndex = 12
+ Me.iugDetail.UserNo = "IMes"
+ '
+ 'btnAdd
+ '
+ Me.btnAdd.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnAdd.Location = New System.Drawing.Point(912, 53)
+ Me.btnAdd.Name = "btnAdd"
+ Me.btnAdd.Size = New System.Drawing.Size(88, 32)
+ Me.btnAdd.TabIndex = 20
+ Me.btnAdd.Text = "Add(&A)"
+ '
+ 'btnEdit
+ '
+ Me.btnEdit.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnEdit.Location = New System.Drawing.Point(912, 93)
+ Me.btnEdit.Name = "btnEdit"
+ Me.btnEdit.Size = New System.Drawing.Size(88, 32)
+ Me.btnEdit.TabIndex = 21
+ Me.btnEdit.Text = "Edit(&E)"
+ '
+ 'btnDel
+ '
+ Me.btnDel.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDel.Location = New System.Drawing.Point(912, 133)
+ Me.btnDel.Name = "btnDel"
+ Me.btnDel.Size = New System.Drawing.Size(88, 32)
+ Me.btnDel.TabIndex = 22
+ Me.btnDel.Text = "Del(&D)"
+ '
+ 'btnCopy
+ '
+ Me.btnCopy.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnCopy.Location = New System.Drawing.Point(912, 173)
+ Me.btnCopy.Name = "btnCopy"
+ Me.btnCopy.Size = New System.Drawing.Size(88, 32)
+ Me.btnCopy.TabIndex = 23
+ Me.btnCopy.Text = "Copy(&C)"
+ '
+ 'btnApprove
+ '
+ Me.btnApprove.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnApprove.Location = New System.Drawing.Point(912, 213)
+ Me.btnApprove.Name = "btnApprove"
+ Me.btnApprove.Size = New System.Drawing.Size(88, 32)
+ Me.btnApprove.TabIndex = 24
+ Me.btnApprove.Text = "Approve(&Y)"
+ '
+ 'iugSubcontractor
+ '
+ Me.iugSubcontractor.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.iugSubcontractor.EnterDirection = iMESUltraGrid.iMESUltraGridControl.EnterDirectionEnum.Down
+ Me.iugSubcontractor.GroupBoxPromptText = "Drag a column header here to group by that column."
+ Me.iugSubcontractor.GroupBoxTextForeColor = System.Drawing.Color.Red
+ Me.iugSubcontractor.Identity = "IMes"
+ Me.iugSubcontractor.IdentityForm = ""
+ Me.iugSubcontractor.LayOutFilePath = ""
+ Me.iugSubcontractor.Location = New System.Drawing.Point(12, 53)
+ Me.iugSubcontractor.Name = "iugSubcontractor"
+ Me.iugSubcontractor.PrintFitWidthToPages = 0
+ Me.iugSubcontractor.PrintLandscape = True
+ Me.iugSubcontractor.PrintPageFooter = ""
+ Me.iugSubcontractor.PrintPageFooterHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugSubcontractor.PrintPageFooterHeight = 20
+ Me.iugSubcontractor.PrintPageHeader = ""
+ Me.iugSubcontractor.PrintPageHeaderHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugSubcontractor.PrintPageHeaderHeight = 20
+ Me.iugSubcontractor.PrintZoom = 1.0R
+ Me.iugSubcontractor.Size = New System.Drawing.Size(894, 192)
+ Me.iugSubcontractor.TabIndex = 25
+ Me.iugSubcontractor.UserNo = "IMes"
+ '
+ 'frmSubcontractor
+ '
+ Me.ClientSize = New System.Drawing.Size(1008, 591)
+ Me.Controls.Add(Me.btnClose)
+ Me.Controls.Add(Me.btnApprove)
+ Me.Controls.Add(Me.btnEMail)
+ Me.Controls.Add(Me.btnDCopy)
+ Me.Controls.Add(Me.btnCopy)
+ Me.Controls.Add(Me.btnDDel)
+ Me.Controls.Add(Me.iugSubcontractor)
+ Me.Controls.Add(Me.btnDEdit)
+ Me.Controls.Add(Me.btnAdd)
+ Me.Controls.Add(Me.btnDAdd)
+ Me.Controls.Add(Me.btnDel)
+ Me.Controls.Add(Me.iugDetail)
+ Me.Controls.Add(Me.btnEdit)
+ Me.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Name = "frmSubcontractor"
+ Me.Text = "ENT Subcontractor & Contactor"
+ Me.WindowState = System.Windows.Forms.FormWindowState.Maximized
+ Me.Controls.SetChildIndex(Me.btnEdit, 0)
+ Me.Controls.SetChildIndex(Me.iugDetail, 0)
+ Me.Controls.SetChildIndex(Me.btnDel, 0)
+ Me.Controls.SetChildIndex(Me.btnDAdd, 0)
+ Me.Controls.SetChildIndex(Me.btnAdd, 0)
+ Me.Controls.SetChildIndex(Me.btnDEdit, 0)
+ Me.Controls.SetChildIndex(Me.iugSubcontractor, 0)
+ Me.Controls.SetChildIndex(Me.btnDDel, 0)
+ Me.Controls.SetChildIndex(Me.btnCopy, 0)
+ Me.Controls.SetChildIndex(Me.btnDCopy, 0)
+ Me.Controls.SetChildIndex(Me.btnEMail, 0)
+ Me.Controls.SetChildIndex(Me.btnApprove, 0)
+ Me.Controls.SetChildIndex(Me.btnClose, 0)
+ Me.ResumeLayout(False)
+
+ End Sub
+
+#End Region
+
+ Private Sub frmSubcontractor_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
+
+ Cursor.Current = Cursors.WaitCursor
+
+ ' 2016 YF, wsENT.Url = LocalizeWebService(wsENT.Url.ToString)
+ ' 2016 YF, wsENT.EnableDecompression = True
+
+ Call funiMESUltraGridIni() 'Grid初始設定
+
+ '//取出資料
+ Call funLoadSubcontractor()
+
+ SetIssueState(Issue.Unfrozen) '預設在Unforzen上
+ SetSearchFieldName(New String() {"SubcontractorNo", "SubcontractorNaME"}) '設置搜尋欄位
+
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ ExeGroupControlPriv(Me, PrivFunNo)
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub frmSubcontractor_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
+ If Not dsENT Is Nothing Then dsENT.Dispose()
+ ' 2016 YF, If Not wsENT Is Nothing Then wsENT.Dispose()
+ End Sub
+
+ Protected Overrides Sub rdoIssue_CheckedChanged(sender As Object, e As EventArgs)
+ If IsNothing(dsENT) Then Exit Sub
+
+ Select Case GetIssueState()
+ Case Issue.Unfrozen
+ dsENT.Tables(tblENTSubcontractor_21670).DefaultView.RowFilter = "IssueState=0"
+ Case Issue.Pending
+ dsENT.Tables(tblENTSubcontractor_21670).DefaultView.RowFilter = "IssueState=1"
+ Case Issue.Active
+ dsENT.Tables(tblENTSubcontractor_21670).DefaultView.RowFilter = "IssueState=2"
+ Case Issue.Unused
+ dsENT.Tables(tblENTSubcontractor_21670).DefaultView.RowFilter = "IssueState=-1"
+ End Select
+ Me.iugSubcontractor.iMESUltraGrid.DataSource = dsENT.Tables(tblENTSubcontractor_21670).DefaultView
+ Call funShowActiveDetail()
+ End Sub
+
+ Protected Overrides Sub Finalize()
+ MyBase.Finalize()
+ End Sub
+
+ Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
+
+ Dim fSubcontractorDef As New frmSubcontractorDef
+
+ fSubcontractorDef.DefMode = 0
+ fSubcontractorDef.ShowDialog(Me)
+ fSubcontractorDef.Dispose()
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ SubcontractorNo = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractor()
+
+ If GetIssueState() = Issue.Unfrozen Then
+ ugrRow = FindRecordPosition(iugSubcontractor, "SubcontractorNo", SubcontractorNo)
+ If Not ugrRow Is Nothing Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ End If
+
+ End Sub
+
+ Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
+
+
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+ 'IsGroupByRow不做任何處理
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then
+ Exit Sub
+ End If
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractor_21670).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'")
+
+ '核准狀態為"Unfrozen"者才可修改
+
+ If Rows(0).Item("IssueState") <> 0 Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-202202", "[%NOT ALLOWED TO EDIT%]"), MsgBoxStyle.Exclamation, Me.Text)
+ Exit Sub
+ End If
+
+ Dim fSubcontractorDef As New frmSubcontractorDef
+ fSubcontractorDef.DefMode = 1
+ fSubcontractorDef.EditDataRow = Rows(0)
+ fSubcontractorDef.ShowDialog(Me)
+ fSubcontractorDef.Dispose()
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ SubcontractorNo = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractor()
+
+ If GetIssueState() = Issue.Unfrozen Then
+ ugrRow = FindRecordPosition(iugSubcontractor, "SubcontractorNo", SubcontractorNo)
+ If Not ugrRow Is Nothing Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ End If
+
+ End If
+ End Sub
+
+ Private Sub btnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel.Click
+
+
+
+ '1.先檢查是否為單筆,是:將其Selecte
+ If Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then Exit Sub
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Cursor.Current = Cursors.WaitCursor
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ '2.Multi
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count > 0 Then
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Item(0).IsGroupByRow Then
+ Exit Sub 'Selected.Rows,不會包含GroupRow & 一般的Row在一起,故若是GroupRow不做任何處理
+ End If
+ If iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-100001", "[%ARE YOU SURE TO DELETE ALL SELECTED RECORDS%]"), MsgBoxStyle.OkCancel + MsgBoxStyle.Question + MsgBoxStyle.DefaultButton2, Me.Text) = MsgBoxResult.Cancel Then
+ Exit Sub
+ End If
+
+ '共用資料
+ Dim XmlDoc As New XmlDocument
+ Dim blnReLoad As Boolean = False
+ Dim intIssueState As Integer
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ For i = 0 To Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count - 1
+ intIssueState = Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("IssueState").Value
+ If intIssueState = 0 Or intIssueState = -1 Or intIssueState = 2 Then '狀態為Unforzen或Unused時直接刪除
+
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", CInput(Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("SubcontractorNo").Value.ToString), "")
+ strParameter = strParameter & CombineXMLParameter("issuestate", "IssueState", "String", CInput(intIssueState), "")
+ strParameter = strParameter & CombineXMLParameter("datastamp", "DataStamp", "Integer", iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("DataStamp").Value, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ Try
+ ' 2016 YF, OutXml = wsENT.DelSubcontractor(InXml)
+ 'OutXml = InvokeSrv("wsENT.DelSubcontractor", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.DelSubcontractor", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ If Not blnReLoad Then blnReLoad = True
+ Else
+ '找出Exception訊並顯示出來
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit For
+ End If
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Delete failed," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ Exit For
+ End Try
+ Else
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200021", "[%NOT ALLOWED TO delete%]"), MsgBoxStyle.Exclamation, Me.Text)
+ End If
+ Next
+
+ XmlDoc = Nothing
+
+ If blnReLoad Then
+
+ Call funLoadSubcontractor()
+
+ Call funShowActiveDetail()
+
+ End If
+
+ End If
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub btnCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCopy.Click
+
+
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+ 'IsGroupByRow不做任何處理
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then
+ Exit Sub
+ End If
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractor_21670).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'")
+
+ Dim fSubcontractorDef As New frmSubcontractorDef
+ fSubcontractorDef.DefMode = 2
+ fSubcontractorDef.EditDataRow = Rows(0)
+ fSubcontractorDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ SubcontractorNo = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractor()
+
+ If GetIssueState() = Issue.Unfrozen Then
+ ugrRow = FindRecordPosition(iugSubcontractor, "SubcontractorNo", SubcontractorNo)
+ If Not ugrRow Is Nothing Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ End If
+
+ End If
+ End Sub
+
+ Private Sub btnApprove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnApprove.Click
+
+
+
+ '1.先檢查是否為單筆,是:將其Selecte
+ If Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then Exit Sub
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Cursor.Current = Cursors.WaitCursor
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ '2.Multi
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count > 0 Then
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Item(0).IsGroupByRow Then
+ Exit Sub 'Selected.Rows,不會包含GroupRow & 一般的Row在一起,故若是GroupRow不做任何處理
+ End If
+ If iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-100002", "[%ARE YOU SURE TO APPROVE ALL SELECTED RECORDS%]"), MsgBoxStyle.OkCancel + MsgBoxStyle.Question + MsgBoxStyle.DefaultButton2, Me.Text) = MsgBoxResult.Cancel Then
+ Exit Sub
+ End If
+
+ '共用資料
+ Dim XmlDoc As New XmlDocument
+ Dim blnReLoad As Boolean = False
+ Dim intIssueState As Integer
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ For i = 0 To Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count - 1
+ intIssueState = Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("IssueState").Value
+ If intIssueState = 0 Then
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", CInput(Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("SubcontractorNo").Value.ToString), "")
+ strParameter += CombineXMLParameter("issuestate", "IssueState", "String", intIssueState, "")
+ strParameter += CombineXMLParameter("creator", "Creator", "String", gUserNo, "")
+ strParameter = strParameter & CombineXMLParameter("datastamp", "DataStamp", "Integer", iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("DataStamp").Value, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ Try
+ ' 2016 YF, OutXml = wsENT.ApproveSubcontractor(InXml)
+ 'OutXml = InvokeSrv("wsENT.ApproveSubcontractor", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.ApproveSubcontractor", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ If Not blnReLoad Then blnReLoad = True
+ Else
+ '找出Exception訊並顯示出來
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit For
+ End If
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Approve failed," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ Exit For
+ End Try
+ Else
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200021", "[%NOT ALLOW TO APPROVE%]"), MsgBoxStyle.Exclamation, Me.Text)
+ End If
+ Next
+
+ XmlDoc = Nothing
+
+ If blnReLoad Then
+
+ Call funLoadSubcontractor()
+
+ Call funShowActiveDetail()
+
+ End If
+
+ End If
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub btnDAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDAdd.Click
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+
+ 'Dim Rows As DataRow()
+ Dim fSubcontractorContDef As New frmSubcontractorContDef
+
+ fSubcontractorContDef.DefMode = 0
+ fSubcontractorContDef.SubcontractorNo = Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString
+ fSubcontractorContDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ ContactorName = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ ugrRow = FindRecordPosition(iugDetail, "ContactorName", ContactorName)
+ If Not ugrRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ End If
+ End Sub
+
+ Private Sub btnDEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDEdit.Click
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing And Not Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow OrElse iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractorCont_21670).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'" _
+ & " And ContactorName = '" & Replace(Me.iugDetail.iMESUltraGrid.ActiveRow.Cells("ContactorName").Value.ToString, "'", "''") & "'")
+
+ Dim fSubcontractorContDef As New frmSubcontractorContDef
+ fSubcontractorContDef.DefMode = 1
+ fSubcontractorContDef.EditDataRow = Rows(0)
+ fSubcontractorContDef.SubcontractorNo = Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString
+ fSubcontractorContDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ ContactorName = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ ugrRow = FindRecordPosition(iugDetail, "ContactorName", ContactorName)
+ If Not ugrRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ Else
+
+ Exit Sub
+ End If
+
+ End Sub
+
+ Private Sub btnDDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDDel.Click
+
+
+ '1.先檢查是否為單筆,是:將其Selecte
+ If Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then Exit Sub
+ If iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If Not Me.iugDetail.iMESUltraGrid.ActiveRow.Selected Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ '2.Multi
+ If Me.iugDetail.iMESUltraGrid.Selected.Rows.Count > 0 Then
+ If Me.iugDetail.iMESUltraGrid.Selected.Rows.Item(0).IsGroupByRow Then
+ Exit Sub 'Selected.Rows,不會包含GroupRow & 一般的Row在一起,故若是GroupRow不做任何處理
+ End If
+ If iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-100001", "[%ARE YOU SURE TO DELETE ALL SELECTED RECORDS%]"), MsgBoxStyle.OkCancel + MsgBoxStyle.Question + MsgBoxStyle.DefaultButton2, Me.Text) = MsgBoxResult.Cancel Then
+ Exit Sub
+ End If
+
+ '共用資料
+ Dim XmlDoc As New XmlDocument
+ Dim blnReLoad As Boolean = False
+ Dim intIssueState As Integer
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ For i = 0 To Me.iugDetail.iMESUltraGrid.Selected.Rows.Count - 1
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", CInput(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString), "")
+ strParameter = strParameter & CombineXMLParameter("ContactorName", "ContactorName", "String", CInput(Me.iugDetail.iMESUltraGrid.Selected.Rows(i).Cells("ContactorName").Value.ToString), "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ Try
+ ' 2016 YF, OutXml = wsENT.DelSubcontractorCont(InXml)
+ 'OutXml = InvokeSrv("wsENT.DelSubcontractorCont", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.DelSubcontractorCont", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ If Not blnReLoad Then blnReLoad = True
+ Else
+ '找出Exception訊並顯示出來
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit For
+ End If
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Delete failed," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ Exit For
+ End Try
+
+ Next
+
+ XmlDoc = Nothing
+
+ If blnReLoad Then Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ End If
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub btnDCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDCopy.Click
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing And Not Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow OrElse iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractorCont_21670).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'" _
+ & " And ContactorName = '" & Replace(Me.iugDetail.iMESUltraGrid.ActiveRow.Cells("ContactorName").Value.ToString, "'", "''") & "'")
+
+ Dim fSubcontractorContDef As New frmSubcontractorContDef
+ fSubcontractorContDef.DefMode = 2
+ fSubcontractorContDef.EditDataRow = Rows(0)
+ fSubcontractorContDef.SubcontractorNo = Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString
+ fSubcontractorContDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ ContactorName = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ ugrRow = FindRecordPosition(iugDetail, "ContactorName", ContactorName)
+ If Not ugrRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ Else
+
+ Exit Sub
+ End If
+
+ End Sub
+
+ Private Sub btnEMail_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEMail.Click
+
+ If Not Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then
+ If iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Dim Rows As DataRow()
+ Dim proMail As New System.Diagnostics.Process
+ Dim strAccount As String
+
+ Rows = dsENT.Tables(tblENTSubcontractorCont_21670).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'" _
+ & " And ContactorName = '" & Replace(Me.iugDetail.iMESUltraGrid.ActiveRow.Cells("ContactorName").Value.ToString, "'", "''") & "'")
+
+ strAccount = "mailto:" & Rows(0).Item("EMail").ToString
+ proMail.Start(strAccount)
+
+ End If
+
+ End Sub
+
+ Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
+ Me.Close()
+ End Sub
+
+ Protected Overrides Sub btnQuery_Click(sender As Object, e As EventArgs)
+ Cursor.Current = Cursors.WaitCursor
+
+ funLoadSubcontractor()
+
+ Cursor.Current = Cursors.Default
+ End Sub
+
+#Region "Ultra Grid"
+
+ Private Sub iugSubcontractor_iMESUltraGrid_InitializeLayOut(ByVal sender As System.Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) Handles iugSubcontractor.iMESUltraGrid_InitializeLayOut
+
+ With e.Layout
+ With .Bands(0).Columns("SubcontractorNo")
+ .Header.Caption = "SubcontractorNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 0
+ End With
+ With .Bands(0).Columns("SubcontractorName")
+ .Header.Caption = "SubcontractorName"
+ .Width = 110
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 1
+ End With
+ With .Bands(0).Columns("Description")
+ .Header.Caption = "Description"
+ .Width = 110
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 2
+ End With
+ With .Bands(0).Columns("Creator")
+ .Header.Caption = "Creator"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 3
+ End With
+ With .Bands(0).Columns("CreateDate")
+ .Header.Caption = "CreateDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 4
+ End With
+ With .Bands(0).Columns("IssueState")
+ .Header.Caption = "IssueState"
+ .Width = 114
+ .Hidden = True
+ .Header.VisiblePosition = 5
+ End With
+ With .Bands(0).Columns("Reviser")
+ .Header.Caption = "Reviser"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 6
+ End With
+ With .Bands(0).Columns("ReviseDate")
+ .Header.Caption = "ReviseDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 7
+ End With
+ With e.Layout.Bands(0).Columns("DataStamp")
+ .Hidden = True
+ End With
+ End With
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ End Sub
+
+ Private Sub iugSubcontractor_iMESUltraGrid_AfterRowActivate(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles iugSubcontractor.iMESUltraGrid_AfterRowActivate
+
+ 'IsGroupByRow不做任何處理
+ If Not iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+ Else
+ Exit Sub
+ End If
+
+ End Sub
+
+ Private Sub iugDetail_iMESUltraGrid_InitializeLayOut(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) Handles iugDetail.iMESUltraGrid_InitializeLayOut
+
+ With e.Layout
+ With .Bands(0).Columns("SubcontractorNo")
+ .Header.Caption = "SubcontractorNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 0
+ End With
+ With .Bands(0).Columns("ContactorName")
+ .Header.Caption = "ContactorName"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 1
+ End With
+ With .Bands(0).Columns("TelNo")
+ .Header.Caption = "TelNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 2
+ End With
+ With .Bands(0).Columns("FaxNo")
+ .Header.Caption = "FaxNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 3
+ End With
+ With .Bands(0).Columns("Title")
+ .Header.Caption = "Title"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 4
+ End With
+ With .Bands(0).Columns("Address")
+ .Header.Caption = "Address"
+ .Width = 110
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 5
+ End With
+ With .Bands(0).Columns("EMail")
+ .Header.Caption = "EMail"
+ .Width = 150
+ .Hidden = False
+ .CellAppearance.ForeColor = System.Drawing.Color.Blue
+ .CellAppearance.FontData.Underline = DefaultableBoolean.True
+ .Header.VisiblePosition = 6
+ End With
+ With .Bands(0).Columns("Description")
+ .Header.Caption = "Description"
+ .Width = 200
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 7
+ End With
+ With .Bands(0).Columns("Creator")
+ .Header.Caption = "Creator"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 8
+ End With
+ With .Bands(0).Columns("CreateDate")
+ .Header.Caption = "CreateDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 9
+ End With
+ With .Bands(0).Columns("Reviser")
+ .Header.Caption = "Reviser"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 10
+ End With
+ With .Bands(0).Columns("ReviseDate")
+ .Header.Caption = "ReviseDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 11
+ End With
+ With e.Layout.Bands(0).Columns("DataStamp")
+ .Hidden = True
+ End With
+ End With
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ End Sub
+
+#End Region
+
+#Region "Load Function"
+
+ '//取出tblENTSubcontractor_21670 外包商資料
+
+ Private Sub funLoadSubcontractor()
+
+ '先判斷是否dataset中已有ENTSubcontractor之datatable,若有,需先remove否則會有錯誤
+ If Not IsNothing(dsENT.Tables(tblENTSubcontractor_21670)) Then
+ dsENT.Tables.Remove(tblENTSubcontractor_21670)
+ End If
+
+ '組InXml的字串
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ '加上IssueState要求取出所有資料
+ strParameter = CombineXMLParameter("issuestate", "IssueState", "Integer", defInteger, "")
+ '加上查詢條件 cboSearchFieldName,txtSearchFieldValue
+ strParameter += CombineXMLQueryCondition()
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ Try
+ ' 2016 YF, OutXml = wsENT.LoadSubcontractor(InXml)
+ 'OutXml = InvokeSrv("wsENT.LoadSubcontractor", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.LoadSubcontractor", InXml)
+
+ Dim XmlDoc As New XmlDocument '處理Xml字串之物件?
+
+ '利用XmlDoc物件處理ReturnValue
+ XmlDoc.LoadXml(OutXml)
+
+ If ChkExecutionSuccess(XmlDoc) Then
+ '讀取取出資料表之名稱
+
+ tblENTSubcontractor_21670 = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loadSubcontractor").Item(0).SelectNodes("name").Item(0).InnerXml
+ '取出Schema,dataset讀取Schema可防止Null Field及DateTime的問題
+
+ XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractor").Item(0).SelectNodes("schema").Item(0).InnerXml
+ If XmlSchema <> "" Then
+ '將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件
+ tmpStringReader = New System.IO.StringReader(XmlSchema)
+ dsENT.ReadXmlSchema(tmpStringReader)
+ tmpStringReader.Close()
+ End If
+
+ '取出Data
+ XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractor").Item(0).SelectNodes("value").Item(0).InnerXml
+ If XmlData <> "" Then
+ tmpStringReader = New System.IO.StringReader(XmlData)
+ dsENT.ReadXml(tmpStringReader, XmlReadMode.InferSchema)
+ tmpStringReader.Close()
+ End If
+
+ strFilter = ""
+ Select Case GetIssueState()
+ Case Issue.Unfrozen
+ strFilter = FilterByInteger(strFilter, "IssueState", 0)
+ Case Issue.Pending
+ strFilter = FilterByInteger(strFilter, "IssueState", 1)
+ Case Issue.Active
+ strFilter = FilterByInteger(strFilter, "IssueState", 2)
+ Case Issue.Unused
+ strFilter = FilterByInteger(strFilter, "IssueState", -1)
+ End Select
+
+ dsENT.Tables(tblENTSubcontractor_21670).DefaultView.RowFilter = strFilter
+ dsENT.Tables(tblENTSubcontractor_21670).DefaultView.Sort = "SubcontractorNo"
+
+ Me.iugSubcontractor.iMESUltraGrid.DataSource = dsENT.Tables(tblENTSubcontractor_21670).DefaultView
+
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit Sub
+ End If
+
+ XmlDoc = Nothing
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Load ENT Subcontractor Failed!!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ End Sub
+
+ '//取出tblENTSubcontractorCont_21670聯絡人資料
+
+ Private Sub funLoadSubcontractorCont(ByRef SubcontractorNo As String)
+
+ If Not IsNothing(dsENT.Tables(tblENTSubcontractorCont_21670)) Then
+ dsENT.Tables.Remove(tblENTSubcontractorCont_21670)
+ End If
+
+ '組InXml的字串
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", SubcontractorNo, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ Try
+ ' 2016 YF, OutXml = wsENT.LoadSubcontractorCont(InXml)
+ 'OutXml = InvokeSrv("wsENT.LoadSubcontractorCont", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.LoadSubcontractorCont", InXml)
+
+ Dim XmlDoc As New XmlDocument '處理Xml字串之物件?
+
+ '利用XmlDoc物件處理ReturnValue
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ '讀取取出資料表之名稱
+
+ tblENTSubcontractorCont_21670 = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loadSubcontractorcont").Item(0).SelectNodes("name").Item(0).InnerXml
+ '取出Schema,dataset讀取Schema可防止Null Field及DateTime的問題
+ XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractorcont").Item(0).SelectNodes("schema").Item(0).InnerXml
+ If XmlSchema <> "" Then
+ '將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件
+ tmpStringReader = New System.IO.StringReader(XmlSchema)
+ dsENT.ReadXmlSchema(tmpStringReader)
+ tmpStringReader.Close()
+ End If
+
+ '取出Data
+ XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractorcont").Item(0).SelectNodes("value").Item(0).InnerXml
+ If XmlData <> "" Then
+ tmpStringReader = New System.IO.StringReader(XmlData)
+ dsENT.ReadXml(tmpStringReader, XmlReadMode.InferSchema)
+ tmpStringReader.Close()
+ End If
+
+ Me.iugDetail.iMESUltraGrid.DataSource = dsENT.Tables(tblENTSubcontractorCont_21670).DefaultView
+
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ End If
+
+ XmlDoc = Nothing
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Load ENT Subcontractor Cont Failed!!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ End Sub
+
+ Private Sub funShowActiveDetail()
+
+ If Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.DataSource = Nothing
+ Else
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+ End If
+
+ End Sub
+
+ Private Sub funiMESUltraGridIni()
+
+ 'iugSubcontractor 初始設定
+ With Me.iugSubcontractor.iMESUltraGrid
+ .Text = ""
+ .DisplayLayout.GroupByBox.Hidden = True
+ .DisplayLayout.UseFixedHeaders = False
+ End With
+
+ '系統會以UserNo做為Layout的檔名
+
+ iugSubcontractor.UserNo = gUserNo
+
+ 'iugDetail 初始設定
+ With Me.iugDetail.iMESUltraGrid.DisplayLayout
+ .GroupByBox.Hidden = True
+ .Override.ExpansionIndicator = ShowExpansionIndicator.Default
+ .ViewStyle = ViewStyle.SingleBand
+ .RowConnectorStyle = RowConnectorStyle.Default
+
+ End With
+
+ '系統會以UserNo做為Layout的檔名
+
+ iugDetail.UserNo = gUserNo
+
+ End Sub
+
+ Private Sub iugDetail_Load(sender As Object, e As EventArgs) Handles iugDetail.Load
+
+ End Sub
+
+ Private Sub iugSubcontractor_Load(sender As Object, e As EventArgs) Handles iugSubcontractor.Load
+
+ End Sub
+
+
+#End Region
+
+End Class
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/frmSubcontractorContDef.resx b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/frmSubcontractorContDef.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/frmSubcontractorContDef.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/frmSubcontractorContDef.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/frmSubcontractorContDef.vb
new file mode 100644
index 0000000..cb67e7c
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/frmSubcontractorContDef.vb
@@ -0,0 +1,660 @@
+Imports iMESExceptionManager
+
+Public Class frmSubcontractorContDef
+
+ Inherits COM_Kit.frmDefTemplat
+
+ '//Public Variables
+ Public EditDataRow As DataRow
+ Public DefMode As Integer = 0 '0. ADD, 1.Edit, 2. Copy
+
+ Public SubcontractorNo As String = defString
+ Public PrivFunNo As String = defString
+
+ '//Web Service相關變數
+ ' 2016 YF, Dim wsENT As New wsENT.wsENT
+ Dim InXml As String
+ Dim OutXml As String
+
+ Dim strIdentity As String
+ Dim strParameter As String
+ Dim intDataStamp As Integer '紀錄DataStamp
+
+#Region " Windows Form Designer generated code "
+
+ Public Sub New()
+ MyBase.New()
+
+ 'This call is required by the Windows Form Designer.
+ InitializeComponent()
+
+ 'Add any initialization after the InitializeComponent() call
+
+ End Sub
+
+ 'Form overrides dispose to clean up the component list.
+ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
+ If disposing Then
+ If Not (components Is Nothing) Then
+ components.Dispose()
+ End If
+ End If
+ MyBase.Dispose(disposing)
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.IContainer
+
+ 'NOTE: The following procedure is required by the Windows Form Designer
+ 'It can be modified using the Windows Form Designer.
+ 'Do not modify it using the code editor.
+ Friend WithEvents txtDescription As System.Windows.Forms.RichTextBox
+ Friend WithEvents lblAddress As System.Windows.Forms.Label
+ Friend WithEvents lblEMail As System.Windows.Forms.Label
+ Friend WithEvents lblTitle As System.Windows.Forms.Label
+ Friend WithEvents lblFaxNo As System.Windows.Forms.Label
+ Friend WithEvents lblTelNo As System.Windows.Forms.Label
+ Friend WithEvents lblDescription As System.Windows.Forms.Label
+ Friend WithEvents lblContactorName As System.Windows.Forms.Label
+ Friend WithEvents lblSubcontractorNo As System.Windows.Forms.Label
+ Friend WithEvents gbxSubcontractorContData As System.Windows.Forms.GroupBox
+ Friend WithEvents txtSubcontractorNo As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtContactorName As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtFaxNo As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtTelNo As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtEMail As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtTitle As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtAddress As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Private Sub InitializeComponent()
+ Dim Appearance1 As Infragistics.Win.Appearance = New Infragistics.Win.Appearance()
+ Me.gbxSubcontractorContData = New System.Windows.Forms.GroupBox()
+ Me.txtAddress = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtEMail = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtTitle = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtFaxNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.lblAddress = New System.Windows.Forms.Label()
+ Me.lblEMail = New System.Windows.Forms.Label()
+ Me.lblTitle = New System.Windows.Forms.Label()
+ Me.lblFaxNo = New System.Windows.Forms.Label()
+ Me.lblTelNo = New System.Windows.Forms.Label()
+ Me.txtDescription = New System.Windows.Forms.RichTextBox()
+ Me.lblDescription = New System.Windows.Forms.Label()
+ Me.lblSubcontractorNo = New System.Windows.Forms.Label()
+ Me.lblContactorName = New System.Windows.Forms.Label()
+ Me.txtSubcontractorNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtContactorName = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtTelNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.gbxSubcontractorContData.SuspendLayout()
+ CType(Me.txtAddress, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtEMail, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtTitle, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtFaxNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtSubcontractorNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtContactorName, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtTelNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SuspendLayout()
+ '
+ 'gbxBasisData
+ '
+ Me.gbxBasisData.Location = New System.Drawing.Point(12, 322)
+ Me.gbxBasisData.Size = New System.Drawing.Size(472, 70)
+ '
+ 'btnApply
+ '
+ Me.btnApply.Location = New System.Drawing.Point(396, 401)
+ '
+ 'btnConfirm
+ '
+ Me.btnConfirm.Location = New System.Drawing.Point(208, 401)
+ '
+ 'btnClose
+ '
+ Me.btnClose.Location = New System.Drawing.Point(302, 401)
+ '
+ 'gbxSubcontractorContData
+ '
+ Me.gbxSubcontractorContData.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtAddress)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtEMail)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtTitle)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtFaxNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblAddress)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblEMail)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblTitle)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblFaxNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblTelNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtDescription)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblDescription)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblSubcontractorNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblContactorName)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtSubcontractorNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtContactorName)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtTelNo)
+ Me.gbxSubcontractorContData.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.gbxSubcontractorContData.Location = New System.Drawing.Point(15, 8)
+ Me.gbxSubcontractorContData.Name = "gbxSubcontractorContData"
+ Me.gbxSubcontractorContData.Size = New System.Drawing.Size(469, 306)
+ Me.gbxSubcontractorContData.TabIndex = 0
+ Me.gbxSubcontractorContData.TabStop = False
+ Me.gbxSubcontractorContData.Text = "ENT Subcontractor Contactor Data"
+ '
+ 'txtAddress
+ '
+ Me.txtAddress.Location = New System.Drawing.Point(120, 152)
+ Me.txtAddress.Name = "txtAddress"
+ Me.txtAddress.Size = New System.Drawing.Size(336, 26)
+ Me.txtAddress.TabIndex = 13
+ '
+ 'txtEMail
+ '
+ Me.txtEMail.Location = New System.Drawing.Point(320, 120)
+ Me.txtEMail.Name = "txtEMail"
+ Me.txtEMail.Size = New System.Drawing.Size(136, 26)
+ Me.txtEMail.TabIndex = 11
+ '
+ 'txtTitle
+ '
+ Me.txtTitle.Location = New System.Drawing.Point(120, 120)
+ Me.txtTitle.Name = "txtTitle"
+ Me.txtTitle.Size = New System.Drawing.Size(114, 26)
+ Me.txtTitle.TabIndex = 9
+ '
+ 'txtFaxNo
+ '
+ Me.txtFaxNo.Location = New System.Drawing.Point(320, 88)
+ Me.txtFaxNo.Name = "txtFaxNo"
+ Me.txtFaxNo.Size = New System.Drawing.Size(136, 26)
+ Me.txtFaxNo.TabIndex = 7
+ '
+ 'lblAddress
+ '
+ Me.lblAddress.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblAddress.Location = New System.Drawing.Point(24, 154)
+ Me.lblAddress.Name = "lblAddress"
+ Me.lblAddress.Size = New System.Drawing.Size(86, 14)
+ Me.lblAddress.TabIndex = 12
+ Me.lblAddress.Text = "Address"
+ Me.lblAddress.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblEMail
+ '
+ Me.lblEMail.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblEMail.Location = New System.Drawing.Point(248, 123)
+ Me.lblEMail.Name = "lblEMail"
+ Me.lblEMail.Size = New System.Drawing.Size(64, 14)
+ Me.lblEMail.TabIndex = 10
+ Me.lblEMail.Text = "EMail"
+ Me.lblEMail.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblTitle
+ '
+ Me.lblTitle.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblTitle.Location = New System.Drawing.Point(24, 121)
+ Me.lblTitle.Name = "lblTitle"
+ Me.lblTitle.Size = New System.Drawing.Size(86, 14)
+ Me.lblTitle.TabIndex = 8
+ Me.lblTitle.Text = "Title"
+ Me.lblTitle.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblFaxNo
+ '
+ Me.lblFaxNo.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblFaxNo.Location = New System.Drawing.Point(248, 90)
+ Me.lblFaxNo.Name = "lblFaxNo"
+ Me.lblFaxNo.Size = New System.Drawing.Size(64, 14)
+ Me.lblFaxNo.TabIndex = 6
+ Me.lblFaxNo.Text = "FaxNo"
+ Me.lblFaxNo.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblTelNo
+ '
+ Me.lblTelNo.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblTelNo.Location = New System.Drawing.Point(24, 90)
+ Me.lblTelNo.Name = "lblTelNo"
+ Me.lblTelNo.Size = New System.Drawing.Size(86, 14)
+ Me.lblTelNo.TabIndex = 4
+ Me.lblTelNo.Text = "TelNo"
+ Me.lblTelNo.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'txtDescription
+ '
+ Me.txtDescription.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.txtDescription.Location = New System.Drawing.Point(120, 184)
+ Me.txtDescription.Name = "txtDescription"
+ Me.txtDescription.Size = New System.Drawing.Size(336, 108)
+ Me.txtDescription.TabIndex = 15
+ Me.txtDescription.Text = ""
+ '
+ 'lblDescription
+ '
+ Me.lblDescription.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblDescription.Location = New System.Drawing.Point(24, 186)
+ Me.lblDescription.Name = "lblDescription"
+ Me.lblDescription.Size = New System.Drawing.Size(86, 14)
+ Me.lblDescription.TabIndex = 14
+ Me.lblDescription.Text = "Description"
+ Me.lblDescription.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblSubcontractorNo
+ '
+ Me.lblSubcontractorNo.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblSubcontractorNo.Location = New System.Drawing.Point(14, 29)
+ Me.lblSubcontractorNo.Name = "lblSubcontractorNo"
+ Me.lblSubcontractorNo.Size = New System.Drawing.Size(96, 14)
+ Me.lblSubcontractorNo.TabIndex = 0
+ Me.lblSubcontractorNo.Text = "Subcontractor No"
+ Me.lblSubcontractorNo.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblContactorName
+ '
+ Me.lblContactorName.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblContactorName.Location = New System.Drawing.Point(24, 59)
+ Me.lblContactorName.Name = "lblContactorName"
+ Me.lblContactorName.Size = New System.Drawing.Size(86, 14)
+ Me.lblContactorName.TabIndex = 2
+ Me.lblContactorName.Text = "Contactor Name"
+ Me.lblContactorName.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'txtSubcontractorNo
+ '
+ Me.txtSubcontractorNo.Location = New System.Drawing.Point(120, 24)
+ Me.txtSubcontractorNo.Name = "txtSubcontractorNo"
+ Me.txtSubcontractorNo.ReadOnly = True
+ Me.txtSubcontractorNo.Size = New System.Drawing.Size(114, 26)
+ Me.txtSubcontractorNo.TabIndex = 1
+ Me.txtSubcontractorNo.TabStop = False
+ '
+ 'txtContactorName
+ '
+ Appearance1.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtContactorName.Appearance = Appearance1
+ Me.txtContactorName.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtContactorName.Location = New System.Drawing.Point(120, 56)
+ Me.txtContactorName.Name = "txtContactorName"
+ Me.txtContactorName.Size = New System.Drawing.Size(160, 26)
+ Me.txtContactorName.TabIndex = 3
+ '
+ 'txtTelNo
+ '
+ Me.txtTelNo.Location = New System.Drawing.Point(120, 88)
+ Me.txtTelNo.Name = "txtTelNo"
+ Me.txtTelNo.Size = New System.Drawing.Size(114, 26)
+ Me.txtTelNo.TabIndex = 5
+ '
+ 'frmSubcontractorContDef
+ '
+ Me.ClientSize = New System.Drawing.Size(496, 446)
+ Me.Controls.Add(Me.gbxSubcontractorContData)
+ Me.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Name = "frmSubcontractorContDef"
+ Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
+ Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
+ Me.Text = "ENT Subcontractor Contactor Define"
+ Me.Controls.SetChildIndex(Me.btnClose, 0)
+ Me.Controls.SetChildIndex(Me.btnConfirm, 0)
+ Me.Controls.SetChildIndex(Me.btnApply, 0)
+ Me.Controls.SetChildIndex(Me.gbxBasisData, 0)
+ Me.Controls.SetChildIndex(Me.gbxSubcontractorContData, 0)
+ CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.gbxSubcontractorContData.ResumeLayout(False)
+ Me.gbxSubcontractorContData.PerformLayout()
+ CType(Me.txtAddress, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtEMail, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtTitle, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtFaxNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtSubcontractorNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtContactorName, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtTelNo, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.ResumeLayout(False)
+
+ End Sub
+
+#End Region
+
+ Private Sub frmSubcontractorContDef_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
+
+ Cursor.Current = Cursors.WaitCursor
+
+ Select Case DefMode
+ Case 0
+ Me.Text = Me.Text & "(ADD)"
+ Case 1
+ Me.Text = Me.Text & "(EDIT)"
+ Case 2
+ Me.Text = Me.Text & "(Copy)"
+ Case Else
+ Me.Text = Me.Text & "(Unknown)"
+ End Select
+
+ '做為MainForm判斷是否重新LoadData的依據()
+ gReturnKeyValue = ""
+
+ ' 2016 YF, wsENT.Url = LocalizeWebService(wsENT.Url.ToString)
+ ' 2016 YF, wsENT.EnableDecompression = True
+ If DefMode = 0 Or DefMode = 2 Then
+ SetCreateDate(Now)
+ SetCreator(gUserNo)
+ End If
+ If Not EditDataRow Is Nothing Then '修改 or Copy
+ txtSubcontractorNo.Text = EditDataRow.Item("SubcontractorNo").ToString
+ txtContactorName.Text = EditDataRow.Item("ContactorName").ToString
+ txtTelNo.Text = EditDataRow.Item("TelNo").ToString
+ txtFaxNo.Text = EditDataRow.Item("FaxNo").ToString
+ txtTitle.Text = EditDataRow.Item("Title").ToString
+ txtAddress.Text = EditDataRow.Item("Address").ToString
+ txtEMail.Text = EditDataRow.Item("EMail").ToString
+ 'txtDescription是RichTextBox(Control, 因為TextBox無法正常顯示多行換行的資料)
+ txtDescription.Text = EditDataRow.Item("Description").ToString
+ If DefMode = 1 Then
+ If (Not IsDBNull(EditDataRow("Creator"))) Then
+ SetCreateDate(Convert.ToDateTime(EditDataRow.Item("CreateDate")))
+ SetCreator(EditDataRow.Item("Creator").ToString)
+ End If
+ End If
+ End If
+
+ If DefMode = 0 Then 'Add
+ txtSubcontractorNo.Text = SubcontractorNo
+ SetCreateDate(Now)
+ SetCreator(gUserNo)
+ ElseIf DefMode = 1 Then 'Edit
+ txtContactorName.ReadOnly = True
+ SetReviseDate(Now)
+ SetReviser(gUserNo)
+ intDataStamp = EditDataRow.Item("DataStamp")
+ End If
+
+ btnApplyEnabled = False
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ ExeGroupControlPriv(Me, PrivFunNo)
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub frmSubcontractorContDef_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
+ If DefMode = 0 Or DefMode = 2 Then
+ txtContactorName.Focus()
+ Else
+ txtTelNo.Focus()
+ End If
+ End Sub
+
+ Protected Overrides Sub btnConfirm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If funAddorEdit(sender) < 0 Then Exit Sub
+
+ Me.Close()
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Protected Overrides Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+ Me.Close()
+ End Sub
+
+ Protected Overrides Sub btnApply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If funAddorEdit(sender) < 0 Then Exit Sub
+
+ If DefMode = 0 Or DefMode = 2 Then
+ txtContactorName.Focus()
+ Else
+ txtTelNo.Focus()
+ End If
+
+ txtEMail.Text = ""
+ btnApplyEnabled = False
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+#Region "Control KeyPress"
+
+ Private Sub txtSubcontractorNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Click
+ txtSubcontractorNo.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorNo_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Enter
+ txtSubcontractorNo.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorNo_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSubcontractorNo.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtSubcontractorNo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtContactorName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtContactorName.Click
+ txtContactorName.SelectAll()
+ End Sub
+
+ Private Sub txtContactorName_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtContactorName.Enter
+ txtContactorName.SelectAll()
+ End Sub
+
+ Private Sub txtContactorName_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtContactorName.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtContactorName_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtContactorName.Leave
+ If txtContactorName.Text <> "" And txtEMail.Text = "" Then
+ txtEMail.Text = txtContactorName.Text & "@"
+ End If
+ txtContactorName.Text = UCase(txtContactorName.Text)
+ End Sub
+
+ Private Sub txtContactorName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtContactorName.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtTelNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTelNo.Click
+ txtTelNo.SelectAll()
+ End Sub
+
+ Private Sub txtTelNo_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTelNo.Enter
+ txtTelNo.SelectAll()
+ End Sub
+
+ Private Sub txtTelNo_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTelNo.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtTelNo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTelNo.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtFaxNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFaxNo.Click
+ txtFaxNo.SelectAll()
+ End Sub
+
+ Private Sub txtFaxNo_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFaxNo.Enter
+ txtFaxNo.SelectAll()
+ End Sub
+
+ Private Sub txtFaxNo_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtFaxNo.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtFaxNo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFaxNo.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtTitle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTitle.Click
+ txtTitle.SelectAll()
+ End Sub
+
+ Private Sub txtTitle_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTitle.Enter
+ txtTitle.SelectAll()
+ End Sub
+
+ Private Sub txtTitle_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTitle.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtTitle_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTitle.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtEMail_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtEMail.Click
+ txtEMail.SelectAll()
+ End Sub
+
+ Private Sub txtEMail_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtEMail.Enter
+ txtEMail.SelectAll()
+ End Sub
+
+ Private Sub txtEMail_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtEMail.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtEMail_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtEMail.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtAddress_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtAddress.Click
+ txtAddress.SelectAll()
+ End Sub
+
+ Private Sub txtAddress_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtAddress.Enter
+ txtAddress.SelectAll()
+ End Sub
+
+ Private Sub txtAddress_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtAddress.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtAddress_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtAddress.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtDescription_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDescription.Click
+ txtDescription.SelectAll()
+ End Sub
+
+ Private Sub txtDescription_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDescription.Enter
+ txtDescription.SelectAll()
+ End Sub
+
+ Private Sub txtDescription_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtDescription.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtDescription_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDescription.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+#End Region
+
+#Region "Others"
+
+ Private Function funAddorEdit(sender As Object) As Integer
+
+ funAddorEdit = -1
+
+ '******************************************************************************
+ '1.基本檢查()
+ '******************************************************************************
+ If txtSubcontractorNo.Text = "" Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200001", "[%SubcontractorNo%]"), MsgBoxStyle.Exclamation, Me.Text)
+ txtSubcontractorNo.Focus()
+ Exit Function
+ End If
+ If txtContactorName.Text = "" Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200001", "[%ContactorName%]"), MsgBoxStyle.Exclamation, Me.Text)
+ txtContactorName.Focus()
+ Exit Function
+ End If
+
+ '******************************************************************************
+ '2.寫回資料庫()
+ '******************************************************************************
+ Dim XmlDoc As New XmlDocument
+
+ Try
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ strParameter = CombineXMLParameter("subcontractorno", "SubcontractorNo", "String", CInput(txtSubcontractorNo.Text), "")
+ strParameter = strParameter & CombineXMLParameter("contactorname", "ContactorName", "String", CInput(txtContactorName.Text), "")
+ strParameter = strParameter & CombineXMLParameter("telno", "TelNo", "String", txtTelNo.Text, "")
+ strParameter = strParameter & CombineXMLParameter("faxno", "FaxNo", "String", txtFaxNo.Text, "")
+ strParameter = strParameter & CombineXMLParameter("title", "Title", "String", CInput(txtTitle.Text), "")
+ strParameter = strParameter & CombineXMLParameter("address", "Address", "String", CInput(txtAddress.Text), "")
+ strParameter = strParameter & CombineXMLParameter("email", "EMail", "String", CInput(txtEMail.Text), "")
+ strParameter = strParameter & CombineXMLParameter("description", "Description", "String", CInput(txtDescription.Text), "")
+
+
+ If DefMode = 0 Or DefMode = 2 Then 'Add or Copy
+ strParameter += CombineXMLParameter("creator", "Creator", "String", gUserNo, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ ' 2016 YF, OutXml = wsENT.AddSubcontractorCont(InXml)
+ OutXml = InvokeSrv("SXS.wsENT.AddSubcontractorCont", InXml)
+
+ Else 'Edit
+ ' 增加Datastamp
+ strParameter += CombineXMLParameter("datastamp", "Datastamp", "Integer", intDataStamp, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ ' 2016 YF, OutXml = wsENT.EditSubcontractorCont(InXml)
+ OutXml = InvokeSrv("SXS.wsENT.EditSubcontractorCont", InXml)
+
+ End If
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ gReturnKeyValue = txtContactorName.Text
+
+ funAddorEdit = 0
+ If sender.Equals(btnApply) Then
+ intDataStamp += 1
+ End If
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ End If
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Add or Edit ENT Subcontractor Contactor Failed!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ XmlDoc = Nothing
+
+ End Function
+#End Region
+
+
+ Private Sub frmSubcontractorContDef_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
+ ' 2016 YF, If Not wsENT Is Nothing Then wsENT.Dispose()
+ End Sub
+
+ Private Sub btnConfirm_Click_1(sender As Object, e As EventArgs) Handles btnConfirm.Click
+
+ End Sub
+End Class
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/frmSubcontractorDef.resx b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/frmSubcontractorDef.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/frmSubcontractorDef.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/frmSubcontractorDef.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/frmSubcontractorDef.vb
new file mode 100644
index 0000000..4736fa5
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/frmSubcontractorDef.vb
@@ -0,0 +1,460 @@
+Imports iMESExceptionManager
+
+Public Class frmSubcontractorDef
+
+ Inherits COM_Kit.frmDefTemplat
+
+ '//Public Variables
+ Public EditDataRow As DataRow
+ Public DefMode As Integer = 0 '0. ADD, 1.Edit, 2. Copy
+ Public PrivFunNo As String = defString
+
+ '//Web Service相關變數
+ ' 2016 YF, Dim wsENT As New wsENT.wsENT
+ Dim InXml As String
+ Dim OutXml As String
+
+ Dim strIdentity As String
+ Dim strParameter As String
+ Friend WithEvents txtWZ216670 As TextBox
+ Friend WithEvents Label1 As Label
+ Dim intDataStamp As Integer '紀錄DataStamp
+
+#Region " Windows Form Designer generated code "
+
+ Public Sub New()
+ MyBase.New()
+
+ 'This call is required by the Windows Form Designer.
+ InitializeComponent()
+
+ 'Add any initialization after the InitializeComponent() call
+
+ End Sub
+
+ 'Form overrides dispose to clean up the component list.
+ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
+ If disposing Then
+ If Not (components Is Nothing) Then
+ components.Dispose()
+ End If
+ End If
+ MyBase.Dispose(disposing)
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.IContainer
+
+ 'NOTE: The following procedure is required by the Windows Form Designer
+ 'It can be modified using the Windows Form Designer.
+ 'Do not modify it using the code editor.
+ Friend WithEvents txtDescription As System.Windows.Forms.RichTextBox
+ Friend WithEvents lblDescription As System.Windows.Forms.Label
+ Friend WithEvents lblSubcontractorNo As System.Windows.Forms.Label
+ Friend WithEvents lblSubcontractorName As System.Windows.Forms.Label
+ Friend WithEvents gbxSubcontractorData As System.Windows.Forms.GroupBox
+ Friend WithEvents txtSubcontractorNo As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtSubcontractorName As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Private Sub InitializeComponent()
+ Dim Appearance1 As Infragistics.Win.Appearance = New Infragistics.Win.Appearance()
+ Dim Appearance2 As Infragistics.Win.Appearance = New Infragistics.Win.Appearance()
+ Me.gbxSubcontractorData = New System.Windows.Forms.GroupBox()
+ Me.txtDescription = New System.Windows.Forms.RichTextBox()
+ Me.lblDescription = New System.Windows.Forms.Label()
+ Me.lblSubcontractorNo = New System.Windows.Forms.Label()
+ Me.lblSubcontractorName = New System.Windows.Forms.Label()
+ Me.txtSubcontractorNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtSubcontractorName = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtWZ216670 = New System.Windows.Forms.TextBox()
+ Me.Label1 = New System.Windows.Forms.Label()
+ CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.gbxSubcontractorData.SuspendLayout()
+ CType(Me.txtSubcontractorNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtSubcontractorName, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SuspendLayout()
+ '
+ 'gbxBasisData
+ '
+ Me.gbxBasisData.Location = New System.Drawing.Point(12, 185)
+ Me.gbxBasisData.Size = New System.Drawing.Size(479, 70)
+ '
+ 'btnApply
+ '
+ Me.btnApply.Location = New System.Drawing.Point(403, 264)
+ '
+ 'btnConfirm
+ '
+ Me.btnConfirm.Location = New System.Drawing.Point(215, 264)
+ '
+ 'btnClose
+ '
+ Me.btnClose.Location = New System.Drawing.Point(309, 264)
+ '
+ 'gbxSubcontractorData
+ '
+ Me.gbxSubcontractorData.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.gbxSubcontractorData.Controls.Add(Me.Label1)
+ Me.gbxSubcontractorData.Controls.Add(Me.txtWZ216670)
+ Me.gbxSubcontractorData.Controls.Add(Me.txtDescription)
+ Me.gbxSubcontractorData.Controls.Add(Me.lblDescription)
+ Me.gbxSubcontractorData.Controls.Add(Me.lblSubcontractorNo)
+ Me.gbxSubcontractorData.Controls.Add(Me.lblSubcontractorName)
+ Me.gbxSubcontractorData.Controls.Add(Me.txtSubcontractorNo)
+ Me.gbxSubcontractorData.Controls.Add(Me.txtSubcontractorName)
+ Me.gbxSubcontractorData.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.gbxSubcontractorData.Location = New System.Drawing.Point(12, 8)
+ Me.gbxSubcontractorData.Name = "gbxSubcontractorData"
+ Me.gbxSubcontractorData.Size = New System.Drawing.Size(479, 169)
+ Me.gbxSubcontractorData.TabIndex = 7
+ Me.gbxSubcontractorData.TabStop = False
+ Me.gbxSubcontractorData.Text = "Subcontractor Data"
+ '
+ 'txtDescription
+ '
+ Me.txtDescription.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.txtDescription.Location = New System.Drawing.Point(128, 86)
+ Me.txtDescription.Name = "txtDescription"
+ Me.txtDescription.Size = New System.Drawing.Size(334, 67)
+ Me.txtDescription.TabIndex = 2
+ Me.txtDescription.Text = ""
+ '
+ 'lblDescription
+ '
+ Me.lblDescription.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblDescription.Location = New System.Drawing.Point(56, 88)
+ Me.lblDescription.Name = "lblDescription"
+ Me.lblDescription.Size = New System.Drawing.Size(64, 14)
+ Me.lblDescription.TabIndex = 13
+ Me.lblDescription.Text = "Description"
+ Me.lblDescription.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblSubcontractorNo
+ '
+ Me.lblSubcontractorNo.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblSubcontractorNo.Location = New System.Drawing.Point(24, 24)
+ Me.lblSubcontractorNo.Name = "lblSubcontractorNo"
+ Me.lblSubcontractorNo.Size = New System.Drawing.Size(96, 32)
+ Me.lblSubcontractorNo.TabIndex = 5
+ Me.lblSubcontractorNo.Text = "Subcontractor No"
+ Me.lblSubcontractorNo.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblSubcontractorName
+ '
+ Me.lblSubcontractorName.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblSubcontractorName.Location = New System.Drawing.Point(8, 56)
+ Me.lblSubcontractorName.Name = "lblSubcontractorName"
+ Me.lblSubcontractorName.Size = New System.Drawing.Size(112, 32)
+ Me.lblSubcontractorName.TabIndex = 9
+ Me.lblSubcontractorName.Text = "Subcontractor Name"
+ Me.lblSubcontractorName.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'txtSubcontractorNo
+ '
+ Appearance1.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtSubcontractorNo.Appearance = Appearance1
+ Me.txtSubcontractorNo.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtSubcontractorNo.Location = New System.Drawing.Point(128, 24)
+ Me.txtSubcontractorNo.Name = "txtSubcontractorNo"
+ Me.txtSubcontractorNo.Size = New System.Drawing.Size(152, 26)
+ Me.txtSubcontractorNo.TabIndex = 0
+ '
+ 'txtSubcontractorName
+ '
+ Appearance2.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtSubcontractorName.Appearance = Appearance2
+ Me.txtSubcontractorName.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtSubcontractorName.Location = New System.Drawing.Point(128, 55)
+ Me.txtSubcontractorName.Name = "txtSubcontractorName"
+ Me.txtSubcontractorName.Size = New System.Drawing.Size(334, 26)
+ Me.txtSubcontractorName.TabIndex = 1
+ '
+ 'txtWZ216670
+ '
+ Me.txtWZ216670.Location = New System.Drawing.Point(362, 25)
+ Me.txtWZ216670.Name = "txtWZ216670"
+ Me.txtWZ216670.Size = New System.Drawing.Size(100, 25)
+ Me.txtWZ216670.TabIndex = 14
+ '
+ 'Label1
+ '
+ Me.Label1.AutoSize = True
+ Me.Label1.Location = New System.Drawing.Point(297, 24)
+ Me.Label1.Name = "Label1"
+ Me.Label1.Size = New System.Drawing.Size(66, 17)
+ Me.Label1.TabIndex = 15
+ Me.Label1.Text = "WZ21670"
+ '
+ 'frmSubcontractorDef
+ '
+ Me.ClientSize = New System.Drawing.Size(503, 309)
+ Me.Controls.Add(Me.gbxSubcontractorData)
+ Me.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Name = "frmSubcontractorDef"
+ Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
+ Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
+ Me.Text = "ENT Subcontractor Define"
+ Me.Controls.SetChildIndex(Me.btnClose, 0)
+ Me.Controls.SetChildIndex(Me.btnConfirm, 0)
+ Me.Controls.SetChildIndex(Me.btnApply, 0)
+ Me.Controls.SetChildIndex(Me.gbxBasisData, 0)
+ Me.Controls.SetChildIndex(Me.gbxSubcontractorData, 0)
+ CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.gbxSubcontractorData.ResumeLayout(False)
+ Me.gbxSubcontractorData.PerformLayout()
+ CType(Me.txtSubcontractorNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtSubcontractorName, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.ResumeLayout(False)
+
+ End Sub
+
+#End Region
+
+ Private Sub frmSubcontractorDef_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
+
+ Cursor.Current = Cursors.WaitCursor
+
+ Select Case DefMode
+ Case 0
+ Me.Text = Me.Text & "(ADD)"
+ Case 1
+ Me.Text = Me.Text & "(EDIT)"
+ Case 2
+ Me.Text = Me.Text & "(Copy)"
+ Case Else
+ Me.Text = Me.Text & "(Unknown)"
+ End Select
+
+ '做為MainForm判斷是否重新LoadData的依據
+ gReturnKeyValue = ""
+
+ ' 2016 YF, wsENT.Url = LocalizeWebService(wsENT.Url.ToString)
+ ' 2016 YF, wsENT.EnableDecompression = True
+
+ If Not EditDataRow Is Nothing Then
+ txtSubcontractorNo.Text = EditDataRow.Item("SubcontractorNo").ToString
+ txtSubcontractorName.Text = EditDataRow.Item("SubcontractorName").ToString
+ 'txtDescription是RichTextBox Control,因為TextBox無法正常顯示多行換行的資料
+ txtDescription.Text = EditDataRow.Item("Description").ToString
+ End If
+
+ If DefMode = 0 Or DefMode = 2 Then 'Add or Copy
+ SetCreator(gUserNo)
+ SetCreateDate(Now)
+ ElseIf DefMode = 1 Then 'Edit
+ txtSubcontractorNo.ReadOnly = True
+ SetCreator(EditDataRow.Item("Creator").ToString)
+ SetCreateDate(Convert.ToDateTime(EditDataRow.Item("CreateDate")))
+ SetReviser(gUserNo)
+ SetReviseDate(Now)
+ intDataStamp = EditDataRow.Item("DataStamp")
+ End If
+
+ btnApplyEnabled = False
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ ExeGroupControlPriv(Me, PrivFunNo)
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub frmSubcontractorDef_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
+ If DefMode = 0 Or DefMode = 2 Then
+ txtSubcontractorNo.Focus()
+ Else
+ txtSubcontractorName.Focus()
+ End If
+ End Sub
+
+ Protected Overrides Sub btnConfirm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If funAddorEdit(sender) < 0 Then Exit Sub
+
+ Me.Close()
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Protected Overrides Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+ Me.Close()
+ End Sub
+
+ Protected Overrides Sub btnApply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If funAddorEdit(sender) < 0 Then Exit Sub
+
+ If DefMode = 0 Or DefMode = 2 Then
+ txtSubcontractorNo.Focus()
+ Else
+ txtSubcontractorName.Focus()
+
+ End If
+
+ Cursor.Current = Cursors.Default
+ btnApplyEnabled = False
+
+ End Sub
+
+ Private Sub frmSubcontractorDef_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
+ ' 2016 YF, If Not wsENT Is Nothing Then wsENT.Dispose()
+ End Sub
+
+#Region "Control KeyPress"
+
+ Private Sub txtSubcontractorNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Click
+ txtSubcontractorNo.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorNo_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Enter
+ txtSubcontractorNo.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorNo_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSubcontractorNo.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtSubcontractorNo_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Leave
+ txtSubcontractorNo.Text = UCase(txtSubcontractorNo.Text)
+ End Sub
+
+ Private Sub txtSubcontractorNo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtSubcontractorName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorName.Click
+ txtSubcontractorName.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorName_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorName.Enter
+ txtSubcontractorName.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorName_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSubcontractorName.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtSubcontractorName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorName.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtDescription_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDescription.Click
+ txtDescription.SelectAll()
+ End Sub
+
+ Private Sub txtDescription_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDescription.Enter
+ txtDescription.SelectAll()
+ End Sub
+
+ Private Sub txtDescription_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDescription.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+#End Region
+
+#Region "Others"
+
+ Private Function funAddorEdit(sender As Object) As Integer
+
+ funAddorEdit = -1
+
+ '******************************************************************************
+ '1.基本檢查
+ '******************************************************************************
+ If txtSubcontractorNo.Text = "" Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200001", "[%SubcontractorNo%]"), MsgBoxStyle.Exclamation, Me.Text)
+ txtSubcontractorNo.Focus()
+ Exit Function
+ End If
+
+ If txtSubcontractorName.Text = "" Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200001", "[%SubcontractorName%]"), MsgBoxStyle.Exclamation, Me.Text)
+ txtSubcontractorName.Focus()
+ Exit Function
+ End If
+
+ '2.
+ '******************************************************************************
+ '寫回資料庫
+ '******************************************************************************
+ Dim XmlDoc As New XmlDocument
+
+ Try
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ strParameter = CombineXMLParameter("subcontractorno", "SubcontractorNo", "String", CInput(txtSubcontractorNo.Text), "")
+ strParameter = strParameter & CombineXMLParameter("subcontractorname", "SubcontractorName", "String", CInput(txtSubcontractorName.Text), "")
+ strParameter = strParameter & CombineXMLParameter("description", "Description", "String", CInput(txtDescription.Text), "")
+ strParameter = strParameter & CombineXMLParameter("wz21670", "WZ21670", "String", CInput(txtWZ216670.Text), "")
+
+ If DefMode = 0 Or DefMode = 2 Then 'Add or Copy
+ strParameter = strParameter & CombineXMLParameter("creator", "Creator", "String", gUserNo, "")
+ strParameter = strParameter & CombineXMLParameter("createdate", "CreateDate", "DateTime", Format(Now, "yyyy/MM/dd HH:mm:ss"), "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ ' 2016 YF, OutXml = wsENT.AddSubcontractor(InXml)
+ OutXml = InvokeSrv("SXS.wsENT.AddSubcontractor", InXml)
+
+ Else
+ '修改
+ strParameter = strParameter & CombineXMLParameter("issuestate", "IssueState", "String", EditDataRow.Item("IssueState").ToString, "")
+ ' 增加Datastamp
+ strParameter += CombineXMLParameter("datastamp", "Datastamp", "Integer", intDataStamp, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ ' 2016 YF, OutXml = wsENT.EditSubcontractor(InXml)
+ OutXml = InvokeSrv("SXS.wsENT.EditSubcontractor", InXml)
+
+ End If
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ gReturnKeyValue = txtSubcontractorNo.Text
+
+ funAddorEdit = 0
+ If sender.Equals(btnApply) Then
+ intDataStamp += 1
+ End If
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ End If
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Add or Edit ENT Subcontractor Failed!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ XmlDoc = Nothing
+
+ End Function
+
+ Private Sub btnConfirm_Click_1(sender As Object, e As EventArgs) Handles btnConfirm.Click
+
+ End Sub
+
+ Private Sub txtSubcontractorNo_ValueChanged(sender As Object, e As EventArgs) Handles txtSubcontractorNo.ValueChanged
+
+ End Sub
+
+ Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles txtWZ216670.TextChanged
+
+ End Sub
+
+ Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click
+
+ End Sub
+
+#End Region
+
+End Class
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/iMES.snk b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/iMES.snk
new file mode 100644
index 0000000..4206cdc
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670/iMES.snk differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor.sln b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor.sln
new file mode 100644
index 0000000..85b1902
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor.sln
@@ -0,0 +1,39 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25123.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ET_Subcontractor", "ET_Subcontractor.vbproj", "{D6EE7B96-F10E-44E2-9731-162B70B4C8DD}"
+EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Test", "..\..\Test\Test.vbproj", "{C4A48E3F-38E4-4E88-A47D-FA5510686E57}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}.Debug|x86.ActiveCfg = Debug|x86
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}.Debug|x86.Build.0 = Debug|x86
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}.Release|x86.ActiveCfg = Release|x86
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}.Release|x86.Build.0 = Release|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Debug|x86.ActiveCfg = Debug|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Debug|x86.Build.0 = Debug|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Release|x86.ActiveCfg = Release|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(TeamFoundationVersionControl) = preSolution
+ SccNumberOfProjects = 3
+ SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
+ SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6
+ SccProjectUniqueName0 = ET_Subcontractor.vbproj
+ SccLocalPath0 = .
+ SccProjectUniqueName1 = ..\\..\\Test\\Test.vbproj
+ SccProjectName1 = ../../Test
+ SccLocalPath1 = ..\\..\\Test
+ SccLocalPath2 = .
+ EndGlobalSection
+EndGlobal
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor.vbproj b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor.vbproj
new file mode 100644
index 0000000..2069bd0
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor.vbproj
@@ -0,0 +1,194 @@
+
+
+
+
+ Debug
+ x86
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}
+ Library
+ ET_Subcontractor_21670_1
+ ET_Subcontractor_21670_1
+ 512
+ Windows
+ v4.6.2
+
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+ true
+ true
+ true
+ ..\..\..\MESClient\
+ ET_Subcontractor_21670_1.xml
+ 0
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ full
+ x86
+ MinimumRecommendedRules.ruleset
+ false
+
+
+ true
+ ..\..\..\MESClient\
+ ET_Subcontractor_21670_1.xml
+ true
+ 0
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ pdbonly
+ x86
+ MinimumRecommendedRules.ruleset
+ false
+
+
+ true
+
+
+ iMES.snk
+
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.v19.1.dll
+ False
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinGrid.v19.1.dll
+ False
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinEditors.v19.1.dll
+ False
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.Misc.v19.1.dll
+ False
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Shared.v19.1.dll
+ False
+
+
+ ..\..\..\MESClient\COM_Kit.dll
+ False
+
+
+ ..\..\..\MES_C_DLL\iMESExceptionManager.dll
+ False
+
+
+ ..\..\..\MES_C_DLL\iMESUltraGrid.dll
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ modConstant.vb
+
+
+ Form
+
+
+ Form
+
+
+ Form
+
+
+
+ True
+ Application.myapp
+ True
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+ frmSubcontractor.vb
+
+
+ frmSubcontractorContDef.vb
+
+
+ frmSubcontractorDef.vb
+
+
+
+ VbMyResourcesResXFileCodeGenerator
+ Resources.Designer.vb
+ My.Resources
+ Designer
+
+
+
+
+
+ MyApplicationCodeGenerator
+ Application.Designer.vb
+
+
+ SettingsSingleFileGenerator
+ My
+ Settings.Designer.vb
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor.vbproj.vspscc b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor.vbproj.vspscc
new file mode 100644
index 0000000..b6d3289
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor.vbproj.vspscc
@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = ""
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/ET_Subcontractor.sln b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/ET_Subcontractor.sln
new file mode 100644
index 0000000..85b1902
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/ET_Subcontractor.sln
@@ -0,0 +1,39 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25123.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ET_Subcontractor", "ET_Subcontractor.vbproj", "{D6EE7B96-F10E-44E2-9731-162B70B4C8DD}"
+EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Test", "..\..\Test\Test.vbproj", "{C4A48E3F-38E4-4E88-A47D-FA5510686E57}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}.Debug|x86.ActiveCfg = Debug|x86
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}.Debug|x86.Build.0 = Debug|x86
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}.Release|x86.ActiveCfg = Release|x86
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}.Release|x86.Build.0 = Release|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Debug|x86.ActiveCfg = Debug|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Debug|x86.Build.0 = Debug|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Release|x86.ActiveCfg = Release|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(TeamFoundationVersionControl) = preSolution
+ SccNumberOfProjects = 3
+ SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
+ SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6
+ SccProjectUniqueName0 = ET_Subcontractor.vbproj
+ SccLocalPath0 = .
+ SccProjectUniqueName1 = ..\\..\\Test\\Test.vbproj
+ SccProjectName1 = ../../Test
+ SccLocalPath1 = ..\\..\\Test
+ SccLocalPath2 = .
+ EndGlobalSection
+EndGlobal
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/ET_Subcontractor.vbproj b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/ET_Subcontractor.vbproj
new file mode 100644
index 0000000..0f2302d
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/ET_Subcontractor.vbproj
@@ -0,0 +1,206 @@
+
+
+
+
+ Debug
+ x86
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}
+ Library
+ ET_Subcontractor_21670_1
+ ET_Subcontractor_21670_1
+ 512
+ Windows
+ v4.6.2
+
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+ true
+ true
+ true
+ ..\..\..\MESClient\
+ ET_Subcontractor_21670_1.xml
+ 0
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ full
+ x86
+ MinimumRecommendedRules.ruleset
+ false
+
+
+ true
+ ..\..\..\MESClient\
+ ET_Subcontractor_21670_1.xml
+ true
+ 0
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ pdbonly
+ x86
+ MinimumRecommendedRules.ruleset
+ false
+
+
+ true
+
+
+ iMES.snk
+
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.v19.1.dll
+ False
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinGrid.v19.1.dll
+ False
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinEditors.v19.1.dll
+ False
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.Misc.v19.1.dll
+ False
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Shared.v19.1.dll
+ False
+
+
+ ..\..\..\MESClient\COM_Kit.dll
+ False
+
+
+ ..\..\..\MES_C_DLL\iMESExceptionManager.dll
+ False
+
+
+ ..\..\..\MES_C_DLL\iMESUltraGrid.dll
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ modConstant.vb
+
+
+ Form1.vb
+
+
+ Form
+
+
+ Form
+
+
+ Form
+
+
+ Form
+
+
+ Form
+
+
+
+ True
+ Application.myapp
+ True
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+ frmBusiness21670.vb
+
+
+ frmSubcontractor.vb
+
+
+ frmSubcontractorContDef.vb
+
+
+ frmSubcontractorDef.vb
+
+
+
+ VbMyResourcesResXFileCodeGenerator
+ Resources.Designer.vb
+ My.Resources
+ Designer
+
+
+
+
+
+ MyApplicationCodeGenerator
+ Application.Designer.vb
+
+
+ SettingsSingleFileGenerator
+ My
+ Settings.Designer.vb
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/ET_Subcontractor.vbproj.user b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/ET_Subcontractor.vbproj.user
new file mode 100644
index 0000000..7273a11
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/ET_Subcontractor.vbproj.user
@@ -0,0 +1,6 @@
+
+
+
+ D:\iMES\MES_Env\607.4\DefaultSite\MESws_STD\bin\
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/ET_Subcontractor.vbproj.vspscc b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/ET_Subcontractor.vbproj.vspscc
new file mode 100644
index 0000000..b6d3289
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/ET_Subcontractor.vbproj.vspscc
@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = ""
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/Form1.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/Form1.Designer.vb
new file mode 100644
index 0000000..c29cf72
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/Form1.Designer.vb
@@ -0,0 +1,32 @@
+
+Partial Class Form1
+
+
+ Inherits COM_Kit.frmBasisTemplat
+
+ 'Form 重写 Dispose,以清理组件列表。
+
+ Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+ Try
+ If disposing AndAlso components IsNot Nothing Then
+ components.Dispose()
+ End If
+ Finally
+ MyBase.Dispose(disposing)
+ End Try
+ End Sub
+
+ 'Windows 窗体设计器所必需的
+ Private components As System.ComponentModel.IContainer
+
+ '注意: 以下过程是 Windows 窗体设计器所必需的
+ '可以使用 Windows 窗体设计器修改它。
+ '不要使用代码编辑器修改它。
+
+ Private Sub InitializeComponent()
+ components = New System.ComponentModel.Container
+ Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+ Me.ClientSize = New System.Drawing.Size(800, 450)
+ Me.Text = "Form1"
+ End Sub
+End Class
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/Form1.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/Form1.vb
new file mode 100644
index 0000000..10d55d4
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/Form1.vb
@@ -0,0 +1,3 @@
+Public Class Form1
+
+End Class
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/Application.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/Application.Designer.vb
new file mode 100644
index 0000000..537244b
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/Application.Designer.vb
@@ -0,0 +1,13 @@
+'------------------------------------------------------------------------------
+'
+' 此代码由工具生成。
+' 运行时版本:4.0.30319.42000
+'
+' 对此文件的更改可能会导致不正确的行为,并且如果
+' 重新生成代码,这些更改将会丢失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/Application.myapp b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/Application.myapp
new file mode 100644
index 0000000..758895d
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/Application.myapp
@@ -0,0 +1,10 @@
+
+
+ false
+ false
+ 0
+ true
+ 0
+ 1
+ true
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/AssemblyInfo.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/AssemblyInfo.vb
new file mode 100644
index 0000000..b0cdd98
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/AssemblyInfo.vb
@@ -0,0 +1,35 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' 組件的一般資訊是由下列的屬性集控制。
+' 變更這些屬性的值即可修改組件的相關
+' 資訊。
+
+' 檢閱組件屬性的值
+
+
+
+
+
+
+
+
+
+
+'下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID
+
+
+' 組件的版本資訊由下列四個值所組成:
+'
+' 主要版本
+' 次要版本
+' 組建編號
+' 修訂編號
+'
+' 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號
+' 指定為預設值:
+'
+
+
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/BuildIncrementVersionInfo.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/BuildIncrementVersionInfo.vb
new file mode 100644
index 0000000..755cff8
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/BuildIncrementVersionInfo.vb
@@ -0,0 +1 @@
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/Resources.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/Resources.Designer.vb
new file mode 100644
index 0000000..af2b746
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/Resources.Designer.vb
@@ -0,0 +1,63 @@
+'------------------------------------------------------------------------------
+'
+' 此代码由工具生成。
+' 运行时版本:4.0.30319.42000
+'
+' 对此文件的更改可能会导致不正确的行为,并且如果
+' 重新生成代码,这些更改将会丢失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+Imports System
+
+Namespace My.Resources
+
+ '此类是由 StronglyTypedResourceBuilder
+ '类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
+ '若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
+ '(以 /str 作为命令选项),或重新生成 VS 项目。
+ '''
+ ''' 一个强类型的资源类,用于查找本地化的字符串等。
+ '''
+ _
+ Friend Module Resources
+
+ Private resourceMan As Global.System.Resources.ResourceManager
+
+ Private resourceCulture As Global.System.Globalization.CultureInfo
+
+ '''
+ ''' 返回此类使用的缓存的 ResourceManager 实例。
+ '''
+ _
+ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+ Get
+ If Object.ReferenceEquals(resourceMan, Nothing) Then
+ Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ET_Subcontractor_21670_1.Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' 重写当前线程的 CurrentUICulture 属性,对
+ ''' 使用此强类型资源类的所有资源查找执行重写。
+ '''
+ _
+ Friend Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set
+ resourceCulture = value
+ End Set
+ End Property
+ End Module
+End Namespace
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/Resources.resx b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/Settings.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/Settings.Designer.vb
new file mode 100644
index 0000000..1c9fffa
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/Settings.Designer.vb
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+'
+' 此代码由工具生成。
+' 运行时版本:4.0.30319.42000
+'
+' 对此文件的更改可能会导致不正确的行为,并且如果
+' 重新生成代码,这些更改将会丢失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ _
+ Partial Friend NotInheritable Class MySettings
+ Inherits Global.System.Configuration.ApplicationSettingsBase
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
+
+#Region "My.Settings 自动保存功能"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
+#End If
+#End Region
+
+ Public Shared ReadOnly Property [Default]() As MySettings
+ Get
+
+#If _MyType = "WindowsForms" Then
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
+#End If
+ Return defaultInstance
+ End Get
+ End Property
+ End Class
+End Namespace
+
+Namespace My
+
+ _
+ Friend Module MySettingsProperty
+
+ _
+ Friend ReadOnly Property Settings() As Global.ET_Subcontractor_21670_1.My.MySettings
+ Get
+ Return Global.ET_Subcontractor_21670_1.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/Settings.settings b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/Settings.settings
new file mode 100644
index 0000000..85b890b
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/licenses.licx b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/licenses.licx
new file mode 100644
index 0000000..e3f40e2
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/My Project/licenses.licx
@@ -0,0 +1,7 @@
+Infragistics.Win.Misc.UltraButton, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.UltraWinEditors.UltraRadioButton, Infragistics4.Win.UltraWinEditors.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.UltraWinEditors.UltraComboEditor, Infragistics4.Win.UltraWinEditors.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.Misc.UltraGroupBox, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.UltraWinEditors.UltraTextEditor, Infragistics4.Win.UltraWinEditors.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.Misc.UltraLabel, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.Misc.UltraPanel, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmBusiness21670.resx b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmBusiness21670.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmBusiness21670.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmBusiness21670.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmBusiness21670.vb
new file mode 100644
index 0000000..cbad98c
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmBusiness21670.vb
@@ -0,0 +1,1129 @@
+Imports iMESExceptionManager
+
+Imports Infragistics.Win
+Imports Infragistics.Win.UltraWinGrid
+Public Class frmSubcontractor1
+
+ Inherits COM_Kit.frmBasisTemplat
+
+ Public PrivFunNo As String = defString
+
+ '//WS相關變數
+ ' 2016 YF, Dim wsENT As New wsENT.wsENT '宣告Web Service物件?
+ Dim tmpStringReader As System.IO.StringReader '將字串轉換成可讀入DataSet的物件
+ Dim XmlData As String '儲存取回之資料
+ Dim XmlSchema As String '儲存取回之資料結構
+ Dim InXml As String '儲存呼叫Web Service的傳入參數(Request字串)
+ Dim OutXml As String '儲存Web Service的傳回值(Response字串)
+ Dim strIdentity As String '儲存Identity XML字串?
+ Dim strParameter As String '儲存Parameter XML字串
+
+ '//資料表相關變數
+
+ Dim dsENT As New DataSet '資料集:儲存取回之資料?
+
+ Dim tblENTSubcontractor As String '儲存取回資料表的名稱(master)?
+ Dim tblENTSubcontractorCont As String '明細資料表名稱(detail)
+ Dim strFilter As String 'Filter string及列印的過濾條件
+
+ '//其他共用變數
+ Dim SubcontractorNo As String 'for Gird to Focus
+ Dim ContactorName As String 'for DetailGrid to Focus
+ Dim ugrRow As Infragistics.Win.UltraWinGrid.UltraGridRow
+ Friend WithEvents btnAdd As Misc.UltraButton
+ Friend WithEvents btnEdit As Misc.UltraButton
+ Friend WithEvents btnDel As Misc.UltraButton
+ Friend WithEvents btnCopy As Misc.UltraButton
+ Friend WithEvents btnApprove As Misc.UltraButton
+ Friend WithEvents iugSubcontractor As iMESUltraGrid.iMESUltraGridControl
+ Dim i As Integer
+
+#Region " Windows Form Designer generated code "
+
+ Public Sub New()
+ MyBase.New()
+
+ 'This call is required by the Windows Form Designer.
+ InitializeComponent()
+
+ 'Add any initialization after the InitializeComponent() call
+
+ End Sub
+
+ 'Form overrides dispose to clean up the component list.
+ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
+ If disposing Then
+ If Not (components Is Nothing) Then
+ components.Dispose()
+ End If
+ End If
+ MyBase.Dispose(disposing)
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.Container
+ Friend WithEvents iugDetail As iMESUltraGrid.iMESUltraGridControl
+ Friend WithEvents btnClose As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnEMail As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDCopy As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDDel As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDEdit As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDAdd As Infragistics.Win.Misc.UltraButton
+ Private Sub InitializeComponent()
+ Me.btnClose = New Infragistics.Win.Misc.UltraButton()
+ Me.btnEMail = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDCopy = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDDel = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDEdit = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDAdd = New Infragistics.Win.Misc.UltraButton()
+ Me.iugDetail = New iMESUltraGrid.iMESUltraGridControl()
+ Me.btnAdd = New Infragistics.Win.Misc.UltraButton()
+ Me.btnEdit = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDel = New Infragistics.Win.Misc.UltraButton()
+ Me.btnCopy = New Infragistics.Win.Misc.UltraButton()
+ Me.btnApprove = New Infragistics.Win.Misc.UltraButton()
+ Me.iugSubcontractor = New iMESUltraGrid.iMESUltraGridControl()
+ Me.SuspendLayout()
+ '
+ 'btnClose
+ '
+ Me.btnClose.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnClose.Location = New System.Drawing.Point(912, 552)
+ Me.btnClose.Name = "btnClose"
+ Me.btnClose.Size = New System.Drawing.Size(88, 32)
+ Me.btnClose.TabIndex = 18
+ Me.btnClose.Text = "Close (&X)"
+ '
+ 'btnEMail
+ '
+ Me.btnEMail.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnEMail.Location = New System.Drawing.Point(912, 429)
+ Me.btnEMail.Name = "btnEMail"
+ Me.btnEMail.Size = New System.Drawing.Size(88, 32)
+ Me.btnEMail.TabIndex = 17
+ Me.btnEMail.Text = "Mail"
+ '
+ 'btnDCopy
+ '
+ Me.btnDCopy.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDCopy.Location = New System.Drawing.Point(912, 389)
+ Me.btnDCopy.Name = "btnDCopy"
+ Me.btnDCopy.Size = New System.Drawing.Size(88, 32)
+ Me.btnDCopy.TabIndex = 16
+ Me.btnDCopy.Text = "Copy"
+ '
+ 'btnDDel
+ '
+ Me.btnDDel.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDDel.Location = New System.Drawing.Point(912, 349)
+ Me.btnDDel.Name = "btnDDel"
+ Me.btnDDel.Size = New System.Drawing.Size(88, 32)
+ Me.btnDDel.TabIndex = 15
+ Me.btnDDel.Text = "DEL"
+ '
+ 'btnDEdit
+ '
+ Me.btnDEdit.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDEdit.Location = New System.Drawing.Point(912, 309)
+ Me.btnDEdit.Name = "btnDEdit"
+ Me.btnDEdit.Size = New System.Drawing.Size(88, 32)
+ Me.btnDEdit.TabIndex = 14
+ Me.btnDEdit.Text = "EDIT"
+ '
+ 'btnDAdd
+ '
+ Me.btnDAdd.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDAdd.Location = New System.Drawing.Point(912, 269)
+ Me.btnDAdd.Name = "btnDAdd"
+ Me.btnDAdd.Size = New System.Drawing.Size(88, 32)
+ Me.btnDAdd.TabIndex = 13
+ Me.btnDAdd.Text = "ADD"
+ '
+ 'iugDetail
+ '
+ Me.iugDetail.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.iugDetail.EnterDirection = iMESUltraGrid.iMESUltraGridControl.EnterDirectionEnum.Down
+ Me.iugDetail.GroupBoxPromptText = "Drag a column header here to group by that column."
+ Me.iugDetail.GroupBoxTextForeColor = System.Drawing.Color.Red
+ Me.iugDetail.Identity = "IMes"
+ Me.iugDetail.IdentityForm = ""
+ Me.iugDetail.LayOutFilePath = ""
+ Me.iugDetail.Location = New System.Drawing.Point(12, 270)
+ Me.iugDetail.Name = "iugDetail"
+ Me.iugDetail.PrintFitWidthToPages = 0
+ Me.iugDetail.PrintLandscape = True
+ Me.iugDetail.PrintPageFooter = ""
+ Me.iugDetail.PrintPageFooterHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugDetail.PrintPageFooterHeight = 20
+ Me.iugDetail.PrintPageHeader = ""
+ Me.iugDetail.PrintPageHeaderHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugDetail.PrintPageHeaderHeight = 20
+ Me.iugDetail.PrintZoom = 1.0R
+ Me.iugDetail.Size = New System.Drawing.Size(894, 314)
+ Me.iugDetail.TabIndex = 12
+ Me.iugDetail.UserNo = "IMes"
+ '
+ 'btnAdd
+ '
+ Me.btnAdd.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnAdd.Location = New System.Drawing.Point(912, 53)
+ Me.btnAdd.Name = "btnAdd"
+ Me.btnAdd.Size = New System.Drawing.Size(88, 32)
+ Me.btnAdd.TabIndex = 20
+ Me.btnAdd.Text = "Add(&A)"
+ '
+ 'btnEdit
+ '
+ Me.btnEdit.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnEdit.Location = New System.Drawing.Point(912, 93)
+ Me.btnEdit.Name = "btnEdit"
+ Me.btnEdit.Size = New System.Drawing.Size(88, 32)
+ Me.btnEdit.TabIndex = 21
+ Me.btnEdit.Text = "Edit(&E)"
+ '
+ 'btnDel
+ '
+ Me.btnDel.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDel.Location = New System.Drawing.Point(912, 133)
+ Me.btnDel.Name = "btnDel"
+ Me.btnDel.Size = New System.Drawing.Size(88, 32)
+ Me.btnDel.TabIndex = 22
+ Me.btnDel.Text = "Del(&D)"
+ '
+ 'btnCopy
+ '
+ Me.btnCopy.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnCopy.Location = New System.Drawing.Point(912, 173)
+ Me.btnCopy.Name = "btnCopy"
+ Me.btnCopy.Size = New System.Drawing.Size(88, 32)
+ Me.btnCopy.TabIndex = 23
+ Me.btnCopy.Text = "Copy(&C)"
+ '
+ 'btnApprove
+ '
+ Me.btnApprove.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnApprove.Location = New System.Drawing.Point(912, 213)
+ Me.btnApprove.Name = "btnApprove"
+ Me.btnApprove.Size = New System.Drawing.Size(88, 32)
+ Me.btnApprove.TabIndex = 24
+ Me.btnApprove.Text = "Approve(&Y)"
+ '
+ 'iugSubcontractor
+ '
+ Me.iugSubcontractor.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.iugSubcontractor.EnterDirection = iMESUltraGrid.iMESUltraGridControl.EnterDirectionEnum.Down
+ Me.iugSubcontractor.GroupBoxPromptText = "Drag a column header here to group by that column."
+ Me.iugSubcontractor.GroupBoxTextForeColor = System.Drawing.Color.Red
+ Me.iugSubcontractor.Identity = "IMes"
+ Me.iugSubcontractor.IdentityForm = ""
+ Me.iugSubcontractor.LayOutFilePath = ""
+ Me.iugSubcontractor.Location = New System.Drawing.Point(12, 53)
+ Me.iugSubcontractor.Name = "iugSubcontractor"
+ Me.iugSubcontractor.PrintFitWidthToPages = 0
+ Me.iugSubcontractor.PrintLandscape = True
+ Me.iugSubcontractor.PrintPageFooter = ""
+ Me.iugSubcontractor.PrintPageFooterHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugSubcontractor.PrintPageFooterHeight = 20
+ Me.iugSubcontractor.PrintPageHeader = ""
+ Me.iugSubcontractor.PrintPageHeaderHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugSubcontractor.PrintPageHeaderHeight = 20
+ Me.iugSubcontractor.PrintZoom = 1.0R
+ Me.iugSubcontractor.Size = New System.Drawing.Size(894, 192)
+ Me.iugSubcontractor.TabIndex = 25
+ Me.iugSubcontractor.UserNo = "IMes"
+ '
+ 'frmSubcontractor
+ '
+ Me.ClientSize = New System.Drawing.Size(1008, 591)
+ Me.Controls.Add(Me.btnClose)
+ Me.Controls.Add(Me.btnApprove)
+ Me.Controls.Add(Me.btnEMail)
+ Me.Controls.Add(Me.btnDCopy)
+ Me.Controls.Add(Me.btnCopy)
+ Me.Controls.Add(Me.btnDDel)
+ Me.Controls.Add(Me.iugSubcontractor)
+ Me.Controls.Add(Me.btnDEdit)
+ Me.Controls.Add(Me.btnAdd)
+ Me.Controls.Add(Me.btnDAdd)
+ Me.Controls.Add(Me.btnDel)
+ Me.Controls.Add(Me.iugDetail)
+ Me.Controls.Add(Me.btnEdit)
+ Me.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Name = "frmSubcontractor"
+ Me.Text = "ENT Subcontractor & Contactor"
+ Me.WindowState = System.Windows.Forms.FormWindowState.Maximized
+ Me.Controls.SetChildIndex(Me.btnEdit, 0)
+ Me.Controls.SetChildIndex(Me.iugDetail, 0)
+ Me.Controls.SetChildIndex(Me.btnDel, 0)
+ Me.Controls.SetChildIndex(Me.btnDAdd, 0)
+ Me.Controls.SetChildIndex(Me.btnAdd, 0)
+ Me.Controls.SetChildIndex(Me.btnDEdit, 0)
+ Me.Controls.SetChildIndex(Me.iugSubcontractor, 0)
+ Me.Controls.SetChildIndex(Me.btnDDel, 0)
+ Me.Controls.SetChildIndex(Me.btnCopy, 0)
+ Me.Controls.SetChildIndex(Me.btnDCopy, 0)
+ Me.Controls.SetChildIndex(Me.btnEMail, 0)
+ Me.Controls.SetChildIndex(Me.btnApprove, 0)
+ Me.Controls.SetChildIndex(Me.btnClose, 0)
+ Me.ResumeLayout(False)
+
+ End Sub
+
+#End Region
+
+ Private Sub frmSubcontractor_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
+
+ Cursor.Current = Cursors.WaitCursor
+
+ ' 2016 YF, wsENT.Url = LocalizeWebService(wsENT.Url.ToString)
+ ' 2016 YF, wsENT.EnableDecompression = True
+
+ Call funiMESUltraGridIni() 'Grid初始設定
+
+ '//取出資料
+ Call funLoadSubcontractor()
+
+ SetIssueState(Issue.Unfrozen) '預設在Unforzen上
+ SetSearchFieldName(New String() {"SubcontractorNo", "SubcontractorNaME"}) '設置搜尋欄位
+
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ ExeGroupControlPriv(Me, PrivFunNo)
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub frmSubcontractor_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
+ If Not dsENT Is Nothing Then dsENT.Dispose()
+ ' 2016 YF, If Not wsENT Is Nothing Then wsENT.Dispose()
+ End Sub
+
+ Protected Overrides Sub rdoIssue_CheckedChanged(sender As Object, e As EventArgs)
+ If IsNothing(dsENT) Then Exit Sub
+
+ Select Case GetIssueState()
+ Case Issue.Unfrozen
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = "IssueState=0"
+ Case Issue.Pending
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = "IssueState=1"
+ Case Issue.Active
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = "IssueState=2"
+ Case Issue.Unused
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = "IssueState=-1"
+ End Select
+ Me.iugSubcontractor.iMESUltraGrid.DataSource = dsENT.Tables(tblENTSubcontractor).DefaultView
+ Call funShowActiveDetail()
+ End Sub
+
+ Protected Overrides Sub Finalize()
+ MyBase.Finalize()
+ End Sub
+
+ Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
+
+ Dim fSubcontractorDef As New frmSubcontractorDef
+
+ fSubcontractorDef.DefMode = 0
+ fSubcontractorDef.ShowDialog(Me)
+ fSubcontractorDef.Dispose()
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ SubcontractorNo = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractor()
+
+ If GetIssueState() = Issue.Unfrozen Then
+ ugrRow = FindRecordPosition(iugSubcontractor, "SubcontractorNo", SubcontractorNo)
+ If Not ugrRow Is Nothing Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ End If
+
+ End Sub
+
+ Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
+
+
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+ 'IsGroupByRow不做任何處理
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then
+ Exit Sub
+ End If
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractor).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'")
+
+ '核准狀態為"Unfrozen"者才可修改
+
+ If Rows(0).Item("IssueState") <> 0 Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-202202", "[%NOT ALLOWED TO EDIT%]"), MsgBoxStyle.Exclamation, Me.Text)
+ Exit Sub
+ End If
+
+ Dim fSubcontractorDef As New frmSubcontractorDef
+ fSubcontractorDef.DefMode = 1
+ fSubcontractorDef.EditDataRow = Rows(0)
+ fSubcontractorDef.ShowDialog(Me)
+ fSubcontractorDef.Dispose()
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ SubcontractorNo = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractor()
+
+ If GetIssueState() = Issue.Unfrozen Then
+ ugrRow = FindRecordPosition(iugSubcontractor, "SubcontractorNo", SubcontractorNo)
+ If Not ugrRow Is Nothing Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ End If
+
+ End If
+ End Sub
+
+ Private Sub btnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel.Click
+
+
+
+ '1.先檢查是否為單筆,是:將其Selecte
+ If Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then Exit Sub
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Cursor.Current = Cursors.WaitCursor
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ '2.Multi
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count > 0 Then
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Item(0).IsGroupByRow Then
+ Exit Sub 'Selected.Rows,不會包含GroupRow & 一般的Row在一起,故若是GroupRow不做任何處理
+ End If
+ If iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-100001", "[%ARE YOU SURE TO DELETE ALL SELECTED RECORDS%]"), MsgBoxStyle.OkCancel + MsgBoxStyle.Question + MsgBoxStyle.DefaultButton2, Me.Text) = MsgBoxResult.Cancel Then
+ Exit Sub
+ End If
+
+ '共用資料
+ Dim XmlDoc As New XmlDocument
+ Dim blnReLoad As Boolean = False
+ Dim intIssueState As Integer
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ For i = 0 To Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count - 1
+ intIssueState = Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("IssueState").Value
+ If intIssueState = 0 Or intIssueState = -1 Or intIssueState = 2 Then '狀態為Unforzen或Unused時直接刪除
+
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", CInput(Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("SubcontractorNo").Value.ToString), "")
+ strParameter = strParameter & CombineXMLParameter("issuestate", "IssueState", "String", CInput(intIssueState), "")
+ strParameter = strParameter & CombineXMLParameter("datastamp", "DataStamp", "Integer", iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("DataStamp").Value, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ Try
+ ' 2016 YF, OutXml = wsENT.DelSubcontractor(InXml)
+ 'OutXml = InvokeSrv("wsENT.DelSubcontractor", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.DelSubcontractor", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ If Not blnReLoad Then blnReLoad = True
+ Else
+ '找出Exception訊並顯示出來
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit For
+ End If
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Delete failed," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ Exit For
+ End Try
+ Else
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200021", "[%NOT ALLOWED TO delete%]"), MsgBoxStyle.Exclamation, Me.Text)
+ End If
+ Next
+
+ XmlDoc = Nothing
+
+ If blnReLoad Then
+
+ Call funLoadSubcontractor()
+
+ Call funShowActiveDetail()
+
+ End If
+
+ End If
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub btnCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCopy.Click
+
+
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+ 'IsGroupByRow不做任何處理
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then
+ Exit Sub
+ End If
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractor).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'")
+
+ Dim fSubcontractorDef As New frmSubcontractorDef
+ fSubcontractorDef.DefMode = 2
+ fSubcontractorDef.EditDataRow = Rows(0)
+ fSubcontractorDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ SubcontractorNo = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractor()
+
+ If GetIssueState() = Issue.Unfrozen Then
+ ugrRow = FindRecordPosition(iugSubcontractor, "SubcontractorNo", SubcontractorNo)
+ If Not ugrRow Is Nothing Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ End If
+
+ End If
+ End Sub
+
+ Private Sub btnApprove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnApprove.Click
+
+
+
+ '1.先檢查是否為單筆,是:將其Selecte
+ If Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then Exit Sub
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Cursor.Current = Cursors.WaitCursor
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ '2.Multi
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count > 0 Then
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Item(0).IsGroupByRow Then
+ Exit Sub 'Selected.Rows,不會包含GroupRow & 一般的Row在一起,故若是GroupRow不做任何處理
+ End If
+ If iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-100002", "[%ARE YOU SURE TO APPROVE ALL SELECTED RECORDS%]"), MsgBoxStyle.OkCancel + MsgBoxStyle.Question + MsgBoxStyle.DefaultButton2, Me.Text) = MsgBoxResult.Cancel Then
+ Exit Sub
+ End If
+
+ '共用資料
+ Dim XmlDoc As New XmlDocument
+ Dim blnReLoad As Boolean = False
+ Dim intIssueState As Integer
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ For i = 0 To Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count - 1
+ intIssueState = Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("IssueState").Value
+ If intIssueState = 0 Then
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", CInput(Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("SubcontractorNo").Value.ToString), "")
+ strParameter += CombineXMLParameter("issuestate", "IssueState", "String", intIssueState, "")
+ strParameter += CombineXMLParameter("creator", "Creator", "String", gUserNo, "")
+ strParameter = strParameter & CombineXMLParameter("datastamp", "DataStamp", "Integer", iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("DataStamp").Value, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ Try
+ ' 2016 YF, OutXml = wsENT.ApproveSubcontractor(InXml)
+ 'OutXml = InvokeSrv("wsENT.ApproveSubcontractor", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.ApproveSubcontractor", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ If Not blnReLoad Then blnReLoad = True
+ Else
+ '找出Exception訊並顯示出來
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit For
+ End If
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Approve failed," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ Exit For
+ End Try
+ Else
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200021", "[%NOT ALLOW TO APPROVE%]"), MsgBoxStyle.Exclamation, Me.Text)
+ End If
+ Next
+
+ XmlDoc = Nothing
+
+ If blnReLoad Then
+
+ Call funLoadSubcontractor()
+
+ Call funShowActiveDetail()
+
+ End If
+
+ End If
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub btnDAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDAdd.Click
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+
+ 'Dim Rows As DataRow()
+ Dim fSubcontractorContDef As New frmSubcontractorContDef
+
+ fSubcontractorContDef.DefMode = 0
+ fSubcontractorContDef.SubcontractorNo = Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString
+ fSubcontractorContDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ ContactorName = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ ugrRow = FindRecordPosition(iugDetail, "ContactorName", ContactorName)
+ If Not ugrRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ End If
+ End Sub
+
+ Private Sub btnDEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDEdit.Click
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing And Not Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow OrElse iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractorCont).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'" _
+ & " And ContactorName = '" & Replace(Me.iugDetail.iMESUltraGrid.ActiveRow.Cells("ContactorName").Value.ToString, "'", "''") & "'")
+
+ Dim fSubcontractorContDef As New frmSubcontractorContDef
+ fSubcontractorContDef.DefMode = 1
+ fSubcontractorContDef.EditDataRow = Rows(0)
+ fSubcontractorContDef.SubcontractorNo = Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString
+ fSubcontractorContDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ ContactorName = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ ugrRow = FindRecordPosition(iugDetail, "ContactorName", ContactorName)
+ If Not ugrRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ Else
+
+ Exit Sub
+ End If
+
+ End Sub
+
+ Private Sub btnDDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDDel.Click
+
+
+ '1.先檢查是否為單筆,是:將其Selecte
+ If Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then Exit Sub
+ If iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If Not Me.iugDetail.iMESUltraGrid.ActiveRow.Selected Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ '2.Multi
+ If Me.iugDetail.iMESUltraGrid.Selected.Rows.Count > 0 Then
+ If Me.iugDetail.iMESUltraGrid.Selected.Rows.Item(0).IsGroupByRow Then
+ Exit Sub 'Selected.Rows,不會包含GroupRow & 一般的Row在一起,故若是GroupRow不做任何處理
+ End If
+ If iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-100001", "[%ARE YOU SURE TO DELETE ALL SELECTED RECORDS%]"), MsgBoxStyle.OkCancel + MsgBoxStyle.Question + MsgBoxStyle.DefaultButton2, Me.Text) = MsgBoxResult.Cancel Then
+ Exit Sub
+ End If
+
+ '共用資料
+ Dim XmlDoc As New XmlDocument
+ Dim blnReLoad As Boolean = False
+ Dim intIssueState As Integer
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ For i = 0 To Me.iugDetail.iMESUltraGrid.Selected.Rows.Count - 1
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", CInput(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString), "")
+ strParameter = strParameter & CombineXMLParameter("ContactorName", "ContactorName", "String", CInput(Me.iugDetail.iMESUltraGrid.Selected.Rows(i).Cells("ContactorName").Value.ToString), "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ Try
+ ' 2016 YF, OutXml = wsENT.DelSubcontractorCont(InXml)
+ 'OutXml = InvokeSrv("wsENT.DelSubcontractorCont", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.DelSubcontractorCont", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ If Not blnReLoad Then blnReLoad = True
+ Else
+ '找出Exception訊並顯示出來
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit For
+ End If
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Delete failed," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ Exit For
+ End Try
+
+ Next
+
+ XmlDoc = Nothing
+
+ If blnReLoad Then Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ End If
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub btnDCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDCopy.Click
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing And Not Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow OrElse iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractorCont).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'" _
+ & " And ContactorName = '" & Replace(Me.iugDetail.iMESUltraGrid.ActiveRow.Cells("ContactorName").Value.ToString, "'", "''") & "'")
+
+ Dim fSubcontractorContDef As New frmSubcontractorContDef
+ fSubcontractorContDef.DefMode = 2
+ fSubcontractorContDef.EditDataRow = Rows(0)
+ fSubcontractorContDef.SubcontractorNo = Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString
+ fSubcontractorContDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ ContactorName = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ ugrRow = FindRecordPosition(iugDetail, "ContactorName", ContactorName)
+ If Not ugrRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ Else
+
+ Exit Sub
+ End If
+
+ End Sub
+
+ Private Sub btnEMail_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEMail.Click
+
+ If Not Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then
+ If iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Dim Rows As DataRow()
+ Dim proMail As New System.Diagnostics.Process
+ Dim strAccount As String
+
+ Rows = dsENT.Tables(tblENTSubcontractorCont).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'" _
+ & " And ContactorName = '" & Replace(Me.iugDetail.iMESUltraGrid.ActiveRow.Cells("ContactorName").Value.ToString, "'", "''") & "'")
+
+ strAccount = "mailto:" & Rows(0).Item("EMail").ToString
+ proMail.Start(strAccount)
+
+ End If
+
+ End Sub
+
+ Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
+ Me.Close()
+ End Sub
+
+ Protected Overrides Sub btnQuery_Click(sender As Object, e As EventArgs)
+ Cursor.Current = Cursors.WaitCursor
+
+ funLoadSubcontractor()
+
+ Cursor.Current = Cursors.Default
+ End Sub
+
+#Region "Ultra Grid"
+
+ Private Sub iugSubcontractor_iMESUltraGrid_InitializeLayOut(ByVal sender As System.Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) Handles iugSubcontractor.iMESUltraGrid_InitializeLayOut
+
+ With e.Layout
+ With .Bands(0).Columns("SubcontractorNo")
+ .Header.Caption = "SubcontractorNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 0
+ End With
+ With .Bands(0).Columns("SubcontractorName")
+ .Header.Caption = "SubcontractorName"
+ .Width = 110
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 1
+ End With
+ With .Bands(0).Columns("Description")
+ .Header.Caption = "Description"
+ .Width = 110
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 2
+ End With
+ With .Bands(0).Columns("Creator")
+ .Header.Caption = "Creator"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 3
+ End With
+ With .Bands(0).Columns("CreateDate")
+ .Header.Caption = "CreateDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 4
+ End With
+ With .Bands(0).Columns("IssueState")
+ .Header.Caption = "IssueState"
+ .Width = 114
+ .Hidden = True
+ .Header.VisiblePosition = 5
+ End With
+ With .Bands(0).Columns("Reviser")
+ .Header.Caption = "Reviser"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 6
+ End With
+ With .Bands(0).Columns("ReviseDate")
+ .Header.Caption = "ReviseDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 7
+ End With
+ With e.Layout.Bands(0).Columns("DataStamp")
+ .Hidden = True
+ End With
+ End With
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ End Sub
+
+ Private Sub iugSubcontractor_iMESUltraGrid_AfterRowActivate(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles iugSubcontractor.iMESUltraGrid_AfterRowActivate
+
+ 'IsGroupByRow不做任何處理
+ If Not iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+ Else
+ Exit Sub
+ End If
+
+ End Sub
+
+ Private Sub iugDetail_iMESUltraGrid_InitializeLayOut(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) Handles iugDetail.iMESUltraGrid_InitializeLayOut
+
+ With e.Layout
+ With .Bands(0).Columns("SubcontractorNo")
+ .Header.Caption = "SubcontractorNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 0
+ End With
+ With .Bands(0).Columns("ContactorName")
+ .Header.Caption = "ContactorName"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 1
+ End With
+ With .Bands(0).Columns("TelNo")
+ .Header.Caption = "TelNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 2
+ End With
+ With .Bands(0).Columns("FaxNo")
+ .Header.Caption = "FaxNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 3
+ End With
+ With .Bands(0).Columns("Title")
+ .Header.Caption = "Title"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 4
+ End With
+ With .Bands(0).Columns("Address")
+ .Header.Caption = "Address"
+ .Width = 110
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 5
+ End With
+ With .Bands(0).Columns("EMail")
+ .Header.Caption = "EMail"
+ .Width = 150
+ .Hidden = False
+ .CellAppearance.ForeColor = System.Drawing.Color.Blue
+ .CellAppearance.FontData.Underline = DefaultableBoolean.True
+ .Header.VisiblePosition = 6
+ End With
+ With .Bands(0).Columns("Description")
+ .Header.Caption = "Description"
+ .Width = 200
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 7
+ End With
+ With .Bands(0).Columns("Creator")
+ .Header.Caption = "Creator"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 8
+ End With
+ With .Bands(0).Columns("CreateDate")
+ .Header.Caption = "CreateDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 9
+ End With
+ With .Bands(0).Columns("Reviser")
+ .Header.Caption = "Reviser"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 10
+ End With
+ With .Bands(0).Columns("ReviseDate")
+ .Header.Caption = "ReviseDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 11
+ End With
+ With e.Layout.Bands(0).Columns("DataStamp")
+ .Hidden = True
+ End With
+ End With
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ End Sub
+
+#End Region
+
+#Region "Load Function"
+
+ '//取出tblENTSubcontractor 外包商資料
+
+ Private Sub funLoadSubcontractor()
+
+ '先判斷是否dataset中已有ENTSubcontractor之datatable,若有,需先remove否則會有錯誤
+ If Not IsNothing(dsENT.Tables(tblENTSubcontractor)) Then
+ dsENT.Tables.Remove(tblENTSubcontractor)
+ End If
+
+ '組InXml的字串
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ '加上IssueState要求取出所有資料
+ strParameter = CombineXMLParameter("issuestate", "IssueState", "Integer", defInteger, "")
+ '加上查詢條件 cboSearchFieldName,txtSearchFieldValue
+ strParameter += CombineXMLQueryCondition()
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ Try
+ ' 2016 YF, OutXml = wsENT.LoadSubcontractor(InXml)
+ 'OutXml = InvokeSrv("wsENT.LoadSubcontractor", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.LoadSubcontractor", InXml)
+
+ Dim XmlDoc As New XmlDocument '處理Xml字串之物件?
+
+ '利用XmlDoc物件處理ReturnValue
+ XmlDoc.LoadXml(OutXml)
+
+ If ChkExecutionSuccess(XmlDoc) Then
+ '讀取取出資料表之名稱
+
+ tblENTSubcontractor = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loadSubcontractor").Item(0).SelectNodes("name").Item(0).InnerXml
+ '取出Schema,dataset讀取Schema可防止Null Field及DateTime的問題
+
+ XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractor").Item(0).SelectNodes("schema").Item(0).InnerXml
+ If XmlSchema <> "" Then
+ '將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件
+ tmpStringReader = New System.IO.StringReader(XmlSchema)
+ dsENT.ReadXmlSchema(tmpStringReader)
+ tmpStringReader.Close()
+ End If
+
+ '取出Data
+ XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractor").Item(0).SelectNodes("value").Item(0).InnerXml
+ If XmlData <> "" Then
+ tmpStringReader = New System.IO.StringReader(XmlData)
+ dsENT.ReadXml(tmpStringReader, XmlReadMode.InferSchema)
+ tmpStringReader.Close()
+ End If
+
+ strFilter = ""
+ Select Case GetIssueState()
+ Case Issue.Unfrozen
+ strFilter = FilterByInteger(strFilter, "IssueState", 0)
+ Case Issue.Pending
+ strFilter = FilterByInteger(strFilter, "IssueState", 1)
+ Case Issue.Active
+ strFilter = FilterByInteger(strFilter, "IssueState", 2)
+ Case Issue.Unused
+ strFilter = FilterByInteger(strFilter, "IssueState", -1)
+ End Select
+
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = strFilter
+ dsENT.Tables(tblENTSubcontractor).DefaultView.Sort = "SubcontractorNo"
+
+ Me.iugSubcontractor.iMESUltraGrid.DataSource = dsENT.Tables(tblENTSubcontractor).DefaultView
+
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit Sub
+ End If
+
+ XmlDoc = Nothing
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Load ENT Subcontractor Failed!!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ End Sub
+
+ '//取出tblENTSubcontractorCont聯絡人資料
+
+ Private Sub funLoadSubcontractorCont(ByRef SubcontractorNo As String)
+
+ If Not IsNothing(dsENT.Tables(tblENTSubcontractorCont)) Then
+ dsENT.Tables.Remove(tblENTSubcontractorCont)
+ End If
+
+ '組InXml的字串
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", SubcontractorNo, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ Try
+ ' 2016 YF, OutXml = wsENT.LoadSubcontractorCont(InXml)
+ 'OutXml = InvokeSrv("wsENT.LoadSubcontractorCont", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.LoadSubcontractorCont", InXml)
+
+ Dim XmlDoc As New XmlDocument '處理Xml字串之物件?
+
+ '利用XmlDoc物件處理ReturnValue
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ '讀取取出資料表之名稱
+
+ tblENTSubcontractorCont = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loadSubcontractorcont").Item(0).SelectNodes("name").Item(0).InnerXml
+ '取出Schema,dataset讀取Schema可防止Null Field及DateTime的問題
+ XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractorcont").Item(0).SelectNodes("schema").Item(0).InnerXml
+ If XmlSchema <> "" Then
+ '將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件
+ tmpStringReader = New System.IO.StringReader(XmlSchema)
+ dsENT.ReadXmlSchema(tmpStringReader)
+ tmpStringReader.Close()
+ End If
+
+ '取出Data
+ XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractorcont").Item(0).SelectNodes("value").Item(0).InnerXml
+ If XmlData <> "" Then
+ tmpStringReader = New System.IO.StringReader(XmlData)
+ dsENT.ReadXml(tmpStringReader, XmlReadMode.InferSchema)
+ tmpStringReader.Close()
+ End If
+
+ Me.iugDetail.iMESUltraGrid.DataSource = dsENT.Tables(tblENTSubcontractorCont).DefaultView
+
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ End If
+
+ XmlDoc = Nothing
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Load ENT Subcontractor Cont Failed!!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ End Sub
+
+ Private Sub funShowActiveDetail()
+
+ If Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.DataSource = Nothing
+ Else
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+ End If
+
+ End Sub
+
+ Private Sub funiMESUltraGridIni()
+
+ 'iugSubcontractor 初始設定
+ With Me.iugSubcontractor.iMESUltraGrid
+ .Text = ""
+ .DisplayLayout.GroupByBox.Hidden = True
+ .DisplayLayout.UseFixedHeaders = False
+ End With
+
+ '系統會以UserNo做為Layout的檔名
+
+ iugSubcontractor.UserNo = gUserNo
+
+ 'iugDetail 初始設定
+ With Me.iugDetail.iMESUltraGrid.DisplayLayout
+ .GroupByBox.Hidden = True
+ .Override.ExpansionIndicator = ShowExpansionIndicator.Default
+ .ViewStyle = ViewStyle.SingleBand
+ .RowConnectorStyle = RowConnectorStyle.Default
+
+ End With
+
+ '系統會以UserNo做為Layout的檔名
+
+ iugDetail.UserNo = gUserNo
+
+ End Sub
+
+
+#End Region
+
+End Class
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmSubcontractor.resx b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmSubcontractor.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmSubcontractor.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmSubcontractor.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmSubcontractor.vb
new file mode 100644
index 0000000..64a05ce
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmSubcontractor.vb
@@ -0,0 +1,1129 @@
+Imports iMESExceptionManager
+
+Imports Infragistics.Win
+Imports Infragistics.Win.UltraWinGrid
+Public Class frmSubcontractor
+
+ Inherits COM_Kit.frmBasisTemplat
+
+ Public PrivFunNo As String = defString
+
+ '//WS相關變數
+ ' 2016 YF, Dim wsENT As New wsENT.wsENT '宣告Web Service物件?
+ Dim tmpStringReader As System.IO.StringReader '將字串轉換成可讀入DataSet的物件
+ Dim XmlData As String '儲存取回之資料
+ Dim XmlSchema As String '儲存取回之資料結構
+ Dim InXml As String '儲存呼叫Web Service的傳入參數(Request字串)
+ Dim OutXml As String '儲存Web Service的傳回值(Response字串)
+ Dim strIdentity As String '儲存Identity XML字串?
+ Dim strParameter As String '儲存Parameter XML字串
+
+ '//資料表相關變數
+
+ Dim dsENT As New DataSet '資料集:儲存取回之資料?
+
+ Dim tblENTSubcontractor As String '儲存取回資料表的名稱(master)?
+ Dim tblENTSubcontractorCont As String '明細資料表名稱(detail)
+ Dim strFilter As String 'Filter string及列印的過濾條件
+
+ '//其他共用變數
+ Dim SubcontractorNo As String 'for Gird to Focus
+ Dim ContactorName As String 'for DetailGrid to Focus
+ Dim ugrRow As Infragistics.Win.UltraWinGrid.UltraGridRow
+ Friend WithEvents btnAdd As Misc.UltraButton
+ Friend WithEvents btnEdit As Misc.UltraButton
+ Friend WithEvents btnDel As Misc.UltraButton
+ Friend WithEvents btnCopy As Misc.UltraButton
+ Friend WithEvents btnApprove As Misc.UltraButton
+ Friend WithEvents iugSubcontractor As iMESUltraGrid.iMESUltraGridControl
+ Dim i As Integer
+
+#Region " Windows Form Designer generated code "
+
+ Public Sub New()
+ MyBase.New()
+
+ 'This call is required by the Windows Form Designer.
+ InitializeComponent()
+
+ 'Add any initialization after the InitializeComponent() call
+
+ End Sub
+
+ 'Form overrides dispose to clean up the component list.
+ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
+ If disposing Then
+ If Not (components Is Nothing) Then
+ components.Dispose()
+ End If
+ End If
+ MyBase.Dispose(disposing)
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.Container
+ Friend WithEvents iugDetail As iMESUltraGrid.iMESUltraGridControl
+ Friend WithEvents btnClose As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnEMail As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDCopy As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDDel As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDEdit As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDAdd As Infragistics.Win.Misc.UltraButton
+ Private Sub InitializeComponent()
+ Me.btnClose = New Infragistics.Win.Misc.UltraButton()
+ Me.btnEMail = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDCopy = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDDel = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDEdit = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDAdd = New Infragistics.Win.Misc.UltraButton()
+ Me.iugDetail = New iMESUltraGrid.iMESUltraGridControl()
+ Me.btnAdd = New Infragistics.Win.Misc.UltraButton()
+ Me.btnEdit = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDel = New Infragistics.Win.Misc.UltraButton()
+ Me.btnCopy = New Infragistics.Win.Misc.UltraButton()
+ Me.btnApprove = New Infragistics.Win.Misc.UltraButton()
+ Me.iugSubcontractor = New iMESUltraGrid.iMESUltraGridControl()
+ Me.SuspendLayout()
+ '
+ 'btnClose
+ '
+ Me.btnClose.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnClose.Location = New System.Drawing.Point(912, 552)
+ Me.btnClose.Name = "btnClose"
+ Me.btnClose.Size = New System.Drawing.Size(88, 32)
+ Me.btnClose.TabIndex = 18
+ Me.btnClose.Text = "Close (&X)"
+ '
+ 'btnEMail
+ '
+ Me.btnEMail.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnEMail.Location = New System.Drawing.Point(912, 429)
+ Me.btnEMail.Name = "btnEMail"
+ Me.btnEMail.Size = New System.Drawing.Size(88, 32)
+ Me.btnEMail.TabIndex = 17
+ Me.btnEMail.Text = "Mail"
+ '
+ 'btnDCopy
+ '
+ Me.btnDCopy.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDCopy.Location = New System.Drawing.Point(912, 389)
+ Me.btnDCopy.Name = "btnDCopy"
+ Me.btnDCopy.Size = New System.Drawing.Size(88, 32)
+ Me.btnDCopy.TabIndex = 16
+ Me.btnDCopy.Text = "Copy"
+ '
+ 'btnDDel
+ '
+ Me.btnDDel.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDDel.Location = New System.Drawing.Point(912, 349)
+ Me.btnDDel.Name = "btnDDel"
+ Me.btnDDel.Size = New System.Drawing.Size(88, 32)
+ Me.btnDDel.TabIndex = 15
+ Me.btnDDel.Text = "DEL"
+ '
+ 'btnDEdit
+ '
+ Me.btnDEdit.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDEdit.Location = New System.Drawing.Point(912, 309)
+ Me.btnDEdit.Name = "btnDEdit"
+ Me.btnDEdit.Size = New System.Drawing.Size(88, 32)
+ Me.btnDEdit.TabIndex = 14
+ Me.btnDEdit.Text = "EDIT"
+ '
+ 'btnDAdd
+ '
+ Me.btnDAdd.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDAdd.Location = New System.Drawing.Point(912, 269)
+ Me.btnDAdd.Name = "btnDAdd"
+ Me.btnDAdd.Size = New System.Drawing.Size(88, 32)
+ Me.btnDAdd.TabIndex = 13
+ Me.btnDAdd.Text = "ADD"
+ '
+ 'iugDetail
+ '
+ Me.iugDetail.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.iugDetail.EnterDirection = iMESUltraGrid.iMESUltraGridControl.EnterDirectionEnum.Down
+ Me.iugDetail.GroupBoxPromptText = "Drag a column header here to group by that column."
+ Me.iugDetail.GroupBoxTextForeColor = System.Drawing.Color.Red
+ Me.iugDetail.Identity = "IMes"
+ Me.iugDetail.IdentityForm = ""
+ Me.iugDetail.LayOutFilePath = ""
+ Me.iugDetail.Location = New System.Drawing.Point(12, 269)
+ Me.iugDetail.Name = "iugDetail"
+ Me.iugDetail.PrintFitWidthToPages = 0
+ Me.iugDetail.PrintLandscape = True
+ Me.iugDetail.PrintPageFooter = ""
+ Me.iugDetail.PrintPageFooterHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugDetail.PrintPageFooterHeight = 20
+ Me.iugDetail.PrintPageHeader = ""
+ Me.iugDetail.PrintPageHeaderHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugDetail.PrintPageHeaderHeight = 20
+ Me.iugDetail.PrintZoom = 1.0R
+ Me.iugDetail.Size = New System.Drawing.Size(894, 314)
+ Me.iugDetail.TabIndex = 12
+ Me.iugDetail.UserNo = "IMes"
+ '
+ 'btnAdd
+ '
+ Me.btnAdd.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnAdd.Location = New System.Drawing.Point(912, 53)
+ Me.btnAdd.Name = "btnAdd"
+ Me.btnAdd.Size = New System.Drawing.Size(88, 32)
+ Me.btnAdd.TabIndex = 20
+ Me.btnAdd.Text = "Add(&A)"
+ '
+ 'btnEdit
+ '
+ Me.btnEdit.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnEdit.Location = New System.Drawing.Point(912, 93)
+ Me.btnEdit.Name = "btnEdit"
+ Me.btnEdit.Size = New System.Drawing.Size(88, 32)
+ Me.btnEdit.TabIndex = 21
+ Me.btnEdit.Text = "Edit(&E)"
+ '
+ 'btnDel
+ '
+ Me.btnDel.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDel.Location = New System.Drawing.Point(912, 133)
+ Me.btnDel.Name = "btnDel"
+ Me.btnDel.Size = New System.Drawing.Size(88, 32)
+ Me.btnDel.TabIndex = 22
+ Me.btnDel.Text = "Del(&D)"
+ '
+ 'btnCopy
+ '
+ Me.btnCopy.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnCopy.Location = New System.Drawing.Point(912, 173)
+ Me.btnCopy.Name = "btnCopy"
+ Me.btnCopy.Size = New System.Drawing.Size(88, 32)
+ Me.btnCopy.TabIndex = 23
+ Me.btnCopy.Text = "Copy(&C)"
+ '
+ 'btnApprove
+ '
+ Me.btnApprove.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnApprove.Location = New System.Drawing.Point(912, 213)
+ Me.btnApprove.Name = "btnApprove"
+ Me.btnApprove.Size = New System.Drawing.Size(88, 32)
+ Me.btnApprove.TabIndex = 24
+ Me.btnApprove.Text = "Approve(&Y)"
+ '
+ 'iugSubcontractor
+ '
+ Me.iugSubcontractor.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.iugSubcontractor.EnterDirection = iMESUltraGrid.iMESUltraGridControl.EnterDirectionEnum.Down
+ Me.iugSubcontractor.GroupBoxPromptText = "Drag a column header here to group by that column."
+ Me.iugSubcontractor.GroupBoxTextForeColor = System.Drawing.Color.Red
+ Me.iugSubcontractor.Identity = "IMes"
+ Me.iugSubcontractor.IdentityForm = ""
+ Me.iugSubcontractor.LayOutFilePath = ""
+ Me.iugSubcontractor.Location = New System.Drawing.Point(12, 53)
+ Me.iugSubcontractor.Name = "iugSubcontractor"
+ Me.iugSubcontractor.PrintFitWidthToPages = 0
+ Me.iugSubcontractor.PrintLandscape = True
+ Me.iugSubcontractor.PrintPageFooter = ""
+ Me.iugSubcontractor.PrintPageFooterHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugSubcontractor.PrintPageFooterHeight = 20
+ Me.iugSubcontractor.PrintPageHeader = ""
+ Me.iugSubcontractor.PrintPageHeaderHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugSubcontractor.PrintPageHeaderHeight = 20
+ Me.iugSubcontractor.PrintZoom = 1.0R
+ Me.iugSubcontractor.Size = New System.Drawing.Size(894, 192)
+ Me.iugSubcontractor.TabIndex = 25
+ Me.iugSubcontractor.UserNo = "IMes"
+ '
+ 'frmSubcontractor
+ '
+ Me.ClientSize = New System.Drawing.Size(1008, 591)
+ Me.Controls.Add(Me.btnClose)
+ Me.Controls.Add(Me.btnApprove)
+ Me.Controls.Add(Me.btnEMail)
+ Me.Controls.Add(Me.btnDCopy)
+ Me.Controls.Add(Me.btnCopy)
+ Me.Controls.Add(Me.btnDDel)
+ Me.Controls.Add(Me.iugSubcontractor)
+ Me.Controls.Add(Me.btnDEdit)
+ Me.Controls.Add(Me.btnAdd)
+ Me.Controls.Add(Me.btnDAdd)
+ Me.Controls.Add(Me.btnDel)
+ Me.Controls.Add(Me.iugDetail)
+ Me.Controls.Add(Me.btnEdit)
+ Me.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Name = "frmSubcontractor"
+ Me.Text = "ENT Subcontractor & Contactor"
+ Me.WindowState = System.Windows.Forms.FormWindowState.Maximized
+ Me.Controls.SetChildIndex(Me.btnEdit, 0)
+ Me.Controls.SetChildIndex(Me.iugDetail, 0)
+ Me.Controls.SetChildIndex(Me.btnDel, 0)
+ Me.Controls.SetChildIndex(Me.btnDAdd, 0)
+ Me.Controls.SetChildIndex(Me.btnAdd, 0)
+ Me.Controls.SetChildIndex(Me.btnDEdit, 0)
+ Me.Controls.SetChildIndex(Me.iugSubcontractor, 0)
+ Me.Controls.SetChildIndex(Me.btnDDel, 0)
+ Me.Controls.SetChildIndex(Me.btnCopy, 0)
+ Me.Controls.SetChildIndex(Me.btnDCopy, 0)
+ Me.Controls.SetChildIndex(Me.btnEMail, 0)
+ Me.Controls.SetChildIndex(Me.btnApprove, 0)
+ Me.Controls.SetChildIndex(Me.btnClose, 0)
+ Me.ResumeLayout(False)
+
+ End Sub
+
+#End Region
+
+ Private Sub frmSubcontractor_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
+
+ Cursor.Current = Cursors.WaitCursor
+
+ ' 2016 YF, wsENT.Url = LocalizeWebService(wsENT.Url.ToString)
+ ' 2016 YF, wsENT.EnableDecompression = True
+
+ Call funiMESUltraGridIni() 'Grid初始設定
+
+ '//取出資料
+ Call funLoadSubcontractor()
+
+ SetIssueState(Issue.Unfrozen) '預設在Unforzen上
+ SetSearchFieldName(New String() {"SubcontractorNo", "SubcontractorNaME"}) '設置搜尋欄位
+
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ ExeGroupControlPriv(Me, PrivFunNo)
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub frmSubcontractor_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
+ If Not dsENT Is Nothing Then dsENT.Dispose()
+ ' 2016 YF, If Not wsENT Is Nothing Then wsENT.Dispose()
+ End Sub
+
+ Protected Overrides Sub rdoIssue_CheckedChanged(sender As Object, e As EventArgs)
+ If IsNothing(dsENT) Then Exit Sub
+
+ Select Case GetIssueState()
+ Case Issue.Unfrozen
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = "IssueState=0"
+ Case Issue.Pending
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = "IssueState=1"
+ Case Issue.Active
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = "IssueState=2"
+ Case Issue.Unused
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = "IssueState=-1"
+ End Select
+ Me.iugSubcontractor.iMESUltraGrid.DataSource = dsENT.Tables(tblENTSubcontractor).DefaultView
+ Call funShowActiveDetail()
+ End Sub
+
+ Protected Overrides Sub Finalize()
+ MyBase.Finalize()
+ End Sub
+
+ Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
+
+ Dim fSubcontractorDef As New frmSubcontractorDef
+
+ fSubcontractorDef.DefMode = 0
+ fSubcontractorDef.ShowDialog(Me)
+ fSubcontractorDef.Dispose()
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ SubcontractorNo = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractor()
+
+ If GetIssueState() = Issue.Unfrozen Then
+ ugrRow = FindRecordPosition(iugSubcontractor, "SubcontractorNo", SubcontractorNo)
+ If Not ugrRow Is Nothing Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ End If
+
+ End Sub
+
+ Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
+
+
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+ 'IsGroupByRow不做任何處理
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then
+ Exit Sub
+ End If
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractor).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'")
+
+ '核准狀態為"Unfrozen"者才可修改
+
+ If Rows(0).Item("IssueState") <> 0 Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-202202", "[%NOT ALLOWED TO EDIT%]"), MsgBoxStyle.Exclamation, Me.Text)
+ Exit Sub
+ End If
+
+ Dim fSubcontractorDef As New frmSubcontractorDef
+ fSubcontractorDef.DefMode = 1
+ fSubcontractorDef.EditDataRow = Rows(0)
+ fSubcontractorDef.ShowDialog(Me)
+ fSubcontractorDef.Dispose()
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ SubcontractorNo = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractor()
+
+ If GetIssueState() = Issue.Unfrozen Then
+ ugrRow = FindRecordPosition(iugSubcontractor, "SubcontractorNo", SubcontractorNo)
+ If Not ugrRow Is Nothing Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ End If
+
+ End If
+ End Sub
+
+ Private Sub btnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel.Click
+
+
+
+ '1.先檢查是否為單筆,是:將其Selecte
+ If Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then Exit Sub
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Cursor.Current = Cursors.WaitCursor
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ '2.Multi
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count > 0 Then
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Item(0).IsGroupByRow Then
+ Exit Sub 'Selected.Rows,不會包含GroupRow & 一般的Row在一起,故若是GroupRow不做任何處理
+ End If
+ If iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-100001", "[%ARE YOU SURE TO DELETE ALL SELECTED RECORDS%]"), MsgBoxStyle.OkCancel + MsgBoxStyle.Question + MsgBoxStyle.DefaultButton2, Me.Text) = MsgBoxResult.Cancel Then
+ Exit Sub
+ End If
+
+ '共用資料
+ Dim XmlDoc As New XmlDocument
+ Dim blnReLoad As Boolean = False
+ Dim intIssueState As Integer
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ For i = 0 To Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count - 1
+ intIssueState = Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("IssueState").Value
+ If intIssueState = 0 Or intIssueState = -1 Or intIssueState = 2 Then '狀態為Unforzen或Unused時直接刪除
+
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", CInput(Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("SubcontractorNo").Value.ToString), "")
+ strParameter = strParameter & CombineXMLParameter("issuestate", "IssueState", "String", CInput(intIssueState), "")
+ strParameter = strParameter & CombineXMLParameter("datastamp", "DataStamp", "Integer", iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("DataStamp").Value, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ Try
+ ' 2016 YF, OutXml = wsENT.DelSubcontractor(InXml)
+ 'OutXml = InvokeSrv("wsENT.DelSubcontractor", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.DelSubcontractor", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ If Not blnReLoad Then blnReLoad = True
+ Else
+ '找出Exception訊並顯示出來
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit For
+ End If
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Delete failed," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ Exit For
+ End Try
+ Else
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200021", "[%NOT ALLOWED TO delete%]"), MsgBoxStyle.Exclamation, Me.Text)
+ End If
+ Next
+
+ XmlDoc = Nothing
+
+ If blnReLoad Then
+
+ Call funLoadSubcontractor()
+
+ Call funShowActiveDetail()
+
+ End If
+
+ End If
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub btnCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCopy.Click
+
+
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+ 'IsGroupByRow不做任何處理
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then
+ Exit Sub
+ End If
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractor).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'")
+
+ Dim fSubcontractorDef As New frmSubcontractorDef
+ fSubcontractorDef.DefMode = 2
+ fSubcontractorDef.EditDataRow = Rows(0)
+ fSubcontractorDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ SubcontractorNo = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractor()
+
+ If GetIssueState() = Issue.Unfrozen Then
+ ugrRow = FindRecordPosition(iugSubcontractor, "SubcontractorNo", SubcontractorNo)
+ If Not ugrRow Is Nothing Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ End If
+
+ End If
+ End Sub
+
+ Private Sub btnApprove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnApprove.Click
+
+
+
+ '1.先檢查是否為單筆,是:將其Selecte
+ If Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then Exit Sub
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Cursor.Current = Cursors.WaitCursor
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ '2.Multi
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count > 0 Then
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Item(0).IsGroupByRow Then
+ Exit Sub 'Selected.Rows,不會包含GroupRow & 一般的Row在一起,故若是GroupRow不做任何處理
+ End If
+ If iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-100002", "[%ARE YOU SURE TO APPROVE ALL SELECTED RECORDS%]"), MsgBoxStyle.OkCancel + MsgBoxStyle.Question + MsgBoxStyle.DefaultButton2, Me.Text) = MsgBoxResult.Cancel Then
+ Exit Sub
+ End If
+
+ '共用資料
+ Dim XmlDoc As New XmlDocument
+ Dim blnReLoad As Boolean = False
+ Dim intIssueState As Integer
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ For i = 0 To Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count - 1
+ intIssueState = Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("IssueState").Value
+ If intIssueState = 0 Then
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", CInput(Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("SubcontractorNo").Value.ToString), "")
+ strParameter += CombineXMLParameter("issuestate", "IssueState", "String", intIssueState, "")
+ strParameter += CombineXMLParameter("creator", "Creator", "String", gUserNo, "")
+ strParameter = strParameter & CombineXMLParameter("datastamp", "DataStamp", "Integer", iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("DataStamp").Value, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ Try
+ ' 2016 YF, OutXml = wsENT.ApproveSubcontractor(InXml)
+ 'OutXml = InvokeSrv("wsENT.ApproveSubcontractor", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.ApproveSubcontractor", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ If Not blnReLoad Then blnReLoad = True
+ Else
+ '找出Exception訊並顯示出來
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit For
+ End If
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Approve failed," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ Exit For
+ End Try
+ Else
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200021", "[%NOT ALLOW TO APPROVE%]"), MsgBoxStyle.Exclamation, Me.Text)
+ End If
+ Next
+
+ XmlDoc = Nothing
+
+ If blnReLoad Then
+
+ Call funLoadSubcontractor()
+
+ Call funShowActiveDetail()
+
+ End If
+
+ End If
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub btnDAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDAdd.Click
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+
+ 'Dim Rows As DataRow()
+ Dim fSubcontractorContDef As New frmSubcontractorContDef
+
+ fSubcontractorContDef.DefMode = 0
+ fSubcontractorContDef.SubcontractorNo = Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString
+ fSubcontractorContDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ ContactorName = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ ugrRow = FindRecordPosition(iugDetail, "ContactorName", ContactorName)
+ If Not ugrRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ End If
+ End Sub
+
+ Private Sub btnDEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDEdit.Click
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing And Not Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow OrElse iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractorCont).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'" _
+ & " And ContactorName = '" & Replace(Me.iugDetail.iMESUltraGrid.ActiveRow.Cells("ContactorName").Value.ToString, "'", "''") & "'")
+
+ Dim fSubcontractorContDef As New frmSubcontractorContDef
+ fSubcontractorContDef.DefMode = 1
+ fSubcontractorContDef.EditDataRow = Rows(0)
+ fSubcontractorContDef.SubcontractorNo = Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString
+ fSubcontractorContDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ ContactorName = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ ugrRow = FindRecordPosition(iugDetail, "ContactorName", ContactorName)
+ If Not ugrRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ Else
+
+ Exit Sub
+ End If
+
+ End Sub
+
+ Private Sub btnDDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDDel.Click
+
+
+ '1.先檢查是否為單筆,是:將其Selecte
+ If Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then Exit Sub
+ If iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If Not Me.iugDetail.iMESUltraGrid.ActiveRow.Selected Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ '2.Multi
+ If Me.iugDetail.iMESUltraGrid.Selected.Rows.Count > 0 Then
+ If Me.iugDetail.iMESUltraGrid.Selected.Rows.Item(0).IsGroupByRow Then
+ Exit Sub 'Selected.Rows,不會包含GroupRow & 一般的Row在一起,故若是GroupRow不做任何處理
+ End If
+ If iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-100001", "[%ARE YOU SURE TO DELETE ALL SELECTED RECORDS%]"), MsgBoxStyle.OkCancel + MsgBoxStyle.Question + MsgBoxStyle.DefaultButton2, Me.Text) = MsgBoxResult.Cancel Then
+ Exit Sub
+ End If
+
+ '共用資料
+ Dim XmlDoc As New XmlDocument
+ Dim blnReLoad As Boolean = False
+ Dim intIssueState As Integer
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ For i = 0 To Me.iugDetail.iMESUltraGrid.Selected.Rows.Count - 1
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", CInput(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString), "")
+ strParameter = strParameter & CombineXMLParameter("ContactorName", "ContactorName", "String", CInput(Me.iugDetail.iMESUltraGrid.Selected.Rows(i).Cells("ContactorName").Value.ToString), "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ Try
+ ' 2016 YF, OutXml = wsENT.DelSubcontractorCont(InXml)
+ 'OutXml = InvokeSrv("wsENT.DelSubcontractorCont", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.DelSubcontractorCont", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ If Not blnReLoad Then blnReLoad = True
+ Else
+ '找出Exception訊並顯示出來
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit For
+ End If
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Delete failed," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ Exit For
+ End Try
+
+ Next
+
+ XmlDoc = Nothing
+
+ If blnReLoad Then Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ End If
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub btnDCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDCopy.Click
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing And Not Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow OrElse iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractorCont).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'" _
+ & " And ContactorName = '" & Replace(Me.iugDetail.iMESUltraGrid.ActiveRow.Cells("ContactorName").Value.ToString, "'", "''") & "'")
+
+ Dim fSubcontractorContDef As New frmSubcontractorContDef
+ fSubcontractorContDef.DefMode = 2
+ fSubcontractorContDef.EditDataRow = Rows(0)
+ fSubcontractorContDef.SubcontractorNo = Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString
+ fSubcontractorContDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ ContactorName = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ ugrRow = FindRecordPosition(iugDetail, "ContactorName", ContactorName)
+ If Not ugrRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ Else
+
+ Exit Sub
+ End If
+
+ End Sub
+
+ Private Sub btnEMail_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEMail.Click
+
+ If Not Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then
+ If iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Dim Rows As DataRow()
+ Dim proMail As New System.Diagnostics.Process
+ Dim strAccount As String
+
+ Rows = dsENT.Tables(tblENTSubcontractorCont).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'" _
+ & " And ContactorName = '" & Replace(Me.iugDetail.iMESUltraGrid.ActiveRow.Cells("ContactorName").Value.ToString, "'", "''") & "'")
+
+ strAccount = "mailto:" & Rows(0).Item("EMail").ToString
+ proMail.Start(strAccount)
+
+ End If
+
+ End Sub
+
+ Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
+ Me.Close()
+ End Sub
+
+ Protected Overrides Sub btnQuery_Click(sender As Object, e As EventArgs)
+ Cursor.Current = Cursors.WaitCursor
+
+ funLoadSubcontractor()
+
+ Cursor.Current = Cursors.Default
+ End Sub
+
+#Region "Ultra Grid"
+
+ Private Sub iugSubcontractor_iMESUltraGrid_InitializeLayOut(ByVal sender As System.Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) Handles iugSubcontractor.iMESUltraGrid_InitializeLayOut
+
+ With e.Layout
+ With .Bands(0).Columns("SubcontractorNo")
+ .Header.Caption = "SubcontractorNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 0
+ End With
+ With .Bands(0).Columns("SubcontractorName")
+ .Header.Caption = "SubcontractorName"
+ .Width = 110
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 1
+ End With
+ With .Bands(0).Columns("Description")
+ .Header.Caption = "Description"
+ .Width = 110
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 2
+ End With
+ With .Bands(0).Columns("Creator")
+ .Header.Caption = "Creator"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 3
+ End With
+ With .Bands(0).Columns("CreateDate")
+ .Header.Caption = "CreateDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 4
+ End With
+ With .Bands(0).Columns("IssueState")
+ .Header.Caption = "IssueState"
+ .Width = 114
+ .Hidden = True
+ .Header.VisiblePosition = 5
+ End With
+ With .Bands(0).Columns("Reviser")
+ .Header.Caption = "Reviser"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 6
+ End With
+ With .Bands(0).Columns("ReviseDate")
+ .Header.Caption = "ReviseDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 7
+ End With
+ With e.Layout.Bands(0).Columns("DataStamp")
+ .Hidden = True
+ End With
+ End With
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ End Sub
+
+ Private Sub iugSubcontractor_iMESUltraGrid_AfterRowActivate(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles iugSubcontractor.iMESUltraGrid_AfterRowActivate
+
+ 'IsGroupByRow不做任何處理
+ If Not iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+ Else
+ Exit Sub
+ End If
+
+ End Sub
+
+ Private Sub iugDetail_iMESUltraGrid_InitializeLayOut(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) Handles iugDetail.iMESUltraGrid_InitializeLayOut
+
+ With e.Layout
+ With .Bands(0).Columns("SubcontractorNo")
+ .Header.Caption = "SubcontractorNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 0
+ End With
+ With .Bands(0).Columns("ContactorName")
+ .Header.Caption = "ContactorName"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 1
+ End With
+ With .Bands(0).Columns("TelNo")
+ .Header.Caption = "TelNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 2
+ End With
+ With .Bands(0).Columns("FaxNo")
+ .Header.Caption = "FaxNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 3
+ End With
+ With .Bands(0).Columns("Title")
+ .Header.Caption = "Title"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 4
+ End With
+ With .Bands(0).Columns("Address")
+ .Header.Caption = "Address"
+ .Width = 110
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 5
+ End With
+ With .Bands(0).Columns("EMail")
+ .Header.Caption = "EMail"
+ .Width = 150
+ .Hidden = False
+ .CellAppearance.ForeColor = System.Drawing.Color.Blue
+ .CellAppearance.FontData.Underline = DefaultableBoolean.True
+ .Header.VisiblePosition = 6
+ End With
+ With .Bands(0).Columns("Description")
+ .Header.Caption = "Description"
+ .Width = 200
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 7
+ End With
+ With .Bands(0).Columns("Creator")
+ .Header.Caption = "Creator"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 8
+ End With
+ With .Bands(0).Columns("CreateDate")
+ .Header.Caption = "CreateDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 9
+ End With
+ With .Bands(0).Columns("Reviser")
+ .Header.Caption = "Reviser"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 10
+ End With
+ With .Bands(0).Columns("ReviseDate")
+ .Header.Caption = "ReviseDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 11
+ End With
+ With e.Layout.Bands(0).Columns("DataStamp")
+ .Hidden = True
+ End With
+ End With
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ End Sub
+
+#End Region
+
+#Region "Load Function"
+
+ '//取出tblENTSubcontractor 外包商資料
+
+ Private Sub funLoadSubcontractor()
+
+ '先判斷是否dataset中已有ENTSubcontractor之datatable,若有,需先remove否則會有錯誤
+ If Not IsNothing(dsENT.Tables(tblENTSubcontractor)) Then
+ dsENT.Tables.Remove(tblENTSubcontractor)
+ End If
+
+ '組InXml的字串
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ '加上IssueState要求取出所有資料
+ strParameter = CombineXMLParameter("issuestate", "IssueState", "Integer", defInteger, "")
+ '加上查詢條件 cboSearchFieldName,txtSearchFieldValue
+ strParameter += CombineXMLQueryCondition()
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ Try
+ ' 2016 YF, OutXml = wsENT.LoadSubcontractor(InXml)
+ 'OutXml = InvokeSrv("wsENT.LoadSubcontractor", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.LoadSubcontractor", InXml)
+
+ Dim XmlDoc As New XmlDocument '處理Xml字串之物件?
+
+ '利用XmlDoc物件處理ReturnValue
+ XmlDoc.LoadXml(OutXml)
+
+ If ChkExecutionSuccess(XmlDoc) Then
+ '讀取取出資料表之名稱
+
+ tblENTSubcontractor = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loadSubcontractor").Item(0).SelectNodes("name").Item(0).InnerXml
+ '取出Schema,dataset讀取Schema可防止Null Field及DateTime的問題
+
+ XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractor").Item(0).SelectNodes("schema").Item(0).InnerXml
+ If XmlSchema <> "" Then
+ '將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件
+ tmpStringReader = New System.IO.StringReader(XmlSchema)
+ dsENT.ReadXmlSchema(tmpStringReader)
+ tmpStringReader.Close()
+ End If
+
+ '取出Data
+ XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractor").Item(0).SelectNodes("value").Item(0).InnerXml
+ If XmlData <> "" Then
+ tmpStringReader = New System.IO.StringReader(XmlData)
+ dsENT.ReadXml(tmpStringReader, XmlReadMode.InferSchema)
+ tmpStringReader.Close()
+ End If
+
+ strFilter = ""
+ Select Case GetIssueState()
+ Case Issue.Unfrozen
+ strFilter = FilterByInteger(strFilter, "IssueState", 0)
+ Case Issue.Pending
+ strFilter = FilterByInteger(strFilter, "IssueState", 1)
+ Case Issue.Active
+ strFilter = FilterByInteger(strFilter, "IssueState", 2)
+ Case Issue.Unused
+ strFilter = FilterByInteger(strFilter, "IssueState", -1)
+ End Select
+
+ dsENT.Tables(tblENTSubcontractor).DefaultView.RowFilter = strFilter
+ dsENT.Tables(tblENTSubcontractor).DefaultView.Sort = "SubcontractorNo"
+
+ Me.iugSubcontractor.iMESUltraGrid.DataSource = dsENT.Tables(tblENTSubcontractor).DefaultView
+
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit Sub
+ End If
+
+ XmlDoc = Nothing
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Load ENT Subcontractor Failed!!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ End Sub
+
+ '//取出tblENTSubcontractorCont聯絡人資料
+
+ Private Sub funLoadSubcontractorCont(ByRef SubcontractorNo As String)
+
+ If Not IsNothing(dsENT.Tables(tblENTSubcontractorCont)) Then
+ dsENT.Tables.Remove(tblENTSubcontractorCont)
+ End If
+
+ '組InXml的字串
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", SubcontractorNo, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ Try
+ ' 2016 YF, OutXml = wsENT.LoadSubcontractorCont(InXml)
+ 'OutXml = InvokeSrv("wsENT.LoadSubcontractorCont", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.LoadSubcontractorCont", InXml)
+
+ Dim XmlDoc As New XmlDocument '處理Xml字串之物件?
+
+ '利用XmlDoc物件處理ReturnValue
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ '讀取取出資料表之名稱
+
+ tblENTSubcontractorCont = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loadSubcontractorcont").Item(0).SelectNodes("name").Item(0).InnerXml
+ '取出Schema,dataset讀取Schema可防止Null Field及DateTime的問題
+ XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractorcont").Item(0).SelectNodes("schema").Item(0).InnerXml
+ If XmlSchema <> "" Then
+ '將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件
+ tmpStringReader = New System.IO.StringReader(XmlSchema)
+ dsENT.ReadXmlSchema(tmpStringReader)
+ tmpStringReader.Close()
+ End If
+
+ '取出Data
+ XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractorcont").Item(0).SelectNodes("value").Item(0).InnerXml
+ If XmlData <> "" Then
+ tmpStringReader = New System.IO.StringReader(XmlData)
+ dsENT.ReadXml(tmpStringReader, XmlReadMode.InferSchema)
+ tmpStringReader.Close()
+ End If
+
+ Me.iugDetail.iMESUltraGrid.DataSource = dsENT.Tables(tblENTSubcontractorCont).DefaultView
+
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ End If
+
+ XmlDoc = Nothing
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Load ENT Subcontractor Cont Failed!!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ End Sub
+
+ Private Sub funShowActiveDetail()
+
+ If Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.DataSource = Nothing
+ Else
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+ End If
+
+ End Sub
+
+ Private Sub funiMESUltraGridIni()
+
+ 'iugSubcontractor 初始設定
+ With Me.iugSubcontractor.iMESUltraGrid
+ .Text = ""
+ .DisplayLayout.GroupByBox.Hidden = True
+ .DisplayLayout.UseFixedHeaders = False
+ End With
+
+ '系統會以UserNo做為Layout的檔名
+
+ iugSubcontractor.UserNo = gUserNo
+
+ 'iugDetail 初始設定
+ With Me.iugDetail.iMESUltraGrid.DisplayLayout
+ .GroupByBox.Hidden = True
+ .Override.ExpansionIndicator = ShowExpansionIndicator.Default
+ .ViewStyle = ViewStyle.SingleBand
+ .RowConnectorStyle = RowConnectorStyle.Default
+
+ End With
+
+ '系統會以UserNo做為Layout的檔名
+
+ iugDetail.UserNo = gUserNo
+
+ End Sub
+
+
+#End Region
+
+End Class
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmSubcontractorContDef.resx b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmSubcontractorContDef.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmSubcontractorContDef.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmSubcontractorContDef.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmSubcontractorContDef.vb
new file mode 100644
index 0000000..c489735
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmSubcontractorContDef.vb
@@ -0,0 +1,656 @@
+Imports iMESExceptionManager
+
+Public Class frmSubcontractorContDef
+
+ Inherits COM_Kit.frmDefTemplat
+
+ '//Public Variables
+ Public EditDataRow As DataRow
+ Public DefMode As Integer = 0 '0. ADD, 1.Edit, 2. Copy
+
+ Public SubcontractorNo As String = defString
+ Public PrivFunNo As String = defString
+
+ '//Web Service相關變數
+ ' 2016 YF, Dim wsENT As New wsENT.wsENT
+ Dim InXml As String
+ Dim OutXml As String
+
+ Dim strIdentity As String
+ Dim strParameter As String
+ Dim intDataStamp As Integer '紀錄DataStamp
+
+#Region " Windows Form Designer generated code "
+
+ Public Sub New()
+ MyBase.New()
+
+ 'This call is required by the Windows Form Designer.
+ InitializeComponent()
+
+ 'Add any initialization after the InitializeComponent() call
+
+ End Sub
+
+ 'Form overrides dispose to clean up the component list.
+ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
+ If disposing Then
+ If Not (components Is Nothing) Then
+ components.Dispose()
+ End If
+ End If
+ MyBase.Dispose(disposing)
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.IContainer
+
+ 'NOTE: The following procedure is required by the Windows Form Designer
+ 'It can be modified using the Windows Form Designer.
+ 'Do not modify it using the code editor.
+ Friend WithEvents txtDescription As System.Windows.Forms.RichTextBox
+ Friend WithEvents lblAddress As System.Windows.Forms.Label
+ Friend WithEvents lblEMail As System.Windows.Forms.Label
+ Friend WithEvents lblTitle As System.Windows.Forms.Label
+ Friend WithEvents lblFaxNo As System.Windows.Forms.Label
+ Friend WithEvents lblTelNo As System.Windows.Forms.Label
+ Friend WithEvents lblDescription As System.Windows.Forms.Label
+ Friend WithEvents lblContactorName As System.Windows.Forms.Label
+ Friend WithEvents lblSubcontractorNo As System.Windows.Forms.Label
+ Friend WithEvents gbxSubcontractorContData As System.Windows.Forms.GroupBox
+ Friend WithEvents txtSubcontractorNo As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtContactorName As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtFaxNo As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtTelNo As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtEMail As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtTitle As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtAddress As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Private Sub InitializeComponent()
+ Dim Appearance1 As Infragistics.Win.Appearance = New Infragistics.Win.Appearance()
+ Me.gbxSubcontractorContData = New System.Windows.Forms.GroupBox()
+ Me.txtAddress = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtEMail = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtTitle = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtFaxNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.lblAddress = New System.Windows.Forms.Label()
+ Me.lblEMail = New System.Windows.Forms.Label()
+ Me.lblTitle = New System.Windows.Forms.Label()
+ Me.lblFaxNo = New System.Windows.Forms.Label()
+ Me.lblTelNo = New System.Windows.Forms.Label()
+ Me.txtDescription = New System.Windows.Forms.RichTextBox()
+ Me.lblDescription = New System.Windows.Forms.Label()
+ Me.lblSubcontractorNo = New System.Windows.Forms.Label()
+ Me.lblContactorName = New System.Windows.Forms.Label()
+ Me.txtSubcontractorNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtContactorName = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtTelNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.gbxSubcontractorContData.SuspendLayout()
+ CType(Me.txtAddress, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtEMail, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtTitle, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtFaxNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtSubcontractorNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtContactorName, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtTelNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SuspendLayout()
+ '
+ 'gbxBasisData
+ '
+ Me.gbxBasisData.Location = New System.Drawing.Point(12, 322)
+ Me.gbxBasisData.Size = New System.Drawing.Size(472, 70)
+ '
+ 'btnApply
+ '
+ Me.btnApply.Location = New System.Drawing.Point(396, 401)
+ '
+ 'btnConfirm
+ '
+ Me.btnConfirm.Location = New System.Drawing.Point(208, 401)
+ '
+ 'btnClose
+ '
+ Me.btnClose.Location = New System.Drawing.Point(302, 401)
+ '
+ 'gbxSubcontractorContData
+ '
+ Me.gbxSubcontractorContData.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtAddress)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtEMail)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtTitle)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtFaxNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblAddress)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblEMail)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblTitle)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblFaxNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblTelNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtDescription)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblDescription)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblSubcontractorNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblContactorName)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtSubcontractorNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtContactorName)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtTelNo)
+ Me.gbxSubcontractorContData.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.gbxSubcontractorContData.Location = New System.Drawing.Point(15, 8)
+ Me.gbxSubcontractorContData.Name = "gbxSubcontractorContData"
+ Me.gbxSubcontractorContData.Size = New System.Drawing.Size(469, 306)
+ Me.gbxSubcontractorContData.TabIndex = 0
+ Me.gbxSubcontractorContData.TabStop = False
+ Me.gbxSubcontractorContData.Text = "ENT Subcontractor Contactor Data"
+ '
+ 'txtAddress
+ '
+ Me.txtAddress.Location = New System.Drawing.Point(120, 152)
+ Me.txtAddress.Name = "txtAddress"
+ Me.txtAddress.Size = New System.Drawing.Size(336, 22)
+ Me.txtAddress.TabIndex = 13
+ '
+ 'txtEMail
+ '
+ Me.txtEMail.Location = New System.Drawing.Point(320, 120)
+ Me.txtEMail.Name = "txtEMail"
+ Me.txtEMail.Size = New System.Drawing.Size(136, 22)
+ Me.txtEMail.TabIndex = 11
+ '
+ 'txtTitle
+ '
+ Me.txtTitle.Location = New System.Drawing.Point(120, 120)
+ Me.txtTitle.Name = "txtTitle"
+ Me.txtTitle.Size = New System.Drawing.Size(114, 22)
+ Me.txtTitle.TabIndex = 9
+ '
+ 'txtFaxNo
+ '
+ Me.txtFaxNo.Location = New System.Drawing.Point(320, 88)
+ Me.txtFaxNo.Name = "txtFaxNo"
+ Me.txtFaxNo.Size = New System.Drawing.Size(136, 22)
+ Me.txtFaxNo.TabIndex = 7
+ '
+ 'lblAddress
+ '
+ Me.lblAddress.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblAddress.Location = New System.Drawing.Point(24, 154)
+ Me.lblAddress.Name = "lblAddress"
+ Me.lblAddress.Size = New System.Drawing.Size(86, 14)
+ Me.lblAddress.TabIndex = 12
+ Me.lblAddress.Text = "Address"
+ Me.lblAddress.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblEMail
+ '
+ Me.lblEMail.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblEMail.Location = New System.Drawing.Point(248, 123)
+ Me.lblEMail.Name = "lblEMail"
+ Me.lblEMail.Size = New System.Drawing.Size(64, 14)
+ Me.lblEMail.TabIndex = 10
+ Me.lblEMail.Text = "EMail"
+ Me.lblEMail.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblTitle
+ '
+ Me.lblTitle.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblTitle.Location = New System.Drawing.Point(24, 121)
+ Me.lblTitle.Name = "lblTitle"
+ Me.lblTitle.Size = New System.Drawing.Size(86, 14)
+ Me.lblTitle.TabIndex = 8
+ Me.lblTitle.Text = "Title"
+ Me.lblTitle.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblFaxNo
+ '
+ Me.lblFaxNo.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblFaxNo.Location = New System.Drawing.Point(248, 90)
+ Me.lblFaxNo.Name = "lblFaxNo"
+ Me.lblFaxNo.Size = New System.Drawing.Size(64, 14)
+ Me.lblFaxNo.TabIndex = 6
+ Me.lblFaxNo.Text = "FaxNo"
+ Me.lblFaxNo.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblTelNo
+ '
+ Me.lblTelNo.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblTelNo.Location = New System.Drawing.Point(24, 90)
+ Me.lblTelNo.Name = "lblTelNo"
+ Me.lblTelNo.Size = New System.Drawing.Size(86, 14)
+ Me.lblTelNo.TabIndex = 4
+ Me.lblTelNo.Text = "TelNo"
+ Me.lblTelNo.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'txtDescription
+ '
+ Me.txtDescription.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.txtDescription.Location = New System.Drawing.Point(120, 184)
+ Me.txtDescription.Name = "txtDescription"
+ Me.txtDescription.Size = New System.Drawing.Size(336, 108)
+ Me.txtDescription.TabIndex = 15
+ Me.txtDescription.Text = ""
+ '
+ 'lblDescription
+ '
+ Me.lblDescription.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblDescription.Location = New System.Drawing.Point(24, 186)
+ Me.lblDescription.Name = "lblDescription"
+ Me.lblDescription.Size = New System.Drawing.Size(86, 14)
+ Me.lblDescription.TabIndex = 14
+ Me.lblDescription.Text = "Description"
+ Me.lblDescription.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblSubcontractorNo
+ '
+ Me.lblSubcontractorNo.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblSubcontractorNo.Location = New System.Drawing.Point(14, 29)
+ Me.lblSubcontractorNo.Name = "lblSubcontractorNo"
+ Me.lblSubcontractorNo.Size = New System.Drawing.Size(96, 14)
+ Me.lblSubcontractorNo.TabIndex = 0
+ Me.lblSubcontractorNo.Text = "Subcontractor No"
+ Me.lblSubcontractorNo.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblContactorName
+ '
+ Me.lblContactorName.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblContactorName.Location = New System.Drawing.Point(24, 59)
+ Me.lblContactorName.Name = "lblContactorName"
+ Me.lblContactorName.Size = New System.Drawing.Size(86, 14)
+ Me.lblContactorName.TabIndex = 2
+ Me.lblContactorName.Text = "Contactor Name"
+ Me.lblContactorName.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'txtSubcontractorNo
+ '
+ Me.txtSubcontractorNo.Location = New System.Drawing.Point(120, 24)
+ Me.txtSubcontractorNo.Name = "txtSubcontractorNo"
+ Me.txtSubcontractorNo.ReadOnly = True
+ Me.txtSubcontractorNo.Size = New System.Drawing.Size(114, 22)
+ Me.txtSubcontractorNo.TabIndex = 1
+ Me.txtSubcontractorNo.TabStop = False
+ '
+ 'txtContactorName
+ '
+ Appearance1.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtContactorName.Appearance = Appearance1
+ Me.txtContactorName.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtContactorName.Location = New System.Drawing.Point(120, 56)
+ Me.txtContactorName.Name = "txtContactorName"
+ Me.txtContactorName.Size = New System.Drawing.Size(160, 22)
+ Me.txtContactorName.TabIndex = 3
+ '
+ 'txtTelNo
+ '
+ Me.txtTelNo.Location = New System.Drawing.Point(120, 88)
+ Me.txtTelNo.Name = "txtTelNo"
+ Me.txtTelNo.Size = New System.Drawing.Size(114, 22)
+ Me.txtTelNo.TabIndex = 5
+ '
+ 'frmSubcontractorContDef
+ '
+ Me.ClientSize = New System.Drawing.Size(496, 446)
+ Me.Controls.Add(Me.gbxSubcontractorContData)
+ Me.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Name = "frmSubcontractorContDef"
+ Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
+ Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
+ Me.Text = "ENT Subcontractor Contactor Define"
+ Me.Controls.SetChildIndex(Me.btnClose, 0)
+ Me.Controls.SetChildIndex(Me.btnConfirm, 0)
+ Me.Controls.SetChildIndex(Me.btnApply, 0)
+ Me.Controls.SetChildIndex(Me.gbxBasisData, 0)
+ Me.Controls.SetChildIndex(Me.gbxSubcontractorContData, 0)
+ CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.gbxSubcontractorContData.ResumeLayout(False)
+ Me.gbxSubcontractorContData.PerformLayout()
+ CType(Me.txtAddress, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtEMail, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtTitle, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtFaxNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtSubcontractorNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtContactorName, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtTelNo, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.ResumeLayout(False)
+
+ End Sub
+
+#End Region
+
+ Private Sub frmSubcontractorContDef_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
+
+ Cursor.Current = Cursors.WaitCursor
+
+ Select Case DefMode
+ Case 0
+ Me.Text = Me.Text & "(ADD)"
+ Case 1
+ Me.Text = Me.Text & "(EDIT)"
+ Case 2
+ Me.Text = Me.Text & "(Copy)"
+ Case Else
+ Me.Text = Me.Text & "(Unknown)"
+ End Select
+
+ '做為MainForm判斷是否重新LoadData的依據()
+ gReturnKeyValue = ""
+
+ ' 2016 YF, wsENT.Url = LocalizeWebService(wsENT.Url.ToString)
+ ' 2016 YF, wsENT.EnableDecompression = True
+ If DefMode = 0 Or DefMode = 2 Then
+ SetCreateDate(Now)
+ SetCreator(gUserNo)
+ End If
+ If Not EditDataRow Is Nothing Then '修改 or Copy
+ txtSubcontractorNo.Text = EditDataRow.Item("SubcontractorNo").ToString
+ txtContactorName.Text = EditDataRow.Item("ContactorName").ToString
+ txtTelNo.Text = EditDataRow.Item("TelNo").ToString
+ txtFaxNo.Text = EditDataRow.Item("FaxNo").ToString
+ txtTitle.Text = EditDataRow.Item("Title").ToString
+ txtAddress.Text = EditDataRow.Item("Address").ToString
+ txtEMail.Text = EditDataRow.Item("EMail").ToString
+ 'txtDescription是RichTextBox(Control, 因為TextBox無法正常顯示多行換行的資料)
+ txtDescription.Text = EditDataRow.Item("Description").ToString
+ If DefMode = 1 Then
+ If (Not IsDBNull(EditDataRow("Creator"))) Then
+ SetCreateDate(Convert.ToDateTime(EditDataRow.Item("CreateDate")))
+ SetCreator(EditDataRow.Item("Creator").ToString)
+ End If
+ End If
+ End If
+
+ If DefMode = 0 Then 'Add
+ txtSubcontractorNo.Text = SubcontractorNo
+ SetCreateDate(Now)
+ SetCreator(gUserNo)
+ ElseIf DefMode = 1 Then 'Edit
+ txtContactorName.ReadOnly = True
+ SetReviseDate(Now)
+ SetReviser(gUserNo)
+ intDataStamp = EditDataRow.Item("DataStamp")
+ End If
+
+ btnApplyEnabled = False
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ ExeGroupControlPriv(Me, PrivFunNo)
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub frmSubcontractorContDef_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
+ If DefMode = 0 Or DefMode = 2 Then
+ txtContactorName.Focus()
+ Else
+ txtTelNo.Focus()
+ End If
+ End Sub
+
+ Protected Overrides Sub btnConfirm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If funAddorEdit(sender) < 0 Then Exit Sub
+
+ Me.Close()
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Protected Overrides Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+ Me.Close()
+ End Sub
+
+ Protected Overrides Sub btnApply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If funAddorEdit(sender) < 0 Then Exit Sub
+
+ If DefMode = 0 Or DefMode = 2 Then
+ txtContactorName.Focus()
+ Else
+ txtTelNo.Focus()
+ End If
+
+ txtEMail.Text = ""
+ btnApplyEnabled = False
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+#Region "Control KeyPress"
+
+ Private Sub txtSubcontractorNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Click
+ txtSubcontractorNo.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorNo_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Enter
+ txtSubcontractorNo.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorNo_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSubcontractorNo.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtSubcontractorNo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtContactorName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtContactorName.Click
+ txtContactorName.SelectAll()
+ End Sub
+
+ Private Sub txtContactorName_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtContactorName.Enter
+ txtContactorName.SelectAll()
+ End Sub
+
+ Private Sub txtContactorName_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtContactorName.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtContactorName_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtContactorName.Leave
+ If txtContactorName.Text <> "" And txtEMail.Text = "" Then
+ txtEMail.Text = txtContactorName.Text & "@"
+ End If
+ txtContactorName.Text = UCase(txtContactorName.Text)
+ End Sub
+
+ Private Sub txtContactorName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtContactorName.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtTelNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTelNo.Click
+ txtTelNo.SelectAll()
+ End Sub
+
+ Private Sub txtTelNo_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTelNo.Enter
+ txtTelNo.SelectAll()
+ End Sub
+
+ Private Sub txtTelNo_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTelNo.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtTelNo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTelNo.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtFaxNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFaxNo.Click
+ txtFaxNo.SelectAll()
+ End Sub
+
+ Private Sub txtFaxNo_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFaxNo.Enter
+ txtFaxNo.SelectAll()
+ End Sub
+
+ Private Sub txtFaxNo_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtFaxNo.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtFaxNo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFaxNo.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtTitle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTitle.Click
+ txtTitle.SelectAll()
+ End Sub
+
+ Private Sub txtTitle_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTitle.Enter
+ txtTitle.SelectAll()
+ End Sub
+
+ Private Sub txtTitle_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTitle.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtTitle_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTitle.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtEMail_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtEMail.Click
+ txtEMail.SelectAll()
+ End Sub
+
+ Private Sub txtEMail_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtEMail.Enter
+ txtEMail.SelectAll()
+ End Sub
+
+ Private Sub txtEMail_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtEMail.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtEMail_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtEMail.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtAddress_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtAddress.Click
+ txtAddress.SelectAll()
+ End Sub
+
+ Private Sub txtAddress_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtAddress.Enter
+ txtAddress.SelectAll()
+ End Sub
+
+ Private Sub txtAddress_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtAddress.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtAddress_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtAddress.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtDescription_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDescription.Click
+ txtDescription.SelectAll()
+ End Sub
+
+ Private Sub txtDescription_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDescription.Enter
+ txtDescription.SelectAll()
+ End Sub
+
+ Private Sub txtDescription_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtDescription.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtDescription_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDescription.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+#End Region
+
+#Region "Others"
+
+ Private Function funAddorEdit(sender As Object) As Integer
+
+ funAddorEdit = -1
+
+ '******************************************************************************
+ '1.基本檢查()
+ '******************************************************************************
+ If txtSubcontractorNo.Text = "" Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200001", "[%SubcontractorNo%]"), MsgBoxStyle.Exclamation, Me.Text)
+ txtSubcontractorNo.Focus()
+ Exit Function
+ End If
+ If txtContactorName.Text = "" Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200001", "[%ContactorName%]"), MsgBoxStyle.Exclamation, Me.Text)
+ txtContactorName.Focus()
+ Exit Function
+ End If
+
+ '******************************************************************************
+ '2.寫回資料庫()
+ '******************************************************************************
+ Dim XmlDoc As New XmlDocument
+
+ Try
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ strParameter = CombineXMLParameter("subcontractorno", "SubcontractorNo", "String", CInput(txtSubcontractorNo.Text), "")
+ strParameter = strParameter & CombineXMLParameter("contactorname", "ContactorName", "String", CInput(txtContactorName.Text), "")
+ strParameter = strParameter & CombineXMLParameter("telno", "TelNo", "String", txtTelNo.Text, "")
+ strParameter = strParameter & CombineXMLParameter("faxno", "FaxNo", "String", txtFaxNo.Text, "")
+ strParameter = strParameter & CombineXMLParameter("title", "Title", "String", CInput(txtTitle.Text), "")
+ strParameter = strParameter & CombineXMLParameter("address", "Address", "String", CInput(txtAddress.Text), "")
+ strParameter = strParameter & CombineXMLParameter("email", "EMail", "String", CInput(txtEMail.Text), "")
+ strParameter = strParameter & CombineXMLParameter("description", "Description", "String", CInput(txtDescription.Text), "")
+
+
+ If DefMode = 0 Or DefMode = 2 Then 'Add or Copy
+ strParameter += CombineXMLParameter("creator", "Creator", "String", gUserNo, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ ' 2016 YF, OutXml = wsENT.AddSubcontractorCont(InXml)
+ OutXml = InvokeSrv("SXS.wsENT.AddSubcontractorCont", InXml)
+
+ Else 'Edit
+ ' 增加Datastamp
+ strParameter += CombineXMLParameter("datastamp", "Datastamp", "Integer", intDataStamp, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ ' 2016 YF, OutXml = wsENT.EditSubcontractorCont(InXml)
+ OutXml = InvokeSrv("SXS.wsENT.EditSubcontractorCont", InXml)
+
+ End If
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ gReturnKeyValue = txtContactorName.Text
+
+ funAddorEdit = 0
+ If sender.Equals(btnApply) Then
+ intDataStamp += 1
+ End If
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ End If
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Add or Edit ENT Subcontractor Contactor Failed!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ XmlDoc = Nothing
+
+ End Function
+#End Region
+
+
+ Private Sub frmSubcontractorContDef_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
+ ' 2016 YF, If Not wsENT Is Nothing Then wsENT.Dispose()
+ End Sub
+End Class
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmSubcontractorDef.resx b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmSubcontractorDef.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmSubcontractorDef.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmSubcontractorDef.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmSubcontractorDef.vb
new file mode 100644
index 0000000..ff97a9a
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/frmSubcontractorDef.vb
@@ -0,0 +1,421 @@
+Imports iMESExceptionManager
+
+Public Class frmSubcontractorDef
+
+ Inherits COM_Kit.frmDefTemplat
+
+ '//Public Variables
+ Public EditDataRow As DataRow
+ Public DefMode As Integer = 0 '0. ADD, 1.Edit, 2. Copy
+ Public PrivFunNo As String = defString
+
+ '//Web Service相關變數
+ ' 2016 YF, Dim wsENT As New wsENT.wsENT
+ Dim InXml As String
+ Dim OutXml As String
+
+ Dim strIdentity As String
+ Dim strParameter As String
+ Dim intDataStamp As Integer '紀錄DataStamp
+
+#Region " Windows Form Designer generated code "
+
+ Public Sub New()
+ MyBase.New()
+
+ 'This call is required by the Windows Form Designer.
+ InitializeComponent()
+
+ 'Add any initialization after the InitializeComponent() call
+
+ End Sub
+
+ 'Form overrides dispose to clean up the component list.
+ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
+ If disposing Then
+ If Not (components Is Nothing) Then
+ components.Dispose()
+ End If
+ End If
+ MyBase.Dispose(disposing)
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.IContainer
+
+ 'NOTE: The following procedure is required by the Windows Form Designer
+ 'It can be modified using the Windows Form Designer.
+ 'Do not modify it using the code editor.
+ Friend WithEvents txtDescription As System.Windows.Forms.RichTextBox
+ Friend WithEvents lblDescription As System.Windows.Forms.Label
+ Friend WithEvents lblSubcontractorNo As System.Windows.Forms.Label
+ Friend WithEvents lblSubcontractorName As System.Windows.Forms.Label
+ Friend WithEvents gbxSubcontractorData As System.Windows.Forms.GroupBox
+ Friend WithEvents txtSubcontractorNo As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtSubcontractorName As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Private Sub InitializeComponent()
+ Dim Appearance1 As Infragistics.Win.Appearance = New Infragistics.Win.Appearance()
+ Dim Appearance2 As Infragistics.Win.Appearance = New Infragistics.Win.Appearance()
+ Me.gbxSubcontractorData = New System.Windows.Forms.GroupBox()
+ Me.txtDescription = New System.Windows.Forms.RichTextBox()
+ Me.lblDescription = New System.Windows.Forms.Label()
+ Me.lblSubcontractorNo = New System.Windows.Forms.Label()
+ Me.lblSubcontractorName = New System.Windows.Forms.Label()
+ Me.txtSubcontractorNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtSubcontractorName = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.gbxSubcontractorData.SuspendLayout()
+ CType(Me.txtSubcontractorNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtSubcontractorName, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SuspendLayout()
+ '
+ 'gbxBasisData
+ '
+ Me.gbxBasisData.Location = New System.Drawing.Point(12, 185)
+ Me.gbxBasisData.Size = New System.Drawing.Size(479, 70)
+ '
+ 'btnApply
+ '
+ Me.btnApply.Location = New System.Drawing.Point(403, 264)
+ '
+ 'btnConfirm
+ '
+ Me.btnConfirm.Location = New System.Drawing.Point(215, 264)
+ '
+ 'btnClose
+ '
+ Me.btnClose.Location = New System.Drawing.Point(309, 264)
+ '
+ 'gbxSubcontractorData
+ '
+ Me.gbxSubcontractorData.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.gbxSubcontractorData.Controls.Add(Me.txtDescription)
+ Me.gbxSubcontractorData.Controls.Add(Me.lblDescription)
+ Me.gbxSubcontractorData.Controls.Add(Me.lblSubcontractorNo)
+ Me.gbxSubcontractorData.Controls.Add(Me.lblSubcontractorName)
+ Me.gbxSubcontractorData.Controls.Add(Me.txtSubcontractorNo)
+ Me.gbxSubcontractorData.Controls.Add(Me.txtSubcontractorName)
+ Me.gbxSubcontractorData.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.gbxSubcontractorData.Location = New System.Drawing.Point(12, 8)
+ Me.gbxSubcontractorData.Name = "gbxSubcontractorData"
+ Me.gbxSubcontractorData.Size = New System.Drawing.Size(479, 169)
+ Me.gbxSubcontractorData.TabIndex = 7
+ Me.gbxSubcontractorData.TabStop = False
+ Me.gbxSubcontractorData.Text = "Subcontractor Data"
+ '
+ 'txtDescription
+ '
+ Me.txtDescription.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.txtDescription.Location = New System.Drawing.Point(128, 86)
+ Me.txtDescription.Name = "txtDescription"
+ Me.txtDescription.Size = New System.Drawing.Size(334, 67)
+ Me.txtDescription.TabIndex = 2
+ Me.txtDescription.Text = ""
+ '
+ 'lblDescription
+ '
+ Me.lblDescription.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblDescription.Location = New System.Drawing.Point(56, 88)
+ Me.lblDescription.Name = "lblDescription"
+ Me.lblDescription.Size = New System.Drawing.Size(64, 14)
+ Me.lblDescription.TabIndex = 13
+ Me.lblDescription.Text = "Description"
+ Me.lblDescription.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblSubcontractorNo
+ '
+ Me.lblSubcontractorNo.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblSubcontractorNo.Location = New System.Drawing.Point(24, 24)
+ Me.lblSubcontractorNo.Name = "lblSubcontractorNo"
+ Me.lblSubcontractorNo.Size = New System.Drawing.Size(96, 32)
+ Me.lblSubcontractorNo.TabIndex = 5
+ Me.lblSubcontractorNo.Text = "Subcontractor No"
+ Me.lblSubcontractorNo.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblSubcontractorName
+ '
+ Me.lblSubcontractorName.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblSubcontractorName.Location = New System.Drawing.Point(8, 56)
+ Me.lblSubcontractorName.Name = "lblSubcontractorName"
+ Me.lblSubcontractorName.Size = New System.Drawing.Size(112, 32)
+ Me.lblSubcontractorName.TabIndex = 9
+ Me.lblSubcontractorName.Text = "Subcontractor Name"
+ Me.lblSubcontractorName.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'txtSubcontractorNo
+ '
+ Appearance1.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtSubcontractorNo.Appearance = Appearance1
+ Me.txtSubcontractorNo.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtSubcontractorNo.Location = New System.Drawing.Point(128, 24)
+ Me.txtSubcontractorNo.Name = "txtSubcontractorNo"
+ Me.txtSubcontractorNo.Size = New System.Drawing.Size(152, 22)
+ Me.txtSubcontractorNo.TabIndex = 0
+ '
+ 'txtSubcontractorName
+ '
+ Appearance2.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtSubcontractorName.Appearance = Appearance2
+ Me.txtSubcontractorName.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtSubcontractorName.Location = New System.Drawing.Point(128, 55)
+ Me.txtSubcontractorName.Name = "txtSubcontractorName"
+ Me.txtSubcontractorName.Size = New System.Drawing.Size(334, 22)
+ Me.txtSubcontractorName.TabIndex = 1
+ '
+ 'frmSubcontractorDef
+ '
+ Me.ClientSize = New System.Drawing.Size(503, 309)
+ Me.Controls.Add(Me.gbxSubcontractorData)
+ Me.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Name = "frmSubcontractorDef"
+ Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
+ Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
+ Me.Text = "ENT Subcontractor Define"
+ Me.Controls.SetChildIndex(Me.btnClose, 0)
+ Me.Controls.SetChildIndex(Me.btnConfirm, 0)
+ Me.Controls.SetChildIndex(Me.btnApply, 0)
+ Me.Controls.SetChildIndex(Me.gbxBasisData, 0)
+ Me.Controls.SetChildIndex(Me.gbxSubcontractorData, 0)
+ CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.gbxSubcontractorData.ResumeLayout(False)
+ Me.gbxSubcontractorData.PerformLayout()
+ CType(Me.txtSubcontractorNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtSubcontractorName, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.ResumeLayout(False)
+
+ End Sub
+
+#End Region
+
+ Private Sub frmSubcontractorDef_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
+
+ Cursor.Current = Cursors.WaitCursor
+
+ Select Case DefMode
+ Case 0
+ Me.Text = Me.Text & "(ADD)"
+ Case 1
+ Me.Text = Me.Text & "(EDIT)"
+ Case 2
+ Me.Text = Me.Text & "(Copy)"
+ Case Else
+ Me.Text = Me.Text & "(Unknown)"
+ End Select
+
+ '做為MainForm判斷是否重新LoadData的依據
+ gReturnKeyValue = ""
+
+ ' 2016 YF, wsENT.Url = LocalizeWebService(wsENT.Url.ToString)
+ ' 2016 YF, wsENT.EnableDecompression = True
+
+ If Not EditDataRow Is Nothing Then
+ txtSubcontractorNo.Text = EditDataRow.Item("SubcontractorNo").ToString
+ txtSubcontractorName.Text = EditDataRow.Item("SubcontractorName").ToString
+ 'txtDescription是RichTextBox Control,因為TextBox無法正常顯示多行換行的資料
+ txtDescription.Text = EditDataRow.Item("Description").ToString
+ End If
+
+ If DefMode = 0 Or DefMode = 2 Then 'Add or Copy
+ SetCreator(gUserNo)
+ SetCreateDate(Now)
+ ElseIf DefMode = 1 Then 'Edit
+ txtSubcontractorNo.ReadOnly = True
+ SetCreator(EditDataRow.Item("Creator").ToString)
+ SetCreateDate(Convert.ToDateTime(EditDataRow.Item("CreateDate")))
+ SetReviser(gUserNo)
+ SetReviseDate(Now)
+ intDataStamp = EditDataRow.Item("DataStamp")
+ End If
+
+ btnApplyEnabled = False
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ ExeGroupControlPriv(Me, PrivFunNo)
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub frmSubcontractorDef_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
+ If DefMode = 0 Or DefMode = 2 Then
+ txtSubcontractorNo.Focus()
+ Else
+ txtSubcontractorName.Focus()
+ End If
+ End Sub
+
+ Protected Overrides Sub btnConfirm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If funAddorEdit(sender) < 0 Then Exit Sub
+
+ Me.Close()
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Protected Overrides Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+ Me.Close()
+ End Sub
+
+ Protected Overrides Sub btnApply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If funAddorEdit(sender) < 0 Then Exit Sub
+
+ If DefMode = 0 Or DefMode = 2 Then
+ txtSubcontractorNo.Focus()
+ Else
+ txtSubcontractorName.Focus()
+
+ End If
+
+ Cursor.Current = Cursors.Default
+ btnApplyEnabled = False
+
+ End Sub
+
+ Private Sub frmSubcontractorDef_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
+ ' 2016 YF, If Not wsENT Is Nothing Then wsENT.Dispose()
+ End Sub
+
+#Region "Control KeyPress"
+
+ Private Sub txtSubcontractorNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Click
+ txtSubcontractorNo.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorNo_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Enter
+ txtSubcontractorNo.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorNo_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSubcontractorNo.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtSubcontractorNo_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Leave
+ txtSubcontractorNo.Text = UCase(txtSubcontractorNo.Text)
+ End Sub
+
+ Private Sub txtSubcontractorNo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtSubcontractorName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorName.Click
+ txtSubcontractorName.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorName_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorName.Enter
+ txtSubcontractorName.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorName_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSubcontractorName.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtSubcontractorName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorName.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtDescription_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDescription.Click
+ txtDescription.SelectAll()
+ End Sub
+
+ Private Sub txtDescription_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDescription.Enter
+ txtDescription.SelectAll()
+ End Sub
+
+ Private Sub txtDescription_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDescription.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+#End Region
+
+#Region "Others"
+
+ Private Function funAddorEdit(sender As Object) As Integer
+
+ funAddorEdit = -1
+
+ '******************************************************************************
+ '1.基本檢查
+ '******************************************************************************
+ If txtSubcontractorNo.Text = "" Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200001", "[%SubcontractorNo%]"), MsgBoxStyle.Exclamation, Me.Text)
+ txtSubcontractorNo.Focus()
+ Exit Function
+ End If
+
+ If txtSubcontractorName.Text = "" Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200001", "[%SubcontractorName%]"), MsgBoxStyle.Exclamation, Me.Text)
+ txtSubcontractorName.Focus()
+ Exit Function
+ End If
+
+ '2.
+ '******************************************************************************
+ '寫回資料庫
+ '******************************************************************************
+ Dim XmlDoc As New XmlDocument
+
+ Try
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ strParameter = CombineXMLParameter("subcontractorno", "SubcontractorNo", "String", CInput(txtSubcontractorNo.Text), "")
+ strParameter = strParameter & CombineXMLParameter("subcontractorname", "SubcontractorName", "String", CInput(txtSubcontractorName.Text), "")
+ strParameter = strParameter & CombineXMLParameter("description", "Description", "String", CInput(txtDescription.Text), "")
+
+ If DefMode = 0 Or DefMode = 2 Then 'Add or Copy
+ strParameter = strParameter & CombineXMLParameter("creator", "Creator", "String", gUserNo, "")
+ strParameter = strParameter & CombineXMLParameter("createdate", "CreateDate", "DateTime", Format(Now, "yyyy/MM/dd HH:mm:ss"), "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ ' 2016 YF, OutXml = wsENT.AddSubcontractor(InXml)
+ OutXml = InvokeSrv("wsENT.AddSubcontractor", InXml)
+
+ Else
+ '修改
+ strParameter = strParameter & CombineXMLParameter("issuestate", "IssueState", "String", EditDataRow.Item("IssueState").ToString, "")
+ ' 增加Datastamp
+ strParameter += CombineXMLParameter("datastamp", "Datastamp", "Integer", intDataStamp, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ ' 2016 YF, OutXml = wsENT.EditSubcontractor(InXml)
+ OutXml = InvokeSrv("wsENT.EditSubcontractor", InXml)
+
+ End If
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ gReturnKeyValue = txtSubcontractorNo.Text
+
+ funAddorEdit = 0
+ If sender.Equals(btnApply) Then
+ intDataStamp += 1
+ End If
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ End If
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Add or Edit ENT Subcontractor Failed!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ XmlDoc = Nothing
+
+ End Function
+
+#End Region
+
+End Class
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/iMES.snk b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/iMES.snk
new file mode 100644
index 0000000..4206cdc
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/ET_Subcontractor/iMES.snk differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/Application.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/Application.Designer.vb
new file mode 100644
index 0000000..537244b
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/Application.Designer.vb
@@ -0,0 +1,13 @@
+'------------------------------------------------------------------------------
+'
+' 此代码由工具生成。
+' 运行时版本:4.0.30319.42000
+'
+' 对此文件的更改可能会导致不正确的行为,并且如果
+' 重新生成代码,这些更改将会丢失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/Application.myapp b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/Application.myapp
new file mode 100644
index 0000000..758895d
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/Application.myapp
@@ -0,0 +1,10 @@
+
+
+ false
+ false
+ 0
+ true
+ 0
+ 1
+ true
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/AssemblyInfo.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/AssemblyInfo.vb
new file mode 100644
index 0000000..b0cdd98
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/AssemblyInfo.vb
@@ -0,0 +1,35 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' 組件的一般資訊是由下列的屬性集控制。
+' 變更這些屬性的值即可修改組件的相關
+' 資訊。
+
+' 檢閱組件屬性的值
+
+
+
+
+
+
+
+
+
+
+'下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID
+
+
+' 組件的版本資訊由下列四個值所組成:
+'
+' 主要版本
+' 次要版本
+' 組建編號
+' 修訂編號
+'
+' 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號
+' 指定為預設值:
+'
+
+
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/BuildIncrementVersionInfo.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/BuildIncrementVersionInfo.vb
new file mode 100644
index 0000000..d2f2e21
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/BuildIncrementVersionInfo.vb
@@ -0,0 +1 @@
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/Resources.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/Resources.Designer.vb
new file mode 100644
index 0000000..af2b746
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/Resources.Designer.vb
@@ -0,0 +1,63 @@
+'------------------------------------------------------------------------------
+'
+' 此代码由工具生成。
+' 运行时版本:4.0.30319.42000
+'
+' 对此文件的更改可能会导致不正确的行为,并且如果
+' 重新生成代码,这些更改将会丢失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+Imports System
+
+Namespace My.Resources
+
+ '此类是由 StronglyTypedResourceBuilder
+ '类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
+ '若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
+ '(以 /str 作为命令选项),或重新生成 VS 项目。
+ '''
+ ''' 一个强类型的资源类,用于查找本地化的字符串等。
+ '''
+ _
+ Friend Module Resources
+
+ Private resourceMan As Global.System.Resources.ResourceManager
+
+ Private resourceCulture As Global.System.Globalization.CultureInfo
+
+ '''
+ ''' 返回此类使用的缓存的 ResourceManager 实例。
+ '''
+ _
+ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+ Get
+ If Object.ReferenceEquals(resourceMan, Nothing) Then
+ Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ET_Subcontractor_21670_1.Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' 重写当前线程的 CurrentUICulture 属性,对
+ ''' 使用此强类型资源类的所有资源查找执行重写。
+ '''
+ _
+ Friend Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set
+ resourceCulture = value
+ End Set
+ End Property
+ End Module
+End Namespace
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/Resources.resx b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/Settings.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/Settings.Designer.vb
new file mode 100644
index 0000000..1c9fffa
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/Settings.Designer.vb
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+'
+' 此代码由工具生成。
+' 运行时版本:4.0.30319.42000
+'
+' 对此文件的更改可能会导致不正确的行为,并且如果
+' 重新生成代码,这些更改将会丢失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ _
+ Partial Friend NotInheritable Class MySettings
+ Inherits Global.System.Configuration.ApplicationSettingsBase
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
+
+#Region "My.Settings 自动保存功能"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
+#End If
+#End Region
+
+ Public Shared ReadOnly Property [Default]() As MySettings
+ Get
+
+#If _MyType = "WindowsForms" Then
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
+#End If
+ Return defaultInstance
+ End Get
+ End Property
+ End Class
+End Namespace
+
+Namespace My
+
+ _
+ Friend Module MySettingsProperty
+
+ _
+ Friend ReadOnly Property Settings() As Global.ET_Subcontractor_21670_1.My.MySettings
+ Get
+ Return Global.ET_Subcontractor_21670_1.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/Settings.settings b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/Settings.settings
new file mode 100644
index 0000000..85b890b
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/licenses.licx b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/licenses.licx
new file mode 100644
index 0000000..e3f40e2
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/My Project/licenses.licx
@@ -0,0 +1,7 @@
+Infragistics.Win.Misc.UltraButton, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.UltraWinEditors.UltraRadioButton, Infragistics4.Win.UltraWinEditors.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.UltraWinEditors.UltraComboEditor, Infragistics4.Win.UltraWinEditors.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.Misc.UltraGroupBox, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.UltraWinEditors.UltraTextEditor, Infragistics4.Win.UltraWinEditors.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.Misc.UltraLabel, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
+Infragistics.Win.Misc.UltraPanel, Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/frmSubcontractor.resx b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/frmSubcontractor.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/frmSubcontractor.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/frmSubcontractor.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/frmSubcontractor.vb
new file mode 100644
index 0000000..9978384
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/frmSubcontractor.vb
@@ -0,0 +1,1137 @@
+Imports iMESExceptionManager
+
+Imports Infragistics.Win
+Imports Infragistics.Win.UltraWinGrid
+Public Class frmSubcontractor
+
+ Inherits COM_Kit.frmBasisTemplat
+
+ Public PrivFunNo As String = defString
+
+ '//WS相關變數
+ ' 2016 YF, Dim wsENT As New wsENT.wsENT '宣告Web Service物件?
+ Dim tmpStringReader As System.IO.StringReader '將字串轉換成可讀入DataSet的物件
+ Dim XmlData As String '儲存取回之資料
+ Dim XmlSchema As String '儲存取回之資料結構
+ Dim InXml As String '儲存呼叫Web Service的傳入參數(Request字串)
+ Dim OutXml As String '儲存Web Service的傳回值(Response字串)
+ Dim strIdentity As String '儲存Identity XML字串?
+ Dim strParameter As String '儲存Parameter XML字串
+
+ '//資料表相關變數
+
+ Dim dsENT As New DataSet '資料集:儲存取回之資料?
+
+ Dim tblENTSubcontractor21670 As String '儲存取回資料表的名稱(master)?
+ Dim tblENTSubcontractorCont21670 As String '明細資料表名稱(detail)
+ Dim strFilter As String 'Filter string及列印的過濾條件
+
+ '//其他共用變數
+ Dim SubcontractorNo As String 'for Gird to Focus
+ Dim ContactorName As String 'for DetailGrid to Focus
+ Dim ugrRow As Infragistics.Win.UltraWinGrid.UltraGridRow
+ Friend WithEvents btnAdd As Misc.UltraButton
+ Friend WithEvents btnEdit As Misc.UltraButton
+ Friend WithEvents btnDel As Misc.UltraButton
+ Friend WithEvents btnCopy As Misc.UltraButton
+ Friend WithEvents btnApprove As Misc.UltraButton
+ Friend WithEvents iugSubcontractor As iMESUltraGrid.iMESUltraGridControl
+ Dim i As Integer
+
+#Region " Windows Form Designer generated code "
+
+ Public Sub New()
+ MyBase.New()
+
+ 'This call is required by the Windows Form Designer.
+ InitializeComponent()
+
+ 'Add any initialization after the InitializeComponent() call
+
+ End Sub
+
+ 'Form overrides dispose to clean up the component list.
+ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
+ If disposing Then
+ If Not (components Is Nothing) Then
+ components.Dispose()
+ End If
+ End If
+ MyBase.Dispose(disposing)
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.Container
+ Friend WithEvents iugDetail As iMESUltraGrid.iMESUltraGridControl
+ Friend WithEvents btnClose As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnEMail As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDCopy As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDDel As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDEdit As Infragistics.Win.Misc.UltraButton
+ Friend WithEvents btnDAdd As Infragistics.Win.Misc.UltraButton
+ Private Sub InitializeComponent()
+ Me.btnClose = New Infragistics.Win.Misc.UltraButton()
+ Me.btnEMail = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDCopy = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDDel = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDEdit = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDAdd = New Infragistics.Win.Misc.UltraButton()
+ Me.iugDetail = New iMESUltraGrid.iMESUltraGridControl()
+ Me.btnAdd = New Infragistics.Win.Misc.UltraButton()
+ Me.btnEdit = New Infragistics.Win.Misc.UltraButton()
+ Me.btnDel = New Infragistics.Win.Misc.UltraButton()
+ Me.btnCopy = New Infragistics.Win.Misc.UltraButton()
+ Me.btnApprove = New Infragistics.Win.Misc.UltraButton()
+ Me.iugSubcontractor = New iMESUltraGrid.iMESUltraGridControl()
+ Me.SuspendLayout()
+ '
+ 'btnClose
+ '
+ Me.btnClose.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnClose.Location = New System.Drawing.Point(912, 552)
+ Me.btnClose.Name = "btnClose"
+ Me.btnClose.Size = New System.Drawing.Size(88, 32)
+ Me.btnClose.TabIndex = 18
+ Me.btnClose.Text = "Close (&X)"
+ '
+ 'btnEMail
+ '
+ Me.btnEMail.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnEMail.Location = New System.Drawing.Point(912, 429)
+ Me.btnEMail.Name = "btnEMail"
+ Me.btnEMail.Size = New System.Drawing.Size(88, 32)
+ Me.btnEMail.TabIndex = 17
+ Me.btnEMail.Text = "Mail"
+ '
+ 'btnDCopy
+ '
+ Me.btnDCopy.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDCopy.Location = New System.Drawing.Point(912, 389)
+ Me.btnDCopy.Name = "btnDCopy"
+ Me.btnDCopy.Size = New System.Drawing.Size(88, 32)
+ Me.btnDCopy.TabIndex = 16
+ Me.btnDCopy.Text = "Copy"
+ '
+ 'btnDDel
+ '
+ Me.btnDDel.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDDel.Location = New System.Drawing.Point(912, 349)
+ Me.btnDDel.Name = "btnDDel"
+ Me.btnDDel.Size = New System.Drawing.Size(88, 32)
+ Me.btnDDel.TabIndex = 15
+ Me.btnDDel.Text = "DEL"
+ '
+ 'btnDEdit
+ '
+ Me.btnDEdit.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDEdit.Location = New System.Drawing.Point(912, 309)
+ Me.btnDEdit.Name = "btnDEdit"
+ Me.btnDEdit.Size = New System.Drawing.Size(88, 32)
+ Me.btnDEdit.TabIndex = 14
+ Me.btnDEdit.Text = "EDIT"
+ '
+ 'btnDAdd
+ '
+ Me.btnDAdd.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDAdd.Location = New System.Drawing.Point(912, 269)
+ Me.btnDAdd.Name = "btnDAdd"
+ Me.btnDAdd.Size = New System.Drawing.Size(88, 32)
+ Me.btnDAdd.TabIndex = 13
+ Me.btnDAdd.Text = "ADD"
+ '
+ 'iugDetail
+ '
+ Me.iugDetail.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.iugDetail.EnterDirection = iMESUltraGrid.iMESUltraGridControl.EnterDirectionEnum.Down
+ Me.iugDetail.GroupBoxPromptText = "Drag a column header here to group by that column."
+ Me.iugDetail.GroupBoxTextForeColor = System.Drawing.Color.Red
+ Me.iugDetail.Identity = "IMes"
+ Me.iugDetail.IdentityForm = ""
+ Me.iugDetail.LayOutFilePath = ""
+ Me.iugDetail.Location = New System.Drawing.Point(12, 269)
+ Me.iugDetail.Name = "iugDetail"
+ Me.iugDetail.PrintFitWidthToPages = 0
+ Me.iugDetail.PrintLandscape = True
+ Me.iugDetail.PrintPageFooter = ""
+ Me.iugDetail.PrintPageFooterHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugDetail.PrintPageFooterHeight = 20
+ Me.iugDetail.PrintPageHeader = ""
+ Me.iugDetail.PrintPageHeaderHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugDetail.PrintPageHeaderHeight = 20
+ Me.iugDetail.PrintZoom = 1.0R
+ Me.iugDetail.Size = New System.Drawing.Size(894, 314)
+ Me.iugDetail.TabIndex = 12
+ Me.iugDetail.UserNo = "IMes"
+ '
+ 'btnAdd
+ '
+ Me.btnAdd.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnAdd.Location = New System.Drawing.Point(912, 53)
+ Me.btnAdd.Name = "btnAdd"
+ Me.btnAdd.Size = New System.Drawing.Size(88, 32)
+ Me.btnAdd.TabIndex = 20
+ Me.btnAdd.Text = "Add(&A)"
+ '
+ 'btnEdit
+ '
+ Me.btnEdit.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnEdit.Location = New System.Drawing.Point(912, 93)
+ Me.btnEdit.Name = "btnEdit"
+ Me.btnEdit.Size = New System.Drawing.Size(88, 32)
+ Me.btnEdit.TabIndex = 21
+ Me.btnEdit.Text = "Edit(&E)"
+ '
+ 'btnDel
+ '
+ Me.btnDel.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnDel.Location = New System.Drawing.Point(912, 133)
+ Me.btnDel.Name = "btnDel"
+ Me.btnDel.Size = New System.Drawing.Size(88, 32)
+ Me.btnDel.TabIndex = 22
+ Me.btnDel.Text = "Del(&D)"
+ '
+ 'btnCopy
+ '
+ Me.btnCopy.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnCopy.Location = New System.Drawing.Point(912, 173)
+ Me.btnCopy.Name = "btnCopy"
+ Me.btnCopy.Size = New System.Drawing.Size(88, 32)
+ Me.btnCopy.TabIndex = 23
+ Me.btnCopy.Text = "Copy(&C)"
+ '
+ 'btnApprove
+ '
+ Me.btnApprove.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.btnApprove.Location = New System.Drawing.Point(912, 213)
+ Me.btnApprove.Name = "btnApprove"
+ Me.btnApprove.Size = New System.Drawing.Size(88, 32)
+ Me.btnApprove.TabIndex = 24
+ Me.btnApprove.Text = "Approve(&Y)"
+ '
+ 'iugSubcontractor
+ '
+ Me.iugSubcontractor.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.iugSubcontractor.EnterDirection = iMESUltraGrid.iMESUltraGridControl.EnterDirectionEnum.Down
+ Me.iugSubcontractor.GroupBoxPromptText = "Drag a column header here to group by that column."
+ Me.iugSubcontractor.GroupBoxTextForeColor = System.Drawing.Color.Red
+ Me.iugSubcontractor.Identity = "IMes"
+ Me.iugSubcontractor.IdentityForm = ""
+ Me.iugSubcontractor.LayOutFilePath = ""
+ Me.iugSubcontractor.Location = New System.Drawing.Point(12, 53)
+ Me.iugSubcontractor.Name = "iugSubcontractor"
+ Me.iugSubcontractor.PrintFitWidthToPages = 0
+ Me.iugSubcontractor.PrintLandscape = True
+ Me.iugSubcontractor.PrintPageFooter = ""
+ Me.iugSubcontractor.PrintPageFooterHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugSubcontractor.PrintPageFooterHeight = 20
+ Me.iugSubcontractor.PrintPageHeader = ""
+ Me.iugSubcontractor.PrintPageHeaderHAlign = Infragistics.Win.HAlign.[Default]
+ Me.iugSubcontractor.PrintPageHeaderHeight = 20
+ Me.iugSubcontractor.PrintZoom = 1.0R
+ Me.iugSubcontractor.Size = New System.Drawing.Size(894, 192)
+ Me.iugSubcontractor.TabIndex = 25
+ Me.iugSubcontractor.UserNo = "IMes"
+ '
+ 'frmSubcontractor
+ '
+ Me.ClientSize = New System.Drawing.Size(1008, 591)
+ Me.Controls.Add(Me.btnClose)
+ Me.Controls.Add(Me.btnApprove)
+ Me.Controls.Add(Me.btnEMail)
+ Me.Controls.Add(Me.btnDCopy)
+ Me.Controls.Add(Me.btnCopy)
+ Me.Controls.Add(Me.btnDDel)
+ Me.Controls.Add(Me.iugSubcontractor)
+ Me.Controls.Add(Me.btnDEdit)
+ Me.Controls.Add(Me.btnAdd)
+ Me.Controls.Add(Me.btnDAdd)
+ Me.Controls.Add(Me.btnDel)
+ Me.Controls.Add(Me.iugDetail)
+ Me.Controls.Add(Me.btnEdit)
+ Me.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Name = "frmSubcontractor"
+ Me.Text = "ENT Subcontractor & Contactor"
+ Me.WindowState = System.Windows.Forms.FormWindowState.Maximized
+ Me.Controls.SetChildIndex(Me.btnEdit, 0)
+ Me.Controls.SetChildIndex(Me.iugDetail, 0)
+ Me.Controls.SetChildIndex(Me.btnDel, 0)
+ Me.Controls.SetChildIndex(Me.btnDAdd, 0)
+ Me.Controls.SetChildIndex(Me.btnAdd, 0)
+ Me.Controls.SetChildIndex(Me.btnDEdit, 0)
+ Me.Controls.SetChildIndex(Me.iugSubcontractor, 0)
+ Me.Controls.SetChildIndex(Me.btnDDel, 0)
+ Me.Controls.SetChildIndex(Me.btnCopy, 0)
+ Me.Controls.SetChildIndex(Me.btnDCopy, 0)
+ Me.Controls.SetChildIndex(Me.btnEMail, 0)
+ Me.Controls.SetChildIndex(Me.btnApprove, 0)
+ Me.Controls.SetChildIndex(Me.btnClose, 0)
+ Me.ResumeLayout(False)
+
+ End Sub
+
+#End Region
+
+ Private Sub frmSubcontractor_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
+
+ Cursor.Current = Cursors.WaitCursor
+
+ ' 2016 YF, wsENT.Url = LocalizeWebService(wsENT.Url.ToString)
+ ' 2016 YF, wsENT.EnableDecompression = True
+
+ Call funiMESUltraGridIni() 'Grid初始設定
+
+ '//取出資料
+ Call funLoadSubcontractor()
+
+ SetIssueState(Issue.Unfrozen) '預設在Unforzen上
+ SetSearchFieldName(New String() {"SubcontractorNo", "SubcontractorNaME"}) '設置搜尋欄位
+
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ ExeGroupControlPriv(Me, PrivFunNo)
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub frmSubcontractor_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
+ If Not dsENT Is Nothing Then dsENT.Dispose()
+ ' 2016 YF, If Not wsENT Is Nothing Then wsENT.Dispose()
+ End Sub
+
+ Protected Overrides Sub rdoIssue_CheckedChanged(sender As Object, e As EventArgs)
+ If IsNothing(dsENT) Then Exit Sub
+
+ Select Case GetIssueState()
+ Case Issue.Unfrozen
+ dsENT.Tables(tblENTSubcontractor21670).DefaultView.RowFilter = "IssueState=0"
+ Case Issue.Pending
+ dsENT.Tables(tblENTSubcontractor21670).DefaultView.RowFilter = "IssueState=1"
+ Case Issue.Active
+ dsENT.Tables(tblENTSubcontractor21670).DefaultView.RowFilter = "IssueState=2"
+ Case Issue.Unused
+ dsENT.Tables(tblENTSubcontractor21670).DefaultView.RowFilter = "IssueState=-1"
+ End Select
+ Me.iugSubcontractor.iMESUltraGrid.DataSource = dsENT.Tables(tblENTSubcontractor21670).DefaultView
+ Call funShowActiveDetail()
+ End Sub
+
+ Protected Overrides Sub Finalize()
+ MyBase.Finalize()
+ End Sub
+
+ Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
+
+ Dim fSubcontractorDef As New frmSubcontractorDef
+
+ fSubcontractorDef.DefMode = 0
+ fSubcontractorDef.ShowDialog(Me)
+ fSubcontractorDef.Dispose()
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ SubcontractorNo = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractor()
+
+ If GetIssueState() = Issue.Unfrozen Then
+ ugrRow = FindRecordPosition(iugSubcontractor, "SubcontractorNo", SubcontractorNo)
+ If Not ugrRow Is Nothing Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ End If
+
+ End Sub
+
+ Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
+
+
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+ 'IsGroupByRow不做任何處理
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then
+ Exit Sub
+ End If
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractor21670).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'")
+
+ '核准狀態為"Unfrozen"者才可修改
+
+ If Rows(0).Item("IssueState") <> 0 Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-202202", "[%NOT ALLOWED TO EDIT%]"), MsgBoxStyle.Exclamation, Me.Text)
+ Exit Sub
+ End If
+
+ Dim fSubcontractorDef As New frmSubcontractorDef
+ fSubcontractorDef.DefMode = 1
+ fSubcontractorDef.EditDataRow = Rows(0)
+ fSubcontractorDef.ShowDialog(Me)
+ fSubcontractorDef.Dispose()
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ SubcontractorNo = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractor()
+
+ If GetIssueState() = Issue.Unfrozen Then
+ ugrRow = FindRecordPosition(iugSubcontractor, "SubcontractorNo", SubcontractorNo)
+ If Not ugrRow Is Nothing Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ End If
+
+ End If
+ End Sub
+
+ Private Sub btnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel.Click
+
+
+
+ '1.先檢查是否為單筆,是:將其Selecte
+ If Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then Exit Sub
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Cursor.Current = Cursors.WaitCursor
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ '2.Multi
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count > 0 Then
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Item(0).IsGroupByRow Then
+ Exit Sub 'Selected.Rows,不會包含GroupRow & 一般的Row在一起,故若是GroupRow不做任何處理
+ End If
+ If iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-100001", "[%ARE YOU SURE TO DELETE ALL SELECTED RECORDS%]"), MsgBoxStyle.OkCancel + MsgBoxStyle.Question + MsgBoxStyle.DefaultButton2, Me.Text) = MsgBoxResult.Cancel Then
+ Exit Sub
+ End If
+
+ '共用資料
+ Dim XmlDoc As New XmlDocument
+ Dim blnReLoad As Boolean = False
+ Dim intIssueState As Integer
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ For i = 0 To Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count - 1
+ intIssueState = Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("IssueState").Value
+ If intIssueState = 0 Or intIssueState = -1 Or intIssueState = 2 Then '狀態為Unforzen或Unused時直接刪除
+
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", CInput(Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("SubcontractorNo").Value.ToString), "")
+ strParameter = strParameter & CombineXMLParameter("issuestate", "IssueState", "String", CInput(intIssueState), "")
+ strParameter = strParameter & CombineXMLParameter("datastamp", "DataStamp", "Integer", iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("DataStamp").Value, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ Try
+ ' 2016 YF, OutXml = wsENT.DelSubcontractor(InXml)
+ 'OutXml = InvokeSrv("wsENT.DelSubcontractor", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.DelSubcontractor", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ If Not blnReLoad Then blnReLoad = True
+ Else
+ '找出Exception訊並顯示出來
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit For
+ End If
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Delete failed," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ Exit For
+ End Try
+ Else
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200021", "[%NOT ALLOWED TO delete%]"), MsgBoxStyle.Exclamation, Me.Text)
+ End If
+ Next
+
+ XmlDoc = Nothing
+
+ If blnReLoad Then
+
+ Call funLoadSubcontractor()
+
+ Call funShowActiveDetail()
+
+ End If
+
+ End If
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub btnCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCopy.Click
+
+
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+ 'IsGroupByRow不做任何處理
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then
+ Exit Sub
+ End If
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractor21670).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'")
+
+ Dim fSubcontractorDef As New frmSubcontractorDef
+ fSubcontractorDef.DefMode = 2
+ fSubcontractorDef.EditDataRow = Rows(0)
+ fSubcontractorDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ SubcontractorNo = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractor()
+
+ If GetIssueState() = Issue.Unfrozen Then
+ ugrRow = FindRecordPosition(iugSubcontractor, "SubcontractorNo", SubcontractorNo)
+ If Not ugrRow Is Nothing Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ End If
+
+ End If
+ End Sub
+
+ Private Sub btnApprove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnApprove.Click
+
+
+
+ '1.先檢查是否為單筆,是:將其Selecte
+ If Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then Exit Sub
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Cursor.Current = Cursors.WaitCursor
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected Then
+ Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ '2.Multi
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count > 0 Then
+ If Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Item(0).IsGroupByRow Then
+ Exit Sub 'Selected.Rows,不會包含GroupRow & 一般的Row在一起,故若是GroupRow不做任何處理
+ End If
+ If iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-100002", "[%ARE YOU SURE TO APPROVE ALL SELECTED RECORDS%]"), MsgBoxStyle.OkCancel + MsgBoxStyle.Question + MsgBoxStyle.DefaultButton2, Me.Text) = MsgBoxResult.Cancel Then
+ Exit Sub
+ End If
+
+ '共用資料
+ Dim XmlDoc As New XmlDocument
+ Dim blnReLoad As Boolean = False
+ Dim intIssueState As Integer
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ For i = 0 To Me.iugSubcontractor.iMESUltraGrid.Selected.Rows.Count - 1
+ intIssueState = Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("IssueState").Value
+ If intIssueState = 0 Then
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", CInput(Me.iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("SubcontractorNo").Value.ToString), "")
+ strParameter += CombineXMLParameter("issuestate", "IssueState", "String", intIssueState, "")
+ strParameter += CombineXMLParameter("creator", "Creator", "String", gUserNo, "")
+ strParameter = strParameter & CombineXMLParameter("datastamp", "DataStamp", "Integer", iugSubcontractor.iMESUltraGrid.Selected.Rows(i).Cells("DataStamp").Value, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ Try
+ ' 2016 YF, OutXml = wsENT.ApproveSubcontractor(InXml)
+ 'OutXml = InvokeSrv("wsENT.ApproveSubcontractor", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.ApproveSubcontractor", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ If Not blnReLoad Then blnReLoad = True
+ Else
+ '找出Exception訊並顯示出來
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit For
+ End If
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Approve failed," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ Exit For
+ End Try
+ Else
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200021", "[%NOT ALLOW TO APPROVE%]"), MsgBoxStyle.Exclamation, Me.Text)
+ End If
+ Next
+
+ XmlDoc = Nothing
+
+ If blnReLoad Then
+
+ Call funLoadSubcontractor()
+
+ Call funShowActiveDetail()
+
+ End If
+
+ End If
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub btnDAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDAdd.Click
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+
+ 'Dim Rows As DataRow()
+ Dim fSubcontractorContDef As New frmSubcontractorContDef
+
+ fSubcontractorContDef.DefMode = 0
+ fSubcontractorContDef.SubcontractorNo = Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString
+ fSubcontractorContDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ ContactorName = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ ugrRow = FindRecordPosition(iugDetail, "ContactorName", ContactorName)
+ If Not ugrRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ End If
+ End Sub
+
+ Private Sub btnDEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDEdit.Click
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing And Not Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow OrElse iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractorCont21670).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'" _
+ & " And ContactorName = '" & Replace(Me.iugDetail.iMESUltraGrid.ActiveRow.Cells("ContactorName").Value.ToString, "'", "''") & "'")
+
+ Dim fSubcontractorContDef As New frmSubcontractorContDef
+ fSubcontractorContDef.DefMode = 1
+ fSubcontractorContDef.EditDataRow = Rows(0)
+ fSubcontractorContDef.SubcontractorNo = Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString
+ fSubcontractorContDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ ContactorName = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ ugrRow = FindRecordPosition(iugDetail, "ContactorName", ContactorName)
+ If Not ugrRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ Else
+
+ Exit Sub
+ End If
+
+ End Sub
+
+ Private Sub btnDDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDDel.Click
+
+
+ '1.先檢查是否為單筆,是:將其Selecte
+ If Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then Exit Sub
+ If iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If Not Me.iugDetail.iMESUltraGrid.ActiveRow.Selected Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+
+ '2.Multi
+ If Me.iugDetail.iMESUltraGrid.Selected.Rows.Count > 0 Then
+ If Me.iugDetail.iMESUltraGrid.Selected.Rows.Item(0).IsGroupByRow Then
+ Exit Sub 'Selected.Rows,不會包含GroupRow & 一般的Row在一起,故若是GroupRow不做任何處理
+ End If
+ If iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-100001", "[%ARE YOU SURE TO DELETE ALL SELECTED RECORDS%]"), MsgBoxStyle.OkCancel + MsgBoxStyle.Question + MsgBoxStyle.DefaultButton2, Me.Text) = MsgBoxResult.Cancel Then
+ Exit Sub
+ End If
+
+ '共用資料
+ Dim XmlDoc As New XmlDocument
+ Dim blnReLoad As Boolean = False
+ Dim intIssueState As Integer
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ For i = 0 To Me.iugDetail.iMESUltraGrid.Selected.Rows.Count - 1
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", CInput(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString), "")
+ strParameter = strParameter & CombineXMLParameter("ContactorName", "ContactorName", "String", CInput(Me.iugDetail.iMESUltraGrid.Selected.Rows(i).Cells("ContactorName").Value.ToString), "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ Try
+ ' 2016 YF, OutXml = wsENT.DelSubcontractorCont(InXml)
+ 'OutXml = InvokeSrv("wsENT.DelSubcontractorCont", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.DelSubcontractorCont", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ If Not blnReLoad Then blnReLoad = True
+ Else
+ '找出Exception訊並顯示出來
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit For
+ End If
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Delete failed," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ Exit For
+ End Try
+
+ Next
+
+ XmlDoc = Nothing
+
+ If blnReLoad Then Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ End If
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub btnDCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDCopy.Click
+
+ If Not Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing And Not Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then
+ If iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow OrElse iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Dim Rows As DataRow()
+
+ '找出DataSet中在目前游標列的資料列(DataRow)
+ Rows = dsENT.Tables(tblENTSubcontractorCont21670).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'" _
+ & " And ContactorName = '" & Replace(Me.iugDetail.iMESUltraGrid.ActiveRow.Cells("ContactorName").Value.ToString, "'", "''") & "'")
+
+ Dim fSubcontractorContDef As New frmSubcontractorContDef
+ fSubcontractorContDef.DefMode = 2
+ fSubcontractorContDef.EditDataRow = Rows(0)
+ fSubcontractorContDef.SubcontractorNo = Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString
+ fSubcontractorContDef.ShowDialog(Me)
+
+ If gReturnKeyValue = "" Then Exit Sub
+
+ ContactorName = gReturnKeyValue
+
+ '重新取出資料
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+
+ ugrRow = FindRecordPosition(iugDetail, "ContactorName", ContactorName)
+ If Not ugrRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.ActiveRow = ugrRow
+ Me.iugDetail.iMESUltraGrid.ActiveRow.Selected = True
+ End If
+ Else
+
+ Exit Sub
+ End If
+
+ End Sub
+
+ Private Sub btnEMail_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEMail.Click
+
+ If Not Me.iugDetail.iMESUltraGrid.ActiveRow Is Nothing Then
+ If iugDetail.iMESUltraGrid.ActiveRow.IsGroupByRow Then Exit Sub
+ Dim Rows As DataRow()
+ Dim proMail As New System.Diagnostics.Process
+ Dim strAccount As String
+
+ Rows = dsENT.Tables(tblENTSubcontractorCont21670).Select("SubcontractorNo = '" _
+ & Replace(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString, "'", "''") & "'" _
+ & " And ContactorName = '" & Replace(Me.iugDetail.iMESUltraGrid.ActiveRow.Cells("ContactorName").Value.ToString, "'", "''") & "'")
+
+ strAccount = "mailto:" & Rows(0).Item("EMail").ToString
+ proMail.Start(strAccount)
+
+ End If
+
+ End Sub
+
+ Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
+ Me.Close()
+ End Sub
+
+ Protected Overrides Sub btnQuery_Click(sender As Object, e As EventArgs)
+ Cursor.Current = Cursors.WaitCursor
+
+ funLoadSubcontractor()
+
+ Cursor.Current = Cursors.Default
+ End Sub
+
+#Region "Ultra Grid"
+
+ Private Sub iugSubcontractor_iMESUltraGrid_InitializeLayOut(ByVal sender As System.Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) Handles iugSubcontractor.iMESUltraGrid_InitializeLayOut
+
+ With e.Layout
+ With .Bands(0).Columns("SubcontractorNo")
+ .Header.Caption = "SubcontractorNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 0
+ End With
+ With .Bands(0).Columns("SubcontractorName")
+ .Header.Caption = "SubcontractorName"
+ .Width = 110
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 1
+ End With
+ With .Bands(0).Columns("Description")
+ .Header.Caption = "Description"
+ .Width = 110
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 2
+ End With
+ With .Bands(0).Columns("Creator")
+ .Header.Caption = "Creator"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 3
+ End With
+ With .Bands(0).Columns("CreateDate")
+ .Header.Caption = "CreateDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 4
+ End With
+ With .Bands(0).Columns("IssueState")
+ .Header.Caption = "IssueState"
+ .Width = 114
+ .Hidden = True
+ .Header.VisiblePosition = 5
+ End With
+ With .Bands(0).Columns("Reviser")
+ .Header.Caption = "Reviser"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 6
+ End With
+ With .Bands(0).Columns("ReviseDate")
+ .Header.Caption = "ReviseDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 7
+ End With
+ With e.Layout.Bands(0).Columns("DataStamp")
+ .Hidden = True
+ End With
+ End With
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ End Sub
+
+ Private Sub iugSubcontractor_iMESUltraGrid_AfterRowActivate(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles iugSubcontractor.iMESUltraGrid_AfterRowActivate
+
+ 'IsGroupByRow不做任何處理
+ If Not iugSubcontractor.iMESUltraGrid.ActiveRow.IsGroupByRow Then
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+ Else
+ Exit Sub
+ End If
+
+ End Sub
+
+ Private Sub iugDetail_iMESUltraGrid_InitializeLayOut(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) Handles iugDetail.iMESUltraGrid_InitializeLayOut
+
+ With e.Layout
+ With .Bands(0).Columns("SubcontractorNo")
+ .Header.Caption = "SubcontractorNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 0
+ End With
+ With .Bands(0).Columns("ContactorName")
+ .Header.Caption = "ContactorName"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 1
+ End With
+ With .Bands(0).Columns("TelNo")
+ .Header.Caption = "TelNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 2
+ End With
+ With .Bands(0).Columns("FaxNo")
+ .Header.Caption = "FaxNo"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 3
+ End With
+ With .Bands(0).Columns("Title")
+ .Header.Caption = "Title"
+ .Width = 110
+ .Hidden = False
+ .Header.VisiblePosition = 4
+ End With
+ With .Bands(0).Columns("Address")
+ .Header.Caption = "Address"
+ .Width = 110
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 5
+ End With
+ With .Bands(0).Columns("EMail")
+ .Header.Caption = "EMail"
+ .Width = 150
+ .Hidden = False
+ .CellAppearance.ForeColor = System.Drawing.Color.Blue
+ .CellAppearance.FontData.Underline = DefaultableBoolean.True
+ .Header.VisiblePosition = 6
+ End With
+ With .Bands(0).Columns("Description")
+ .Header.Caption = "Description"
+ .Width = 200
+ .Hidden = False
+ .CellMultiLine = DefaultableBoolean.True
+ .Header.VisiblePosition = 7
+ End With
+ With .Bands(0).Columns("Creator")
+ .Header.Caption = "Creator"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 8
+ End With
+ With .Bands(0).Columns("CreateDate")
+ .Header.Caption = "CreateDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 9
+ End With
+ With .Bands(0).Columns("Reviser")
+ .Header.Caption = "Reviser"
+ .Width = 80
+ .Hidden = False
+ .Header.VisiblePosition = 10
+ End With
+ With .Bands(0).Columns("ReviseDate")
+ .Header.Caption = "ReviseDate"
+ .Width = 150
+ .Format = "yyyy/MM/dd HH:mm:ss"
+ .Hidden = False
+ .Header.VisiblePosition = 11
+ End With
+ With e.Layout.Bands(0).Columns("DataStamp")
+ .Hidden = True
+ End With
+ End With
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ End Sub
+
+#End Region
+
+#Region "Load Function"
+
+ '//取出tblENTSubcontractor21670 外包商資料
+
+ Private Sub funLoadSubcontractor()
+
+ '先判斷是否dataset中已有ENTSubcontractor之datatable,若有,需先remove否則會有錯誤
+ If Not IsNothing(dsENT.Tables(tblENTSubcontractor21670)) Then
+ dsENT.Tables.Remove(tblENTSubcontractor21670)
+ End If
+
+ '組InXml的字串
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ '加上IssueState要求取出所有資料
+ strParameter = CombineXMLParameter("issuestate", "IssueState", "Integer", defInteger, "")
+ '加上查詢條件 cboSearchFieldName,txtSearchFieldValue
+ strParameter += CombineXMLQueryCondition()
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ Try
+ ' 2016 YF, OutXml = wsENT.LoadSubcontractor(InXml)
+ 'OutXml = InvokeSrv("wsENT.LoadSubcontractor", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.LoadSubcontractor", InXml)
+
+ Dim XmlDoc As New XmlDocument '處理Xml字串之物件?
+
+ '利用XmlDoc物件處理ReturnValue
+ XmlDoc.LoadXml(OutXml)
+
+ If ChkExecutionSuccess(XmlDoc) Then
+ '讀取取出資料表之名稱
+
+ tblENTSubcontractor21670 = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loadSubcontractor").Item(0).SelectNodes("name").Item(0).InnerXml
+ '取出Schema,dataset讀取Schema可防止Null Field及DateTime的問題
+
+ XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractor").Item(0).SelectNodes("schema").Item(0).InnerXml
+ If XmlSchema <> "" Then
+ '將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件
+ tmpStringReader = New System.IO.StringReader(XmlSchema)
+ dsENT.ReadXmlSchema(tmpStringReader)
+ tmpStringReader.Close()
+ End If
+
+ '取出Data
+ XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractor").Item(0).SelectNodes("value").Item(0).InnerXml
+ If XmlData <> "" Then
+ tmpStringReader = New System.IO.StringReader(XmlData)
+ dsENT.ReadXml(tmpStringReader, XmlReadMode.InferSchema)
+ tmpStringReader.Close()
+ End If
+
+ strFilter = ""
+ Select Case GetIssueState()
+ Case Issue.Unfrozen
+ strFilter = FilterByInteger(strFilter, "IssueState", 0)
+ Case Issue.Pending
+ strFilter = FilterByInteger(strFilter, "IssueState", 1)
+ Case Issue.Active
+ strFilter = FilterByInteger(strFilter, "IssueState", 2)
+ Case Issue.Unused
+ strFilter = FilterByInteger(strFilter, "IssueState", -1)
+ End Select
+
+ dsENT.Tables(tblENTSubcontractor21670).DefaultView.RowFilter = strFilter
+ dsENT.Tables(tblENTSubcontractor21670).DefaultView.Sort = "SubcontractorNo"
+
+ Me.iugSubcontractor.iMESUltraGrid.DataSource = dsENT.Tables(tblENTSubcontractor21670).DefaultView
+
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ Exit Sub
+ End If
+
+ XmlDoc = Nothing
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Load ENT Subcontractor Failed!!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ End Sub
+
+ '//取出tblENTSubcontractorCont21670聯絡人資料
+
+ Private Sub funLoadSubcontractorCont(ByRef SubcontractorNo As String)
+
+ If Not IsNothing(dsENT.Tables(tblENTSubcontractorCont21670)) Then
+ dsENT.Tables.Remove(tblENTSubcontractorCont21670)
+ End If
+
+ '組InXml的字串
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ strParameter = CombineXMLParameter("SubcontractorNo", "SubcontractorNo", "String", SubcontractorNo, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ Try
+ ' 2016 YF, OutXml = wsENT.LoadSubcontractorCont(InXml)
+ 'OutXml = InvokeSrv("wsENT.LoadSubcontractorCont", InXml)
+ OutXml = InvokeSrv("SXS.wsENT.LoadSubcontractorCont", InXml)
+
+ Dim XmlDoc As New XmlDocument '處理Xml字串之物件?
+
+ '利用XmlDoc物件處理ReturnValue
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ '讀取取出資料表之名稱
+
+ tblENTSubcontractorCont21670 = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loadSubcontractorcont").Item(0).SelectNodes("name").Item(0).InnerXml
+ '取出Schema,dataset讀取Schema可防止Null Field及DateTime的問題
+ XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractorcont").Item(0).SelectNodes("schema").Item(0).InnerXml
+ If XmlSchema <> "" Then
+ '將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件
+ tmpStringReader = New System.IO.StringReader(XmlSchema)
+ dsENT.ReadXmlSchema(tmpStringReader)
+ tmpStringReader.Close()
+ End If
+
+ '取出Data
+ XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loadSubcontractorcont").Item(0).SelectNodes("value").Item(0).InnerXml
+ If XmlData <> "" Then
+ tmpStringReader = New System.IO.StringReader(XmlData)
+ dsENT.ReadXml(tmpStringReader, XmlReadMode.InferSchema)
+ tmpStringReader.Close()
+ End If
+
+ Me.iugDetail.iMESUltraGrid.DataSource = dsENT.Tables(tblENTSubcontractorCont21670).DefaultView
+
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ End If
+
+ XmlDoc = Nothing
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Load ENT Subcontractor Cont Failed!!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ End Sub
+
+ Private Sub funShowActiveDetail()
+
+ If Me.iugSubcontractor.iMESUltraGrid.ActiveRow Is Nothing Then
+ Me.iugDetail.iMESUltraGrid.DataSource = Nothing
+ Else
+ Call funLoadSubcontractorCont(Me.iugSubcontractor.iMESUltraGrid.ActiveRow.Cells("SubcontractorNo").Value.ToString)
+ End If
+
+ End Sub
+
+ Private Sub funiMESUltraGridIni()
+
+ 'iugSubcontractor 初始設定
+ With Me.iugSubcontractor.iMESUltraGrid
+ .Text = ""
+ .DisplayLayout.GroupByBox.Hidden = True
+ .DisplayLayout.UseFixedHeaders = False
+ End With
+
+ '系統會以UserNo做為Layout的檔名
+
+ iugSubcontractor.UserNo = gUserNo
+
+ 'iugDetail 初始設定
+ With Me.iugDetail.iMESUltraGrid.DisplayLayout
+ .GroupByBox.Hidden = True
+ .Override.ExpansionIndicator = ShowExpansionIndicator.Default
+ .ViewStyle = ViewStyle.SingleBand
+ .RowConnectorStyle = RowConnectorStyle.Default
+
+ End With
+
+ '系統會以UserNo做為Layout的檔名
+
+ iugDetail.UserNo = gUserNo
+
+ End Sub
+
+ Private Sub iugDetail_Load(sender As Object, e As EventArgs) Handles iugDetail.Load
+
+ End Sub
+
+ Private Sub iugSubcontractor_Load(sender As Object, e As EventArgs) Handles iugSubcontractor.Load
+
+ End Sub
+
+
+#End Region
+
+End Class
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/frmSubcontractorContDef.resx b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/frmSubcontractorContDef.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/frmSubcontractorContDef.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/frmSubcontractorContDef.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/frmSubcontractorContDef.vb
new file mode 100644
index 0000000..1910010
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/frmSubcontractorContDef.vb
@@ -0,0 +1,660 @@
+Imports iMESExceptionManager
+
+Public Class frmSubcontractorContDef21670
+
+ Inherits COM_Kit.frmDefTemplat
+
+ '//Public Variables
+ Public EditDataRow As DataRow
+ Public DefMode As Integer = 0 '0. ADD, 1.Edit, 2. Copy
+
+ Public SubcontractorNo As String = defString
+ Public PrivFunNo As String = defString
+
+ '//Web Service相關變數
+ ' 2016 YF, Dim wsENT As New wsENT.wsENT
+ Dim InXml As String
+ Dim OutXml As String
+
+ Dim strIdentity As String
+ Dim strParameter As String
+ Dim intDataStamp As Integer '紀錄DataStamp
+
+#Region " Windows Form Designer generated code "
+
+ Public Sub New()
+ MyBase.New()
+
+ 'This call is required by the Windows Form Designer.
+ InitializeComponent()
+
+ 'Add any initialization after the InitializeComponent() call
+
+ End Sub
+
+ 'Form overrides dispose to clean up the component list.
+ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
+ If disposing Then
+ If Not (components Is Nothing) Then
+ components.Dispose()
+ End If
+ End If
+ MyBase.Dispose(disposing)
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.IContainer
+
+ 'NOTE: The following procedure is required by the Windows Form Designer
+ 'It can be modified using the Windows Form Designer.
+ 'Do not modify it using the code editor.
+ Friend WithEvents txtDescription As System.Windows.Forms.RichTextBox
+ Friend WithEvents lblAddress As System.Windows.Forms.Label
+ Friend WithEvents lblEMail As System.Windows.Forms.Label
+ Friend WithEvents lblTitle As System.Windows.Forms.Label
+ Friend WithEvents lblFaxNo As System.Windows.Forms.Label
+ Friend WithEvents lblTelNo As System.Windows.Forms.Label
+ Friend WithEvents lblDescription As System.Windows.Forms.Label
+ Friend WithEvents lblContactorName As System.Windows.Forms.Label
+ Friend WithEvents lblSubcontractorNo As System.Windows.Forms.Label
+ Friend WithEvents gbxSubcontractorContData As System.Windows.Forms.GroupBox
+ Friend WithEvents txtSubcontractorNo As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtContactorName As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtFaxNo As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtTelNo As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtEMail As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtTitle As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtAddress As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Private Sub InitializeComponent()
+ Dim Appearance1 As Infragistics.Win.Appearance = New Infragistics.Win.Appearance()
+ Me.gbxSubcontractorContData = New System.Windows.Forms.GroupBox()
+ Me.txtAddress = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtEMail = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtTitle = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtFaxNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.lblAddress = New System.Windows.Forms.Label()
+ Me.lblEMail = New System.Windows.Forms.Label()
+ Me.lblTitle = New System.Windows.Forms.Label()
+ Me.lblFaxNo = New System.Windows.Forms.Label()
+ Me.lblTelNo = New System.Windows.Forms.Label()
+ Me.txtDescription = New System.Windows.Forms.RichTextBox()
+ Me.lblDescription = New System.Windows.Forms.Label()
+ Me.lblSubcontractorNo = New System.Windows.Forms.Label()
+ Me.lblContactorName = New System.Windows.Forms.Label()
+ Me.txtSubcontractorNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtContactorName = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtTelNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.gbxSubcontractorContData.SuspendLayout()
+ CType(Me.txtAddress, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtEMail, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtTitle, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtFaxNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtSubcontractorNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtContactorName, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtTelNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SuspendLayout()
+ '
+ 'gbxBasisData
+ '
+ Me.gbxBasisData.Location = New System.Drawing.Point(12, 322)
+ Me.gbxBasisData.Size = New System.Drawing.Size(472, 70)
+ '
+ 'btnApply
+ '
+ Me.btnApply.Location = New System.Drawing.Point(396, 401)
+ '
+ 'btnConfirm
+ '
+ Me.btnConfirm.Location = New System.Drawing.Point(208, 401)
+ '
+ 'btnClose
+ '
+ Me.btnClose.Location = New System.Drawing.Point(302, 401)
+ '
+ 'gbxSubcontractorContData
+ '
+ Me.gbxSubcontractorContData.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtAddress)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtEMail)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtTitle)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtFaxNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblAddress)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblEMail)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblTitle)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblFaxNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblTelNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtDescription)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblDescription)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblSubcontractorNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblContactorName)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtSubcontractorNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtContactorName)
+ Me.gbxSubcontractorContData.Controls.Add(Me.txtTelNo)
+ Me.gbxSubcontractorContData.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.gbxSubcontractorContData.Location = New System.Drawing.Point(15, 8)
+ Me.gbxSubcontractorContData.Name = "gbxSubcontractorContData"
+ Me.gbxSubcontractorContData.Size = New System.Drawing.Size(469, 306)
+ Me.gbxSubcontractorContData.TabIndex = 0
+ Me.gbxSubcontractorContData.TabStop = False
+ Me.gbxSubcontractorContData.Text = "ENT Subcontractor Contactor Data"
+ '
+ 'txtAddress
+ '
+ Me.txtAddress.Location = New System.Drawing.Point(120, 152)
+ Me.txtAddress.Name = "txtAddress"
+ Me.txtAddress.Size = New System.Drawing.Size(336, 26)
+ Me.txtAddress.TabIndex = 13
+ '
+ 'txtEMail
+ '
+ Me.txtEMail.Location = New System.Drawing.Point(320, 120)
+ Me.txtEMail.Name = "txtEMail"
+ Me.txtEMail.Size = New System.Drawing.Size(136, 26)
+ Me.txtEMail.TabIndex = 11
+ '
+ 'txtTitle
+ '
+ Me.txtTitle.Location = New System.Drawing.Point(120, 120)
+ Me.txtTitle.Name = "txtTitle"
+ Me.txtTitle.Size = New System.Drawing.Size(114, 26)
+ Me.txtTitle.TabIndex = 9
+ '
+ 'txtFaxNo
+ '
+ Me.txtFaxNo.Location = New System.Drawing.Point(320, 88)
+ Me.txtFaxNo.Name = "txtFaxNo"
+ Me.txtFaxNo.Size = New System.Drawing.Size(136, 26)
+ Me.txtFaxNo.TabIndex = 7
+ '
+ 'lblAddress
+ '
+ Me.lblAddress.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblAddress.Location = New System.Drawing.Point(24, 154)
+ Me.lblAddress.Name = "lblAddress"
+ Me.lblAddress.Size = New System.Drawing.Size(86, 14)
+ Me.lblAddress.TabIndex = 12
+ Me.lblAddress.Text = "Address"
+ Me.lblAddress.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblEMail
+ '
+ Me.lblEMail.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblEMail.Location = New System.Drawing.Point(248, 123)
+ Me.lblEMail.Name = "lblEMail"
+ Me.lblEMail.Size = New System.Drawing.Size(64, 14)
+ Me.lblEMail.TabIndex = 10
+ Me.lblEMail.Text = "EMail"
+ Me.lblEMail.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblTitle
+ '
+ Me.lblTitle.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblTitle.Location = New System.Drawing.Point(24, 121)
+ Me.lblTitle.Name = "lblTitle"
+ Me.lblTitle.Size = New System.Drawing.Size(86, 14)
+ Me.lblTitle.TabIndex = 8
+ Me.lblTitle.Text = "Title"
+ Me.lblTitle.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblFaxNo
+ '
+ Me.lblFaxNo.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblFaxNo.Location = New System.Drawing.Point(248, 90)
+ Me.lblFaxNo.Name = "lblFaxNo"
+ Me.lblFaxNo.Size = New System.Drawing.Size(64, 14)
+ Me.lblFaxNo.TabIndex = 6
+ Me.lblFaxNo.Text = "FaxNo"
+ Me.lblFaxNo.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblTelNo
+ '
+ Me.lblTelNo.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblTelNo.Location = New System.Drawing.Point(24, 90)
+ Me.lblTelNo.Name = "lblTelNo"
+ Me.lblTelNo.Size = New System.Drawing.Size(86, 14)
+ Me.lblTelNo.TabIndex = 4
+ Me.lblTelNo.Text = "TelNo"
+ Me.lblTelNo.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'txtDescription
+ '
+ Me.txtDescription.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.txtDescription.Location = New System.Drawing.Point(120, 184)
+ Me.txtDescription.Name = "txtDescription"
+ Me.txtDescription.Size = New System.Drawing.Size(336, 108)
+ Me.txtDescription.TabIndex = 15
+ Me.txtDescription.Text = ""
+ '
+ 'lblDescription
+ '
+ Me.lblDescription.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblDescription.Location = New System.Drawing.Point(24, 186)
+ Me.lblDescription.Name = "lblDescription"
+ Me.lblDescription.Size = New System.Drawing.Size(86, 14)
+ Me.lblDescription.TabIndex = 14
+ Me.lblDescription.Text = "Description"
+ Me.lblDescription.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblSubcontractorNo
+ '
+ Me.lblSubcontractorNo.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblSubcontractorNo.Location = New System.Drawing.Point(14, 29)
+ Me.lblSubcontractorNo.Name = "lblSubcontractorNo"
+ Me.lblSubcontractorNo.Size = New System.Drawing.Size(96, 14)
+ Me.lblSubcontractorNo.TabIndex = 0
+ Me.lblSubcontractorNo.Text = "Subcontractor No"
+ Me.lblSubcontractorNo.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblContactorName
+ '
+ Me.lblContactorName.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblContactorName.Location = New System.Drawing.Point(24, 59)
+ Me.lblContactorName.Name = "lblContactorName"
+ Me.lblContactorName.Size = New System.Drawing.Size(86, 14)
+ Me.lblContactorName.TabIndex = 2
+ Me.lblContactorName.Text = "Contactor Name"
+ Me.lblContactorName.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'txtSubcontractorNo
+ '
+ Me.txtSubcontractorNo.Location = New System.Drawing.Point(120, 24)
+ Me.txtSubcontractorNo.Name = "txtSubcontractorNo"
+ Me.txtSubcontractorNo.ReadOnly = True
+ Me.txtSubcontractorNo.Size = New System.Drawing.Size(114, 26)
+ Me.txtSubcontractorNo.TabIndex = 1
+ Me.txtSubcontractorNo.TabStop = False
+ '
+ 'txtContactorName
+ '
+ Appearance1.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtContactorName.Appearance = Appearance1
+ Me.txtContactorName.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtContactorName.Location = New System.Drawing.Point(120, 56)
+ Me.txtContactorName.Name = "txtContactorName"
+ Me.txtContactorName.Size = New System.Drawing.Size(160, 26)
+ Me.txtContactorName.TabIndex = 3
+ '
+ 'txtTelNo
+ '
+ Me.txtTelNo.Location = New System.Drawing.Point(120, 88)
+ Me.txtTelNo.Name = "txtTelNo"
+ Me.txtTelNo.Size = New System.Drawing.Size(114, 26)
+ Me.txtTelNo.TabIndex = 5
+ '
+ 'frmSubcontractorContDef
+ '
+ Me.ClientSize = New System.Drawing.Size(496, 446)
+ Me.Controls.Add(Me.gbxSubcontractorContData)
+ Me.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Name = "frmSubcontractorContDef"
+ Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
+ Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
+ Me.Text = "ENT Subcontractor Contactor Define"
+ Me.Controls.SetChildIndex(Me.btnClose, 0)
+ Me.Controls.SetChildIndex(Me.btnConfirm, 0)
+ Me.Controls.SetChildIndex(Me.btnApply, 0)
+ Me.Controls.SetChildIndex(Me.gbxBasisData, 0)
+ Me.Controls.SetChildIndex(Me.gbxSubcontractorContData, 0)
+ CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.gbxSubcontractorContData.ResumeLayout(False)
+ Me.gbxSubcontractorContData.PerformLayout()
+ CType(Me.txtAddress, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtEMail, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtTitle, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtFaxNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtSubcontractorNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtContactorName, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtTelNo, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.ResumeLayout(False)
+
+ End Sub
+
+#End Region
+
+ Private Sub frmSubcontractorContDef_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
+
+ Cursor.Current = Cursors.WaitCursor
+
+ Select Case DefMode
+ Case 0
+ Me.Text = Me.Text & "(ADD)"
+ Case 1
+ Me.Text = Me.Text & "(EDIT)"
+ Case 2
+ Me.Text = Me.Text & "(Copy)"
+ Case Else
+ Me.Text = Me.Text & "(Unknown)"
+ End Select
+
+ '做為MainForm判斷是否重新LoadData的依據()
+ gReturnKeyValue = ""
+
+ ' 2016 YF, wsENT.Url = LocalizeWebService(wsENT.Url.ToString)
+ ' 2016 YF, wsENT.EnableDecompression = True
+ If DefMode = 0 Or DefMode = 2 Then
+ SetCreateDate(Now)
+ SetCreator(gUserNo)
+ End If
+ If Not EditDataRow Is Nothing Then '修改 or Copy
+ txtSubcontractorNo.Text = EditDataRow.Item("SubcontractorNo").ToString
+ txtContactorName.Text = EditDataRow.Item("ContactorName").ToString
+ txtTelNo.Text = EditDataRow.Item("TelNo").ToString
+ txtFaxNo.Text = EditDataRow.Item("FaxNo").ToString
+ txtTitle.Text = EditDataRow.Item("Title").ToString
+ txtAddress.Text = EditDataRow.Item("Address").ToString
+ txtEMail.Text = EditDataRow.Item("EMail").ToString
+ 'txtDescription是RichTextBox(Control, 因為TextBox無法正常顯示多行換行的資料)
+ txtDescription.Text = EditDataRow.Item("Description").ToString
+ If DefMode = 1 Then
+ If (Not IsDBNull(EditDataRow("Creator"))) Then
+ SetCreateDate(Convert.ToDateTime(EditDataRow.Item("CreateDate")))
+ SetCreator(EditDataRow.Item("Creator").ToString)
+ End If
+ End If
+ End If
+
+ If DefMode = 0 Then 'Add
+ txtSubcontractorNo.Text = SubcontractorNo
+ SetCreateDate(Now)
+ SetCreator(gUserNo)
+ ElseIf DefMode = 1 Then 'Edit
+ txtContactorName.ReadOnly = True
+ SetReviseDate(Now)
+ SetReviser(gUserNo)
+ intDataStamp = EditDataRow.Item("DataStamp")
+ End If
+
+ btnApplyEnabled = False
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ ExeGroupControlPriv(Me, PrivFunNo)
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub frmSubcontractorContDef_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
+ If DefMode = 0 Or DefMode = 2 Then
+ txtContactorName.Focus()
+ Else
+ txtTelNo.Focus()
+ End If
+ End Sub
+
+ Protected Overrides Sub btnConfirm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If funAddorEdit(sender) < 0 Then Exit Sub
+
+ Me.Close()
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Protected Overrides Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+ Me.Close()
+ End Sub
+
+ Protected Overrides Sub btnApply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If funAddorEdit(sender) < 0 Then Exit Sub
+
+ If DefMode = 0 Or DefMode = 2 Then
+ txtContactorName.Focus()
+ Else
+ txtTelNo.Focus()
+ End If
+
+ txtEMail.Text = ""
+ btnApplyEnabled = False
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+#Region "Control KeyPress"
+
+ Private Sub txtSubcontractorNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Click
+ txtSubcontractorNo.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorNo_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Enter
+ txtSubcontractorNo.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorNo_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSubcontractorNo.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtSubcontractorNo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtContactorName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtContactorName.Click
+ txtContactorName.SelectAll()
+ End Sub
+
+ Private Sub txtContactorName_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtContactorName.Enter
+ txtContactorName.SelectAll()
+ End Sub
+
+ Private Sub txtContactorName_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtContactorName.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtContactorName_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtContactorName.Leave
+ If txtContactorName.Text <> "" And txtEMail.Text = "" Then
+ txtEMail.Text = txtContactorName.Text & "@"
+ End If
+ txtContactorName.Text = UCase(txtContactorName.Text)
+ End Sub
+
+ Private Sub txtContactorName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtContactorName.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtTelNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTelNo.Click
+ txtTelNo.SelectAll()
+ End Sub
+
+ Private Sub txtTelNo_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTelNo.Enter
+ txtTelNo.SelectAll()
+ End Sub
+
+ Private Sub txtTelNo_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTelNo.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtTelNo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTelNo.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtFaxNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFaxNo.Click
+ txtFaxNo.SelectAll()
+ End Sub
+
+ Private Sub txtFaxNo_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFaxNo.Enter
+ txtFaxNo.SelectAll()
+ End Sub
+
+ Private Sub txtFaxNo_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtFaxNo.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtFaxNo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFaxNo.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtTitle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTitle.Click
+ txtTitle.SelectAll()
+ End Sub
+
+ Private Sub txtTitle_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTitle.Enter
+ txtTitle.SelectAll()
+ End Sub
+
+ Private Sub txtTitle_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTitle.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtTitle_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTitle.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtEMail_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtEMail.Click
+ txtEMail.SelectAll()
+ End Sub
+
+ Private Sub txtEMail_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtEMail.Enter
+ txtEMail.SelectAll()
+ End Sub
+
+ Private Sub txtEMail_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtEMail.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtEMail_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtEMail.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtAddress_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtAddress.Click
+ txtAddress.SelectAll()
+ End Sub
+
+ Private Sub txtAddress_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtAddress.Enter
+ txtAddress.SelectAll()
+ End Sub
+
+ Private Sub txtAddress_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtAddress.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtAddress_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtAddress.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtDescription_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDescription.Click
+ txtDescription.SelectAll()
+ End Sub
+
+ Private Sub txtDescription_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDescription.Enter
+ txtDescription.SelectAll()
+ End Sub
+
+ Private Sub txtDescription_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtDescription.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtDescription_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDescription.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+#End Region
+
+#Region "Others"
+
+ Private Function funAddorEdit(sender As Object) As Integer
+
+ funAddorEdit = -1
+
+ '******************************************************************************
+ '1.基本檢查()
+ '******************************************************************************
+ If txtSubcontractorNo.Text = "" Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200001", "[%SubcontractorNo%]"), MsgBoxStyle.Exclamation, Me.Text)
+ txtSubcontractorNo.Focus()
+ Exit Function
+ End If
+ If txtContactorName.Text = "" Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200001", "[%ContactorName%]"), MsgBoxStyle.Exclamation, Me.Text)
+ txtContactorName.Focus()
+ Exit Function
+ End If
+
+ '******************************************************************************
+ '2.寫回資料庫()
+ '******************************************************************************
+ Dim XmlDoc As New XmlDocument
+
+ Try
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ strParameter = CombineXMLParameter("subcontractorno", "SubcontractorNo", "String", CInput(txtSubcontractorNo.Text), "")
+ strParameter = strParameter & CombineXMLParameter("contactorname", "ContactorName", "String", CInput(txtContactorName.Text), "")
+ strParameter = strParameter & CombineXMLParameter("telno", "TelNo", "String", txtTelNo.Text, "")
+ strParameter = strParameter & CombineXMLParameter("faxno", "FaxNo", "String", txtFaxNo.Text, "")
+ strParameter = strParameter & CombineXMLParameter("title", "Title", "String", CInput(txtTitle.Text), "")
+ strParameter = strParameter & CombineXMLParameter("address", "Address", "String", CInput(txtAddress.Text), "")
+ strParameter = strParameter & CombineXMLParameter("email", "EMail", "String", CInput(txtEMail.Text), "")
+ strParameter = strParameter & CombineXMLParameter("description", "Description", "String", CInput(txtDescription.Text), "")
+
+
+ If DefMode = 0 Or DefMode = 2 Then 'Add or Copy
+ strParameter += CombineXMLParameter("creator", "Creator", "String", gUserNo, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ ' 2016 YF, OutXml = wsENT.AddSubcontractorCont(InXml)
+ OutXml = InvokeSrv("SXS.wsENT.AddSubcontractorCont", InXml)
+
+ Else 'Edit
+ ' 增加Datastamp
+ strParameter += CombineXMLParameter("datastamp", "Datastamp", "Integer", intDataStamp, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+ ' 2016 YF, OutXml = wsENT.EditSubcontractorCont(InXml)
+ OutXml = InvokeSrv("SXS.wsENT.EditSubcontractorCont", InXml)
+
+ End If
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ gReturnKeyValue = txtContactorName.Text
+
+ funAddorEdit = 0
+ If sender.Equals(btnApply) Then
+ intDataStamp += 1
+ End If
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ End If
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Add or Edit ENT Subcontractor Contactor Failed!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ XmlDoc = Nothing
+
+ End Function
+#End Region
+
+
+ Private Sub frmSubcontractorContDef_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
+ ' 2016 YF, If Not wsENT Is Nothing Then wsENT.Dispose()
+ End Sub
+
+ Private Sub btnConfirm_Click_1(sender As Object, e As EventArgs) Handles btnConfirm.Click
+
+ End Sub
+End Class
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/frmSubcontractorDef.resx b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/frmSubcontractorDef.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/frmSubcontractorDef.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/frmSubcontractorDef.vb b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/frmSubcontractorDef.vb
new file mode 100644
index 0000000..c738f71
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/frmSubcontractorDef.vb
@@ -0,0 +1,460 @@
+Imports iMESExceptionManager
+
+Public Class frmSubcontractorDef21670
+
+ Inherits COM_Kit.frmDefTemplat
+
+ '//Public Variables
+ Public EditDataRow As DataRow
+ Public DefMode As Integer = 0 '0. ADD, 1.Edit, 2. Copy
+ Public PrivFunNo As String = defString
+
+ '//Web Service相關變數
+ ' 2016 YF, Dim wsENT As New wsENT.wsENT
+ Dim InXml As String
+ Dim OutXml As String
+
+ Dim strIdentity As String
+ Dim strParameter As String
+ Friend WithEvents txtWZ216670 As TextBox
+ Friend WithEvents Label1 As Label
+ Dim intDataStamp As Integer '紀錄DataStamp
+
+#Region " Windows Form Designer generated code "
+
+ Public Sub New()
+ MyBase.New()
+
+ 'This call is required by the Windows Form Designer.
+ InitializeComponent()
+
+ 'Add any initialization after the InitializeComponent() call
+
+ End Sub
+
+ 'Form overrides dispose to clean up the component list.
+ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
+ If disposing Then
+ If Not (components Is Nothing) Then
+ components.Dispose()
+ End If
+ End If
+ MyBase.Dispose(disposing)
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.IContainer
+
+ 'NOTE: The following procedure is required by the Windows Form Designer
+ 'It can be modified using the Windows Form Designer.
+ 'Do not modify it using the code editor.
+ Friend WithEvents txtDescription As System.Windows.Forms.RichTextBox
+ Friend WithEvents lblDescription As System.Windows.Forms.Label
+ Friend WithEvents lblSubcontractorNo As System.Windows.Forms.Label
+ Friend WithEvents lblSubcontractorName As System.Windows.Forms.Label
+ Friend WithEvents gbxSubcontractorData As System.Windows.Forms.GroupBox
+ Friend WithEvents txtSubcontractorNo As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Friend WithEvents txtSubcontractorName As Infragistics.Win.UltraWinEditors.UltraTextEditor
+ Private Sub InitializeComponent()
+ Dim Appearance1 As Infragistics.Win.Appearance = New Infragistics.Win.Appearance()
+ Dim Appearance2 As Infragistics.Win.Appearance = New Infragistics.Win.Appearance()
+ Me.gbxSubcontractorData = New System.Windows.Forms.GroupBox()
+ Me.txtDescription = New System.Windows.Forms.RichTextBox()
+ Me.lblDescription = New System.Windows.Forms.Label()
+ Me.lblSubcontractorNo = New System.Windows.Forms.Label()
+ Me.lblSubcontractorName = New System.Windows.Forms.Label()
+ Me.txtSubcontractorNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtSubcontractorName = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.txtWZ216670 = New System.Windows.Forms.TextBox()
+ Me.Label1 = New System.Windows.Forms.Label()
+ CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.gbxSubcontractorData.SuspendLayout()
+ CType(Me.txtSubcontractorNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtSubcontractorName, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SuspendLayout()
+ '
+ 'gbxBasisData
+ '
+ Me.gbxBasisData.Location = New System.Drawing.Point(12, 185)
+ Me.gbxBasisData.Size = New System.Drawing.Size(479, 70)
+ '
+ 'btnApply
+ '
+ Me.btnApply.Location = New System.Drawing.Point(403, 264)
+ '
+ 'btnConfirm
+ '
+ Me.btnConfirm.Location = New System.Drawing.Point(215, 264)
+ '
+ 'btnClose
+ '
+ Me.btnClose.Location = New System.Drawing.Point(309, 264)
+ '
+ 'gbxSubcontractorData
+ '
+ Me.gbxSubcontractorData.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.gbxSubcontractorData.Controls.Add(Me.Label1)
+ Me.gbxSubcontractorData.Controls.Add(Me.txtWZ216670)
+ Me.gbxSubcontractorData.Controls.Add(Me.txtDescription)
+ Me.gbxSubcontractorData.Controls.Add(Me.lblDescription)
+ Me.gbxSubcontractorData.Controls.Add(Me.lblSubcontractorNo)
+ Me.gbxSubcontractorData.Controls.Add(Me.lblSubcontractorName)
+ Me.gbxSubcontractorData.Controls.Add(Me.txtSubcontractorNo)
+ Me.gbxSubcontractorData.Controls.Add(Me.txtSubcontractorName)
+ Me.gbxSubcontractorData.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.gbxSubcontractorData.Location = New System.Drawing.Point(12, 8)
+ Me.gbxSubcontractorData.Name = "gbxSubcontractorData"
+ Me.gbxSubcontractorData.Size = New System.Drawing.Size(479, 169)
+ Me.gbxSubcontractorData.TabIndex = 7
+ Me.gbxSubcontractorData.TabStop = False
+ Me.gbxSubcontractorData.Text = "Subcontractor Data"
+ '
+ 'txtDescription
+ '
+ Me.txtDescription.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.txtDescription.Location = New System.Drawing.Point(128, 86)
+ Me.txtDescription.Name = "txtDescription"
+ Me.txtDescription.Size = New System.Drawing.Size(334, 67)
+ Me.txtDescription.TabIndex = 2
+ Me.txtDescription.Text = ""
+ '
+ 'lblDescription
+ '
+ Me.lblDescription.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblDescription.Location = New System.Drawing.Point(56, 88)
+ Me.lblDescription.Name = "lblDescription"
+ Me.lblDescription.Size = New System.Drawing.Size(64, 14)
+ Me.lblDescription.TabIndex = 13
+ Me.lblDescription.Text = "Description"
+ Me.lblDescription.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblSubcontractorNo
+ '
+ Me.lblSubcontractorNo.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblSubcontractorNo.Location = New System.Drawing.Point(24, 24)
+ Me.lblSubcontractorNo.Name = "lblSubcontractorNo"
+ Me.lblSubcontractorNo.Size = New System.Drawing.Size(96, 32)
+ Me.lblSubcontractorNo.TabIndex = 5
+ Me.lblSubcontractorNo.Text = "Subcontractor No"
+ Me.lblSubcontractorNo.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'lblSubcontractorName
+ '
+ Me.lblSubcontractorName.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblSubcontractorName.Location = New System.Drawing.Point(8, 56)
+ Me.lblSubcontractorName.Name = "lblSubcontractorName"
+ Me.lblSubcontractorName.Size = New System.Drawing.Size(112, 32)
+ Me.lblSubcontractorName.TabIndex = 9
+ Me.lblSubcontractorName.Text = "Subcontractor Name"
+ Me.lblSubcontractorName.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'txtSubcontractorNo
+ '
+ Appearance1.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtSubcontractorNo.Appearance = Appearance1
+ Me.txtSubcontractorNo.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtSubcontractorNo.Location = New System.Drawing.Point(128, 24)
+ Me.txtSubcontractorNo.Name = "txtSubcontractorNo"
+ Me.txtSubcontractorNo.Size = New System.Drawing.Size(152, 26)
+ Me.txtSubcontractorNo.TabIndex = 0
+ '
+ 'txtSubcontractorName
+ '
+ Appearance2.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtSubcontractorName.Appearance = Appearance2
+ Me.txtSubcontractorName.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.txtSubcontractorName.Location = New System.Drawing.Point(128, 55)
+ Me.txtSubcontractorName.Name = "txtSubcontractorName"
+ Me.txtSubcontractorName.Size = New System.Drawing.Size(334, 26)
+ Me.txtSubcontractorName.TabIndex = 1
+ '
+ 'txtWZ216670
+ '
+ Me.txtWZ216670.Location = New System.Drawing.Point(362, 25)
+ Me.txtWZ216670.Name = "txtWZ216670"
+ Me.txtWZ216670.Size = New System.Drawing.Size(100, 25)
+ Me.txtWZ216670.TabIndex = 14
+ '
+ 'Label1
+ '
+ Me.Label1.AutoSize = True
+ Me.Label1.Location = New System.Drawing.Point(297, 24)
+ Me.Label1.Name = "Label1"
+ Me.Label1.Size = New System.Drawing.Size(66, 17)
+ Me.Label1.TabIndex = 15
+ Me.Label1.Text = "WZ21670"
+ '
+ 'frmSubcontractorDef
+ '
+ Me.ClientSize = New System.Drawing.Size(503, 309)
+ Me.Controls.Add(Me.gbxSubcontractorData)
+ Me.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Name = "frmSubcontractorDef"
+ Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
+ Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
+ Me.Text = "ENT Subcontractor Define"
+ Me.Controls.SetChildIndex(Me.btnClose, 0)
+ Me.Controls.SetChildIndex(Me.btnConfirm, 0)
+ Me.Controls.SetChildIndex(Me.btnApply, 0)
+ Me.Controls.SetChildIndex(Me.gbxBasisData, 0)
+ Me.Controls.SetChildIndex(Me.gbxSubcontractorData, 0)
+ CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.gbxSubcontractorData.ResumeLayout(False)
+ Me.gbxSubcontractorData.PerformLayout()
+ CType(Me.txtSubcontractorNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtSubcontractorName, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.ResumeLayout(False)
+
+ End Sub
+
+#End Region
+
+ Private Sub frmSubcontractorDef_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
+
+ Cursor.Current = Cursors.WaitCursor
+
+ Select Case DefMode
+ Case 0
+ Me.Text = Me.Text & "(ADD)"
+ Case 1
+ Me.Text = Me.Text & "(EDIT)"
+ Case 2
+ Me.Text = Me.Text & "(Copy)"
+ Case Else
+ Me.Text = Me.Text & "(Unknown)"
+ End Select
+
+ '做為MainForm判斷是否重新LoadData的依據
+ gReturnKeyValue = ""
+
+ ' 2016 YF, wsENT.Url = LocalizeWebService(wsENT.Url.ToString)
+ ' 2016 YF, wsENT.EnableDecompression = True
+
+ If Not EditDataRow Is Nothing Then
+ txtSubcontractorNo.Text = EditDataRow.Item("SubcontractorNo").ToString
+ txtSubcontractorName.Text = EditDataRow.Item("SubcontractorName").ToString
+ 'txtDescription是RichTextBox Control,因為TextBox無法正常顯示多行換行的資料
+ txtDescription.Text = EditDataRow.Item("Description").ToString
+ End If
+
+ If DefMode = 0 Or DefMode = 2 Then 'Add or Copy
+ SetCreator(gUserNo)
+ SetCreateDate(Now)
+ ElseIf DefMode = 1 Then 'Edit
+ txtSubcontractorNo.ReadOnly = True
+ SetCreator(EditDataRow.Item("Creator").ToString)
+ SetCreateDate(Convert.ToDateTime(EditDataRow.Item("CreateDate")))
+ SetReviser(gUserNo)
+ SetReviseDate(Now)
+ intDataStamp = EditDataRow.Item("DataStamp")
+ End If
+
+ btnApplyEnabled = False
+
+ '語系切換
+ Call ExeChangeResource(Me, gLanguageMode)
+ ExeGroupControlPriv(Me, PrivFunNo)
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Private Sub frmSubcontractorDef_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
+ If DefMode = 0 Or DefMode = 2 Then
+ txtSubcontractorNo.Focus()
+ Else
+ txtSubcontractorName.Focus()
+ End If
+ End Sub
+
+ Protected Overrides Sub btnConfirm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If funAddorEdit(sender) < 0 Then Exit Sub
+
+ Me.Close()
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+ Protected Overrides Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+ Me.Close()
+ End Sub
+
+ Protected Overrides Sub btnApply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+
+ Cursor.Current = Cursors.WaitCursor
+
+ If funAddorEdit(sender) < 0 Then Exit Sub
+
+ If DefMode = 0 Or DefMode = 2 Then
+ txtSubcontractorNo.Focus()
+ Else
+ txtSubcontractorName.Focus()
+
+ End If
+
+ Cursor.Current = Cursors.Default
+ btnApplyEnabled = False
+
+ End Sub
+
+ Private Sub frmSubcontractorDef_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
+ ' 2016 YF, If Not wsENT Is Nothing Then wsENT.Dispose()
+ End Sub
+
+#Region "Control KeyPress"
+
+ Private Sub txtSubcontractorNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Click
+ txtSubcontractorNo.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorNo_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Enter
+ txtSubcontractorNo.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorNo_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSubcontractorNo.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtSubcontractorNo_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.Leave
+ txtSubcontractorNo.Text = UCase(txtSubcontractorNo.Text)
+ End Sub
+
+ Private Sub txtSubcontractorNo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorNo.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtSubcontractorName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorName.Click
+ txtSubcontractorName.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorName_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorName.Enter
+ txtSubcontractorName.SelectAll()
+ End Sub
+
+ Private Sub txtSubcontractorName_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSubcontractorName.KeyPress
+ If e.KeyChar = Convert.ToChar(13) Then
+ SendKeys.Send("{TAB}")
+ End If
+ End Sub
+
+ Private Sub txtSubcontractorName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSubcontractorName.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtDescription_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDescription.Click
+ txtDescription.SelectAll()
+ End Sub
+
+ Private Sub txtDescription_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDescription.Enter
+ txtDescription.SelectAll()
+ End Sub
+
+ Private Sub txtDescription_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDescription.TextChanged
+ btnApplyEnabled = True
+ End Sub
+
+#End Region
+
+#Region "Others"
+
+ Private Function funAddorEdit(sender As Object) As Integer
+
+ funAddorEdit = -1
+
+ '******************************************************************************
+ '1.基本檢查
+ '******************************************************************************
+ If txtSubcontractorNo.Text = "" Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200001", "[%SubcontractorNo%]"), MsgBoxStyle.Exclamation, Me.Text)
+ txtSubcontractorNo.Focus()
+ Exit Function
+ End If
+
+ If txtSubcontractorName.Text = "" Then
+ iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200001", "[%SubcontractorName%]"), MsgBoxStyle.Exclamation, Me.Text)
+ txtSubcontractorName.Focus()
+ Exit Function
+ End If
+
+ '2.
+ '******************************************************************************
+ '寫回資料庫
+ '******************************************************************************
+ Dim XmlDoc As New XmlDocument
+
+ Try
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ strParameter = CombineXMLParameter("subcontractorno", "SubcontractorNo", "String", CInput(txtSubcontractorNo.Text), "")
+ strParameter = strParameter & CombineXMLParameter("subcontractorname", "SubcontractorName", "String", CInput(txtSubcontractorName.Text), "")
+ strParameter = strParameter & CombineXMLParameter("description", "Description", "String", CInput(txtDescription.Text), "")
+ strParameter = strParameter & CombineXMLParameter("wz21670", "WZ21670", "String", CInput(txtWZ216670.Text), "")
+
+ If DefMode = 0 Or DefMode = 2 Then 'Add or Copy
+ strParameter = strParameter & CombineXMLParameter("creator", "Creator", "String", gUserNo, "")
+ strParameter = strParameter & CombineXMLParameter("createdate", "CreateDate", "DateTime", Format(Now, "yyyy/MM/dd HH:mm:ss"), "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ ' 2016 YF, OutXml = wsENT.AddSubcontractor(InXml)
+ OutXml = InvokeSrv("SXS.wsENT.AddSubcontractor", InXml)
+
+ Else
+ '修改
+ strParameter = strParameter & CombineXMLParameter("issuestate", "IssueState", "String", EditDataRow.Item("IssueState").ToString, "")
+ ' 增加Datastamp
+ strParameter += CombineXMLParameter("datastamp", "Datastamp", "Integer", intDataStamp, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ ' 2016 YF, OutXml = wsENT.EditSubcontractor(InXml)
+ OutXml = InvokeSrv("SXS.wsENT.EditSubcontractor", InXml)
+
+ End If
+
+ XmlDoc.LoadXml(OutXml)
+ If ChkExecutionSuccess(XmlDoc) Then
+ gReturnKeyValue = txtSubcontractorNo.Text
+
+ funAddorEdit = 0
+ If sender.Equals(btnApply) Then
+ intDataStamp += 1
+ End If
+ Else
+ ExceptionManager.iMESShowDialog(GetExceptionCode(XmlDoc), GetExceptionSysMsg(XmlDoc), GetExceptionStack(XmlDoc))
+ End If
+
+ Catch ex As Exception
+ 'MsgBox("Unexpected Error. Add or Edit ENT Subcontractor Failed!," & e1.Message, MsgBoxStyle.Exclamation)
+ ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+
+ XmlDoc = Nothing
+
+ End Function
+
+ Private Sub btnConfirm_Click_1(sender As Object, e As EventArgs) Handles btnConfirm.Click
+
+ End Sub
+
+ Private Sub txtSubcontractorNo_ValueChanged(sender As Object, e As EventArgs) Handles txtSubcontractorNo.ValueChanged
+
+ End Sub
+
+ Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles txtWZ216670.TextChanged
+
+ End Sub
+
+ Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click
+
+ End Sub
+
+#End Region
+
+End Class
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/iMES.snk b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/iMES.snk
new file mode 100644
index 0000000..4206cdc
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/21670_1/iMES.snk differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/新建 文本文档.txt b/SRC/MESWin/SYS4/21670ll/MESWin/SYS4/新建 文本文档.txt
new file mode 100644
index 0000000..e69de29
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS5/新建 文本文档.txt b/SRC/MESWin/SYS4/21670ll/MESWin/SYS5/新建 文本文档.txt
new file mode 100644
index 0000000..e69de29
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/SYS6/新建 文本文档.txt b/SRC/MESWin/SYS4/21670ll/MESWin/SYS6/新建 文本文档.txt
new file mode 100644
index 0000000..e69de29
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Test/MDI_Panel.resx b/SRC/MESWin/SYS4/21670ll/MESWin/Test/MDI_Panel.resx
new file mode 100644
index 0000000..2d7050a
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/Test/MDI_Panel.resx
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+ 254, 17
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Test/MDI_Panel.vb b/SRC/MESWin/SYS4/21670ll/MESWin/Test/MDI_Panel.vb
new file mode 100644
index 0000000..e57dab1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/Test/MDI_Panel.vb
@@ -0,0 +1,1016 @@
+Imports iMESMainMenu
+Imports Infragistics.Win
+Imports Infragistics.Win.UltraWinToolbars
+Public Class MDI_Panel
+
+ Inherits System.Windows.Forms.Form
+
+ '//Data
+ Dim dsData As New DataSet
+ Dim ModuleNo As String
+ Dim strUserPriv As String
+
+ '//其他共用變數
+ Dim i As Integer
+ Dim blnShow As Boolean
+ Dim imlMDI As New ImageList
+
+ '// MainMenu & ToolBar變數
+ Dim utbMDI As Infragistics.Win.UltraWinToolbars.UltraToolbar = New UltraToolbar("ToolBar")
+ Dim utbMDIMenu As Infragistics.Win.UltraWinToolbars.UltraToolbar = New UltraToolbar("MainMenu")
+ Dim OptionSet1 As Infragistics.Win.UltraWinToolbars.OptionSet = New Infragistics.Win.UltraWinToolbars.OptionSet("LanguageMode")
+ Dim btlMDI As ButtonTool
+ Dim popMDI As PopupMenuTool
+ Dim sbtMDI As StateButtonTool
+
+
+#Region " Windows Form 設計工具產生的程式碼 "
+
+ Public Sub New()
+ MyBase.New()
+
+ '此呼叫為 Windows Form 設計工具的必要項。
+ InitializeComponent()
+
+ '在 InitializeComponent() 呼叫之後加入所有的初始設定
+
+ End Sub
+
+ 'Form 覆寫 Dispose 以清除元件清單。
+ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
+ If disposing Then
+ If Not (components Is Nothing) Then
+ components.Dispose()
+ End If
+ End If
+ MyBase.Dispose(disposing)
+ End Sub
+
+ '為 Windows Form 設計工具的必要項
+ Private components As System.ComponentModel.IContainer
+
+ '注意: 以下為 Windows Form 設計工具所需的程序
+ '您可以使用 Windows Form 設計工具進行修改。
+ '請勿使用程式碼編輯器來修改這些程序。
+ Friend WithEvents UltraToolbarsManager1 As Infragistics.Win.UltraWinToolbars.UltraToolbarsManager
+ Friend WithEvents _MDIENT_Panel_Toolbars_Dock_Area_Left As Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea
+ Friend WithEvents _MDIENT_Panel_Toolbars_Dock_Area_Right As Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea
+ Friend WithEvents _MDIENT_Panel_Toolbars_Dock_Area_Top As Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea
+ Friend WithEvents _MDIENT_Panel_Toolbars_Dock_Area_Bottom As Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea
+ Friend WithEvents UltraDockManager1 As Infragistics.Win.UltraWinDock.UltraDockManager
+ Friend WithEvents _MDIENT_PanelUnpinnedTabAreaLeft As Infragistics.Win.UltraWinDock.UnpinnedTabArea
+ Friend WithEvents _MDIENT_PanelUnpinnedTabAreaRight As Infragistics.Win.UltraWinDock.UnpinnedTabArea
+ Friend WithEvents _MDIENT_PanelUnpinnedTabAreaTop As Infragistics.Win.UltraWinDock.UnpinnedTabArea
+ Friend WithEvents _MDIENT_PanelUnpinnedTabAreaBottom As Infragistics.Win.UltraWinDock.UnpinnedTabArea
+ Friend WithEvents _MDIENT_PanelAutoHideControl As Infragistics.Win.UltraWinDock.AutoHideControl
+ Friend WithEvents uebMenu As Infragistics.Win.UltraWinExplorerBar.UltraExplorerBar
+ Friend WithEvents WindowDockingArea1 As Infragistics.Win.UltraWinDock.WindowDockingArea
+ Friend WithEvents DockableWindow1 As Infragistics.Win.UltraWinDock.DockableWindow
+ Private Sub InitializeComponent()
+ Me.components = New System.ComponentModel.Container()
+ Dim DockAreaPane2 As Infragistics.Win.UltraWinDock.DockAreaPane = New Infragistics.Win.UltraWinDock.DockAreaPane(Infragistics.Win.UltraWinDock.DockedLocation.DockedLeft, New System.Guid("8666bbed-9885-4c68-819e-c049f9eac535"))
+ Dim DockableControlPane2 As Infragistics.Win.UltraWinDock.DockableControlPane = New Infragistics.Win.UltraWinDock.DockableControlPane(New System.Guid("5a475b0e-96d9-4cd0-973b-da8cba709615"), New System.Guid("00000000-0000-0000-0000-000000000000"), -1, New System.Guid("8666bbed-9885-4c68-819e-c049f9eac535"), -1)
+ Me.uebMenu = New Infragistics.Win.UltraWinExplorerBar.UltraExplorerBar()
+ Me.UltraToolbarsManager1 = New Infragistics.Win.UltraWinToolbars.UltraToolbarsManager(Me.components)
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Left = New Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea()
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Right = New Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea()
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Top = New Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea()
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom = New Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea()
+ Me.UltraDockManager1 = New Infragistics.Win.UltraWinDock.UltraDockManager(Me.components)
+ Me._MDIENT_PanelUnpinnedTabAreaLeft = New Infragistics.Win.UltraWinDock.UnpinnedTabArea()
+ Me._MDIENT_PanelUnpinnedTabAreaRight = New Infragistics.Win.UltraWinDock.UnpinnedTabArea()
+ Me._MDIENT_PanelUnpinnedTabAreaTop = New Infragistics.Win.UltraWinDock.UnpinnedTabArea()
+ Me._MDIENT_PanelUnpinnedTabAreaBottom = New Infragistics.Win.UltraWinDock.UnpinnedTabArea()
+ Me._MDIENT_PanelAutoHideControl = New Infragistics.Win.UltraWinDock.AutoHideControl()
+ Me.DockableWindow1 = New Infragistics.Win.UltraWinDock.DockableWindow()
+ Me.WindowDockingArea1 = New Infragistics.Win.UltraWinDock.WindowDockingArea()
+ CType(Me.uebMenu, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.UltraToolbarsManager1, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.UltraDockManager1, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me._MDIENT_PanelAutoHideControl.SuspendLayout()
+ Me.DockableWindow1.SuspendLayout()
+ Me.SuspendLayout()
+ '
+ 'uebMenu
+ '
+ Me.uebMenu.Location = New System.Drawing.Point(0, 18)
+ Me.uebMenu.Name = "uebMenu"
+ Me.uebMenu.Size = New System.Drawing.Size(300, 424)
+ Me.uebMenu.TabIndex = 10
+ '
+ 'UltraToolbarsManager1
+ '
+ Me.UltraToolbarsManager1.DesignerFlags = 1
+ Me.UltraToolbarsManager1.DockWithinContainer = Me
+ Me.UltraToolbarsManager1.DockWithinContainerBaseType = GetType(System.Windows.Forms.Form)
+ '
+ '_MDIENT_Panel_Toolbars_Dock_Area_Left
+ '
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Left.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Left.BackColor = System.Drawing.SystemColors.Control
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Left.DockedPosition = Infragistics.Win.UltraWinToolbars.DockedPosition.Left
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Left.ForeColor = System.Drawing.SystemColors.ControlText
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Left.Location = New System.Drawing.Point(0, 0)
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Left.Name = "_MDIENT_Panel_Toolbars_Dock_Area_Left"
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Left.Size = New System.Drawing.Size(0, 442)
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Left.ToolbarsManager = Me.UltraToolbarsManager1
+ '
+ '_MDIENT_Panel_Toolbars_Dock_Area_Right
+ '
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Right.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Right.BackColor = System.Drawing.SystemColors.Control
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Right.DockedPosition = Infragistics.Win.UltraWinToolbars.DockedPosition.Right
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Right.ForeColor = System.Drawing.SystemColors.ControlText
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Right.Location = New System.Drawing.Point(624, 0)
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Right.Name = "_MDIENT_Panel_Toolbars_Dock_Area_Right"
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Right.Size = New System.Drawing.Size(0, 442)
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Right.ToolbarsManager = Me.UltraToolbarsManager1
+ '
+ '_MDIENT_Panel_Toolbars_Dock_Area_Top
+ '
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Top.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Top.BackColor = System.Drawing.SystemColors.Control
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Top.DockedPosition = Infragistics.Win.UltraWinToolbars.DockedPosition.Top
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Top.ForeColor = System.Drawing.SystemColors.ControlText
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Top.Location = New System.Drawing.Point(0, 0)
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Top.Name = "_MDIENT_Panel_Toolbars_Dock_Area_Top"
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Top.Size = New System.Drawing.Size(624, 0)
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Top.ToolbarsManager = Me.UltraToolbarsManager1
+ '
+ '_MDIENT_Panel_Toolbars_Dock_Area_Bottom
+ '
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.BackColor = System.Drawing.SystemColors.Control
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.DockedPosition = Infragistics.Win.UltraWinToolbars.DockedPosition.Bottom
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.ForeColor = System.Drawing.SystemColors.ControlText
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.Location = New System.Drawing.Point(0, 442)
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.Name = "_MDIENT_Panel_Toolbars_Dock_Area_Bottom"
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.Size = New System.Drawing.Size(624, 0)
+ Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom.ToolbarsManager = Me.UltraToolbarsManager1
+ '
+ 'UltraDockManager1
+ '
+ DockableControlPane2.Control = Me.uebMenu
+ DockableControlPane2.FlyoutSize = New System.Drawing.Size(239, -1)
+ DockableControlPane2.Key = "WIPModule"
+ DockableControlPane2.OriginalControlBounds = New System.Drawing.Rectangle(208, 112, 175, 230)
+ DockableControlPane2.Pinned = False
+ DockableControlPane2.Size = New System.Drawing.Size(100, 100)
+ DockableControlPane2.Text = "WIP"
+ DockAreaPane2.Panes.AddRange(New Infragistics.Win.UltraWinDock.DockablePaneBase() {DockableControlPane2})
+ DockAreaPane2.Size = New System.Drawing.Size(239, 294)
+ Me.UltraDockManager1.DockAreas.AddRange(New Infragistics.Win.UltraWinDock.DockAreaPane() {DockAreaPane2})
+ Me.UltraDockManager1.HostControl = Me
+ Me.UltraDockManager1.ShowCloseButton = False
+ '
+ '_MDIENT_PanelUnpinnedTabAreaLeft
+ '
+ Me._MDIENT_PanelUnpinnedTabAreaLeft.Dock = System.Windows.Forms.DockStyle.Left
+ Me._MDIENT_PanelUnpinnedTabAreaLeft.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte))
+ Me._MDIENT_PanelUnpinnedTabAreaLeft.Location = New System.Drawing.Point(0, 0)
+ Me._MDIENT_PanelUnpinnedTabAreaLeft.Name = "_MDIENT_PanelUnpinnedTabAreaLeft"
+ Me._MDIENT_PanelUnpinnedTabAreaLeft.Owner = Me.UltraDockManager1
+ Me._MDIENT_PanelUnpinnedTabAreaLeft.Size = New System.Drawing.Size(21, 442)
+ Me._MDIENT_PanelUnpinnedTabAreaLeft.TabIndex = 5
+ '
+ '_MDIENT_PanelUnpinnedTabAreaRight
+ '
+ Me._MDIENT_PanelUnpinnedTabAreaRight.Dock = System.Windows.Forms.DockStyle.Right
+ Me._MDIENT_PanelUnpinnedTabAreaRight.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte))
+ Me._MDIENT_PanelUnpinnedTabAreaRight.Location = New System.Drawing.Point(624, 0)
+ Me._MDIENT_PanelUnpinnedTabAreaRight.Name = "_MDIENT_PanelUnpinnedTabAreaRight"
+ Me._MDIENT_PanelUnpinnedTabAreaRight.Owner = Me.UltraDockManager1
+ Me._MDIENT_PanelUnpinnedTabAreaRight.Size = New System.Drawing.Size(0, 442)
+ Me._MDIENT_PanelUnpinnedTabAreaRight.TabIndex = 6
+ '
+ '_MDIENT_PanelUnpinnedTabAreaTop
+ '
+ Me._MDIENT_PanelUnpinnedTabAreaTop.Dock = System.Windows.Forms.DockStyle.Top
+ Me._MDIENT_PanelUnpinnedTabAreaTop.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte))
+ Me._MDIENT_PanelUnpinnedTabAreaTop.Location = New System.Drawing.Point(21, 0)
+ Me._MDIENT_PanelUnpinnedTabAreaTop.Name = "_MDIENT_PanelUnpinnedTabAreaTop"
+ Me._MDIENT_PanelUnpinnedTabAreaTop.Owner = Me.UltraDockManager1
+ Me._MDIENT_PanelUnpinnedTabAreaTop.Size = New System.Drawing.Size(603, 0)
+ Me._MDIENT_PanelUnpinnedTabAreaTop.TabIndex = 7
+ '
+ '_MDIENT_PanelUnpinnedTabAreaBottom
+ '
+ Me._MDIENT_PanelUnpinnedTabAreaBottom.Dock = System.Windows.Forms.DockStyle.Bottom
+ Me._MDIENT_PanelUnpinnedTabAreaBottom.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte))
+ Me._MDIENT_PanelUnpinnedTabAreaBottom.Location = New System.Drawing.Point(21, 442)
+ Me._MDIENT_PanelUnpinnedTabAreaBottom.Name = "_MDIENT_PanelUnpinnedTabAreaBottom"
+ Me._MDIENT_PanelUnpinnedTabAreaBottom.Owner = Me.UltraDockManager1
+ Me._MDIENT_PanelUnpinnedTabAreaBottom.Size = New System.Drawing.Size(603, 0)
+ Me._MDIENT_PanelUnpinnedTabAreaBottom.TabIndex = 8
+ '
+ '_MDIENT_PanelAutoHideControl
+ '
+ Me._MDIENT_PanelAutoHideControl.Controls.Add(Me.DockableWindow1)
+ Me._MDIENT_PanelAutoHideControl.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte))
+ Me._MDIENT_PanelAutoHideControl.Location = New System.Drawing.Point(21, 0)
+ Me._MDIENT_PanelAutoHideControl.Name = "_MDIENT_PanelAutoHideControl"
+ Me._MDIENT_PanelAutoHideControl.Owner = Me.UltraDockManager1
+ Me._MDIENT_PanelAutoHideControl.Size = New System.Drawing.Size(14, 442)
+ Me._MDIENT_PanelAutoHideControl.TabIndex = 9
+ '
+ 'DockableWindow1
+ '
+ Me.DockableWindow1.Controls.Add(Me.uebMenu)
+ Me.DockableWindow1.Location = New System.Drawing.Point(0, 0)
+ Me.DockableWindow1.Name = "DockableWindow1"
+ Me.DockableWindow1.Owner = Me.UltraDockManager1
+ Me.DockableWindow1.Size = New System.Drawing.Size(239, 442)
+ Me.DockableWindow1.TabIndex = 17
+ '
+ 'WindowDockingArea1
+ '
+ Me.WindowDockingArea1.Dock = System.Windows.Forms.DockStyle.Left
+ Me.WindowDockingArea1.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte))
+ Me.WindowDockingArea1.Location = New System.Drawing.Point(21, 0)
+ Me.WindowDockingArea1.Name = "WindowDockingArea1"
+ Me.WindowDockingArea1.Owner = Me.UltraDockManager1
+ Me.WindowDockingArea1.Size = New System.Drawing.Size(244, 294)
+ Me.WindowDockingArea1.TabIndex = 11
+ '
+ 'MDI_Panel
+ '
+ Me.AutoScaleBaseSize = New System.Drawing.Size(5, 14)
+ Me.ClientSize = New System.Drawing.Size(624, 442)
+ Me.Controls.Add(Me._MDIENT_PanelAutoHideControl)
+ Me.Controls.Add(Me.WindowDockingArea1)
+ Me.Controls.Add(Me._MDIENT_PanelUnpinnedTabAreaTop)
+ Me.Controls.Add(Me._MDIENT_PanelUnpinnedTabAreaBottom)
+ Me.Controls.Add(Me._MDIENT_PanelUnpinnedTabAreaLeft)
+ Me.Controls.Add(Me._MDIENT_PanelUnpinnedTabAreaRight)
+ Me.Controls.Add(Me._MDIENT_Panel_Toolbars_Dock_Area_Left)
+ Me.Controls.Add(Me._MDIENT_Panel_Toolbars_Dock_Area_Right)
+ Me.Controls.Add(Me._MDIENT_Panel_Toolbars_Dock_Area_Bottom)
+ Me.Controls.Add(Me._MDIENT_Panel_Toolbars_Dock_Area_Top)
+ Me.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte))
+ Me.IsMdiContainer = True
+ Me.Name = "MDI_Panel"
+ Me.Text = "Test"
+ Me.WindowState = System.Windows.Forms.FormWindowState.Maximized
+ CType(Me.uebMenu, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.UltraToolbarsManager1, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.UltraDockManager1, System.ComponentModel.ISupportInitialize).EndInit()
+ Me._MDIENT_PanelAutoHideControl.ResumeLayout(False)
+ Me.DockableWindow1.ResumeLayout(False)
+ Me.ResumeLayout(False)
+
+ End Sub
+
+#End Region
+
+ Private Sub MDIENT_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
+
+ Cursor.Current = Cursors.WaitCursor
+
+ ''---掛載Online Help----
+ Dim clsHelp As New clsOnlineHelp
+ clsHelp.AddEventToForm(Me)
+
+ 'set BackColor
+ Call setMDIBackColor(Me)
+
+ ModuleNo = "SYS"
+
+ ' 2016/05/09 YF, 產生選單
+ GenerateMenu()
+
+ '3.Get EnterpriseNo-----------------------------------------------------------------------------------------------------------
+ Call funGetEnterpriseNo()
+
+ '4.版本檢查
+ Call ChkVersion()
+
+ 'Me.Text = Me.Text & " - " & GetClientVersion() 'Gary Lu 20120718:標題加上版本編號
+
+ '5.Execute Change Resource-----------------------------------------------------------------------------------------------------
+ 'Call ExeChangeResource(Me, gLanguageMode)
+
+ '6.Set iMESExceptionManager LanguageMode---------------------------------------------------------------------------------------
+ iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode
+
+ Cursor.Current = Cursors.Default
+
+ End Sub
+
+#Region " UltraWinToolbars Menu & ToolBar Function "
+
+ Private Function funCreateUltraPopupMenuToolbar(ByRef ParentMenuItem As iMESMenuItem) As PopupMenuTool
+
+
+ 'PopupMenuTool
+ popMDI = New PopupMenuTool(ParentMenuItem.Name)
+ popMDI.SharedProps.Tag = ParentMenuItem.Name
+ popMDI.SharedProps.ToolTipText = ParentMenuItem.Name
+ UltraToolbarsManager1.Tools.Add(popMDI)
+
+ Return popMDI
+
+ End Function
+
+ Private Function funCreateUltraButtonMenuToolbar(ByRef ParentMenuItem As iMESMenuItem)
+
+ 'Button Tool
+ btlMDI = New ButtonTool(ParentMenuItem.Name)
+ btlMDI.SharedProps.Tag = ParentMenuItem.Name
+ btlMDI.SharedProps.ToolTipText = ParentMenuItem.Name
+ UltraToolbarsManager1.Tools.Add(btlMDI)
+
+ utbMDIMenu.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {btlMDI})
+
+ End Function
+
+ Private Sub funCreateUltraMenuItemToolbar(ByRef tmppopMDI As PopupMenuTool, ByRef ParentMenuItem As iMESMenuItem, Optional ByVal btlEnabled As Boolean = True)
+
+ If ParentMenuItem.Name.ToUpper = "EN" Or ParentMenuItem.Name.ToUpper = "ZH-CHT" Or
+ ParentMenuItem.Name.ToUpper = "ZH-CHS" Or ParentMenuItem.Name.ToUpper = "JP" Or
+ ParentMenuItem.Name.ToUpper = "KOR" Or ParentMenuItem.Name.ToUpper = "THAI" Or
+ ParentMenuItem.Name.ToUpper = "VIET" Then
+
+ funCreateUltraStatButtonToolbar(tmppopMDI, ParentMenuItem, , "LanguageMode")
+
+ ElseIf ParentMenuItem.Checkable = True Then
+
+ funCreateUltraStatButtonToolbar(tmppopMDI, ParentMenuItem, btlEnabled)
+
+ Else
+
+ '產生UltraToolBar Button
+ btlMDI = New ButtonTool(ParentMenuItem.Name)
+ btlMDI.SharedProps.Tag = ParentMenuItem.Name
+ btlMDI.SharedProps.ToolTipText = ParentMenuItem.Name
+ btlMDI.SharedProps.Enabled = btlEnabled
+
+ If Not ParentMenuItem.Icon Is Nothing Then
+ 'Image
+ imlMDI.Images.Add(ParentMenuItem.Icon)
+
+ btlMDI.SharedProps.AppearancesSmall.Appearance.Image = imlMDI.Images.Count - 1
+
+ End If
+
+
+ btlMDI.SharedProps.Shortcut = ParentMenuItem.Shortcut
+
+ UltraToolbarsManager1.Tools.Add(btlMDI)
+ tmppopMDI.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {btlMDI})
+
+ End If
+
+
+ End Sub
+
+ Private Sub funCreateUltraStatButtonToolbar(ByRef tmppopMDI As PopupMenuTool, ByRef ParentMenuItem As iMESMenuItem, Optional ByVal btlEnabled As Boolean = True, Optional ByVal tmpOptionSetKey As String = "")
+
+ '產生UltraToolBar Button
+ sbtMDI = New StateButtonTool(ParentMenuItem.Name)
+ sbtMDI.MenuDisplayStyle = Infragistics.Win.UltraWinToolbars.StateButtonMenuDisplayStyle.DisplayCheckmark
+ sbtMDI.SharedProps.Tag = ParentMenuItem.Name
+ sbtMDI.SharedProps.ToolTipText = ParentMenuItem.Name
+ sbtMDI.SharedProps.Enabled = btlEnabled
+ sbtMDI.OptionSetKey = tmpOptionSetKey
+
+ If gLanguageMode.ToUpper = ParentMenuItem.Name.ToUpper Or ParentMenuItem.Checked = True Then
+ sbtMDI.Checked = True
+ End If
+
+
+ If Not ParentMenuItem.Icon Is Nothing Then
+ 'Image
+ imlMDI.Images.Add(ParentMenuItem.Icon)
+
+ sbtMDI.SharedProps.AppearancesSmall.Appearance.Image = imlMDI.Images.Count - 1
+
+ End If
+
+ sbtMDI.SharedProps.Shortcut = ParentMenuItem.Shortcut
+
+ UltraToolbarsManager1.Tools.Add(sbtMDI)
+ tmppopMDI.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {sbtMDI})
+
+ End Sub
+
+ Private Sub funCreateUltraToolbar(ByRef ParentMenuItem As iMESMenuItem)
+
+ '產生UltraToolBar Button
+ If Not ParentMenuItem.Icon Is Nothing Then
+ 'Image
+ imlMDI.Images.Add(ParentMenuItem.Icon)
+ 'Button
+ btlMDI = New ButtonTool(ParentMenuItem.Name)
+ btlMDI.SharedProps.Tag = ParentMenuItem.Name
+ btlMDI.SharedProps.ToolTipText = ParentMenuItem.Name
+ btlMDI.SharedProps.AppearancesSmall.Appearance.Image = imlMDI.Images.Count - 1
+ utbMDI.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {btlMDI})
+ End If
+
+ End Sub
+
+#End Region
+
+
+#Region " UltraWinExplorerBar & UltraWinToolbars Events "
+
+
+ Private Sub uebRPTMenu_ItemClick(ByVal sender As System.Object, ByVal e As Infragistics.Win.UltraWinExplorerBar.ItemEventArgs) Handles uebMenu.ItemClick
+ ExecutingFunction(e.Item.Key)
+ End Sub
+
+ Private Sub uebRPTMenu_ItemDoubleClick(ByVal sender As System.Object, ByVal e As Infragistics.Win.UltraWinExplorerBar.ItemEventArgs) Handles uebMenu.ItemDoubleClick
+ ExecutingFunction(e.Item.Key)
+ End Sub
+
+ Private Sub UltraToolbarsManager1_ToolClick(ByVal sender As System.Object, ByVal e As Infragistics.Win.UltraWinToolbars.ToolClickEventArgs) Handles UltraToolbarsManager1.ToolClick
+
+ Dim strOptionSetKey As String = ""
+
+ If (e.Tool.GetType Is GetType(StateButtonTool)) Then
+ strOptionSetKey = CType(e.Tool, StateButtonTool).OptionSetKey
+ End If
+
+ ExecutingFunction(e.Tool.Key, strOptionSetKey)
+
+ End Sub
+
+ Protected Sub ExecutingFunction(ByVal FunctionKey As String, Optional OptionSetKey As String = "")
+ Dim strFormName As String
+ Dim TempChild As Form
+ Dim CurrentForm As Form
+ Cursor.Current = Cursors.WaitCursor
+ Try
+
+ ' 2016/05/09 YF, 重新產生選單
+ If OptionSetKey = "MODULE" Then
+ ModuleNo = FunctionKey.Replace("Module", "")
+ GenerateMenu()
+ Exit Sub
+ End If
+
+ Select Case FunctionKey.ToUpper
+ Case "EXIT"
+ 'End
+ Me.Close()
+ Case "CASCADE"
+ Me.LayoutMdi(MdiLayout.Cascade)
+ Case "VERTICAL"
+ Me.LayoutMdi(MdiLayout.TileVertical)
+ Case "HORIZONTAL"
+ Me.LayoutMdi(MdiLayout.TileHorizontal)
+
+ 'Change Language Mode
+ Case "zh-CHT".ToUpper
+ gLanguageMode = "zh-CHT"
+
+ iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode
+
+ CurrentForm = Form.ActiveForm
+
+ If Not CurrentForm Is Nothing Then
+ Call ExeChangeResource(CurrentForm, gLanguageMode)
+ End If
+
+ '變更畫面上的表單(僅限MDI Child Form)
+
+ For Each TempChild In Me.MdiChildren
+ If Not (TempChild Is CurrentForm) Then
+ Call ExeChangeResource(TempChild, gLanguageMode)
+ End If
+ Next
+
+ '變更其他語系的Checked為False
+ 'Call funChangeChecked(mnuMenuItem)
+
+ Case "zh-CHS".ToUpper
+ gLanguageMode = "zh-CHS"
+
+ iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode
+
+ CurrentForm = Form.ActiveForm
+
+ If Not CurrentForm Is Nothing Then
+ Call ExeChangeResource(CurrentForm, gLanguageMode)
+ End If
+
+ '變更畫面上的表單(僅限MDI Child Form)
+
+ For Each TempChild In Me.MdiChildren
+ If Not (TempChild Is CurrentForm) Then
+ Call ExeChangeResource(TempChild, gLanguageMode)
+ End If
+ Next
+
+ '變更其他語系的Checked為False
+ 'Call funChangeChecked(mnuMenuItem)
+
+ Case "en".ToUpper
+ gLanguageMode = "en"
+
+ iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode
+
+ CurrentForm = Form.ActiveForm
+
+ If Not CurrentForm Is Nothing Then
+ Call ExeChangeResource(CurrentForm, gLanguageMode)
+ End If
+
+ '變更畫面上的表單(僅限MDI Child Form)
+ For Each TempChild In Me.MdiChildren
+ If Not (TempChild Is CurrentForm) Then
+ Call ExeChangeResource(TempChild, gLanguageMode)
+ End If
+ Next
+
+ '變更其他語系的Checked為False
+ 'Call funChangeChecked(mnuMenuItem)
+
+ Case "jp".ToUpper
+ gLanguageMode = "jp"
+
+ iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode
+
+ CurrentForm = Form.ActiveForm
+
+ If Not CurrentForm Is Nothing Then
+ Call ExeChangeResource(CurrentForm, gLanguageMode)
+ End If
+
+ '變更畫面上的表單(僅限MDI Child Form)
+ For Each TempChild In Me.MdiChildren
+ If Not (TempChild Is CurrentForm) Then
+ Call ExeChangeResource(TempChild, gLanguageMode)
+ End If
+ Next
+
+ '變更其他語系的Checked為False
+ 'Call funChangeChecked(mnuMenuItem)
+
+ Case "kor".ToUpper 'Korea(韓國語系)
+ gLanguageMode = "kor"
+
+ iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode
+
+ CurrentForm = Form.ActiveForm
+
+ If Not CurrentForm Is Nothing Then
+ Call ExeChangeResource(CurrentForm, gLanguageMode)
+ End If
+
+ '變更畫面上的表單(僅限MDI Child Form)
+ For Each TempChild In Me.MdiChildren
+ If Not (TempChild Is CurrentForm) Then
+ Call ExeChangeResource(TempChild, gLanguageMode)
+ End If
+ Next
+
+ '變更其他語系的Checked為False
+ 'Call funChangeChecked(mnuMenuItem)
+
+ Case "thai".ToUpper 'Thailand(泰國語系)
+ gLanguageMode = "thai"
+
+ iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode
+
+ CurrentForm = Form.ActiveForm
+
+ If Not CurrentForm Is Nothing Then
+ Call ExeChangeResource(CurrentForm, gLanguageMode)
+ End If
+
+ '變更畫面上的表單(僅限MDI Child Form)
+ For Each TempChild In Me.MdiChildren
+ If Not (TempChild Is CurrentForm) Then
+ Call ExeChangeResource(TempChild, gLanguageMode)
+ End If
+ Next
+
+ '變更其他語系的Checked為False
+ 'Call funChangeChecked(mnuMenuItem)
+
+ Case "viet".ToUpper 'VietNam(越南語系)
+ gLanguageMode = "viet"
+
+ iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode
+
+ CurrentForm = Form.ActiveForm
+
+ If Not CurrentForm Is Nothing Then
+ Call ExeChangeResource(CurrentForm, gLanguageMode)
+ End If
+
+ '變更畫面上的表單(僅限MDI Child Form)
+ For Each TempChild In Me.MdiChildren
+ If Not (TempChild Is CurrentForm) Then
+ Call ExeChangeResource(TempChild, gLanguageMode)
+ End If
+ Next
+
+ '變更其他語系的Checked為False
+ 'Call funChangeChecked(mnuMenuItem)
+
+ Case "ABOUTME"
+ strFormName = "frmAboutMe"
+ blnShow = False
+ For i = 0 To Me.MdiChildren.Length - 1
+ If Me.MdiChildren(i).Name = strFormName Then
+ Me.MdiChildren(i).Focus()
+ blnShow = True
+ Exit For
+ End If
+ Next
+
+ If blnShow = False Then '目前沒有顯示
+
+ Dim mainAssembly As System.Reflection.Assembly = LoadAssembly("COM_AboutMe.dll")
+
+ If (mainAssembly Is Nothing) Then
+ Exit Sub
+ End If
+
+ Dim objForm As Form = mainAssembly.CreateInstance(mainAssembly.GetName.Name & "." & strFormName)
+
+ If objForm Is Nothing Then 'Form不存在
+ MsgBox("Form : " & strFormName & " is not exist!!", MsgBoxStyle.Exclamation)
+ Exit Sub
+ End If
+
+ objForm.MdiParent = MDI_Panel.ActiveForm
+ objForm.AutoScaleMode = Windows.Forms.AutoScaleMode.None
+ objForm.Show()
+
+ End If
+
+ Case Else
+
+ Dim strExecutionFile As String = dsData.Tables(strUserPriv).Select("FunctionNo='" & FunctionKey & "'")(0)("ExecutionFile")
+ strFormName = dsData.Tables(strUserPriv).Select("FunctionNo='" & FunctionKey & "'")(0)("FormName")
+
+ If (Not Application.OpenForms.Item(strFormName) Is Nothing) AndAlso (strFormName <> "frmRPT_Script") Then
+ If Application.OpenForms.Item(strFormName).WindowState <> FormWindowState.Normal Then Application.OpenForms.Item(strFormName).WindowState = FormWindowState.Normal
+ Application.OpenForms.Item(strFormName).Focus()
+ Exit Sub
+ End If
+
+ Dim mainAssembly As System.Reflection.Assembly = LoadAssembly(strExecutionFile)
+
+ If (mainAssembly Is Nothing) Then
+ Exit Sub
+ End If
+
+ 'Show Form
+ 'Dim mainAssembly As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly
+ 'Dim objForm As Form = mainAssembly.CreateInstance(mainAssembly.EntryPoint.ReflectedType.Namespace & "." & strFormName)
+ Dim objForm As Form = mainAssembly.CreateInstance(mainAssembly.GetName.Name & "." & strFormName)
+
+ If objForm Is Nothing Then 'Form不存在
+ MsgBox("Form : " & strFormName & " is not exist!!", MsgBoxStyle.Exclamation)
+ Exit Sub
+ End If
+
+ objForm.MdiParent = MDI_Panel.ActiveForm
+
+ '設定值予公用變數
+ Dim myfieldinfo() As System.Reflection.FieldInfo
+ Dim myType As Type = objForm.GetType
+ Dim i As Integer
+ myfieldinfo = myType.GetFields()
+ For i = 0 To myfieldinfo.Length - 1
+ If myfieldinfo(i).Name.ToUpper = "PrivFunNo".ToUpper Then
+ myfieldinfo(i).SetValue(objForm, FunctionKey)
+ End If
+ Next i
+ objForm.AutoScaleMode = Windows.Forms.AutoScaleMode.None
+ objForm.Show()
+
+ End Select
+
+ Catch ex As Exception
+ MsgBox("This Function can not be executed. " & ex.Message, MsgBoxStyle.Exclamation, "Warning")
+ 'ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
+ End Try
+ Cursor.Current = Cursors.Default
+ End Sub
+
+#End Region
+
+ Private Sub funLoadUserPriv()
+
+ If (Not dsData.Tables(strUserPriv) Is Nothing) Then
+ dsData.Tables.Remove(strUserPriv)
+ End If
+
+ Dim XmlDoc As New XmlDocument '處理Xml字串之物件?
+ Dim tmpStringReader As System.IO.StringReader '將字串轉換成可讀入DataSet的物件
+ Dim InXml, OutXml, strIdentity, strParameter As String '呼叫WS的字串參數
+ Dim XmlData, XmlSchema As String '儲存取回之資料及資料結構
+
+ '組InXml的字串
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ strParameter = CombineXMLParameter("userno", "UserNo", "String", gUserNo, "")
+ strParameter = strParameter & CombineXMLParameter("moduleno", "ModuleNo", "String", ModuleNo, "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ Try
+ OutXml = InvokeSrv("wsUSR.LoadUserPriv", InXml)
+ XmlDoc.LoadXml(OutXml)
+
+ If ChkExecutionSuccess(XmlDoc) Then
+ strUserPriv = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loaduserpriv").Item(0).SelectNodes("name").Item(0).InnerXml
+ '取出Data
+ XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loaduserpriv").Item(0).SelectNodes("value").Item(0).InnerXml
+ If XmlData <> "" Then
+ tmpStringReader = New System.IO.StringReader(XmlData)
+ dsData.ReadXml(tmpStringReader, XmlReadMode.InferSchema)
+ tmpStringReader.Close()
+ End If
+ Else
+ MsgBox(GetExceptionSysMsg(XmlDoc) & Chr(13) & GetExceptionMesMsg(XmlDoc), MsgBoxStyle.Exclamation)
+ Exit Sub
+ End If
+
+ Catch e1 As Exception
+ MsgBox("Unexpected Error. Load User's Priv Failed," & e1.Message, MsgBoxStyle.Exclamation)
+ Finally
+ XmlDoc = Nothing
+ tmpStringReader = Nothing
+
+ End Try
+
+ End Sub
+
+ Protected Overrides Sub Finalize()
+ MyBase.Finalize()
+ End Sub
+
+ Public Sub funGetEnterpriseNo()
+
+ Dim XmlDoc As New XmlDocument
+ Dim tmpStringReader As System.IO.StringReader
+ Dim InXml, OutXml, strIdentity, strParameter, XmlData, XmlSchema, strPara As String
+ Dim dsTemp As New DataSet
+
+ strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
+ strParameter = CombineXMLParameter("parameterno", "ParameterNo", "String", "EnterpriseNo", "")
+ InXml = CombineXMLRequest(strIdentity, strParameter)
+
+ Try
+
+ OutXml = InvokeSrv("wsSYS.LoadParameter", InXml)
+
+ XmlDoc.LoadXml(OutXml)
+
+ If ChkExecutionSuccess(XmlDoc) Then
+
+ strPara = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("loadparameter").Item(0).SelectNodes("name").Item(0).InnerXml
+
+ XmlSchema = XmlDoc.DocumentElement.GetElementsByTagName("loadparameter").Item(0).SelectNodes("schema").Item(0).InnerXml
+
+ If XmlSchema <> "" Then
+ '將XML讀入String Reader object中,因為Dataset讀入XML時必須透過String Reader物件
+ tmpStringReader = New System.IO.StringReader(XmlSchema)
+ dsTemp.ReadXmlSchema(tmpStringReader)
+ tmpStringReader.Close()
+ End If
+
+ XmlData = XmlDoc.DocumentElement.GetElementsByTagName("loadparameter").Item(0).SelectNodes("value").Item(0).InnerXml
+
+ If XmlData <> "" Then
+ tmpStringReader = New System.IO.StringReader(XmlData)
+ dsTemp.ReadXml(tmpStringReader, XmlReadMode.InferSchema)
+ tmpStringReader.Close()
+ End If
+
+ If dsTemp.Tables(strPara).Rows.Count > 0 Then
+ gEnterpriseNo = dsTemp.Tables(strPara).Rows(0)("ParameterValue").ToString.ToUpper
+ End If
+
+ Else
+ MsgBox(GetExceptionSysMsg(XmlDoc) & Chr(13) & GetExceptionMesMsg(XmlDoc), MsgBoxStyle.Exclamation)
+ End If
+
+ Catch ex As Exception
+ MsgBox("Unexpected Error. GetEnterpriseNo failed, " & ex.Message, MsgBoxStyle.Exclamation)
+ Finally
+ XmlDoc = Nothing
+ tmpStringReader = Nothing
+ dsTemp = Nothing
+ End Try
+
+ End Sub
+
+ ' 2016/05/09 YF, 產生模組選單
+ Private Sub GenerateModuleItems()
+
+ Dim aryModule() As String = {"AUT", "DT", "EMS", "ENT", "EQP", "IEW", "INV", "ISU", "MSA", "MTL", "OE", "OP", "PM", "PRD", "PRS", "QC", "RPT", "SMD", "SPC", "SYS", "USR", "WIP"}
+ Dim popModule As PopupMenuTool
+ Dim sbt As StateButtonTool
+
+ Try
+
+ popModule = New PopupMenuTool("MODULE")
+ popModule.SharedProps.Tag = "MODULE"
+ popModule.SharedProps.ToolTipText = "MODULE"
+ UltraToolbarsManager1.Tools.Add(popModule)
+
+ '產生UltraToolBar Button
+ For Each m As String In aryModule
+
+ sbt = New StateButtonTool(m & "Module")
+ sbt.MenuDisplayStyle = Infragistics.Win.UltraWinToolbars.StateButtonMenuDisplayStyle.DisplayCheckmark
+ sbt.CustomizedCaption = m
+ sbt.SharedProps.Tag = m
+ sbt.SharedProps.ToolTipText = m
+ sbt.SharedProps.Enabled = True
+ sbt.OptionSetKey = "MODULE"
+
+ If ModuleNo = m Then
+ sbt.Checked = True
+ End If
+
+ UltraToolbarsManager1.Tools.Add(sbt)
+ popModule.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {sbt})
+
+ Next
+
+ Me.utbMDIMenu.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {popModule})
+
+ Me.utbMDIMenu.Tools.Item("MODULE").CustomizedIsFirstInGroup = DefaultableBoolean.True
+
+ Catch ex As Exception
+ MsgBox("GenerateModuleMenu failed, " & ex.Message, MsgBoxStyle.Exclamation)
+ End Try
+
+ End Sub
+
+ Private Sub GenerateMenu()
+
+ Try
+
+ ' 2016/05/09 YF, 清空選單
+ RemoveObject()
+
+ '取出User Privileges
+ Call funLoadUserPriv()
+
+ '1.Create MainMenu-------------------------------------------------------------------------------------------------------------
+ Dim strFileName As String
+ strFileName = GetMainMenuFileName()
+
+ '檢查檔案是否存在
+ If Dir(strFileName) = "" Then 'File not exist
+ MsgBox(strFileName & vbCrLf & "is not exist,Load MDI Form failed!!", MsgBoxStyle.Exclamation)
+ Exit Sub
+ End If
+
+ '將處理 MenuItem 被點選的函數以 EventHandler Delegation 傳給 mnuMainMenu
+ Dim mnuMainMenu As New iMESMainMenu.iMESMainMenuControl(strFileName, Nothing)
+
+ 'Add ExplorerBar MainMenu By carl 2007.08.14
+ Dim j As Integer
+ Dim tempMenuSplit As Integer = defInteger
+ Dim panelmenu As MainMenu = New MainMenu(mnuMainMenu.CreateMainMenu(ModuleNo))
+ Dim tmpMenuItem1 As iMESMenuItem
+ Dim tmpPopMenu As PopupMenuTool
+ UltraDockManager1.ControlPanes(0).Pinned = False
+ UltraDockManager1.ShowCloseButton = False
+
+ uebMenu.GroupSettings.AllowDrag = DefaultableBoolean.False
+ uebMenu.GroupSettings.AllowEdit = DefaultableBoolean.False
+ uebMenu.GroupSettings.AllowItemDrop = DefaultableBoolean.False
+ uebMenu.ItemSettings.AllowDragCopy = UltraWinExplorerBar.ItemDragStyle.None
+ uebMenu.ItemSettings.AllowDragMove = UltraWinExplorerBar.ItemDragStyle.None
+ uebMenu.ItemSettings.AllowEdit = DefaultableBoolean.False
+ uebMenu.ShowDefaultContextMenu = False
+
+ uebMenu.ItemSettings.UseDefaultImage = Infragistics.Win.DefaultableBoolean.False
+ uebMenu.ItemSettings.MaxLines = 2
+
+ If Not dsData.Tables(strUserPriv) Is Nothing Then '沒有任何權限,所有Privilege MenuItem都不可使用
+
+ For i = 0 To panelmenu.MenuItems.Count - 1
+ tmpMenuItem1 = CType(panelmenu.MenuItems(i), iMESMenuItem)
+
+ If i <= panelmenu.MenuItems.Count - 4 Then
+ uebMenu.Groups.Add(tmpMenuItem1.Text.ToUpper)
+ uebMenu.Groups(i).Expanded = True
+ End If
+
+ If tmpMenuItem1.Name.ToUpper = "EXIT" Then
+
+ funCreateUltraButtonMenuToolbar(tmpMenuItem1)
+
+ Else
+
+ tmpPopMenu = funCreateUltraPopupMenuToolbar(tmpMenuItem1)
+
+ For j = 0 To tmpMenuItem1.MenuItems.Count - 1
+ If CType(tmpMenuItem1.MenuItems(j), iMESMenuItem).MenuType = iMESMenuItem.mesMenuType.MenuPrivilege Then
+ If dsData.Tables(strUserPriv).Select("FunctionNo='" & tmpMenuItem1.MenuItems(j).Text.ToUpper & "'").Length > 0 Then
+ funCreateUltraMenuItemToolbar(tmpPopMenu, CType(tmpMenuItem1.MenuItems(j), iMESMenuItem))
+
+ uebMenu.Groups(i).Items.Add(tmpMenuItem1.MenuItems(j).Text)
+
+ funCreateUltraToolbar(CType(tmpMenuItem1.MenuItems(j), iMESMenuItem))
+
+ If tempMenuSplit = j Then
+ tmpPopMenu.Tools(tmpMenuItem1.MenuItems(j).Text).InstanceProps.IsFirstInGroup = True
+ End If
+
+ Else
+ funCreateUltraMenuItemToolbar(tmpPopMenu, CType(tmpMenuItem1.MenuItems(j), iMESMenuItem), False)
+
+ If tempMenuSplit = j Then
+ tmpPopMenu.Tools(tmpMenuItem1.MenuItems(j).Text).InstanceProps.IsFirstInGroup = True
+ End If
+
+ End If
+
+ ElseIf CType(tmpMenuItem1.MenuItems(j), iMESMenuItem).MenuType = iMESMenuItem.mesMenuType.MenuString Then
+
+
+ funCreateUltraMenuItemToolbar(tmpPopMenu, CType(tmpMenuItem1.MenuItems(j), iMESMenuItem))
+
+ If tempMenuSplit = j Then
+ tmpPopMenu.Tools(tmpMenuItem1.MenuItems(j).Text).InstanceProps.IsFirstInGroup = True
+ End If
+
+ ElseIf CType(tmpMenuItem1.MenuItems(j), iMESMenuItem).MenuType = iMESMenuItem.mesMenuType.MenuSplit Then
+
+ tempMenuSplit = j + 1
+
+ End If
+
+ Next
+
+ utbMDIMenu.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {tmpPopMenu})
+
+ End If
+
+ Next
+
+ End If
+
+ 'Add UltraToolBar-----------------------------------------------------------------------------------------------------------------
+ If utbMDI.Tools.Count > 0 Then
+ imlMDI.ImageSize = New Size(24, 24)
+ utbMDI.Text = "Toolbar"
+ utbMDI.Settings.ToolDisplayStyle = ToolDisplayStyle.ImageAndText
+ utbMDI.Settings.CaptionPlacement = TextPlacement.Default
+ utbMDI.IsMainMenuBar = False
+ utbMDI.DockedPosition = DockedPosition.Top
+ UltraToolbarsManager1.Style = ToolbarStyle.Office2003
+ UltraToolbarsManager1.ImageListSmall = imlMDI
+ UltraToolbarsManager1.Toolbars.Add(utbMDI)
+ End If
+
+ 'Add Menu UltraToolBar-----------------------------------------------------------------------------------------------------------------
+ If utbMDIMenu.Tools.Count > 0 Then
+ imlMDI.ImageSize = New Size(24, 24)
+ utbMDIMenu.Text = "MainMenu"
+ utbMDIMenu.Settings.ToolDisplayStyle = ToolDisplayStyle.ImageAndText
+ utbMDIMenu.Settings.CaptionPlacement = TextPlacement.Default
+ utbMDIMenu.IsMainMenuBar = True
+ utbMDIMenu.DockedPosition = DockedPosition.Top
+ UltraToolbarsManager1.OptionSets.Add(OptionSet1)
+ UltraToolbarsManager1.Style = ToolbarStyle.Office2003
+ UltraToolbarsManager1.ImageListSmall = imlMDI
+ UltraToolbarsManager1.Toolbars.Add(utbMDIMenu)
+ UltraToolbarsManager1.Toolbars("MainMenu").ToolbarsManager.ToolbarSettings.ToolSpacing = 5
+ End If
+
+ ' 2016/05/09 YF, 產生模組選單
+ GenerateModuleItems()
+
+ Catch ex As Exception
+ MsgBox("GenerateMenuItem failed, " & ex.Message, MsgBoxStyle.Exclamation)
+ Finally
+ Me.Text = "Test"
+ ExeChangeResource(Me, gLanguageMode)
+ End Try
+
+ End Sub
+
+ Private Sub RemoveObject()
+
+ uebMenu.Groups.Clear()
+ utbMDIMenu.Tools.Clear()
+ utbMDI.Tools.Clear()
+ UltraToolbarsManager1.Toolbars.Clear()
+ UltraToolbarsManager1.Tools.Clear()
+ UltraToolbarsManager1.OptionSets.Clear()
+ Me.UltraDockManager1.DockAreas(0).Panes.Item(0).Text = ModuleNo
+ Me.UltraDockManager1.DockAreas(0).Panes.Item(0).Key = ModuleNo & "Module"
+
+ For i As Integer = Application.OpenForms.Count - 1 To 0 Step -1
+
+ If (Application.OpenForms.Item(i).Name <> "MDI_Panel") Then
+ Application.OpenForms.Item(i).Close()
+ End If
+
+ Next
+
+ End Sub
+
+End Class
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/Application.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/Application.Designer.vb
new file mode 100644
index 0000000..4f9342a
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/Application.Designer.vb
@@ -0,0 +1,13 @@
+'------------------------------------------------------------------------------
+'
+' 這段程式碼是由工具產生的。
+' 執行階段版本:4.0.30319.42000
+'
+' 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
+' 變更將會遺失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/Application.myapp b/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/Application.myapp
new file mode 100644
index 0000000..758895d
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/Application.myapp
@@ -0,0 +1,10 @@
+
+
+ false
+ false
+ 0
+ true
+ 0
+ 1
+ true
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/AssemblyInfo.vb b/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/AssemblyInfo.vb
new file mode 100644
index 0000000..d43ca3b
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/AssemblyInfo.vb
@@ -0,0 +1,35 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' 組件的一般資訊是由下列的屬性集控制。
+' 變更這些屬性的值即可修改組件的相關
+' 資訊。
+
+' 檢閱組件屬性的值
+
+
+
+
+
+
+
+
+
+
+'下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID
+
+
+' 組件的版本資訊由下列四個值所組成:
+'
+' 主要版本
+' 次要版本
+' 組建編號
+' 修訂編號
+'
+' 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號
+' 指定為預設值:
+'
+
+
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/Resources.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/Resources.Designer.vb
new file mode 100644
index 0000000..3995654
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/Resources.Designer.vb
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+'
+' 這段程式碼是由工具產生的。
+' 執行階段版本:4.0.30319.42000
+'
+' 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
+' 變更將會遺失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+Imports System
+
+Namespace My.Resources
+
+ '這個類別是自動產生的,是利用 StronglyTypedResourceBuilder
+ '類別透過 ResGen 或 Visual Studio 這類工具。
+ '若要加入或移除成員,請編輯您的 .ResX 檔,然後重新執行 ResGen
+ '(利用 /str 選項),或重建您的 VS 專案。
+ '''
+ ''' 用於查詢當地語系化字串等的強類型資源類別。
+ '''
+ _
+ Friend Module Resources
+
+ Private resourceMan As Global.System.Resources.ResourceManager
+
+ Private resourceCulture As Global.System.Globalization.CultureInfo
+
+ '''
+ ''' 傳回這個類別使用的快取的 ResourceManager 執行個體。
+ '''
+ _
+ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+ Get
+ If Object.ReferenceEquals(resourceMan, Nothing) Then
+ Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Test.Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' 覆寫目前執行緒的 CurrentUICulture 屬性,對象是所有
+ ''' 使用這個強類型資源類別的資源查閱。
+ '''
+ _
+ Friend Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set
+ resourceCulture = value
+ End Set
+ End Property
+
+ '''
+ ''' 查詢類型 System.Byte[] 的當地語系化資源。
+ '''
+ Friend ReadOnly Property iMES() As Byte()
+ Get
+ Dim obj As Object = ResourceManager.GetObject("iMES", resourceCulture)
+ Return CType(obj,Byte())
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/Resources.resx b/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/Resources.resx
new file mode 100644
index 0000000..c14f0b3
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/Resources.resx
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ ..\resources\imes.isl;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/Settings.Designer.vb b/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/Settings.Designer.vb
new file mode 100644
index 0000000..d0b470b
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/Settings.Designer.vb
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+'
+' 這段程式碼是由工具產生的。
+' 執行階段版本:4.0.30319.42000
+'
+' 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
+' 變更將會遺失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ _
+ Partial Friend NotInheritable Class MySettings
+ Inherits Global.System.Configuration.ApplicationSettingsBase
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
+
+#Region "My.Settings 自動儲存功能"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
+#End If
+#End Region
+
+ Public Shared ReadOnly Property [Default]() As MySettings
+ Get
+
+#If _MyType = "WindowsForms" Then
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
+#End If
+ Return defaultInstance
+ End Get
+ End Property
+ End Class
+End Namespace
+
+Namespace My
+
+ _
+ Friend Module MySettingsProperty
+
+ _
+ Friend ReadOnly Property Settings() As Global.Test.My.MySettings
+ Get
+ Return Global.Test.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/Settings.settings b/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/Settings.settings
new file mode 100644
index 0000000..f7f176a
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/Settings.settings
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/licenses.licx b/SRC/MESWin/SYS4/21670ll/MESWin/Test/My Project/licenses.licx
new file mode 100644
index 0000000..e69de29
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Test/Resources/iMES.isl b/SRC/MESWin/SYS4/21670ll/MESWin/Test/Resources/iMES.isl
new file mode 100644
index 0000000..0679a67
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/Test/Resources/iMES.isl
@@ -0,0 +1,4303 @@
+
+
+
+ 2015-02-05T03:06:30
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA3gMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADgElEQVRoQ+2XzWsTQRjGq/Qk1YOgFz3qHyLFi4LeRAri0YMHTx68eCseBMFL8W+waGPRIoixYkUrUmgVaZKaNJ/bbNpNm48mjUle531lttPpZGcm0IvMAw+Tncy7s89vZ2eTkVwuB7aOx+PWnpyctPax52k4bmEcP0wNQWi328auVCoUykYcQqPRMDaOx4u0EQ9mIxzvIDgIDgLJQWByEJgcBCYHgclBYHIQmBwEphACBjN1sVikULbGULbmoY7aI6urq2BrVUidVSF1tv0zNIzpDxSGspHneRTKRhyCatkPMo7Hi7QRD2YjHO8gmEDodrtQKBSgWq3SsQmErb0eXF/YgGe/a3RsAiFfrcHVj0V4+qtCxyYQ5HlMIKhqIiEggFKpRPsAgkDpIOAkE199GGEnv7ZQpj4dBARwY6FENVfmi9Sng6CaRwdhUM1ACP1+nwLj9/gGQSCoKAidXh9uf/Npsxmf92Cj9a8mCkK11oCJzyWqufS+AOmgRv1REAbNEwUhqiaEgL8BMGyz2aTjIAggkUhAOp2G3d1d6kOJEJa39+DyR3bst4DNAY8T23DiRQYuzuXhU6VFY1AihEVvG8bjBZjLBlCrs7ArPtVceJOFd/kghCNCMJ1HhGBTE0Iol8t019fW1sD3fUgmk5BKpaDV2i9AiRDuLm0S2fOvc3B/eQtOzazD2dksfNls0/dcIoQ7ix7VnJtdh3vfN+DkywycebUOH/LVEIAMwXQeEYJNzYHHAQPi3cc+BMBXhSj5cbi1WIbR6Qw9Z6djWXjr7a8aLhEC+iZb/qPTbHKsmclALLO/ArhFCCiTeUQIKNOaAxB6vR79KsRVgI8D7guyZAjNPz14+DOAMXZHnyR3oNU9XCND8Hfq8GCpDGNseT764cNmrX4AAFqGYDKPDMG05tDGiME7nY4SAEqGgMKTp+od2nxUkiGgMfiKv0Mbo9jPLUNA6eaRIaBMag5B0EkFQScVBJ1VEHRSQdAphIDBTI1vCwxlawxlax7qqE3/Im2tCqmzKqTOuLurLnqQcfwwNQTBRhyCjTgEG8ViMbpIG+FbYJiaEAK/y1Hm4zgEOoHGKBGCaoxslAhBNUY2HzdMjYOAn8VwOvNxDgJrHQTWOgisdRBY6yCw1kFg7X8LwVQiBFOJEEwlQjAVBhqmhiDYGkPZGiFgMFNPTU2Fd+xonYa/RnTXOFz4kRIAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
+ 249, 249, 249
+ MiddleCenter
+
+
+
+
+ White
+ Segoe UI, 9pt
+ 75, 75, 75
+ MiddleLeft
+ MiddleLeft
+
+
+
+
+ White
+ Segoe UI, 8.25pt
+ 75, 75, 75
+
+
+
+
+ White
+ Segoe UI, 9pt
+ 75, 75, 75
+
+
+
+
+ 75, 75, 75
+ White
+ 0, 170, 222
+ White
+ Silver
+ Left
+ Long
+ False
+ False
+
+
+
+
+ White
+ Segoe UI, 9pt
+ 75, 75, 75
+
+
+
+
+ White
+ Flat
+ Segoe UI, 9pt
+ 75, 75, 75
+
+
+
+
+ White
+ None
+ Microsoft Sans Serif, 12pt
+ 0, 170, 222
+ MiddleCenter
+
+
+
+
+ 0, 170, 222
+ White
+ None
+ Gainsboro
+ Flat
+ Segoe UI, 9.75pt, style=Bold
+ MiddleCenter
+ AlwaysUnderline
+ 133, 133, 133
+ MiddleCenter
+ 179, 230, 245
+
+
+
+
+ White
+ FixedSingle
+ Segoe UI, 9pt
+ 75, 75, 75
+
+
+
+
+ True
+ White
+ FixedSingle
+ Segoe UI, 9pt
+ 75, 75, 75
+ Nonclickable
+ LargeIcon
+
+
+
+
+ White
+ 75, 75, 75
+ True
+ True
+ 0, 170, 222
+ White
+ 191, 191, 191
+
+
+
+
+ White
+ None
+ Segoe UI, 8.25pt
+ 75, 75, 75
+
+
+
+
+ White
+ None
+
+
+
+
+ White
+ White
+ 75, 75, 75
+ Segoe UI, 9pt
+ White
+ White
+ True
+ White
+ True
+ White
+ 75, 75, 75
+
+
+
+
+ White
+ Segoe UI, 9pt
+ 75, 75, 75
+ MiddleCenter
+ MiddleLeft
+
+
+
+
+ White
+ None
+ 75, 75, 75
+
+
+
+
+ White
+ None
+ 75, 75, 75
+
+
+
+
+ 133, 133, 133
+ None
+
+
+
+
+ Segoe UI, 9pt
+ True
+
+
+
+
+ White
+ FixedSingle
+ Segoe UI, 9pt
+ 75, 75, 75
+ Left
+
+
+
+
+ White
+
+
+
+
+ White
+ None
+ False
+ Segoe UI, 9pt
+ 75, 75, 75
+ False
+ False
+ True
+ 25
+ False
+ True
+ True
+
+
+
+
+ White
+ Segoe UI, 8.25pt
+ 75, 75, 75
+
+
+
+
+
+ True
+
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA7QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADj0lEQVRoQ+2YzWsTQRiHq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OKteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXuf3ym4n2012JuBtHvgddjNvZt9nZycfI8lkknQTDAa1Mzk5qZ0jz2N0VCMYP0wNS2g2m8opFArclA5ra2vcVK1WU04gEOCL1OH2t8JQNUaCkWAkMEaCwEgQGAkCI0FgJAiMBIGRIHAkoDHVZDIZloDGVBMKhVgCGlPN1NQUf6/HRarmwtvUUDUj6+vrpBtI0A0k6GaYH0PD1LAEHXK5HDelgy3Ba9n3C8bjInWwG9MB440EFQntdpvS6TSVy2U+VpFQ3O/QtcUteva7wscqElLlCl1ZyNDTXwU+VpHgnkdFglfNQAkQkM1meR+ACOAnAZNMhCwaEW9+dTHP5/wkQMD1xSzXXJ7P8Dk/CV7z+EnoV9NXQrfb5YbxOj5BIAQMktDqdOnWV4s3m/H5HG01/tUMklCu1Gjic5ZrLn5IU6xU4fODJPSbZ5CEQTWOBHwHQLP1ep2PS6UShcNhisVitLe3x+eALGFlZ58uLYhjq0FiDnoc3qFjL+J0fi5FnwoNHgNkCUu5HRoPpmkuUaJKVTS7anHNuTcJep8qOXJkCarzyBJ0ahwJ+Xye7/rGxgZZlkWRSISi0Sg1GgcFQJZwd3mbzZ59naT7K0U6MbNJp2cT9GW7ya/byBLuLOW45szsJt37vkXHX8bp1KtN+pgqOwLcElTnkSXo1PQ8DmgQdx/nIMBeFTLux+HmUp5Gp+P8nJ0MJOhd7mDV2MgSkBti+Y9Oi8lRMxOnQPxgBdiRJQCVeWQJQLWmR0Kn0+FvhVgFeBywL7hxS6j/6dDDnyUaE3f0SWSXGu3DNW4J1m6VHiznaUwsz0c/LNquVHsEIG4JKvO4JajWHNoY0Xir1fIUANwSAN48Wm3x5uOFWwKCxletXd4Y5fN23BKA3zxuCUCl5pAEP7wk+OElwS9eEvzwkuCHIwGNqQafFmhKN2hKN3ZT/zv8K1I3Xk36xatJv2B397rofsH4YWpYgg7FYpGb0sGWoAPG4yJ1sBvTAeMdCfKd7hcgS8BHj1+ALMFrjDtAluA1xh0gS/Aa4w4wEgRGgsBIEBgJAiNBYCQIjASBkSDokaCKLEEVWYIqsgRVZAmqOBLQmGrwxyua0g2a0o3d1P9NjP4C33z6NGMDUeMAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAAvQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADX0lEQVRoQ+2Xz2sTQRTHq/Qk1YOgFz3qHyLFi4LeRAri0YMHTx68eCseBMGbf4NFW4sWQYwtVrRFCq0iTVKT5kezzabdtPnRpDHJc97IbCfTyc68gEVhPvA97HReZt9nZyfN0OrqKlATi8XIGR8fJ+fY8xQcJwTnD1LDJTSbTesICRSEhFqtZh2cjzdJQTRGAec7CU6Ck8BxEhhOAsNJYDgJDCeB4SQwnARGKIEabIoabIoa0dTfzj8tgfpjCDNIDZdAQUigICTotn2/4Hy8QQqiKQpOAsNKQrvdhnw+D+VymV/bSNje78D1+U149rPCr20k5MoVuDq3AU9/lPi1jQR1HRsJuppICSigUCjwxlEEYpKAi4x98WGIffi1+SIfM0lAATfmC7zmyuwGHzNJ0K1jktCvpq+EbrcLnufxprPZLBeCRElodbpwe9Hnh9PorAebjT81URLKlRqMfSrwmkvv85AKKnw8SkK/daIkRNWEEvB/AGy2Xq/z6yAIIB6PQyqVgr29PT6GyBKWd/bh8pwHMb8BbA14HN+BEy/ScHEmBx9LDT4HkSUseDswGsvDTCaASpU1u+LzmgtvMvAuF4RyZAm268gSKDWhhGKxyBtcW1sD3/chkUhAMpmERuOgAJEl3F3a4mbPv87C/eVtODW5DmenM/B5q8n/LpAl3FnweM256XW493UTTr5Mw5lX6/AhVw4FqBJs15ElUGp6Xgfc/vj0cQwFiF0hI0tAbi0UYXgizd+z01MZeOsd7BqBLAFzk23/4Qm2ONZMpmEqfbADRGQJiM06sgTEtqZHQqfTgVKpxHcBvg54LqioEuq/OvDwewAj7Ik+SexCo324RpXg71bhwVIRRtj2fPTNh61KtUcARpVgs44qwbbm0MGIjbdaLa0ARJWA4Icnqy1++OhQJWCw8RV/lx+M8riIKgExraNKQGxqDkkwoZNgQifBFJ0EEzoJJkIJ1GBT1GBT1ODBJhqzzSA1Q/i1SI2uSVN0TZpypBIoCAkUhAQKOB9vkIJoikKPBPGUoyLmCQn41WMKIkvQzVGDyBJ0c9QgsgTdHDWIk8BwEhhOAsNJYDgJDCeB4SQw/hsJ/EYNEfMGqQkl2CJLsEWWYIsswRZZgi2hBGqwKWqwKWqO5rdDCn4DepjAZpDd1xAAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIscWKqUqhVWyT1KT5biZN0uajSWOS432PJL2ZTjL3DggK94EXOpM5uXOeuXNn0pFEIkG6CQQC2vH5fNo59DRKhzWC473UsIRGo6GcfD7PTemwurrKTVWrVeX4/X4+SR1ufsl7qjESjAQjgTESBEaCwEgQGAkCI0FgJAiMBEFPAhpTTTqdZgloTDXBYJAloDHVTE5O8ns9TlI1514nPdWMrK2tkW4gQTeQoBsvP4a81LAEHbLZLDelSiQS4dmAppym/aBgNuAkdcCV9VLz1yXkcrn/X0Kr1aJUKkWlUom3VSQU9tp0ZWGTnvws87aKhGSpTJfm0/T4R563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcXsjxPjcJEHB1IcM1F+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDt34bPFiMz6Xpc36n5phEkrlKk18zHDN+XcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnd3eR+QJSxv79GFebFt1UmMQQ9D23TkWYzOzibpQ77OxwBZwmJ2m8YDKZqNF6lcqZJvxeKaM6/i9DZZ7MmRJaiOI0vQqelJwAKGv9fX18myLAqHw7yy1+v7BUCWcHtpi82efpmgu8sFOja9QSdn4vRpq8Gfd5El3FrMcs2pmQ2683WTjj6P0YkXG/Q+WeoJsEtQHUeWoFPTdzugQVx97IOA7qyQsd8O1xdzNDoV4/vsuD9Ob7L7s6aL/Xa4Jqb/6JR4PqNmOkb+2P4M6MZ+O6iMI0sAqjV9EtrtNr8VYhbgdsC6YMcuofarTfe/F2lMXNFH4R2qtw7W2CVYOxW6t5SjMTE9H3yzaKtc6ROA2CWojGOXoFpzYGFE481m01EAsEsA+PJIpcmLjxNOCyMaX7F2eGGU93fjtDC6jWOXAFRqDkhww0mCG04S3OIkwQ0nCW70JKAx1eBpAQloTDX//A8oPBZ1Awm6gQTdoCFcWdXgeC81LEGHQqHATemA2YCmdMBswEnqgCvrpaYnQb7SgwJkCXj0uAXIEpyOsQfIEpyOsQfIEpyOsQcYCQIjQWAkCIwEgZEgMBIERoLASBD0SVBFlqCKLEEVWYIqsgRVehLQmGrwj1dIQGOq+bd/QCXpN3LrT59/MUO0AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAASAIAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAB6klEQVRoQ+2ZQUsCQRTHLTpFdOjQqWv0QaJr3YPo0q1z126ego7SZygqiahOS5GQFQRCICVlrqCuumFlmaa93hvMJtlwZmFDdt8P/gd33+C+3+7MOhgCFxiGoZ1wOKyd/8K1BB2SyaRoqlqtKicajbZHew9LQFgCwhIQloCwBIQlICwBYQkIS0BYAuJaAjWmmng8LiRQY6qJRCLtb/Me1xJ00894Ph1SqZR4GvoZzyVYlhVMCXa9BXOxAmzcPYvPgZNAAubjRQht3sNszBLHAiWh0fqExYsiDKCA6eM8FGpNcdzXEhKVOsyc5MEo1gD7h7WbCgxvp2HyIAunpZqoIXwtYfmqLO76xL4JKwkbRncfYHwvA2fld3H+G99Ph4VzC4a20mINGItm4Cj/1j7zg+8lvH60YPX6EUZ20rB++wS1Js6LLgKxMFLjqZeGWBidCISEXvhWAjWmGtpA9TMh0zRBNyRBN7SL1A29eQY1QvVuxggJOti2LZrSgZ4GakoH2k7TReqwdFlyNaYjQb7Tf4WQJdBrsVcIWYJTTXcIWYJTTXcIWYJTTXcIloCwBIQlICwBYQkIS0BYAsISkF8SVJElqCJLUEWWoIosQZWOBGpMNblcTkigxlTj9h8o+l1PF6maqcOsizFZ+AIGcQg8msEiNgAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADm0lEQVRoQ+2YzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXud5Jel0u8nOrAgq88AD2ck+mX1/87G7GUokEqTrQCCgbZ/Pp+0Dj6N0UMM430uGITQaDWXn83kuSkfLy8tcVLVaVbbf7+eL1NH1T3lPGQPBQDAQWAaCkIEgZCAIGQhCBoKQgSBkIAj1IKAwVafTaYaAwlQdDAYZAgpT9fj4OD/X4yJVfeZl0lNmaGVlhXQNCLoGBF17eRnykmEIOspms1yUqiKRCM8GFOU07fsZswEXqSOMrJfMH4eQy+X+fQitVotSqRSVSiU+VoFQ2GnTpbl1evS9zMcqEJKlMl2YTdPDb3k+VoFg70cFglNmIAQAyGQyvA8ABOQGAZ2MBS0aEhdzcS7HbW4QAODyXIYz52fS3OYGwakfNwj9Mn0hdDodLhjf4w4CINAgCM12h659tHizGZ3J0nr9V2YQhFK5SmPvM5w5+yZF0WKZ2wdB6NfPIAiDMj0IeAZAsbVajY+LxSKFQiGKRqO0vb3NbZAMYXFzh87NimOrTqIPuh/apENPYnR6Oknv8nU+B5IhzGc3aTSQoul4kcqVKvmWLM6cehGn18liD44MQbUfGYJOpgcBGxg+r66ukmVZFA6HeWev13cDkAzh5sIGkz35PEG3Fwt0ZHKNjk/F6cNGg7/vSoZwYz7LmRNTa3Tr8zodfhqjY8/W6G2y1ANgh6DajwxBJ7NnOaBAjD7aAKA7K2TZl8PV+RwNT8R4nR31x+lVdnfWdGVfDlfE9B+eEPdnZCZj5I/tzoCu7ctBpR8ZAqSa2QOh3W7zUyFmAZYD9gW77BBqP9p092uRRsSIPghvUb21P2OHYG1V6M5CjkbE9Lz3xaKNcmUPANgOQaUfOwTVzL6NEYU3m01HAJAdAoQfj1SavPk4yWljROFL1hZvjHJ7104bo1s/dgiQSmYfBDc5QXCTEwQ3O0FwkxMEN/UgoDBV424BCChM1X/9CxRui7oGBF0Dgq5REEZW1dgAvWQYgo4KhQIXpSPMBhSlI8wGXKSOUJCXTA+CPNL9DMkQ+AdcDMkQnM6xG5IhOJ1jd/c8LxkDAZ+7xdkLdjJkIAgZCEIGgpCBIGQgCBkIQv81BFXJEFQlQ1CVDEFVKMhLhiGgMFXjj1dAQGGq/p0XqO6oqVo/E6WfdBY2E/BzX6AAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA6wMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADjUlEQVRoQ+2XT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532zapM2fJo1JXud5ZdPpdpOdWRAU5gcPdDfzdvb97exsMpRKpUg3oVBIO4FAQDuHnsbpsEYw3k8NS2g2m8opFovclA7Ly8vcVK1WU04wGOSL1OHml6KvGiPBSDASGCNBYCQIjASBkSAwEgRGgsBIEPQkoDHVZLNZloDGVBMOh1kCGlPN+Pg4f6/HRarm3Ou0r5qhlZUV0g0k6AYSdOPnx5CfGpagQz6f56ZUicVivBrQlNuy7xesBlykDrizfmr+uoRCofD/S2i325TJZKhcLvOxioTN3Q5dmVunJz8rfKwiIV2u0KXZLD3+UeRjFQnOeVQkuNUMlAABuVyO9wGIAF4SMMlY2KIhcTGX5wp8zksCBFydy3HNxZksn/OS4DaPl4R+NX0ldLtdbhif4w0CIWCQhFanSzc+W7zZjM7kab3xp2aQhHKlRmMfc1xz/l2G4qUKnx8kod88gyQMqulJwHcANFuv1/m4VCpRJBKheDxOOzs7fA7IEha3dunCrDi2GiTmoIeRLTryLEFnp9P0odjgMUCWMJ/fotFQhqaTJapUaxRYsrjmzKskvU2XenJkCarzyBJ0anoSsIHh79XVVbIsi6LRKO/sjcZeAZAl3F7YYLOnX6bo7uImHZtco5NTSfq00eTPbWQJt+bzXHNqao3ufF2no88TdOLFGr1Pl3sCnBJU55El6NTsexzQIO4+zkGAvSpknI/D9fkCDU8k+Dk7HkzSm/zeqrFxPg7XxPIfnhDvZ9RMJiiY2FsBdpyPg8o8sgSgWrNPQqfT4W+FWAV4HLAvOHFKqP/q0P3vJRoRd/RRdJsa7YM1TgnWdpXuLRRoRCzPB98s2qhU9wlAnBJU5nFKUK05sDGi8Var5SoAOCUA/PNYtcWbjxtuGyMaX7K2eWOUz9tx2xi95nFKACo1ByR44SbBCzcJXnGT4IWbBC96EtCYavC2gAQ0ppp//gcUXou6gQTdQIJu0BDurGow3k8NS9DBlqADVgOa0gGrARepA+6sn5qeBPsuD4o9zpaAV49XgCzBbYwzQJbgNsYZIEtwG+MMMBIERoLASBAYCQIjQWAkCIwEgZEg2CdBFVmCKrIEVWQJqsgSVOlJ0A0koDHV/Ns/oNL0G0NuTL0rh9nUAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADm0lEQVRoQ+2YzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXud5Jel0u8nOrAgq88AD2ck+mX1/87G7GUokEqTrQCCgbZ/Pp+0Dj6N0UMM430uGITQaDWXn83kuSkfLy8tcVLVaVbbf7+eL1NH1T3lPGQPBQDAQWAaCkIEgZCAIGQhCBoKQgSBkIAj1IKAwVafTaYaAwlQdDAYZAgpT9fj4OD/X4yJVfeZl0lNmaGVlhXQNCLoGBF17eRnykmEIOspms1yUqiKRCM8GFOU07fsZswEXqSOMrJfMH4eQy+X+fQitVotSqRSVSiU+VoFQ2GnTpbl1evS9zMcqEJKlMl2YTdPDb3k+VoFg70cFglNmIAQAyGQyvA8ABOQGAZ2MBS0aEhdzcS7HbW4QAODyXIYz52fS3OYGwakfNwj9Mn0hdDodLhjf4w4CINAgCM12h659tHizGZ3J0nr9V2YQhFK5SmPvM5w5+yZF0WKZ2wdB6NfPIAiDMj0IeAZAsbVajY+LxSKFQiGKRqO0vb3NbZAMYXFzh87NimOrTqIPuh/apENPYnR6Oknv8nU+B5IhzGc3aTSQoul4kcqVKvmWLM6cehGn18liD44MQbUfGYJOpgcBGxg+r66ukmVZFA6HeWev13cDkAzh5sIGkz35PEG3Fwt0ZHKNjk/F6cNGg7/vSoZwYz7LmRNTa3Tr8zodfhqjY8/W6G2y1ANgh6DajwxBJ7NnOaBAjD7aAKA7K2TZl8PV+RwNT8R4nR31x+lVdnfWdGVfDlfE9B+eEPdnZCZj5I/tzoCu7ctBpR8ZAqSa2QOh3W7zUyFmAZYD9gW77BBqP9p092uRRsSIPghvUb21P2OHYG1V6M5CjkbE9Lz3xaKNcmUPANgOQaUfOwTVzL6NEYU3m01HAJAdAoQfj1SavPk4yWljROFL1hZvjHJ7104bo1s/dgiQSmYfBDc5QXCTEwQ3O0FwkxMEN/UgoDBV424BCChM1X/9CxRui7oGBF0Dgq5REEZW1dgAvWQYgo4KhQIXpSPMBhSlI8wGXKSOUJCXTA+CPNL9DMkQ+AdcDMkQnM6xG5IhOJ1jd/c8LxkDAZ+7xdkLdjJkIAgZCEIGgpCBIGQgCBkIQv81BFXJEFQlQ1CVDEFVKMhLhiGgMFXjj1dAQGGq/p0XqO6oqVo/E6WfdBY2E/BzX6AAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
+
+
+ VisualStudio2008Vista
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAArQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADT0lEQVRoQ+2ZzWsTURTFq3Ql1YWgG10q/h1S3CjoTqQgbgQXLly5cOMuuBAEN8W/waKNRasgxooVU5VCq9gmqUnzOc2knbT5aNKY5PrOlUyn00nmvQFB5R040HmZ0zf3N+/dmbRDmUyGVB2JRJQdCoWUfeBxkg4qGOcHyTCEZrMp7VKpxEWpaGlpiYuq1WrSDofDfJEquv65FCijIWgIGgJLQxDSEIQ0BCENQUhDENIQhDQEIRsCCpN1Pp9nCChM1tFolCGgMFmPj4/zez0uUtZnXmYDZYaWl5dJ1YCgakBQdZAvQ0EyDEFFhmFwUbJKJBK8GlCU17LvZ6wGXKSKcGeDZP44hGKx+O9DaLfblMvlqFwu87EMhI2dDl2aXaNHPyp8LAMhW67QhXd5evi9xMcyENzzyEDwygyEAACFQoH7AEBAfhAwyVjUpCFxMRdnizzmBwEALs8WOHN+Js9jfhC85vGD0C/TF0K32+WC8TmeIAACDYLQ6nTp2ieTm83ojEFrjd+ZQRDKlRqNfShw5uybHCWtCo8PgtBvnkEQBmVsCHgHQLH1ep2PLcuiWCxGyWSStre3eQxyQljY3KFz78Sx2SAxB92PbdKhJyk6PZ2l96UGnwM5IcwZmzQaydF02qJKtUahRZMzp16k6XXWsuE4IcjO44SgkrEhoIHh55WVFTJNk+LxOHf2RmM3ADkh3JxfZ7Inn2fo9sIGHZlcpeNTafq43uTPe3JCuDFncObE1Crd+rJGh5+m6NizVXqbLdsA3BBk53FCUMns2Q4oEHcfYwDQWxVOubfD1bkiDU+keJ8dDafplbG7anpyb4crYvkPT4jnMzKTKQqndldAz+7tIDOPEwIkm9kDodPp8FshVgG2A/qCW24I9Z8duvvNohFxRx/Et6jR3p9xQzC3qnRnvkgjYnne+2rSeqW6BwDshiAzjxuCbGZfY0ThrVbLEwDkhgDhlyeqLW4+XvJqjCh80dzixugc79mrMfrN44YAyWT2QfCTFwQ/eUHwsxcEP3lB8JMNAYXJGk8LQEBhsv7rv0DhsahqQFA1IKgaBeHOyhrnB8novyeIjIagIWgILA1BSEMQ0hCENAQhDUFIQxDSEIRsCChM1v/ff6Cy9AsSMSlLu0Av/QAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+gMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADnElEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqItcWKqUqhVWyT1KT5biZN0uajaWOS432PTHo7nWTuHSio3AdeyEzm5M555s6dJAPJZJJ0MzU1pZ1AIKCdQ09jdFgjON5PDUvY3t5WTqFQ4KZ0WFpa4qZqtZpygsEgn6QON78UfNUYCUaCkcAYCQIjQWAkCIwEgZEgMBIERoKgKwGNqSaTybAENKaaUCjEEtCYakZHR/l7PU5SNedep3zVDCwvL5NuIEE3kKAbPz+G/NSwBB1yuRw3pUo0GuXZgKbcpn2vYDbgJHXAlfVTc+AS8vn8vy+h1WpROp2mcrnM2yoSijttujK7Rk9+VnhbRUKqXKFLMxl6/KPA2yoSnOOoSHCr6SsBArLZLK8DEAG8JGCQkZBFA+JkLs/meZ+XBAi4OpvlmovTGd7nJcFtHC8JvWp6Suh0Otww3scTBEJAPwnNdodufLZ4sRmeztFa409NPwnlSo1GPma55vy7NMVKFd7fT0KvcfpJ6FfTlYDvAGi2Xq/zdqlUonA4TLFYjLa2tngfkCUsbOzQhRmxbTVIjEEPwxt05Fmczk6m6EOhwccAWcJcboOGp9I0mShRpVqjwKLFNWdeJehtqtSVI0tQHUeWoFPTlYAFDK9XVlbIsiyKRCK8sjcauwVAlnB7fp3Nnn6ZpLsLRTo2vkonJxL0aX2b37eRJdyay3HNqYlVuvN1jY4+j9OJF6v0PlXuCnBKUB1HlqBTs+d2QIO4+tgHAfaskHHeDtfn8jQ4Fuf77HgwQW9yu7PGxnk7XBPTf3BMPJ9RMx6nYHx3Bthx3g4q48gSgGrNHgntdpu/FWIW4HbAuuDEKaH+q033v5doSFzRR5FNarT21zglWJtVujefpyExPR98s2i9Ut0jAHFKUBnHKUG1Zt/CiMabzaarAOCUAPDh0WqTFx833BZGNL5obfLCKO+347Yweo3jlABUavZJ8MJNghduErziJsELNwledCWgMdXgaQEJaEw1f/0PKDwWdQMJuoEE3aAhXFnVYAH0U8MSdCgWi9yUDpgNaEoHzAacpA5oyE9NV4J8pXsFyBL4AzwCZAluxzgDZAluxzhjH+enxkjAa7s5Z8NuAUaCwEgQGAkCI0FgJAiMBMF/LUEVWYIqsgRVIME+UVXk5lTpSkBjqsEfr5CAxlTj9weU3dTBJka/AW4uNg3p+taQAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
+
+ Far
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA7AAAAAKJUE5HDQoaCgAAAA1JSERSAAAAFAAAABQIBgAAAI2JHQ0AAAAEZ0FNQQAAsY8L/GEFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAH5JREFUOE+tzMEJwDAQA0G3kP47SFMp5WKbEwizryiPwWY5NKrqVxgTGBMYExgTGBMY3XU/Na1XZubbBaPrQY3u/3njMDofangnGF0PanT/6U4wOh9qM/PtgtH1oEb3/7xxGJ0PNbwTjK4HNbr/dCcYExgTGBMYExgTGL+r8QL1YYgBA3bF7AAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA4AAAAAKJUE5HDQoaCgAAAA1JSERSAAAAFAAAABQIBgAAAI2JHQ0AAAAEZ0FNQQAAsY8L/GEFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUOE+tzMEJgEAQBMFLwfwzMClDWc/HQCP9cnwULM2wa2Z+pbGhsaGxobGhsaGRjvOKyW270Eh4FroLjcRHud8b0kh4Fjv79qGR+Ci37UIj4VnoLjQSH+V+b0gj4Vns7NuHxobGhsaGxobGhsbvZt1vy4gBqcW4UgAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ TopOnBorder
+ BottomToTop
+
+
+
+
+ HighlightEntireItem
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA9QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADl0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPm53Mk9n3tzOzm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxnA4pym/a9jNmAi9QR7qyfzIFDKBQK/z6EVqtFmUyGyuUyn6tAWN9p05WZVXrys8LnKhDS5Qpdms7S4x9FPleB4BxHBYJbpi8EAMjlcrwPAATkBQGDjIQtGhAXc3mmwG1eEADg6kyOMxenstzmBcFtHC8IvTI9IXQ6HS4Y3+MJAiBQPwjNdodufLZ4sxmeytNq40+mH4RypUYjH3OcOf8uQ/FShdv7Qeg1Tj8I/TJdCHgHQLH1ep3PS6USRSIRisfjtLW1xW2QDGF+Y4cuTItzq0FiDHoY2aAjzxJ0djJNH4oN7gPJEGbzGzQcytBkskSVao0CCxZnzrxK0tt0qQtHhqA6jgxBJ9OFgA0Mn5eXl8myLIpGo7yzNxq7AUiGcHtujcmefpmiu/PrdGx8hU5OJOnT2jZ/b0uGcGs2z5lTEyt05+sqHX2eoBMvVuh9utwF4ISgOo4MQSezZzmgQNx9tAGAPStkOZfD9dkCDY4leJ0dDybpTX531thyLodrYvoPjonnMzLjCQomdmeAbedyUBlHhgCpZvZAaLfb/FaIWYDlgH3BKSeE+q823f9eoiFxRx9FN6nR2p9xQrA2q3RvrkBDYno++GbRWqW6BwDshKAyjhOCambfxojCm82mKwDICQHCj8eqTd583OS2MaLwBWuTN0a53bbbxug1jhMCpJLZB8FLbhC85AbBy24QvOQGwUtdCChM1XhaAAIKU/Vf/wcKj0VdA4KuAUHXKAh3VtXYAP1kGIKObAg6wmxAUTrCbMBF6ggF+cl0Idh3uZ/tfjYE/gEPQzIEtz5OQzIEtz5O2/38ZAwEfJaL87Ldz0AQRwNBHA0EcTQQxNFAEEcDQRz/WwiqkiGoSoagKhmCqlCQnwxD0DUgoDBV+/0DZd+xg3WcfgND/TMv156b9wAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2zXFsx4kTZ/GWw/2d+GbevFz7Oe7IXzqy/XLPu/f871kTEg+y2azs7u7K4uLitayvr0s6nS6uuInz83OZm5uTvr4+6e3tVRkbG5NkMimXl5fFVc/j+PhYuru7pa6uTmpra1UaGxtle3u7pM7maU6+/DcmrzStyUuNV/JWeFfC++dScKtUrKMkFAoFicfjanAsFlOjLy4u5OzsTJ9vbW1JJBJRkizy+bxsbm6qwXyyHlgip6amlET7HGQyGRkdHZWmpibVOzk5UaMhcnZ2Vtra2pREnluksgX5ZeFQ3g5H5NfFIzWM8ycyBfljNSUfPYnKt2Nx2T7NXykY3FZHSUgkEnpwa7xfTk9PJRqN6k3lcjlVxPClpSU1wAXIgFTIwHgwPj6uHoMnuADpw8PD0t7ernsCjPjOHNga4kfsIi8/zh8aw/Yken5l1G11Qhx2Y2NDN3URYAVjd3Z21M35zk2WIsCCW15YWFDyuN3m5uaSBFjgleFwWCYnJ9WId3oisnX27JZdyJt9vh6JyW9PU1XphPCA/f19p+F+wQAMIgdAXCVAZ3p6WnMAoVAq5r0gJDs6OjSefzZuXSg+L4fxZEY++SdalU6IuC0VBn7BXQkD4jbICyzwNG6VJBjkBRbs09raKi+bRLaefpaHyiF+UZD3H+9VpaMkuAx2CYbjCT09PcXXBAP3xnNqamoq8gJA0u3q6pIX/l4rmfn9yJiFnw/FqtK5tSdQKfAEflcCEinhQBn0Zv1yIJFSKShpO2dXiTgIR6YifGiyfjU6ITI41cFvsEswglxAUtzb2yu+qjxIuIQDfQBJshKQfAkHavrDjcpCaOE4K+89jlSlE8ILcHFu2WW4VyiTJC0OSV339g2lAMmrq6u6R2dnZ0W5ZGRkRAYHB7Wp+WxgXxImdoPwkyl5P0wnq9LRPoFGCHEZbgVvwSC+E9uE0crKir7MBdbgLRgE0fwml/T39xdX3AT5A29paGiQg4MDje1vRuPyYPKguOImcsbWP9dP5M3uXZlPZavSURK4UW4KSaVS6sLcGN5BCFBC19bW9LcFZBDr8/PzcnR0pO/ACHIA+lQRGh/eZ8G7aIQolxDE+0iCvAujKaH19fXPhdq2ie+PTRn7ypS+wcSFyeh5TWjE81wqo+XwjUc7MmT+ZnFbnevZgcPj5hBB3POJIXwnBDioHyQw1s3MzGjcUwXoECcmJjQE8AA/IIg19AHEPVWAJNjS0iIDAwNKhh90db+bpubT/qiWtC+G9uUD0+292xuR7407c5t+3EbnmgQAEYQF7TDujthushTwmDszQHED3Dyfdj7AVXF12mVc1JsI79wAheFk/lLZHoNJjNyUJQjD78wAhVEYxCe3ws0Tz9zi8vKyJkVI4G8Q5R+gssavHm6cyOsdWxIy3dq91k2TmROSNKyj4xqgyumUGqDK6ZQaoCrVCZEDbDKCAG8+sEIocDhcm9DwDlB/mU1ebV7XTazQut4fjkna1CLXABWk4xqggnRcA1SlOiGMtmFgPcAveARr8AjbNtsweK39imW/3GvdkNWTrOr5B6ggHcLCP0AF6bgGqEp1dHaw8BvvFeKaW8RzvAOUaxMrtKV4kH+Acq21gg5k+wco11or6LgGKNdaK14dJcEmO27cbzxivQWDiG/vAAWrrk1ww6eGbd7tH6CCdFwDVJCOa4CqVCdEbJMLAEnQRQIhwO1wOL57B6gHUwfyotnYvxFNSSKT1yzvH6CCdFwDVJCOHYaq0QlxSOo6RiIYZz0CD8Bo2y5TJvnHq3eAItPeH45fsw7LbPIkfpUzXANUkI5rgArScQ1Qlepon2CnQ4DLYxy3jkAMscwMgNcQBvyGJDtApXOXsprOKbO42YHZnDUQWmqAcumwd7kByqXjH4aq0VESMNp2hdyUNZxDQYSdIO/8AMVhDg8PlQxclyrAJ8YQApDhB89Y8/8eoET+A46Kvwl1DPddAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+AMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADmklEQVRoQ+2YzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXud5Jel0u8nOLBRU5oEHspN9Mvv+5mN3M5RIJEjXgUBA2z6fT9uHnkbpsIZxvpcMQ2g0GsrO5/NclI6Wl5e5qGq1qmy/388XqaObX/KeMgaCgWAgsAwEIQNByEAQMhCEDAQhA0HIQBDqQUBhqk6n0wwBhak6GAwyBBSm6vHxcX6ux0Wq+tzrpKfM0MrKCukaEHQNCLr28jLkJcMQdJTNZrkoVUUiEZ4NKMpp2vczZgMuUkcYWS+ZA4eQy+X+fQitVotSqRSVSiU+VoFQ2GnTlbl1evKzzMcqEJKlMl2aTdPjH3k+VoFg70cFglNmIAQAyGQyvA8ABOQGAZ2MBS0aEhdzeS7HbW4QAODqXIYzF2fS3OYGwakfNwj9Mn0hdDodLhjf4w4CINAgCM12h258tnizGZ3J0nr9T2YQhFK5SmMfM5w5/y5F0WKZ2wdB6NfPIAiDMj0IeAZAsbVajY+LxSKFQiGKRqO0vb3NbZAMYXFzhy7MimOrTqIPehjapCPPYnR2Okkf8nU+B5IhzGc3aTSQoul4kcqVKvmWLM6ceRWnt8liD44MQbUfGYJOpgcBGxg+r66ukmVZFA6HeWev13cDkAzh9sIGkz39MkF3Fwt0bHKNTk7F6dNGg7/vSoZwaz7LmVNTa3Tn6zodfR6jEy/W6H2y1ANgh6DajwxBJ7NnOaBAjD7aAKA7K2TZl8P1+RwNT8R4nR33x+lNdnfWdGVfDtfE9B+eEPdnZCZj5I/tzoCu7ctBpR8ZAqSa2QOh3W7zUyFmAZYD9gW77BBqv9p0/3uRRsSIPgpvUb21P2OHYG1V6N5CjkbE9HzwzaKNcmUPANgOQaUfOwTVzL6NEYU3m01HAJAdAoQfj1SavPk4yWljROFL1hZvjHJ7104bo1s/dgiQSmYfBDc5QXCTEwQ3O0FwkxMEN/UgoDBV424BCChM1X/9CxRui7oGBF0Dgq5REEZW1dgAvWQYgo4KhQIXpSPMBhSlI8wGXKSOUJCXTA+CPNL9DMkQ+AdcDMkQnM6xG5IhOJ1jd/c8LxkDAZ+7xdkLdjJkIAgZCEIGgpCBIGQgCBkIQv81BFXJEFQlQ1CVDEFVKMhLhiGgMFXjj1dAQGGq9voC1R2xg3WUfgNzejYRjgB1CAAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPk93Mk9n3N7Ozm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxXA4pyW/a9jNWAi9QRZtZP5sAhFAqFfx9Cq9WiTCZD5XKZj1UgrO+06crMKj35WeFjFQjpcoUuTWfp8Y8iH6tAcI6jAsEt0xcCAORyOd4HAALygoBBRsIWDYiLuTxT4HNeEADg6kyOMxensnzOC4LbOF4QemV6Quh0OlwwvscTBECgfhCa7Q7d+GzxZjM8lafVxp9MPwjlSo1GPuY4c/5dhuKlCp/vB6HXOP0g9Mt0IeAdAMXW63U+LpVKFIlEKB6P09bWFp+DZAjzGzt0YVocWw0SY9DDyAYdeZags5Np+lBscB9IhjCb36DhUIYmkyWqVGsUWLA4c+ZVkt6mS104MgTVcWQIOpkuBGxg+Ly8vEyWZVE0GuWdvdHYDUAyhNtza0z29MsU3Z1fp2PjK3RyIkmf1rb5e1syhFuzec6cmlihO19X6ejzBJ14sULv0+UuACcE1XFkCDqZPbcDCsTs4xwA2KtClvN2uD5boMGxBN9nx4NJepPfXTW2nLfDNbH8B8fE8xmZ8QQFE7srwLbzdlAZR4YAqWb2QGi32/xWiFWA2wH7glNOCPVfbbr/vURDYkYfRTep0dqfcUKwNqt0b65AQ2J5Pvhm0VqlugcA7ISgMo4Tgmpm38aIwpvNpisAyAkBwo/Hqk3efNzktjGi8AVrkzdG+bxtt43RaxwnBEglsw+Cl9wgeMkNgpfdIHjJDYKXuhBQmKrxtAAEFKbqv/4PFB6LugYEXQOCrlEQZlbV2AD9ZBiCjmwIOrIh6Aj9cZE6QkF+Ml0I9iz3s93PhsA/4GFIhuDWx2lIhuDWx2m7n5+MgYDPcnFetvsZCKI1EERrIIjWQBCtgSBaA0G0/y0EVckQVCVDUJUMQVUoyE+GIegaRekaRenanrGDdZx+AwQBIVZs5053AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPk93Mk9n3N7Ozm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxXA4pyW/a9jNWAi9QRZtZP5sAhFAqFfx9Cq9WiTCZD5XKZj1UgrO+06crMKj35WeFjFQjpcoUuTWfp8Y8iH6tAcI6jAsEt0xcCAORyOd4HAALygoBBRsIWDYiLuTxT4HNeEADg6kyOMxensnzOC4LbOF4QemV6Quh0OlwwvscTBECgfhCa7Q7d+GzxZjM8lafVxp9MPwjlSo1GPuY4c/5dhuKlCp/vB6HXOP0g9Mt0IeAdAMXW63U+LpVKFIlEKB6P09bWFp+DZAjzGzt0YVocWw0SY9DDyAYdeZags5Np+lBscB9IhjCb36DhUIYmkyWqVGsUWLA4c+ZVkt6mS104MgTVcWQIOpkuBGxg+Ly8vEyWZVE0GuWdvdHYDUAyhNtza0z29MsU3Z1fp2PjK3RyIkmf1rb5e1syhFuzec6cmlihO19X6ejzBJ14sULv0+UuACcE1XFkCDqZPbcDCsTs4xwA2KtClvN2uD5boMGxBN9nx4NJepPfXTW2nLfDNbH8B8fE8xmZ8QQFE7srwLbzdlAZR4YAqWb2QGi32/xWiFWA2wH7glNOCPVfbbr/vURDYkYfRTep0dqfcUKwNqt0b65AQ2J5Pvhm0VqlugcA7ISgMo4Tgmpm38aIwpvNpisAyAkBwo/Hqk3efNzktjGi8AVrkzdG+bxtt43RaxwnBEglsw+Cl9wgeMkNgpfdIHjJDYKXuhBQmKrxtAAEFKbqv/4PFB6LugYEXQOCrlEQZlbV2AD9ZBiCjmwIOrIh6Aj9cZE6QkF+Ml0I9iz3s93PhsA/4GFIhuDWx2lIhuDWx2m7n5+MgYDPcnFetvsZCKI1EERrIIjWQBCtgSBaA0G0/y0EVckQVCVDUJUMQVUoyE+GIegaRekaRenanrGDdZx+AwQBIVZs5053AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ Office2013RadioButtonGlyphInfo
+
+ -1
+ 0, 170, 222
+ Solid
+ 0, 170, 222
+ White
+ 135, 135, 135
+ None
+ Transparent
+ 0
+ 0, 170, 222
+
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA9QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADl0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPk93Mk9n3N7Ozm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxXA4pyW/a9jNWAi9QRZtZP5sAhFAqFfx9Cq9WiTCZD5XKZj1UgrO+06crMKj35WeFjFQjpcoUuTWfp8Y8iH6tAcI6jAsEt0xcCAORyOd4HAALygoBBRsIWDYiLuTxT4HNeEADg6kyOMxensnzOC4LbOF4QemV6Quh0OlwwvscTBECgfhCa7Q7d+GzxZjM8lafVxp9MPwjlSo1GPuY4c/5dhuKlCp/vB6HXOP0g9Mt0IeAdAMXW63U+LpVKFIlEKB6P09bWFp+DZAjzGzt0YVocWw0SY9DDyAYdeZags5Np+lBscB9IhjCb36DhUIYmkyWqVGsUWLA4c+ZVkt6mS104MgTVcWQIOpkuBGxg+Ly8vEyWZVE0GuWdvdHYDUAyhNtza0z29MsU3Z1fp2PjK3RyIkmf1rb5e1syhFuzec6cmlihO19X6ejzBJ14sULv0+UuACcE1XFkCDqZPbcDCsTs4xwA2KtClvN2uD5boMGxBN9nx4NJepPfXTW2nLfDNbH8B8fE8xmZ8QQFE7srwLbzdlAZR4YAqWb2QGi32/xWiFWA2wH7glNOCPVfbbr/vURDYkYfRTep0dqfcUKwNqt0b65AQ2J5Pvhm0VqlugcA7ISgMo4Tgmpm38aIwpvNpisAyAkBwo/Hqk3efNzktjGi8AVrkzdG+bxtt43RaxwnBEglsw+Cl9wgeMkNgpfdIHjJDYKXuhBQmKrxtAAEFKbqv/4PFB6LugYEXQOCrlEQZlbV6O8nwxB0ZEPQEVYDitIR+uMidYSngJ9MF4I9y/1s97Mh8A94GJIhuPVxGpIhuPVx2u7nJ2Mg4LNcnJftfgaCaA0E0RoIojUQRGsgiNZAEO1/C0FVMgRVyRBUJUNQFQryk2EIugYEFKZq+w+Uru0ZO1jH6Tc1kyfofk37EgAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
+ RectangularSolid
+ None
+ TopOnBorder
+ BottomToTop
+
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA6gMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADjElEQVRoQ+2YT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePFWPAiCNz+DRVuLVkGMLVaaqhRaxTZJTZr/zaZJ2vxp0pjkdZ5Xsp1sN9mZBaHC/OCB7nbezr6/nZ1NOpRIJEg3gUBAO+Pj49o58jxKRzWC8X5qWEKj0VBOPp/npnRYXV3lpqrVqnIwHhepw+2veV81RoKRYCQwRoLASBAYCQIjQWAkCIwEgZEgsCWgMdWk02mWgMZUEwwGuSnd4HM9LlI1F94mfdUMra2tkW4gQTduTXrFz5chPzUsQYdsNstNqRKJRHg1oCm3Zd8vGI+L1AF31k/NP5eQy+X+fwmtVotSqRSVSiU+VpFQ2GvTtflNevarzMcqEpKlMl2ZS9PTn3k+VpHgnEdFglvNQAkQkMlkeB+ACOAlAZOMBS0aEhdzdT7H57wkQMD1+QzXXJ5N8zkvCW7zeEnoV9NXQqfT4Ybxe7xBIAQMktBsd+jWF4s3m9HZLG3W/9YMklAqV2nsc4ZrLn5IUbRY5vODJPSbZ5CEQTW2BHwGQLO1Wo2Pi8UihUIhikajtLu7y+eALGF5e48uzYljq05iDnoc2qZjL2J0fiZJn/J1HgNkCYvZbRoNpGgmXqRyRTS7YnHNuTdxep8s2nJkCarzyBJ0amwJ2MDw8/r6OlmWReFwmHf2en2/AMgS7i5tsdmzrxN0f7lAJyY36PR0nBa2Gvz7LrKEO4tZrjkzvUH3vm3S8ZcxOvVqgz4mS7YApwTVeWQJOjU9jwMaxN3HOQjorgoZ5+NwczFHwxMxfs5OTsXpXXZ/1XRxPg43xPIfnhDvZ9RMxmgqtr8CupElAJV5ZAlAtaZHQrvd5k+FWAV4HLAvOHFKqP1u08MfRRoRd/RJeIfqrYM1TgnWToUeLOVoRCzPR98t2ipXegQgTgkq8zglqNYc2BjReLPZdBUAnBIA/nik0uTNxw23jRGNr1g7vDHK57txSgBe8zglAJWaAxK8cJPghZsEr7hJ8MJNghe2BDSmGrwtIAGNqebQf4HCa1E3kKAbtya9goZwZ1WD8X5qWIIOhUKBm9IBqwFN6YDxuEgdcGf91NgS5DvdL0CWgFePV4AswW2MM0CW4DbGGSBLcBvjDDASBEaCwEgQGAkCI0FgJAiMBIGRIOiRoIosQRVZgiqyBFVkCarYEtCYavCPV0hAY6o53F+gkvQHK6ctxANB/y4AAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
+ White
+
+
+
+
+
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+wMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADnUlEQVRoQ+2XT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532zapE3TJo1JXud5ZdPJdpOdWSiozAMPyW7mycz725nZ3YFUKkW6DoVC2g4EAto+9DROhzWM9n4yDKFeryu7WCxyUTpaXFzkoqrVqrKDwSAPUkc3vxR9ZQwEA8FAYBkIQgaCkIEgZCAIGQhCBoKQgSDUgYDCVJ3NZhkCClN1OBxmCChM1aOjo/xcj0Gq+tzrtK/MwNLSEukaEHQNCLr28zLkJ8MQdJTP57koVcViMZ4NKMpt2vcyZgMGqSNcWT+ZA4dQKBT+fQjNZpMymQyVy2U+VoGwvtuiKzOr9ORnhY9VIKTLFbo0naXHP4p8rALB2Y8KBLdMXwgAkMvleB8ACMgLAjoZCVs0IAZzeabA57wgAMDVmRxnLk5l+ZwXBLd+vCD0yvSE0G63uWD8jjsIgED9IDRabbrx2eLNZngqT6u1P5l+EMqVKo18zHHm/LsMxUsVPt8PQq9++kHol+lAwDMAit3e3ubjUqlEkUiE4vE47ezs8DlIhjC/sUsXpsWxVSPRBz2MbNCRZwk6O5mmD8Uat4FkCLP5DRoOZWgyWaLKVpUCCxZnzrxK0tt0qQNHhqDajwxBJ9OBgA0M35eXl8myLIpGo7yz12p7AUiGcHtujcmefpmiu/PrdGx8hU5OJOnTWp1/tyVDuDWb58ypiRW683WVjj5P0IkXK/Q+Xe4AcEJQ7UeGoJPpWg4oEFcf5wDAnhWynMvh+myBBscSvM6OB5P0Jr83a2w5l8M1Mf0Hx8T9GZnxBAUTezPAtnM5qPQjQ4BUM10QWq0WPxViFmA5YF9wyglh+1eL7n8v0ZC4oo+im1Rr7s84IVibW3RvrkBDYno++GbRWmWrCwDshKDSjxOCambfxojCG42GKwDICQHCn8e2Grz5uMltY0ThC9Ymb4zyedtuG6NXP04IkEpmHwQvuUHwkhsEL7tB8JIbBC91IKAwVeNuAQgoTNV//QsUbou6BgRdA4KuURCurI79ZBiCjmwIOsJsQFE6wmzAAHVkF6WjLgj2Ve5nu50NAbceL0MyBLc2TkMyBLc2TkMyBLc2TkMGgpCBIPTPQOCBethu5ydjIOC7XJyX7XYGgvg0EMSngSA+/1sIqpIhqEqGoCoZgqpkCKrqQNA1IKAwVft9gbKLOljH6TcHdzOr6BQ8HAAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAArQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADT0lEQVRoQ+2ZzWsTURTFq3Ql1YWgG10q/h1S3CjoTqQgbgQXLly5cOMuuBAEN8W/waKNRasgxooVU5VCq9gmqUnzOc2knbT5aNKY5PrOlUyn00nmvQFB5R040HmZ0zf3N+/dmbRDmUyGVB2JRJQdCoWUfeBxkg4qGOcHyTCEZrMp7VKpxEWpaGlpiYuq1WrSDofDfJEquv65FCijIWgIGgJLQxDSEIQ0BCENQUhDENIQhDQEIRsCCpN1Pp9nCChM1tFolCGgMFmPj4/zez0uUtZnXmYDZYaWl5dJ1YCgakBQdZAvQ0EyDEFFhmFwUbJKJBK8GlCU17LvZ6wGXKSKcGeDZP44hGKx+O9DaLfblMvlqFwu87EMhI2dDl2aXaNHPyp8LAMhW67QhXd5evi9xMcyENzzyEDwygyEAACFQoH7AEBAfhAwyVjUpCFxMRdnizzmBwEALs8WOHN+Js9jfhC85vGD0C/TF0K32+WC8TmeIAACDYLQ6nTp2ieTm83ojEFrjd+ZQRDKlRqNfShw5uybHCWtCo8PgtBvnkEQBmVsCHgHQLH1ep2PLcuiWCxGyWSStre3eQxyQljY3KFz78Sx2SAxB92PbdKhJyk6PZ2l96UGnwM5IcwZmzQaydF02qJKtUahRZMzp16k6XXWsuE4IcjO44SgkrEhoIHh55WVFTJNk+LxOHf2RmM3ADkh3JxfZ7Inn2fo9sIGHZlcpeNTafq43uTPe3JCuDFncObE1Crd+rJGh5+m6NizVXqbLdsA3BBk53FCUMns2Q4oEHcfYwDQWxVOubfD1bkiDU+keJ8dDafplbG7anpyb4crYvkPT4jnMzKTKQqndldAz+7tIDOPEwIkm9kDodPp8FshVgG2A/qCW24I9Z8duvvNohFxRx/Et6jR3p9xQzC3qnRnvkgjYnne+2rSeqW6BwDshiAzjxuCbGZfY0ThrVbLEwDkhgDhlyeqLW4+XvJqjCh80dzixugc79mrMfrN44YAyWT2QfCTFwQ/eUHwsxcEP3lB8JMNAYXJGk8LQEBhsv7rv0DhsahqQFA1IKgaBeHOyhrnB8novyeIjIagIWgILA1BSEMQ0hCENAQhDUFIQxDSEIRsCChM1v/ff6Cy9AsSMSlLu0Av/QAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ Office2013RadioButtonGlyphInfo
+
+
+
+
+
+
+
+
+ 0, 170, 222
+ Gray
+ Gray
+ Gray
+
+
+
+
+
+
+
+
+ Flat
+ True
+
+
+
+
+ Flat
+ True
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIscWKqUqhVWyT1KT5biZN0uajSWOS432PJL2ZTjL3DggK94EXOpM5uXOeuXNn0pFEIkG6CQQC2vH5fNo59DRKhzWC473UsIRGo6GcfD7PTemwurrKTVWrVeX4/X4+SR1ufsl7qjESjAQjgTESBEaCwEgQGAkCI0FgJAiMBEFPAhpTTTqdZgloTDXBYJAloDHVTE5O8ns9TlI1514nPdWMrK2tkW4gQTeQoBsvP4a81LAEHbLZLDelSiQS4dmAppym/aBgNuAkdcCV9VLz1yXkcrn/X0Kr1aJUKkWlUom3VSQU9tp0ZWGTnvws87aKhGSpTJfm0/T4R563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcXsjxPjcJEHB1IcM1F+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDt34bPFiMz6Xpc36n5phEkrlKk18zHDN+XcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnd3eR+QJSxv79GFebFt1UmMQQ9D23TkWYzOzibpQ77OxwBZwmJ2m8YDKZqNF6lcqZJvxeKaM6/i9DZZ7MmRJaiOI0vQqelJwAKGv9fX18myLAqHw7yy1+v7BUCWcHtpi82efpmgu8sFOja9QSdn4vRpq8Gfd5El3FrMcs2pmQ2683WTjj6P0YkXG/Q+WeoJsEtQHUeWoFPTdzugQVx97IOA7qyQsd8O1xdzNDoV4/vsuD9Ob7L7s6aL/Xa4Jqb/6JR4PqNmOkb+2P4M6MZ+O6iMI0sAqjV9EtrtNr8VYhbgdsC6YMcuofarTfe/F2lMXNFH4R2qtw7W2CVYOxW6t5SjMTE9H3yzaKtc6ROA2CWojGOXoFpzYGFE481m01EAsEsA+PJIpcmLjxNOCyMaX7F2eGGU93fjtDC6jWOXAFRqDkhww0mCG04S3OIkwQ0nCW70JKAx1eBpAQloTDX//A8oPBZ1Awm6gQTdoCFcWdXgeC81LEGHQqHATemA2YCmdMBswEnqgCvrpaYnQb7SgwJkCXj0uAXIEpyOsQfIEpyOsQfIEpyOsQcYCQIjQWAkCIwEgZEgMBIERoLASBD0SVBFlqCKLEEVWYIqsgRVehLQmGrwj1dIQGOq+bd/QCXpN3LrT59/MUO0AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIscWKqUqhVWyT1KT5biZN0uajSWOS432PJL2ZTjL3DggK94EXOpM5uXOeuXNn0pFEIkG6CQQC2vH5fNo59DRKhzWC473UsIRGo6GcfD7PTemwurrKTVWrVeX4/X4+SR1ufsl7qjESjAQjgTESBEaCwEgQGAkCI0FgJAiMBEFPAhpTTTqdZgloTDXBYJAloDHVTE5O8ns9TlI1514nPdWMrK2tkW4gQTeQoBsvP4a81LAEHbLZLDelSiQS4dmAppym/aBgNuAkdcCV9VLz1yXkcrn/X0Kr1aJUKkWlUom3VSQU9tp0ZWGTnvws87aKhGSpTJfm0/T4R563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcXsjxPjcJEHB1IcM1F+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDt34bPFiMz6Xpc36n5phEkrlKk18zHDN+XcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnd3eR+QJSxv79GFebFt1UmMQQ9D23TkWYzOzibpQ77OxwBZwmJ2m8YDKZqNF6lcqZJvxeKaM6/i9DZZ7MmRJaiOI0vQqelJwAKGv9fX18myLAqHw7yy1+v7BUCWcHtpi82efpmgu8sFOja9QSdn4vRpq8Gfd5El3FrMcs2pmQ2683WTjj6P0YkXG/Q+WeoJsEtQHUeWoFPTdzugQVx97IOA7qyQsd8O1xdzNDoV4/vsuD9Ob7L7s6aL/Xa4Jqb/6JR4PqNmOkb+2P4M6MZ+O6iMI0sAqjV9EtrtNr8VYhbgdsC6YMcuofarTfe/F2lMXNFH4R2qtw7W2CVYOxW6t5SjMTE9H3yzaKtc6ROA2CWojGOXoFpzYGFE481m01EAsEsA+PJIpcmLjxNOCyMaX7F2eGGU93fjtDC6jWOXAFRqDkhww0mCG04S3OIkwQ0nCW70JKAx1eBpAQloTDX//A8oPBZ1Awm6gQTdoCFcWdXgeC81LEGHQqHATemA2YCmdMBswEnqgCvrpaYnQb7SgwJkCXj0uAXIEpyOsQfIEpyOsQfIEpyOsQcYCQIjQWAkCIwEgZEgMBIERoLASBD0SVBFlqCKLEEVWYIqsgRVehLQmGrwj1dIQGOq+bd/QCXpN3LrT59/MUO0AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2zXFsx4kTZ/GWw/2d+GbevFz7Oe7IXzqy/XLPu/f871kTEg+y2azs7u7K4uLitayvr0s6nS6uuInz83OZm5uTvr4+6e3tVRkbG5NkMimXl5fFVc/j+PhYuru7pa6uTmpra1UaGxtle3u7pM7maU6+/DcmrzStyUuNV/JWeFfC++dScKtUrKMkFAoFicfjanAsFlOjLy4u5OzsTJ9vbW1JJBJRkizy+bxsbm6qwXyyHlgip6amlET7HGQyGRkdHZWmpibVOzk5UaMhcnZ2Vtra2pREnluksgX5ZeFQ3g5H5NfFIzWM8ycyBfljNSUfPYnKt2Nx2T7NXykY3FZHSUgkEnpwa7xfTk9PJRqN6k3lcjlVxPClpSU1wAXIgFTIwHgwPj6uHoMnuADpw8PD0t7ernsCjPjOHNga4kfsIi8/zh8aw/Yken5l1G11Qhx2Y2NDN3URYAVjd3Z21M35zk2WIsCCW15YWFDyuN3m5uaSBFjgleFwWCYnJ9WId3oisnX27JZdyJt9vh6JyW9PU1XphPCA/f19p+F+wQAMIgdAXCVAZ3p6WnMAoVAq5r0gJDs6OjSefzZuXSg+L4fxZEY++SdalU6IuC0VBn7BXQkD4jbICyzwNG6VJBjkBRbs09raKi+bRLaefpaHyiF+UZD3H+9VpaMkuAx2CYbjCT09PcXXBAP3xnNqamoq8gJA0u3q6pIX/l4rmfn9yJiFnw/FqtK5tSdQKfAEflcCEinhQBn0Zv1yIJFSKShpO2dXiTgIR6YifGiyfjU6ITI41cFvsEswglxAUtzb2yu+qjxIuIQDfQBJshKQfAkHavrDjcpCaOE4K+89jlSlE8ILcHFu2WW4VyiTJC0OSV339g2lAMmrq6u6R2dnZ0W5ZGRkRAYHB7Wp+WxgXxImdoPwkyl5P0wnq9LRPoFGCHEZbgVvwSC+E9uE0crKir7MBdbgLRgE0fwml/T39xdX3AT5A29paGiQg4MDje1vRuPyYPKguOImcsbWP9dP5M3uXZlPZavSURK4UW4KSaVS6sLcGN5BCFBC19bW9LcFZBDr8/PzcnR0pO/ACHIA+lQRGh/eZ8G7aIQolxDE+0iCvAujKaH19fXPhdq2ie+PTRn7ypS+wcSFyeh5TWjE81wqo+XwjUc7MmT+ZnFbnevZgcPj5hBB3POJIXwnBDioHyQw1s3MzGjcUwXoECcmJjQE8AA/IIg19AHEPVWAJNjS0iIDAwNKhh90db+bpubT/qiWtC+G9uUD0+292xuR7407c5t+3EbnmgQAEYQF7TDujthushTwmDszQHED3Dyfdj7AVXF12mVc1JsI79wAheFk/lLZHoNJjNyUJQjD78wAhVEYxCe3ws0Tz9zi8vKyJkVI4G8Q5R+gssavHm6cyOsdWxIy3dq91k2TmROSNKyj4xqgyumUGqDK6ZQaoCrVCZEDbDKCAG8+sEIocDhcm9DwDlB/mU1ebV7XTazQut4fjkna1CLXABWk4xqggnRcA1SlOiGMtmFgPcAveARr8AjbNtsweK39imW/3GvdkNWTrOr5B6ggHcLCP0AF6bgGqEp1dHaw8BvvFeKaW8RzvAOUaxMrtKV4kH+Acq21gg5k+wco11or6LgGKNdaK14dJcEmO27cbzxivQWDiG/vAAWrrk1ww6eGbd7tH6CCdFwDVJCOa4CqVCdEbJMLAEnQRQIhwO1wOL57B6gHUwfyotnYvxFNSSKT1yzvH6CCdFwDVJCOHYaq0QlxSOo6RiIYZz0CD8Bo2y5TJvnHq3eAItPeH45fsw7LbPIkfpUzXANUkI5rgArScQ1Qlepon2CnQ4DLYxy3jkAMscwMgNcQBvyGJDtApXOXsprOKbO42YHZnDUQWmqAcumwd7kByqXjH4aq0VESMNp2hdyUNZxDQYSdIO/8AMVhDg8PlQxclyrAJ8YQApDhB89Y8/8eoET+A46Kvwl1DPddAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA7AMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADjklEQVRoQ+2XT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532zapM2fJo1JXud5ZdPJdpOdiRQU5gcPdDfzdvb97exsMpRIJEg3gUBAOz6fTzuHnkbpsEYwfpAallCv15WTz+e5KR2Wl5e5qUqlohy/388XqcPNL/mBaowEI8FIYIwEgZEgMBIERoLASBAYCQIjQdCRgMZUk06nWQIaU00wGGQJaEw14+Pj/L0eF6mac6+TA9UMrayskG4gQTeQoJtBfgwNUsMSdMhms9yUKpFIhFcDmnJb9r2C1YCL1AF3dpCaA5eQy+X+fwnNZpNSqRQVi0U+VpGwuduiK3Pr9ORniY9VJCSLJbo0m6bHP/J8rCLBOY+KBLeavhIgIJPJ8D4AEcBLAiYZC1o0JC7m8lyOz3lJgICrcxmuuTiT5nNeEtzm8ZLQq6anhHa7zQ3jc7xBIAT0k9BotenGZ4s3m9GZLK3X/tT0k1AsVWjsY4Zrzr9LUbRQ4vP9JPSap5+EfjUdCfgOgGar1SofFwoFCoVCFI1GaWdnh88BWcLi1i5dmBXHVo3EHPQwtEVHnsXo7HSSPuRrPAbIEuazWzQaSNF0vEClcoV8SxbXnHkVp7fJQkeOLEF1HlmCTk1HAjYw/L26ukqWZVE4HOadvVbbKwCyhNsLG2z29MsE3V3cpGOTa3RyKk6fNur8uY0s4dZ8lmtOTa3Rna/rdPR5jE68WKP3yWJHgFOC6jyyBJ2arscBDeLu4xwE2KtCxvk4XJ/P0fBEjJ+z4/44vcnurRob5+NwTSz/4QnxfkbNZIz8sb0VYMf5OKjMI0sAqjVdElqtFn8rxCrA44B9wYlTQvVXi+5/L9CIuKOPwttUa+6vcUqwtst0byFHI2J5Pvhm0Uap3CUAcUpQmccpQbVm38aIxhuNhqsA4JQA8M8j5QZvPm64bYxofMna5o1RPm/HbWP0mscpAajU7JPghZsEL9wkeMVNghduErzoSEBjqsHbAhLQmGr++R9QeC3qBhJ0Awm6QUO4s6rB+EFqWIIOtgQdsBrQlA5YDbhIHWwBOnRJsO9yv9jjbAl49XgFyBLcxjgDZAluY5wBsgS3Mc4AI0FgJAiMBIGRIDASBEaCwEgQGAmCLgmqyBJUkSWoIktQRZagSkeCbiABjanmb35AHXyi9BvrVTNhLiUFpAAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAArQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADT0lEQVRoQ+2ZzWsTURTFq3Ql1YWgG10q/h1S3CjoTqQgbgQXLly5cOMuuBAEN8W/waKNRasgxooVU5VCq9gmqUnzOc2knbT5aNKY5PrOlUyn00nmvQFB5R040HmZ0zf3N+/dmbRDmUyGVB2JRJQdCoWUfeBxkg4qGOcHyTCEZrMp7VKpxEWpaGlpiYuq1WrSDofDfJEquv65FCijIWgIGgJLQxDSEIQ0BCENQUhDENIQhDQEIRsCCpN1Pp9nCChM1tFolCGgMFmPj4/zez0uUtZnXmYDZYaWl5dJ1YCgakBQdZAvQ0EyDEFFhmFwUbJKJBK8GlCU17LvZ6wGXKSKcGeDZP44hGKx+O9DaLfblMvlqFwu87EMhI2dDl2aXaNHPyp8LAMhW67QhXd5evi9xMcyENzzyEDwygyEAACFQoH7AEBAfhAwyVjUpCFxMRdnizzmBwEALs8WOHN+Js9jfhC85vGD0C/TF0K32+WC8TmeIAACDYLQ6nTp2ieTm83ojEFrjd+ZQRDKlRqNfShw5uybHCWtCo8PgtBvnkEQBmVsCHgHQLH1ep2PLcuiWCxGyWSStre3eQxyQljY3KFz78Sx2SAxB92PbdKhJyk6PZ2l96UGnwM5IcwZmzQaydF02qJKtUahRZMzp16k6XXWsuE4IcjO44SgkrEhoIHh55WVFTJNk+LxOHf2RmM3ADkh3JxfZ7Inn2fo9sIGHZlcpeNTafq43uTPe3JCuDFncObE1Crd+rJGh5+m6NizVXqbLdsA3BBk53FCUMns2Q4oEHcfYwDQWxVOubfD1bkiDU+keJ8dDafplbG7anpyb4crYvkPT4jnMzKTKQqndldAz+7tIDOPEwIkm9kDodPp8FshVgG2A/qCW24I9Z8duvvNohFxRx/Et6jR3p9xQzC3qnRnvkgjYnne+2rSeqW6BwDshiAzjxuCbGZfY0ThrVbLEwDkhgDhlyeqLW4+XvJqjCh80dzixugc79mrMfrN44YAyWT2QfCTFwQ/eUHwsxcEP3lB8JMNAYXJGk8LQEBhsv7rv0DhsahqQFA1IKgaBeHOyhrnB8novyeIjIagIWgILA1BSEMQ0hCENAQhDUFIQxDSEIRsCChM1v/ff6Cy9AsSMSlLu0Av/QAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA/QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADn0lEQVRoQ+2YT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532yapM2fJo1JXud5Jel0u8nOrBQU5gcPdLfzdvb97exs0qFEIkG6CQQC2vH5fNo59DRKhzWC8V5qWEKj0VBOPp/npnRYXl7mpqrVqnL8fj9fpA43v+Q91RgJRoKRwBgJAiNBYCQIjASBkSAwEgRGgqAnAY2pJp1OswQ0pppgMMgS0JhqxsfH+XM9LlI1514nPdUMrayskG4gQTeQoBsvX4a81LAEHbLZLDelSiQS4dWAppyWfb9gNeAidcCd9VJz4BJyudz/L6HValEqlaJSqcTHKhIKO226MrdOT36W+VhFQrJUpkuzaXr8I8/HKhLs86hIcKoZKAECMpkM7wMQAdwkYJKxoEVD4mIuz+X4nJsECLg6l+GaizNpPucmwWkeNwn9avpK6HQ63DB+jzcIhIBBEprtDt34bPFmMzqTpfX6n5pBEkrlKo19zHDN+XcpihbLfH6QhH7zDJIwqKYnAZ8B0GytVuPjYrFIoVCIotEobW9v8zkgS1jc3KELs+LYqpOYgx6GNunIsxidnU7Sh3ydxwBZwnx2k0YDKZqOF6lcqZJvyeKaM6/i9DZZ7MmRJajOI0vQqelJwAaGn1dXV8myLAqHw7yz1+u7BUCWcHthg82efpmgu4sFOja5Rien4vRpo8G/7yJLuDWf5ZpTU2t05+s6HX0eoxMv1uh9stQTYJegOo8sQadmz+OABnH3cQ4CuqtCxv44XJ/P0fBEjJ+z4/44vcnurpou9sfhmlj+wxPi/YyayRj5Y7sroBv746AyjywBqNbskdBut/lTIVYBHgfsC3bsEmq/2nT/e5FGxB19FN6iemt/jV2CtVWhews5GhHL88E3izbKlT0CELsElXnsElRr9m2MaLzZbDoKAHYJAH88Umny5uOE08aIxpesLd4Y5fPdOG2MbvPYJQCVmn0S3HCS4IaTBLc4SXDDSYIbPQloTDV4W0ACGlPNP/8FCq9F3UCCbiBBN2gId1Y1GO+lhiXoUCgUuCkdsBrQlA5YDbhIHboCdNgjQb7T/QJkCXj1uAXIEpzG2ANkCU5j7AGyBKcx9gAjQWAkCIwEgZEgMBIERoLASBD88xJwgcBpjD0A473U9CSoIktQRZagiixBFVmCKj0JaEw1+McrJKAx1fzNF6iDT5R+AxOLNj+SFfOFAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+ 191, 191, 191
+ White
+ 191, 191, 191
+ Office2010
+ 191, 191, 191
+
+
+
+
+ Standard
+
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8wMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADlUlEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIsWLFVKXQKrZJatJ8N5MmafPRpDHJ8b5Hkt5MJ5l7BxSF+8ALncmc3DnP3Lkz6UgikSDdBAIB7fh8Pu0ceBylgxrB8V5qWEKj0VBOPp/npnRYWVnhpqrVqnL8fj+fpA7XP+c91RgJRoKRwBgJAiNBYCQIjASBkSAwEgRGgqAnAY2pJp1OswQ0pppgMMgS0JhqJicn+b0eJ6maMy+TnmpGVldXSTeQoBtI0I2XH0NealiCDtlslptSJRKJ8GxAU07TflAwG3CSOuDKeqn54xJyudz/L6HValEqlaJSqcTbKhIKu226NL9Bj36UeVtFQrJUpgvv0vTwe563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcnM/xPjcJEHB5PsM15+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDl37ZPFiMz6XpY3675phEkrlKk18yHDN2TcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnZ2eB+QJSxt7dK5d2LbqpMYg+6HtujQkxidnk3S+3ydjwGyhIXsFo0HUjQbL1K5UiXfssU1p17E6XWy2JMjS1AdR5agU9OTgAUMf6+trZFlWRQOh3llr9f3CoAs4ebiJps9+TxBt5cKdGR6nY7PxOnjZoM/7yJLuLGQ5ZoTM+t068sGHX4ao2PP1ultstQTYJegOo4sQaem73ZAg7j62AcB3VkhY78dri7kaHQqxvfZUX+cXmX3Zk0X++1wRUz/0SnxfEbNdIz8sb0Z0I39dlAZR5YAVGv6JLTbbX4rxCzA7YB1wY5dQu1nm+5+K9KYuKIPwttUb+2vsUuwtit0ZzFHY2J63vtq0Wa50icAsUtQGccuQbVm38KIxpvNpqMAYJcA8OWRSpMXHyecFkY0vmxt88Io7+/GaWF0G8cuAajU7JPghpMEN5wkuMVJghtOEtzoSUBjqsHTAhLQmGr++R9QeCzqBhJ0Awm6QUO4sqrB8V5qWIIOhUKBm9KhK0EHzAacpA64sl5qehLkKz0oQJaAR49bgCzB6Rh7gCzB6Rh7gCzB6Rh7gJEgMBIERoLASBAYCQIjQWAkCIwEQZ8EVWQJqsgSVJElqCJLUKUnAY2pBv94RVO6gQQ0ppq/9wMqSb8AWg1JD6G7pzMAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+ False
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA2wAAAAKJUE5HDQoaCgAAAA1JSERSAAAACgAAAAoIBgAAAI0yz70AAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M1cbXjNgAAAFVJREFUKFNj+P//Pxi3trZeAGIBGB8dwxlARf+B+AEQGyArgGE4A6oQhD8AcQCyIhDGphCGC4hVCMILqKqwASaHSyHIMwnIikAYXSFIEcHgwRPg/xkAphkSTK5IMV8AAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA6AAAAAKJUE5HDQoaCgAAAA1JSERSAAAACgAAAAoIBgAAAI0yz70AAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M1cbXjNgAAAGJJREFUKFNj+P//P1EYqyA2zMCw6t4FIP5PAF8AKRQA4g9Iguj4ARALQIxddc8AiLEpBokZgNXA3bDqXgKSAhgOgMvDGFDFDUiKClDkkDlggVX3FoAwhji6AC6MVRAT/2cAAJhQETR6tnZYAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ Never
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Test/Test.sln b/SRC/MESWin/SYS4/21670ll/MESWin/Test/Test.sln
new file mode 100644
index 0000000..dbab07c
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/Test/Test.sln
@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Test", "Test.vbproj", "{C4A48E3F-38E4-4E88-A47D-FA5510686E57}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Debug|x86.ActiveCfg = Debug|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Debug|x86.Build.0 = Debug|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Release|x86.ActiveCfg = Release|x86
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Test/Test.vbproj b/SRC/MESWin/SYS4/21670ll/MESWin/Test/Test.vbproj
new file mode 100644
index 0000000..dc4d40c
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/Test/Test.vbproj
@@ -0,0 +1,195 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {C4A48E3F-38E4-4E88-A47D-FA5510686E57}
+ WinExe
+ Test
+ Test
+ 512
+ WindowsFormsWithCustomSubMain
+ v4.6.2
+
+
+
+
+
+
+
+
+
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+ Sub Main
+
+
+ true
+ true
+ true
+ ..\..\MESClient\
+ Test.xml
+ 0
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ full
+ x86
+ MinimumRecommendedRules.ruleset
+ false
+
+
+ true
+ bin\x86\Release\
+ Test.xml
+ true
+ 0
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ pdbonly
+ x86
+ MinimumRecommendedRules.ruleset
+ false
+
+
+ true
+
+
+ iMES.snk
+
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Shared.v19.1.dll
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinDock.v19.1.dll
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinExplorerBar.v19.1.dll
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinToolbars.v19.1.dll
+
+
+ False
+ C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.v19.1.dll
+
+
+ ..\..\MESClient\COM_ChkPassword.dll
+
+
+ ..\..\MESClient\COM_Kit.dll
+
+
+ ..\..\MES_C_DLL\iMESException.dll
+
+
+ ..\..\MES_C_DLL\iMESExceptionManager.dll
+
+
+ ..\..\MES_C_DLL\iMESMainMenu.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+
+
+ True
+ Application.myapp
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+ MDI_Panel.vb
+
+
+
+ VbMyResourcesResXFileCodeGenerator
+ My.Resources
+ Designer
+ Resources.Designer.vb
+
+
+
+
+
+
+ MyApplicationCodeGenerator
+ Application.Designer.vb
+
+
+ SettingsSingleFileGenerator
+ My
+ Settings.Designer.vb
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Test/app.config b/SRC/MESWin/SYS4/21670ll/MESWin/Test/app.config
new file mode 100644
index 0000000..48769a1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/Test/app.config
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Test/iMES.snk b/SRC/MESWin/SYS4/21670ll/MESWin/Test/iMES.snk
new file mode 100644
index 0000000..4206cdc
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/Test/iMES.snk differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/Test/modTest.vb b/SRC/MESWin/SYS4/21670ll/MESWin/Test/modTest.vb
new file mode 100644
index 0000000..c16b586
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/Test/modTest.vb
@@ -0,0 +1,183 @@
+Imports System.Deployment.Application
+Imports System.IO
+Imports System.Reflection
+Imports iMESExceptionManager
+
+Module modTest
+
+ Public Const defInteger As Integer = -999 '宣告整數使用的常數,用以辨識參數是否有傳入Function中。
+ Public Const defString As String = "Null" '宣告字串使用的常數,用以辨識參數是否有傳入Function中。
+ Public Const defDateTime As Date = #12/31/1900# '宣告日期使用的常數,用以辨識參數是否有傳入Function中。
+ Public Const defSingle As Single = -999 '宣告單精準數使用的常數,用以辨識參數是否有傳入Function中。
+ Public Const defDouble As Double = -999 '宣告雙精準數使用的常數,用以辨識參數是否有傳入Function中。
+ Public Const strAddTagLabel As String = "extrabase" 'Add by py for Combine Addition XML doc
+ Public Const strAddTagName As String = "ExtraBase" 'Add by py for Combine Addition XML doc
+ Public Const defWinErrCode As String = "0000-899999"
+ Public Const defNullDate As Date = #12/31/1910# '宣告日期使用的常數,用以辨識參數是否要變更為Null。
+ Public Const defNullInteger As Integer = -9999 '宣告數值使用的常數,用以辨識參數是否要變更為Null。
+
+ Sub Main()
+ Dim WinFormInfo As System.Windows.Forms.SystemInformation
+
+ '*****************************************************************************************************************
+
+ Dim ArgumentStr() As String = Split(Microsoft.VisualBasic.Command()) '取得傳給此執行檔的參數(應用程式路徑,UserID,Password)
+ Dim i As Integer
+ Dim App_Path As String = ""
+
+ 'Modify By Peter 2005/06/21 Add /WSH
+ For i = LBound(ArgumentStr) To UBound(ArgumentStr)
+ If InStr(UCase(ArgumentStr(i)), "/DIR:") > 0 Then
+ App_Path = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
+ ElseIf InStr(UCase(ArgumentStr(i)), "/UID:") > 0 Then
+ gUserNo = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
+ ElseIf InStr(UCase(ArgumentStr(i)), "/UNA:") > 0 Then
+ gUserName = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
+ ElseIf InStr(UCase(ArgumentStr(i)), "/LVL:") > 0 Then
+ gUserLevel = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
+ ElseIf InStr(UCase(ArgumentStr(i)), "/LAN:") > 0 Then
+ gLanguageMode = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
+ ElseIf InStr(UCase(ArgumentStr(i)), "/WSH:") > 0 Then
+ gMESWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
+ ElseIf InStr(UCase(ArgumentStr(i)), "/CSH:") > 0 Then
+ gCUSWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
+ ElseIf InStr(UCase(ArgumentStr(i)), "/ENV:") > 0 Then
+ gSettingMode = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
+ ElseIf InStr(UCase(ArgumentStr(i)), "/SSH:") > 0 Then
+ gSFCWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
+ ElseIf InStr(UCase(ArgumentStr(i)), "/ESH:") > 0 Then
+ gERPWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
+ ElseIf InStr(UCase(ArgumentStr(i)), "/SSL:") > 0 Then
+ gEnableSSL = IIf(Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length).ToUpper = "TRUE", True, False)
+ End If
+ Next
+
+ '*****************************************************************************************************************
+ If App_Path = "" Then
+ gAppPath = Application.StartupPath
+ Else
+ gAppPath = App_Path
+ End If
+
+ If gUserNo = "" And gUserName = "" Then
+
+ Using obj As New frmCOMChkPassword
+ obj.ShowDialog()
+ End Using
+
+ Else
+ gReturnKeyValue = gUserNo
+ End If
+
+ '用來做為是否可以進入系統的判斷
+ If gReturnKeyValue <> "" Then
+ '取得電腦名稱
+ gComputerName = WinFormInfo.ComputerName
+
+ iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode
+
+ ' 2014/12/26 YF, Coding時套用Pro5 Style
+ Infragistics.Win.AppStyling.StyleManager.Load(New MemoryStream(Global.Test.My.Resources.Resources.iMES))
+ gEnableStyle = True
+
+ '進入之系統
+ Dim fMain As New MDI_Panel
+ fMain.ShowDialog()
+
+ End If
+
+ End Sub
+
+ Public Function LoadAssembly(ByVal pFileName As String) As Assembly
+
+ Dim mainAssembly As System.Reflection.Assembly
+ Dim myfieldinfo() As System.Reflection.FieldInfo
+ Dim strAppBase As String = AppDomain.CurrentDomain.BaseDirectory
+ Dim strFilePath As String
+ Dim strNamespace As String
+
+ Try
+
+ '判斷是否使用ClickOnce
+ If ApplicationDeployment.IsNetworkDeployed Then
+ 'ClickOnce架構下將strAppBase改指回Smart Client
+ Dim tempUri As System.Uri = ApplicationDeployment.CurrentDeployment.UpdateLocation
+ strAppBase = tempUri.ToString.Replace("/ClickOnce/MESSeries.application", "")
+ End If
+
+ strFilePath = strAppBase & "/" & pFileName
+
+ '檢查檔案是否存在
+ If (Not funCheckFileExist(strFilePath)) Then
+ Throw New iMESException.MESException("0000-202115", strFilePath)
+ End If
+
+ mainAssembly = Assembly.LoadFrom(strFilePath)
+
+ 'strNamespace = mainAssembly.GetExportedTypes(0).Namespace
+
+ '設定值予Module Public變數
+ 'myfieldinfo = mainAssembly.GetType(strNamespace & ".modWIN").GetFields()
+
+ 'For i As Integer = 0 To myfieldinfo.Length - 1
+ ' If myfieldinfo(i).Name.ToUpper = "gUserNo".ToUpper Then
+ ' myfieldinfo(i).SetValue(myfieldinfo(i), gUserNo)
+ ' ElseIf myfieldinfo(i).Name.ToUpper = "gUserName".ToUpper Then
+ ' myfieldinfo(i).SetValue(myfieldinfo(i), gUserName)
+ ' ElseIf myfieldinfo(i).Name.ToUpper = "gComputerName".ToUpper Then
+ ' myfieldinfo(i).SetValue(myfieldinfo(i), gComputerName)
+ ' ElseIf myfieldinfo(i).Name.ToUpper = "gUserLevel".ToUpper Then
+ ' myfieldinfo(i).SetValue(myfieldinfo(i), gUserLevel)
+ ' ElseIf myfieldinfo(i).Name.ToUpper = "gLanguageMode".ToUpper Then
+ ' myfieldinfo(i).SetValue(myfieldinfo(i), gLanguageMode)
+ ' ElseIf myfieldinfo(i).Name.ToUpper = "gAppPath".ToUpper Then
+ ' myfieldinfo(i).SetValue(myfieldinfo(i), gAppPath)
+ ' ElseIf myfieldinfo(i).Name.ToUpper = "gMESWebServiceHost".ToUpper Then
+ ' myfieldinfo(i).SetValue(myfieldinfo(i), gMESWebServiceHost)
+ ' ElseIf myfieldinfo(i).Name.ToUpper = "gCUSWebServiceHost".ToUpper Then
+ ' myfieldinfo(i).SetValue(myfieldinfo(i), gCUSWebServiceHost)
+ ' ElseIf myfieldinfo(i).Name.ToUpper = "gSFCWebServiceHost".ToUpper Then
+ ' myfieldinfo(i).SetValue(myfieldinfo(i), gSFCWebServiceHost)
+ ' ElseIf myfieldinfo(i).Name.ToUpper = "gERPWebServiceHost".ToUpper Then
+ ' myfieldinfo(i).SetValue(myfieldinfo(i), gERPWebServiceHost)
+ ' ElseIf myfieldinfo(i).Name.ToUpper = "gSettingMode".ToUpper Then
+ ' myfieldinfo(i).SetValue(myfieldinfo(i), gSettingMode)
+ ' ElseIf myfieldinfo(i).Name.ToUpper = "gEnterpriseNo".ToUpper Then
+ ' myfieldinfo(i).SetValue(myfieldinfo(i), gEnterpriseNo)
+ ' ElseIf myfieldinfo(i).Name.ToUpper = "gEnableSSL".ToUpper Then
+ ' myfieldinfo(i).SetValue(myfieldinfo(i), gEnableSSL)
+ ' ElseIf myfieldinfo(i).Name.ToUpper = "gConfigFile".ToUpper Then
+ ' myfieldinfo(i).SetValue(myfieldinfo(i), gConfigFile)
+ ' ElseIf myfieldinfo(i).Name.ToUpper = "gEnableStyle".ToUpper Then
+ ' myfieldinfo(i).SetValue(myfieldinfo(i), True)
+ ' ElseIf myfieldinfo(i).Name.ToUpper = "gSYSmode".ToUpper Then
+ ' myfieldinfo(i).SetValue(myfieldinfo(i), gSYSmode)
+ ' End If
+ 'Next
+
+ Catch ex As Exception
+ mainAssembly = Nothing
+ ExceptionManager.iMESShowDialog(defWinErrCode, "Load Assembly Fail!" & vbCrLf & ex.Message, ex.StackTrace)
+ End Try
+
+ Return mainAssembly
+
+ End Function
+
+ '檢查檔案是否存在
+ Private Function funCheckFileExist(ByVal strFilePath As String) As Boolean
+
+ 'Network架構下
+ If ApplicationDeployment.IsNetworkDeployed OrElse
+ Application.ExecutablePath.ToLower.StartsWith("http") Then
+ '暫不檢查
+ ElseIf IO.File.Exists(strFilePath) = False Then
+ '檔案架構下
+ Return False
+ End If
+
+ Return True
+
+ End Function
+
+End Module
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/shared file/DirectionDown.png b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/DirectionDown.png
new file mode 100644
index 0000000..8f89533
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/DirectionDown.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/shared file/DirectionLeft.png b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/DirectionLeft.png
new file mode 100644
index 0000000..80ea854
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/DirectionLeft.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/shared file/DirectionRight.png b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/DirectionRight.png
new file mode 100644
index 0000000..cc26c41
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/DirectionRight.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/shared file/DirectionUp.png b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/DirectionUp.png
new file mode 100644
index 0000000..1f2c2ab
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/DirectionUp.png differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/shared file/Export16x16.ico b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/Export16x16.ico
new file mode 100644
index 0000000..07fe93e
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/Export16x16.ico differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/shared file/MakeVersion.targets b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/MakeVersion.targets
new file mode 100644
index 0000000..f07a58c
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/MakeVersion.targets
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ $([System.DateTime]::Now.ToString("yy").Substring(1, 1))
+ $([System.DateTime]::Now.ToString("MM"))
+ $([System.DateTime]::Now.ToString("dd"))
+
+ <Assembly: Reflection.AssemblyFileVersion("6.0.5.$(Year)$(Month)$(Date)")>
+
+
+
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/shared file/MakeVersion_CS.targets b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/MakeVersion_CS.targets
new file mode 100644
index 0000000..c5267d8
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/MakeVersion_CS.targets
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ $([System.DateTime]::Now.ToString("yy").Substring(1, 1))
+ $([System.DateTime]::Now.ToString("MM"))
+ $([System.DateTime]::Now.ToString("dd"))
+
+ [assembly: System.Reflection.AssemblyFileVersion("6.0.5.$(Year)$(Month)$(Date)")]
+
+
+
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/shared file/Save16x16.ico b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/Save16x16.ico
new file mode 100644
index 0000000..90af81e
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/Save16x16.ico differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/shared file/arERF_General.resx b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/arERF_General.resx
new file mode 100644
index 0000000..f7c09a6
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/arERF_General.resx
@@ -0,0 +1,411 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ #,##0.0000
+
+
+
+
+ /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAICAgICAgICAgIDAgICBAUEAgIEBQYFBQUFBQYHBgYGBgYG
+ BwcICAkICAcKCgsLCgoODg4ODg4ODg4ODg4ODg7/2wBDAQMDAwYFBgsHBwsODAoMDhEQEBAQEREODg4O
+ Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg7/wAARCAA+ANEDAREAAhEBAxEB/8QA
+ HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh
+ MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW
+ V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG
+ x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF
+ BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV
+ YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
+ hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq
+ 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9/KACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgA
+ oAKACgAoAKACgAoAKACgAoAxdf1mx8N6HrXiHUmKadoNrNeX7qMkRQRmRyB34WtcNh3WqRpx+KTSXq3Z
+ GGJxCo05VJbRTb9Ernwl8Ov23ZPGPxI0nwpq3gyLS9D8T3qWOjXsUzPPFJO4jg85du1txIBxjbnPOK/S
+ 828Ofq2ElWjUvKEeaSa0aSu7dvLe5+a5V4ifWcWqMqdozlZO+qbdlfv57WP0Hr8vP1E8Z+IXxs8HfD+Q
+ aXK8uv8Aiebi28MWI8yclum/HCfjz6A18tnnFuFy98jvOr0hHV/Pt+fkfWZBwZi8yXtFaFJbzlpH5d/y
+ 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
+ 5pDFoA//2Q==
+
+
+
+
+ AAEAAAD/////AQAAAAAAAAAEAQAAABZTeXN0ZW0uSU8uTWVtb3J5U3RyZWFtCgAAAAdfYnVmZmVyB19v
+ cmlnaW4JX3Bvc2l0aW9uB19sZW5ndGgJX2NhcGFjaXR5C19leHBhbmRhYmxlCV93cml0YWJsZQpfZXhw
+ b3NhYmxlB19pc09wZW4dTWFyc2hhbEJ5UmVmT2JqZWN0K19faWRlbnRpdHkHAAAAAAAAAAACAggICAgB
+ AQEBCQIAAAAAAAAAAAAAAMAeAADAHgAAAQEBAQoPAgAAAMAeAAACALseAAD/2P/gABBKRklGAAEBAQBg
+ AGAAAP/bAEMAAgICAgICAgICAgMCAgIEBQQCAgQFBgUFBQUFBgcGBgYGBgYHBwgICQgIBwoKCwsKCg4O
+ Dg4ODg4ODg4ODg4ODv/bAEMBAwMDBgUGCwcHCw4MCgwOERAQEBAREQ4ODg4ODg4ODg4ODg4ODg4ODg4O
+ Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODv/AABEIAD4A0QMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAA
+ AAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgj
+ QrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2
+ d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj
+ 5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIE
+ BAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYn
+ KCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqi
+ o6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEA
+ AhEDEQA/AP38oAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAC
+ 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
+
+
+
+
+
+
+
+
+
+ True
+
+
+ font-family: Arial; font-style: normal; font-variant: inherit; font-weight: normal; font-size: 10pt; font-size-adjust: inherit; font-stretch: inherit; color: rgb(0,0,0); background-repeat: inherit; background-attachment: inherit; opacity: inherit; word-spacing: inherit; letter-spacing: inherit; text-decoration: none; vertical-align: inherit; text-transform: inherit; text-align: inherit; text-indent: inherit; unicode-bidi: inherit; line-height: inherit; white-space: inherit; ddo-char-set: 0;
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/shared file/arERF_General.vb b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/arERF_General.vb
new file mode 100644
index 0000000..11bede1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/arERF_General.vb
@@ -0,0 +1,1313 @@
+Imports GrapeCity.ActiveReports.Document
+Imports GrapeCity.ActiveReports.Document.Section
+Imports GrapeCity.ActiveReports.SectionReportModel
+Imports GrapeCity.ActiveReports.Controls
+Imports GrapeCity.ActiveReports
+Imports System
+
+
+
+Public Class arERF_General
+
+ Inherits GrapeCity.ActiveReports.SectionReport
+
+ Public Sub New()
+ MyBase.New()
+ InitializeComponent()
+ End Sub
+
+ '//Public Variables
+ Public ERFNo, LotNo, CustomerNo, OPNo, ProductNo, RuleNo, MClassNo, HoldDescription, Creator As String
+ Public CreateDate As DateTime
+
+#Region "ActiveReports Designer generated code"
+ Private WithEvents PageHeader As GrapeCity.ActiveReports.SectionReportModel.PageHeader = Nothing
+ Private WithEvents GroupHeader1 As GrapeCity.ActiveReports.SectionReportModel.GroupHeader = Nothing
+ Private WithEvents Detail As GrapeCity.ActiveReports.SectionReportModel.Detail = Nothing
+ Private WithEvents GroupFooter1 As GrapeCity.ActiveReports.SectionReportModel.GroupFooter = Nothing
+ Private WithEvents PageFooter As GrapeCity.ActiveReports.SectionReportModel.PageFooter = Nothing
+ Private Picture1 As GrapeCity.ActiveReports.SectionReportModel.Picture = Nothing
+ Private Shape1 As GrapeCity.ActiveReports.SectionReportModel.Shape = Nothing
+ Private lblERFReport As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private txtDate As GrapeCity.ActiveReports.SectionReportModel.TextBox = Nothing
+ Private lblPrintDate As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private lblERFNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private txtERFNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private Line2 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing
+ Private Line5 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing
+ Private lblCustomerNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private lblLotNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private lblProductNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private txtLotNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private txtCustomerNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private txtProductNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private Barcode1 As GrapeCity.ActiveReports.SectionReportModel.Barcode = Nothing
+ Private lblOPNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private txtOPNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private lblRuleNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private txtRuleNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private lblMClassNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private txtMClassNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private lblHoldDescription As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private lblCreator As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private txtCreator As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private lblCreateDate As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private Line27 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing
+ Private Line28 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing
+ Private Line29 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing
+ Private Line30 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing
+ Private Line31 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing
+ Private Line32 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing
+ Private txtCreateDate As GrapeCity.ActiveReports.SectionReportModel.TextBox = Nothing
+ Private txtHoldDescription As GrapeCity.ActiveReports.SectionReportModel.TextBox = Nothing
+ Private lblHoldItemNo As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private lblQty As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private lblHoldDisposition As GrapeCity.ActiveReports.SectionReportModel.Label = Nothing
+ Private Line33 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing
+ Private Line34 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing
+ Private Line35 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing
+ Private txtHoldItemNo As GrapeCity.ActiveReports.SectionReportModel.TextBox = Nothing
+ Private txtQty As GrapeCity.ActiveReports.SectionReportModel.TextBox = Nothing
+ Private txtHoldDisposition As GrapeCity.ActiveReports.SectionReportModel.TextBox = Nothing
+ Private Line36 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing
+ Friend WithEvents Line1 As GrapeCity.ActiveReports.SectionReportModel.Line
+ Friend WithEvents Label1 As GrapeCity.ActiveReports.SectionReportModel.Label
+ Friend WithEvents Label2 As GrapeCity.ActiveReports.SectionReportModel.Label
+ Friend WithEvents Label3 As GrapeCity.ActiveReports.SectionReportModel.Label
+ Friend WithEvents Label4 As GrapeCity.ActiveReports.SectionReportModel.Label
+ Friend WithEvents Label5 As GrapeCity.ActiveReports.SectionReportModel.Label
+ Private Line37 As GrapeCity.ActiveReports.SectionReportModel.Line = Nothing
+ Private Sub InitializeComponent()
+ Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(arERF_General))
+ Me.Detail = New GrapeCity.ActiveReports.SectionReportModel.Detail
+ Me.txtHoldDisposition = New GrapeCity.ActiveReports.SectionReportModel.TextBox
+ Me.txtHoldItemNo = New GrapeCity.ActiveReports.SectionReportModel.TextBox
+ Me.txtQty = New GrapeCity.ActiveReports.SectionReportModel.TextBox
+ Me.Line36 = New GrapeCity.ActiveReports.SectionReportModel.Line
+ Me.Line37 = New GrapeCity.ActiveReports.SectionReportModel.Line
+ Me.Line1 = New GrapeCity.ActiveReports.SectionReportModel.Line
+ Me.PageHeader = New GrapeCity.ActiveReports.SectionReportModel.PageHeader
+ Me.Picture1 = New GrapeCity.ActiveReports.SectionReportModel.Picture
+ Me.Shape1 = New GrapeCity.ActiveReports.SectionReportModel.Shape
+ Me.Line29 = New GrapeCity.ActiveReports.SectionReportModel.Line
+ Me.txtCreateDate = New GrapeCity.ActiveReports.SectionReportModel.TextBox
+ Me.lblERFReport = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.txtDate = New GrapeCity.ActiveReports.SectionReportModel.TextBox
+ Me.lblPrintDate = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.lblERFNo = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.txtERFNo = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.Line2 = New GrapeCity.ActiveReports.SectionReportModel.Line
+ Me.Line5 = New GrapeCity.ActiveReports.SectionReportModel.Line
+ Me.lblCustomerNo = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.lblLotNo = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.lblProductNo = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.txtLotNo = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.txtCustomerNo = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.txtProductNo = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.Barcode1 = New GrapeCity.ActiveReports.SectionReportModel.Barcode
+ Me.lblOPNo = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.txtOPNo = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.lblRuleNo = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.txtRuleNo = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.lblMClassNo = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.txtMClassNo = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.lblHoldDescription = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.lblCreator = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.txtCreator = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.lblCreateDate = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.Line27 = New GrapeCity.ActiveReports.SectionReportModel.Line
+ Me.Line28 = New GrapeCity.ActiveReports.SectionReportModel.Line
+ Me.Line30 = New GrapeCity.ActiveReports.SectionReportModel.Line
+ Me.Line31 = New GrapeCity.ActiveReports.SectionReportModel.Line
+ Me.Line32 = New GrapeCity.ActiveReports.SectionReportModel.Line
+ Me.txtHoldDescription = New GrapeCity.ActiveReports.SectionReportModel.TextBox
+ Me.Label1 = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.Label2 = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.Label3 = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.Label4 = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.Label5 = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.PageFooter = New GrapeCity.ActiveReports.SectionReportModel.PageFooter
+ Me.GroupHeader1 = New GrapeCity.ActiveReports.SectionReportModel.GroupHeader
+ Me.lblHoldItemNo = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.lblQty = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.lblHoldDisposition = New GrapeCity.ActiveReports.SectionReportModel.Label
+ Me.Line33 = New GrapeCity.ActiveReports.SectionReportModel.Line
+ Me.Line34 = New GrapeCity.ActiveReports.SectionReportModel.Line
+ Me.Line35 = New GrapeCity.ActiveReports.SectionReportModel.Line
+ Me.GroupFooter1 = New GrapeCity.ActiveReports.SectionReportModel.GroupFooter
+ CType(Me.txtHoldDisposition, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtHoldItemNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtQty, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.Picture1, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtCreateDate, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.lblERFReport, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtDate, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.lblPrintDate, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.lblERFNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtERFNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.lblCustomerNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.lblLotNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.lblProductNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtLotNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtCustomerNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtProductNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.lblOPNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtOPNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.lblRuleNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtRuleNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.lblMClassNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtMClassNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.lblHoldDescription, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.lblCreator, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtCreator, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.lblCreateDate, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.txtHoldDescription, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.Label1, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.Label2, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.Label3, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.Label4, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.Label5, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.lblHoldItemNo, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.lblQty, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.lblHoldDisposition, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me, System.ComponentModel.ISupportInitialize).BeginInit()
+ '
+ 'Detail
+ '
+ Me.Detail.ColumnSpacing = 0.0!
+ Me.Detail.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.txtHoldDisposition, Me.txtHoldItemNo, Me.txtQty, Me.Line36, Me.Line37, Me.Line1})
+ Me.Detail.Height = 0.3333333!
+ Me.Detail.KeepTogether = True
+ Me.Detail.Name = "Detail"
+ '
+ 'txtHoldDisposition
+ '
+ Me.txtHoldDisposition.Border.BottomColor = System.Drawing.Color.Black
+ Me.txtHoldDisposition.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtHoldDisposition.Border.LeftColor = System.Drawing.Color.Black
+ Me.txtHoldDisposition.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtHoldDisposition.Border.RightColor = System.Drawing.Color.Black
+ Me.txtHoldDisposition.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtHoldDisposition.Border.TopColor = System.Drawing.Color.Black
+ Me.txtHoldDisposition.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtHoldDisposition.DataField = "HoldDisposition"
+ Me.txtHoldDisposition.Height = 0.1968504!
+ Me.txtHoldDisposition.Left = 2.386811!
+ Me.txtHoldDisposition.Name = "txtHoldDisposition"
+ Me.txtHoldDisposition.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; "
+ Me.txtHoldDisposition.Text = Nothing
+ Me.txtHoldDisposition.Top = 0.0492126!
+ Me.txtHoldDisposition.Width = 5.364173!
+ '
+ 'txtHoldItemNo
+ '
+ Me.txtHoldItemNo.Border.BottomColor = System.Drawing.Color.Black
+ Me.txtHoldItemNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtHoldItemNo.Border.LeftColor = System.Drawing.Color.Black
+ Me.txtHoldItemNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtHoldItemNo.Border.RightColor = System.Drawing.Color.Black
+ Me.txtHoldItemNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtHoldItemNo.Border.TopColor = System.Drawing.Color.Black
+ Me.txtHoldItemNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtHoldItemNo.DataField = "HoldItemNo"
+ Me.txtHoldItemNo.Height = 0.1968504!
+ Me.txtHoldItemNo.Left = 0.1476378!
+ Me.txtHoldItemNo.Name = "txtHoldItemNo"
+ Me.txtHoldItemNo.Style = "font-size: 9.75pt; font-family: 新細明體; "
+ Me.txtHoldItemNo.Text = Nothing
+ Me.txtHoldItemNo.Top = 0.0492126!
+ Me.txtHoldItemNo.Width = 1.353346!
+ '
+ 'txtQty
+ '
+ Me.txtQty.Border.BottomColor = System.Drawing.Color.Black
+ Me.txtQty.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtQty.Border.LeftColor = System.Drawing.Color.Black
+ Me.txtQty.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtQty.Border.RightColor = System.Drawing.Color.Black
+ Me.txtQty.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtQty.Border.TopColor = System.Drawing.Color.Black
+ Me.txtQty.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtQty.DataField = "Qty"
+ Me.txtQty.Height = 0.2!
+ Me.txtQty.Left = 1.572917!
+ Me.txtQty.Name = "txtQty"
+ Me.txtQty.OutputFormat = resources.GetString("txtQty.OutputFormat")
+ Me.txtQty.Style = "font-size: 9.75pt; font-family: 新細明體; "
+ Me.txtQty.Text = Nothing
+ Me.txtQty.Top = 0.05298557!
+ Me.txtQty.Width = 0.75!
+ '
+ 'Line36
+ '
+ Me.Line36.AnchorBottom = True
+ Me.Line36.Border.BottomColor = System.Drawing.Color.Black
+ Me.Line36.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line36.Border.LeftColor = System.Drawing.Color.Black
+ Me.Line36.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line36.Border.RightColor = System.Drawing.Color.Black
+ Me.Line36.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line36.Border.TopColor = System.Drawing.Color.Black
+ Me.Line36.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line36.Height = 0.31!
+ Me.Line36.Left = 0.0625!
+ Me.Line36.LineWeight = 1.0!
+ Me.Line36.Name = "Line36"
+ Me.Line36.Top = 0.0!
+ Me.Line36.Width = 0.0003187731!
+ Me.Line36.X1 = 0.0625!
+ Me.Line36.X2 = 0.06281877!
+ Me.Line36.Y1 = 0.0!
+ Me.Line36.Y2 = 0.31!
+ '
+ 'Line37
+ '
+ Me.Line37.AnchorBottom = True
+ Me.Line37.Border.BottomColor = System.Drawing.Color.Black
+ Me.Line37.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line37.Border.LeftColor = System.Drawing.Color.Black
+ Me.Line37.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line37.Border.RightColor = System.Drawing.Color.Black
+ Me.Line37.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line37.Border.TopColor = System.Drawing.Color.Black
+ Me.Line37.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line37.Height = 0.31!
+ Me.Line37.Left = 7.8125!
+ Me.Line37.LineWeight = 1.0!
+ Me.Line37.Name = "Line37"
+ Me.Line37.Top = 0.0!
+ Me.Line37.Width = 0.0003190041!
+ Me.Line37.X1 = 7.8125!
+ Me.Line37.X2 = 7.812819!
+ Me.Line37.Y1 = 0.0!
+ Me.Line37.Y2 = 0.31!
+ '
+ 'Line1
+ '
+ Me.Line1.Border.BottomColor = System.Drawing.Color.Black
+ Me.Line1.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line1.Border.LeftColor = System.Drawing.Color.Black
+ Me.Line1.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line1.Border.RightColor = System.Drawing.Color.Black
+ Me.Line1.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line1.Border.TopColor = System.Drawing.Color.Black
+ Me.Line1.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line1.Height = 0.0004101098!
+ Me.Line1.Left = 0.05856299!
+ Me.Line1.LineWeight = 1.0!
+ Me.Line1.Name = "Line1"
+ Me.Line1.Top = 0.3198819!
+ Me.Line1.Width = 7.756398!
+ Me.Line1.X1 = 0.05856299!
+ Me.Line1.X2 = 7.814961!
+ Me.Line1.Y1 = 0.3198819!
+ Me.Line1.Y2 = 0.320292!
+ '
+ 'PageHeader
+ '
+ Me.PageHeader.CanShrink = True
+ Me.PageHeader.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.Picture1, Me.Shape1, Me.Line29, Me.txtCreateDate, Me.lblERFReport, Me.txtDate, Me.lblPrintDate, Me.lblERFNo, Me.txtERFNo, Me.Line2, Me.Line5, Me.lblCustomerNo, Me.lblLotNo, Me.lblProductNo, Me.txtLotNo, Me.txtCustomerNo, Me.txtProductNo, Me.Barcode1, Me.lblOPNo, Me.txtOPNo, Me.lblRuleNo, Me.txtRuleNo, Me.lblMClassNo, Me.txtMClassNo, Me.lblHoldDescription, Me.lblCreator, Me.txtCreator, Me.lblCreateDate, Me.Line27, Me.Line28, Me.Line30, Me.Line31, Me.Line32, Me.txtHoldDescription, Me.Label1, Me.Label2, Me.Label3, Me.Label4, Me.Label5})
+ Me.PageHeader.Height = 2.760417!
+ Me.PageHeader.Name = "PageHeader"
+ '
+ 'Picture1
+ '
+ Me.Picture1.Border.BottomColor = System.Drawing.Color.Black
+ Me.Picture1.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Picture1.Border.LeftColor = System.Drawing.Color.Black
+ Me.Picture1.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Picture1.Border.RightColor = System.Drawing.Color.Black
+ Me.Picture1.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Picture1.Border.TopColor = System.Drawing.Color.Black
+ Me.Picture1.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Picture1.Height = 0.5!
+ Me.Picture1.Image = CType(resources.GetObject("Picture1.Image"), System.Drawing.Image)
+ Me.Picture1.ImageData = CType(resources.GetObject("Picture1.ImageData"), System.IO.Stream)
+ Me.Picture1.Left = 0.0!
+ Me.Picture1.LineColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer))
+ Me.Picture1.LineWeight = 0.0!
+ Me.Picture1.Name = "Picture1"
+ Me.Picture1.SizeMode = GrapeCity.ActiveReports.SectionReportModel.SizeModes.Zoom
+ Me.Picture1.Top = 0.0!
+ Me.Picture1.Width = 1.6875!
+ '
+ 'Shape1
+ '
+ Me.Shape1.Border.BottomColor = System.Drawing.Color.Black
+ Me.Shape1.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Shape1.Border.LeftColor = System.Drawing.Color.Black
+ Me.Shape1.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Shape1.Border.RightColor = System.Drawing.Color.Black
+ Me.Shape1.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Shape1.Border.TopColor = System.Drawing.Color.Black
+ Me.Shape1.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Shape1.Height = 2.25!
+ Me.Shape1.Left = 0.0625!
+ Me.Shape1.Name = "Shape1"
+ Me.Shape1.RoundingRadius = New GrapeCity.ActiveReports.Controls.CornersRadius(9.999999!)
+ Me.Shape1.Top = 0.5!
+ Me.Shape1.Width = 7.75!
+ '
+ 'Line29
+ '
+ Me.Line29.Border.BottomColor = System.Drawing.Color.Black
+ Me.Line29.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line29.Border.LeftColor = System.Drawing.Color.Black
+ Me.Line29.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line29.Border.RightColor = System.Drawing.Color.Black
+ Me.Line29.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line29.Border.TopColor = System.Drawing.Color.Black
+ Me.Line29.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line29.Height = 0.0001250505!
+ Me.Line29.Left = 0.0625!
+ Me.Line29.LineWeight = 1.0!
+ Me.Line29.Name = "Line29"
+ Me.Line29.Top = 1.6875!
+ Me.Line29.Width = 7.75!
+ Me.Line29.X1 = 7.8125!
+ Me.Line29.X2 = 0.0625!
+ Me.Line29.Y1 = 1.6875!
+ Me.Line29.Y2 = 1.687625!
+ '
+ 'txtCreateDate
+ '
+ Me.txtCreateDate.Border.BottomColor = System.Drawing.Color.Black
+ Me.txtCreateDate.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtCreateDate.Border.LeftColor = System.Drawing.Color.Black
+ Me.txtCreateDate.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtCreateDate.Border.RightColor = System.Drawing.Color.Black
+ Me.txtCreateDate.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtCreateDate.Border.TopColor = System.Drawing.Color.Black
+ Me.txtCreateDate.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtCreateDate.Height = 0.2!
+ Me.txtCreateDate.Left = 6.484375!
+ Me.txtCreateDate.Name = "txtCreateDate"
+ Me.txtCreateDate.OutputFormat = resources.GetString("txtCreateDate.OutputFormat")
+ Me.txtCreateDate.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; "
+ Me.txtCreateDate.Text = Nothing
+ Me.txtCreateDate.Top = 1.453125!
+ Me.txtCreateDate.Width = 1.328125!
+ '
+ 'lblERFReport
+ '
+ Me.lblERFReport.Border.BottomColor = System.Drawing.Color.Black
+ Me.lblERFReport.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblERFReport.Border.LeftColor = System.Drawing.Color.Black
+ Me.lblERFReport.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblERFReport.Border.RightColor = System.Drawing.Color.Black
+ Me.lblERFReport.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblERFReport.Border.TopColor = System.Drawing.Color.Black
+ Me.lblERFReport.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblERFReport.Height = 0.4429134!
+ Me.lblERFReport.HyperLink = ""
+ Me.lblERFReport.Left = 3.198819!
+ Me.lblERFReport.Name = "lblERFReport"
+ Me.lblERFReport.Style = "text-decoration: none; ddo-char-set: 0; font-weight: bold; font-style: normal; fo" & _
+ "nt-size: 24pt; font-family: Times New Roman; "
+ Me.lblERFReport.Text = "ERF Report"
+ Me.lblERFReport.Top = 0.0!
+ Me.lblERFReport.Width = 2.26378!
+ '
+ 'txtDate
+ '
+ Me.txtDate.Border.BottomColor = System.Drawing.Color.Black
+ Me.txtDate.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtDate.Border.LeftColor = System.Drawing.Color.Black
+ Me.txtDate.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtDate.Border.RightColor = System.Drawing.Color.Black
+ Me.txtDate.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtDate.Border.TopColor = System.Drawing.Color.Black
+ Me.txtDate.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtDate.Height = 0.2!
+ Me.txtDate.Left = 6.5!
+ Me.txtDate.Name = "txtDate"
+ Me.txtDate.Style = "font-size: 9.75pt; font-family: Times New Roman; "
+ Me.txtDate.Text = Nothing
+ Me.txtDate.Top = 0.25!
+ Me.txtDate.Width = 1.25!
+ '
+ 'lblPrintDate
+ '
+ Me.lblPrintDate.Border.BottomColor = System.Drawing.Color.Black
+ Me.lblPrintDate.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblPrintDate.Border.LeftColor = System.Drawing.Color.Black
+ Me.lblPrintDate.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblPrintDate.Border.RightColor = System.Drawing.Color.Black
+ Me.lblPrintDate.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblPrintDate.Border.TopColor = System.Drawing.Color.Black
+ Me.lblPrintDate.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblPrintDate.Height = 0.2!
+ Me.lblPrintDate.HyperLink = ""
+ Me.lblPrintDate.Left = 5.75!
+ Me.lblPrintDate.Name = "lblPrintDate"
+ Me.lblPrintDate.Style = "font-size: 9.75pt; font-family: Times New Roman; "
+ Me.lblPrintDate.Text = "Print Date"
+ Me.lblPrintDate.Top = 0.25!
+ Me.lblPrintDate.Width = 0.75!
+ '
+ 'lblERFNo
+ '
+ Me.lblERFNo.Border.BottomColor = System.Drawing.Color.Black
+ Me.lblERFNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblERFNo.Border.LeftColor = System.Drawing.Color.Black
+ Me.lblERFNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblERFNo.Border.RightColor = System.Drawing.Color.Black
+ Me.lblERFNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblERFNo.Border.TopColor = System.Drawing.Color.Black
+ Me.lblERFNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblERFNo.Height = 0.2!
+ Me.lblERFNo.HyperLink = ""
+ Me.lblERFNo.Left = 0.125!
+ Me.lblERFNo.Name = "lblERFNo"
+ Me.lblERFNo.Style = "font-size: 9.75pt; font-family: Times New Roman; "
+ Me.lblERFNo.Text = "ERF No"
+ Me.lblERFNo.Top = 0.5625!
+ Me.lblERFNo.Width = 0.875!
+ '
+ 'txtERFNo
+ '
+ Me.txtERFNo.Border.BottomColor = System.Drawing.Color.Black
+ Me.txtERFNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtERFNo.Border.LeftColor = System.Drawing.Color.Black
+ Me.txtERFNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtERFNo.Border.RightColor = System.Drawing.Color.Black
+ Me.txtERFNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtERFNo.Border.TopColor = System.Drawing.Color.Black
+ Me.txtERFNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtERFNo.Height = 0.2!
+ Me.txtERFNo.HyperLink = ""
+ Me.txtERFNo.Left = 1.0625!
+ Me.txtERFNo.Name = "txtERFNo"
+ Me.txtERFNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; "
+ Me.txtERFNo.Text = ""
+ Me.txtERFNo.Top = 0.5625!
+ Me.txtERFNo.Width = 1.6875!
+ '
+ 'Line2
+ '
+ Me.Line2.Border.BottomColor = System.Drawing.Color.Black
+ Me.Line2.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line2.Border.LeftColor = System.Drawing.Color.Black
+ Me.Line2.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line2.Border.RightColor = System.Drawing.Color.Black
+ Me.Line2.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line2.Border.TopColor = System.Drawing.Color.Black
+ Me.Line2.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line2.Height = 0.91!
+ Me.Line2.Left = 2.866!
+ Me.Line2.LineWeight = 1.0!
+ Me.Line2.Name = "Line2"
+ Me.Line2.Top = 0.5!
+ Me.Line2.Width = 0.0003190041!
+ Me.Line2.X1 = 2.866319!
+ Me.Line2.X2 = 2.866!
+ Me.Line2.Y1 = 0.5!
+ Me.Line2.Y2 = 1.41!
+ '
+ 'Line5
+ '
+ Me.Line5.Border.BottomColor = System.Drawing.Color.Black
+ Me.Line5.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line5.Border.LeftColor = System.Drawing.Color.Black
+ Me.Line5.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line5.Border.RightColor = System.Drawing.Color.Black
+ Me.Line5.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line5.Border.TopColor = System.Drawing.Color.Black
+ Me.Line5.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line5.Height = 0.0!
+ Me.Line5.Left = 0.0625!
+ Me.Line5.LineWeight = 1.0!
+ Me.Line5.Name = "Line5"
+ Me.Line5.Top = 0.8125!
+ Me.Line5.Width = 5.54!
+ Me.Line5.X1 = 5.6025!
+ Me.Line5.X2 = 0.0625!
+ Me.Line5.Y1 = 0.8125!
+ Me.Line5.Y2 = 0.8125!
+ '
+ 'lblCustomerNo
+ '
+ Me.lblCustomerNo.Border.BottomColor = System.Drawing.Color.Black
+ Me.lblCustomerNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblCustomerNo.Border.LeftColor = System.Drawing.Color.Black
+ Me.lblCustomerNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblCustomerNo.Border.RightColor = System.Drawing.Color.Black
+ Me.lblCustomerNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblCustomerNo.Border.TopColor = System.Drawing.Color.Black
+ Me.lblCustomerNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblCustomerNo.Height = 0.2!
+ Me.lblCustomerNo.HyperLink = ""
+ Me.lblCustomerNo.Left = 0.125!
+ Me.lblCustomerNo.Name = "lblCustomerNo"
+ Me.lblCustomerNo.Style = "font-size: 9.75pt; font-family: Times New Roman; "
+ Me.lblCustomerNo.Text = "Customer No"
+ Me.lblCustomerNo.Top = 0.859375!
+ Me.lblCustomerNo.Width = 0.875!
+ '
+ 'lblLotNo
+ '
+ Me.lblLotNo.Border.BottomColor = System.Drawing.Color.Black
+ Me.lblLotNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblLotNo.Border.LeftColor = System.Drawing.Color.Black
+ Me.lblLotNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblLotNo.Border.RightColor = System.Drawing.Color.Black
+ Me.lblLotNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblLotNo.Border.TopColor = System.Drawing.Color.Black
+ Me.lblLotNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblLotNo.Height = 0.2!
+ Me.lblLotNo.HyperLink = ""
+ Me.lblLotNo.Left = 2.9375!
+ Me.lblLotNo.Name = "lblLotNo"
+ Me.lblLotNo.Style = "font-size: 9.75pt; font-family: Times New Roman; "
+ Me.lblLotNo.Text = "Lot No"
+ Me.lblLotNo.Top = 0.5625!
+ Me.lblLotNo.Width = 0.75!
+ '
+ 'lblProductNo
+ '
+ Me.lblProductNo.Border.BottomColor = System.Drawing.Color.Black
+ Me.lblProductNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblProductNo.Border.LeftColor = System.Drawing.Color.Black
+ Me.lblProductNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblProductNo.Border.RightColor = System.Drawing.Color.Black
+ Me.lblProductNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblProductNo.Border.TopColor = System.Drawing.Color.Black
+ Me.lblProductNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblProductNo.Height = 0.2!
+ Me.lblProductNo.HyperLink = ""
+ Me.lblProductNo.Left = 2.9375!
+ Me.lblProductNo.Name = "lblProductNo"
+ Me.lblProductNo.Style = "font-size: 9.75pt; font-family: Times New Roman; "
+ Me.lblProductNo.Text = "Product No"
+ Me.lblProductNo.Top = 0.859375!
+ Me.lblProductNo.Width = 0.75!
+ '
+ 'txtLotNo
+ '
+ Me.txtLotNo.Border.BottomColor = System.Drawing.Color.Black
+ Me.txtLotNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtLotNo.Border.LeftColor = System.Drawing.Color.Black
+ Me.txtLotNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtLotNo.Border.RightColor = System.Drawing.Color.Black
+ Me.txtLotNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtLotNo.Border.TopColor = System.Drawing.Color.Black
+ Me.txtLotNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtLotNo.Height = 0.1875!
+ Me.txtLotNo.HyperLink = ""
+ Me.txtLotNo.Left = 3.75!
+ Me.txtLotNo.Name = "txtLotNo"
+ Me.txtLotNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; "
+ Me.txtLotNo.Text = ""
+ Me.txtLotNo.Top = 0.5625!
+ Me.txtLotNo.Width = 1.8125!
+ '
+ 'txtCustomerNo
+ '
+ Me.txtCustomerNo.Border.BottomColor = System.Drawing.Color.Black
+ Me.txtCustomerNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtCustomerNo.Border.LeftColor = System.Drawing.Color.Black
+ Me.txtCustomerNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtCustomerNo.Border.RightColor = System.Drawing.Color.Black
+ Me.txtCustomerNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtCustomerNo.Border.TopColor = System.Drawing.Color.Black
+ Me.txtCustomerNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtCustomerNo.Height = 0.2!
+ Me.txtCustomerNo.HyperLink = ""
+ Me.txtCustomerNo.Left = 1.0625!
+ Me.txtCustomerNo.Name = "txtCustomerNo"
+ Me.txtCustomerNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; "
+ Me.txtCustomerNo.Text = ""
+ Me.txtCustomerNo.Top = 0.875!
+ Me.txtCustomerNo.Width = 1.6875!
+ '
+ 'txtProductNo
+ '
+ Me.txtProductNo.Border.BottomColor = System.Drawing.Color.Black
+ Me.txtProductNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtProductNo.Border.LeftColor = System.Drawing.Color.Black
+ Me.txtProductNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtProductNo.Border.RightColor = System.Drawing.Color.Black
+ Me.txtProductNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtProductNo.Border.TopColor = System.Drawing.Color.Black
+ Me.txtProductNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtProductNo.Height = 0.1875!
+ Me.txtProductNo.HyperLink = ""
+ Me.txtProductNo.Left = 3.75!
+ Me.txtProductNo.Name = "txtProductNo"
+ Me.txtProductNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; "
+ Me.txtProductNo.Text = ""
+ Me.txtProductNo.Top = 0.859375!
+ Me.txtProductNo.Width = 1.8125!
+ '
+ 'Barcode1
+ '
+ Me.Barcode1.Border.BottomColor = System.Drawing.Color.Black
+ Me.Barcode1.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Barcode1.Border.LeftColor = System.Drawing.Color.Black
+ Me.Barcode1.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Barcode1.Border.RightColor = System.Drawing.Color.Black
+ Me.Barcode1.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Barcode1.Border.TopColor = System.Drawing.Color.Black
+ Me.Barcode1.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Barcode1.CaptionPosition = GrapeCity.ActiveReports.SectionReportModel.BarCodeCaptionPosition.Below
+ Me.Barcode1.Font = New System.Drawing.Font("Courier New", 8.0!)
+ Me.Barcode1.Height = 0.4375!
+ Me.Barcode1.Left = 5.6875!
+ Me.Barcode1.Name = "Barcode1"
+ Me.Barcode1.Text = "Barcode1"
+ Me.Barcode1.Top = 0.59375!
+ Me.Barcode1.Width = 2.0625!
+ '
+ 'lblOPNo
+ '
+ Me.lblOPNo.Border.BottomColor = System.Drawing.Color.Black
+ Me.lblOPNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblOPNo.Border.LeftColor = System.Drawing.Color.Black
+ Me.lblOPNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblOPNo.Border.RightColor = System.Drawing.Color.Black
+ Me.lblOPNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblOPNo.Border.TopColor = System.Drawing.Color.Black
+ Me.lblOPNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblOPNo.Height = 0.2!
+ Me.lblOPNo.HyperLink = ""
+ Me.lblOPNo.Left = 2.9375!
+ Me.lblOPNo.Name = "lblOPNo"
+ Me.lblOPNo.Style = "font-size: 9.75pt; font-family: Times New Roman; "
+ Me.lblOPNo.Text = "OP No"
+ Me.lblOPNo.Top = 1.1875!
+ Me.lblOPNo.Width = 0.75!
+ '
+ 'txtOPNo
+ '
+ Me.txtOPNo.Border.BottomColor = System.Drawing.Color.Black
+ Me.txtOPNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtOPNo.Border.LeftColor = System.Drawing.Color.Black
+ Me.txtOPNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtOPNo.Border.RightColor = System.Drawing.Color.Black
+ Me.txtOPNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtOPNo.Border.TopColor = System.Drawing.Color.Black
+ Me.txtOPNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtOPNo.Height = 0.1875!
+ Me.txtOPNo.HyperLink = ""
+ Me.txtOPNo.Left = 3.75!
+ Me.txtOPNo.Name = "txtOPNo"
+ Me.txtOPNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; "
+ Me.txtOPNo.Text = ""
+ Me.txtOPNo.Top = 1.1875!
+ Me.txtOPNo.Width = 1.8125!
+ '
+ 'lblRuleNo
+ '
+ Me.lblRuleNo.Border.BottomColor = System.Drawing.Color.Black
+ Me.lblRuleNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblRuleNo.Border.LeftColor = System.Drawing.Color.Black
+ Me.lblRuleNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblRuleNo.Border.RightColor = System.Drawing.Color.Black
+ Me.lblRuleNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblRuleNo.Border.TopColor = System.Drawing.Color.Black
+ Me.lblRuleNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblRuleNo.Height = 0.2!
+ Me.lblRuleNo.HyperLink = ""
+ Me.lblRuleNo.Left = 0.125!
+ Me.lblRuleNo.Name = "lblRuleNo"
+ Me.lblRuleNo.Style = "font-size: 9.75pt; font-family: Times New Roman; "
+ Me.lblRuleNo.Text = "Rule No"
+ Me.lblRuleNo.Top = 1.453125!
+ Me.lblRuleNo.Width = 0.75!
+ '
+ 'txtRuleNo
+ '
+ Me.txtRuleNo.Border.BottomColor = System.Drawing.Color.Black
+ Me.txtRuleNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtRuleNo.Border.LeftColor = System.Drawing.Color.Black
+ Me.txtRuleNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtRuleNo.Border.RightColor = System.Drawing.Color.Black
+ Me.txtRuleNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtRuleNo.Border.TopColor = System.Drawing.Color.Black
+ Me.txtRuleNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtRuleNo.Height = 0.2!
+ Me.txtRuleNo.HyperLink = ""
+ Me.txtRuleNo.Left = 1.0625!
+ Me.txtRuleNo.Name = "txtRuleNo"
+ Me.txtRuleNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; "
+ Me.txtRuleNo.Text = ""
+ Me.txtRuleNo.Top = 1.453125!
+ Me.txtRuleNo.Width = 1.6875!
+ '
+ 'lblMClassNo
+ '
+ Me.lblMClassNo.Border.BottomColor = System.Drawing.Color.Black
+ Me.lblMClassNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblMClassNo.Border.LeftColor = System.Drawing.Color.Black
+ Me.lblMClassNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblMClassNo.Border.RightColor = System.Drawing.Color.Black
+ Me.lblMClassNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblMClassNo.Border.TopColor = System.Drawing.Color.Black
+ Me.lblMClassNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblMClassNo.Height = 0.2!
+ Me.lblMClassNo.HyperLink = ""
+ Me.lblMClassNo.Left = 0.125!
+ Me.lblMClassNo.Name = "lblMClassNo"
+ Me.lblMClassNo.Style = "font-size: 9.75pt; font-family: Times New Roman; "
+ Me.lblMClassNo.Text = "MClass No"
+ Me.lblMClassNo.Top = 1.15625!
+ Me.lblMClassNo.Width = 0.75!
+ '
+ 'txtMClassNo
+ '
+ Me.txtMClassNo.Border.BottomColor = System.Drawing.Color.Black
+ Me.txtMClassNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtMClassNo.Border.LeftColor = System.Drawing.Color.Black
+ Me.txtMClassNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtMClassNo.Border.RightColor = System.Drawing.Color.Black
+ Me.txtMClassNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtMClassNo.Border.TopColor = System.Drawing.Color.Black
+ Me.txtMClassNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtMClassNo.Height = 0.2!
+ Me.txtMClassNo.HyperLink = ""
+ Me.txtMClassNo.Left = 1.0625!
+ Me.txtMClassNo.Name = "txtMClassNo"
+ Me.txtMClassNo.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; "
+ Me.txtMClassNo.Text = ""
+ Me.txtMClassNo.Top = 1.15625!
+ Me.txtMClassNo.Width = 1.6875!
+ '
+ 'lblHoldDescription
+ '
+ Me.lblHoldDescription.Border.BottomColor = System.Drawing.Color.Black
+ Me.lblHoldDescription.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblHoldDescription.Border.LeftColor = System.Drawing.Color.Black
+ Me.lblHoldDescription.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblHoldDescription.Border.RightColor = System.Drawing.Color.Black
+ Me.lblHoldDescription.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblHoldDescription.Border.TopColor = System.Drawing.Color.Black
+ Me.lblHoldDescription.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblHoldDescription.Height = 0.2!
+ Me.lblHoldDescription.HyperLink = ""
+ Me.lblHoldDescription.Left = 0.1230315!
+ Me.lblHoldDescription.Name = "lblHoldDescription"
+ Me.lblHoldDescription.Style = "font-size: 9.75pt; font-family: Times New Roman; "
+ Me.lblHoldDescription.Text = "Hold Description"
+ Me.lblHoldDescription.Top = 1.747047!
+ Me.lblHoldDescription.Width = 1.125!
+ '
+ 'lblCreator
+ '
+ Me.lblCreator.Border.BottomColor = System.Drawing.Color.Black
+ Me.lblCreator.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblCreator.Border.LeftColor = System.Drawing.Color.Black
+ Me.lblCreator.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblCreator.Border.RightColor = System.Drawing.Color.Black
+ Me.lblCreator.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblCreator.Border.TopColor = System.Drawing.Color.Black
+ Me.lblCreator.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblCreator.Height = 0.2!
+ Me.lblCreator.HyperLink = ""
+ Me.lblCreator.Left = 5.65625!
+ Me.lblCreator.Name = "lblCreator"
+ Me.lblCreator.Style = "font-size: 9.75pt; font-family: Times New Roman; "
+ Me.lblCreator.Text = "Creator"
+ Me.lblCreator.Top = 1.1875!
+ Me.lblCreator.Width = 0.8125!
+ '
+ 'txtCreator
+ '
+ Me.txtCreator.Border.BottomColor = System.Drawing.Color.Black
+ Me.txtCreator.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtCreator.Border.LeftColor = System.Drawing.Color.Black
+ Me.txtCreator.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtCreator.Border.RightColor = System.Drawing.Color.Black
+ Me.txtCreator.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtCreator.Border.TopColor = System.Drawing.Color.Black
+ Me.txtCreator.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtCreator.Height = 0.1875!
+ Me.txtCreator.HyperLink = ""
+ Me.txtCreator.Left = 6.484375!
+ Me.txtCreator.Name = "txtCreator"
+ Me.txtCreator.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; "
+ Me.txtCreator.Text = ""
+ Me.txtCreator.Top = 1.1875!
+ Me.txtCreator.Width = 1.3125!
+ '
+ 'lblCreateDate
+ '
+ Me.lblCreateDate.Border.BottomColor = System.Drawing.Color.Black
+ Me.lblCreateDate.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblCreateDate.Border.LeftColor = System.Drawing.Color.Black
+ Me.lblCreateDate.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblCreateDate.Border.RightColor = System.Drawing.Color.Black
+ Me.lblCreateDate.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblCreateDate.Border.TopColor = System.Drawing.Color.Black
+ Me.lblCreateDate.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblCreateDate.Height = 0.2!
+ Me.lblCreateDate.HyperLink = ""
+ Me.lblCreateDate.Left = 5.65625!
+ Me.lblCreateDate.Name = "lblCreateDate"
+ Me.lblCreateDate.Style = "font-size: 9.75pt; font-family: Times New Roman; "
+ Me.lblCreateDate.Text = "Create Date"
+ Me.lblCreateDate.Top = 1.453125!
+ Me.lblCreateDate.Width = 0.8125!
+ '
+ 'Line27
+ '
+ Me.Line27.Border.BottomColor = System.Drawing.Color.Black
+ Me.Line27.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line27.Border.LeftColor = System.Drawing.Color.Black
+ Me.Line27.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line27.Border.RightColor = System.Drawing.Color.Black
+ Me.Line27.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line27.Border.TopColor = System.Drawing.Color.Black
+ Me.Line27.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line27.Height = 0.0001250505!
+ Me.Line27.Left = 0.0625!
+ Me.Line27.LineWeight = 1.0!
+ Me.Line27.Name = "Line27"
+ Me.Line27.Top = 1.124875!
+ Me.Line27.Width = 7.75!
+ Me.Line27.X1 = 7.8125!
+ Me.Line27.X2 = 0.0625!
+ Me.Line27.Y1 = 1.125!
+ Me.Line27.Y2 = 1.124875!
+ '
+ 'Line28
+ '
+ Me.Line28.Border.BottomColor = System.Drawing.Color.Black
+ Me.Line28.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line28.Border.LeftColor = System.Drawing.Color.Black
+ Me.Line28.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line28.Border.RightColor = System.Drawing.Color.Black
+ Me.Line28.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line28.Border.TopColor = System.Drawing.Color.Black
+ Me.Line28.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line28.Height = 0.0001250505!
+ Me.Line28.Left = 0.0625!
+ Me.Line28.LineWeight = 1.0!
+ Me.Line28.Name = "Line28"
+ Me.Line28.Top = 1.40625!
+ Me.Line28.Width = 7.75!
+ Me.Line28.X1 = 7.8125!
+ Me.Line28.X2 = 0.0625!
+ Me.Line28.Y1 = 1.40625!
+ Me.Line28.Y2 = 1.406375!
+ '
+ 'Line30
+ '
+ Me.Line30.Border.BottomColor = System.Drawing.Color.Black
+ Me.Line30.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line30.Border.LeftColor = System.Drawing.Color.Black
+ Me.Line30.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line30.Border.RightColor = System.Drawing.Color.Black
+ Me.Line30.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line30.Border.TopColor = System.Drawing.Color.Black
+ Me.Line30.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line30.Height = 1.180556!
+ Me.Line30.Left = 5.600695!
+ Me.Line30.LineWeight = 1.0!
+ Me.Line30.Name = "Line30"
+ Me.Line30.Top = 0.5069444!
+ Me.Line30.Width = 0.0003180504!
+ Me.Line30.X1 = 5.600695!
+ Me.Line30.X2 = 5.601013!
+ Me.Line30.Y1 = 0.5069444!
+ Me.Line30.Y2 = 1.6875!
+ '
+ 'Line31
+ '
+ Me.Line31.Border.BottomColor = System.Drawing.Color.Black
+ Me.Line31.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line31.Border.LeftColor = System.Drawing.Color.Black
+ Me.Line31.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line31.Border.RightColor = System.Drawing.Color.Black
+ Me.Line31.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line31.Border.TopColor = System.Drawing.Color.Black
+ Me.Line31.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line31.Height = 0.91!
+ Me.Line31.Left = 3.71875!
+ Me.Line31.LineWeight = 1.0!
+ Me.Line31.Name = "Line31"
+ Me.Line31.Top = 0.5!
+ Me.Line31.Width = 0.0003190041!
+ Me.Line31.X1 = 3.71875!
+ Me.Line31.X2 = 3.719069!
+ Me.Line31.Y1 = 0.5!
+ Me.Line31.Y2 = 1.41!
+ '
+ 'Line32
+ '
+ Me.Line32.Border.BottomColor = System.Drawing.Color.Black
+ Me.Line32.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line32.Border.LeftColor = System.Drawing.Color.Black
+ Me.Line32.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line32.Border.RightColor = System.Drawing.Color.Black
+ Me.Line32.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line32.Border.TopColor = System.Drawing.Color.Black
+ Me.Line32.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line32.Height = 1.180556!
+ Me.Line32.Left = 1.03125!
+ Me.Line32.LineWeight = 1.0!
+ Me.Line32.Name = "Line32"
+ Me.Line32.Top = 0.5069444!
+ Me.Line32.Width = 0.0003190041!
+ Me.Line32.X1 = 1.03125!
+ Me.Line32.X2 = 1.031569!
+ Me.Line32.Y1 = 0.5069444!
+ Me.Line32.Y2 = 1.6875!
+ '
+ 'txtHoldDescription
+ '
+ Me.txtHoldDescription.Border.BottomColor = System.Drawing.Color.Black
+ Me.txtHoldDescription.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtHoldDescription.Border.LeftColor = System.Drawing.Color.Black
+ Me.txtHoldDescription.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtHoldDescription.Border.RightColor = System.Drawing.Color.Black
+ Me.txtHoldDescription.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtHoldDescription.Border.TopColor = System.Drawing.Color.Black
+ Me.txtHoldDescription.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.txtHoldDescription.CanGrow = False
+ Me.txtHoldDescription.Height = 0.9375!
+ Me.txtHoldDescription.Left = 1.304134!
+ Me.txtHoldDescription.Name = "txtHoldDescription"
+ Me.txtHoldDescription.OutputFormat = resources.GetString("txtHoldDescription.OutputFormat")
+ Me.txtHoldDescription.Style = "ddo-char-set: 136; font-size: 9.75pt; font-family: 新細明體; "
+ Me.txtHoldDescription.Text = Nothing
+ Me.txtHoldDescription.Top = 1.747047!
+ Me.txtHoldDescription.Width = 6.4375!
+ '
+ 'Label1
+ '
+ Me.Label1.Border.BottomColor = System.Drawing.Color.Black
+ Me.Label1.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label1.Border.LeftColor = System.Drawing.Color.Black
+ Me.Label1.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label1.Border.RightColor = System.Drawing.Color.Black
+ Me.Label1.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label1.Border.TopColor = System.Drawing.Color.Black
+ Me.Label1.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label1.Height = 0.2!
+ Me.Label1.HyperLink = ""
+ Me.Label1.Left = 1.058071!
+ Me.Label1.Name = "Label1"
+ Me.Label1.Style = "font-size: 9.75pt; font-family: 新細明體; "
+ Me.Label1.Text = ""
+ Me.Label1.Top = 0.5659449!
+ Me.Label1.Width = 1.6875!
+ '
+ 'Label2
+ '
+ Me.Label2.Border.BottomColor = System.Drawing.Color.Black
+ Me.Label2.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label2.Border.LeftColor = System.Drawing.Color.Black
+ Me.Label2.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label2.Border.RightColor = System.Drawing.Color.Black
+ Me.Label2.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label2.Border.TopColor = System.Drawing.Color.Black
+ Me.Label2.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label2.Height = 0.2!
+ Me.Label2.HyperLink = ""
+ Me.Label2.Left = 1.058071!
+ Me.Label2.Name = "Label2"
+ Me.Label2.Style = "font-size: 9.75pt; font-family: Times New Roman; "
+ Me.Label2.Text = ""
+ Me.Label2.Top = 0.8858268!
+ Me.Label2.Width = 1.6875!
+ '
+ 'Label3
+ '
+ Me.Label3.Border.BottomColor = System.Drawing.Color.Black
+ Me.Label3.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label3.Border.LeftColor = System.Drawing.Color.Black
+ Me.Label3.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label3.Border.RightColor = System.Drawing.Color.Black
+ Me.Label3.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label3.Border.TopColor = System.Drawing.Color.Black
+ Me.Label3.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label3.Height = 0.2!
+ Me.Label3.HyperLink = ""
+ Me.Label3.Left = 1.058071!
+ Me.Label3.Name = "Label3"
+ Me.Label3.Style = "font-size: 9.75pt; font-family: Times New Roman; "
+ Me.Label3.Text = ""
+ Me.Label3.Top = 1.156496!
+ Me.Label3.Width = 1.6875!
+ '
+ 'Label4
+ '
+ Me.Label4.Border.BottomColor = System.Drawing.Color.Black
+ Me.Label4.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label4.Border.LeftColor = System.Drawing.Color.Black
+ Me.Label4.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label4.Border.RightColor = System.Drawing.Color.Black
+ Me.Label4.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label4.Border.TopColor = System.Drawing.Color.Black
+ Me.Label4.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label4.Height = 0.2!
+ Me.Label4.HyperLink = ""
+ Me.Label4.Left = 1.058071!
+ Me.Label4.Name = "Label4"
+ Me.Label4.Style = "font-size: 9.75pt; font-family: Times New Roman; "
+ Me.Label4.Text = ""
+ Me.Label4.Top = 1.451772!
+ Me.Label4.Width = 1.6875!
+ '
+ 'Label5
+ '
+ Me.Label5.Border.BottomColor = System.Drawing.Color.Black
+ Me.Label5.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label5.Border.LeftColor = System.Drawing.Color.Black
+ Me.Label5.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label5.Border.RightColor = System.Drawing.Color.Black
+ Me.Label5.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label5.Border.TopColor = System.Drawing.Color.Black
+ Me.Label5.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Label5.Height = 0.1875!
+ Me.Label5.HyperLink = ""
+ Me.Label5.Left = 3.740157!
+ Me.Label5.Name = "Label5"
+ Me.Label5.Style = "font-size: 9.75pt; font-family: Times New Roman; "
+ Me.Label5.Text = ""
+ Me.Label5.Top = 1.181102!
+ Me.Label5.Width = 1.8125!
+ '
+ 'PageFooter
+ '
+ Me.PageFooter.Height = 0.1451389!
+ Me.PageFooter.Name = "PageFooter"
+ Me.PageFooter.Visible = False
+ '
+ 'GroupHeader1
+ '
+ Me.GroupHeader1.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.lblHoldItemNo, Me.lblQty, Me.lblHoldDisposition, Me.Line33, Me.Line34, Me.Line35})
+ Me.GroupHeader1.Height = 0.21875!
+ Me.GroupHeader1.Name = "GroupHeader1"
+ '
+ 'lblHoldItemNo
+ '
+ Me.lblHoldItemNo.Border.BottomColor = System.Drawing.Color.Black
+ Me.lblHoldItemNo.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblHoldItemNo.Border.LeftColor = System.Drawing.Color.Black
+ Me.lblHoldItemNo.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblHoldItemNo.Border.RightColor = System.Drawing.Color.Black
+ Me.lblHoldItemNo.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblHoldItemNo.Border.TopColor = System.Drawing.Color.Black
+ Me.lblHoldItemNo.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblHoldItemNo.Height = 0.2!
+ Me.lblHoldItemNo.HyperLink = ""
+ Me.lblHoldItemNo.Left = 0.0625!
+ Me.lblHoldItemNo.Name = "lblHoldItemNo"
+ Me.lblHoldItemNo.Style = "color: White; text-align: center; background-color: Blue; "
+ Me.lblHoldItemNo.Text = "HoldItem No"
+ Me.lblHoldItemNo.Top = 0.0!
+ Me.lblHoldItemNo.Width = 1.5!
+ '
+ 'lblQty
+ '
+ Me.lblQty.Border.BottomColor = System.Drawing.Color.Black
+ Me.lblQty.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblQty.Border.LeftColor = System.Drawing.Color.Black
+ Me.lblQty.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblQty.Border.RightColor = System.Drawing.Color.Black
+ Me.lblQty.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblQty.Border.TopColor = System.Drawing.Color.Black
+ Me.lblQty.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblQty.Height = 0.2!
+ Me.lblQty.HyperLink = ""
+ Me.lblQty.Left = 1.5625!
+ Me.lblQty.Name = "lblQty"
+ Me.lblQty.Style = "color: White; text-align: center; background-color: Blue; font-size: 9.75pt; "
+ Me.lblQty.Text = "Qty"
+ Me.lblQty.Top = 0.0!
+ Me.lblQty.Width = 0.75!
+ '
+ 'lblHoldDisposition
+ '
+ Me.lblHoldDisposition.Border.BottomColor = System.Drawing.Color.Black
+ Me.lblHoldDisposition.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblHoldDisposition.Border.LeftColor = System.Drawing.Color.Black
+ Me.lblHoldDisposition.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblHoldDisposition.Border.RightColor = System.Drawing.Color.Black
+ Me.lblHoldDisposition.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblHoldDisposition.Border.TopColor = System.Drawing.Color.Black
+ Me.lblHoldDisposition.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.lblHoldDisposition.Height = 0.2!
+ Me.lblHoldDisposition.HyperLink = ""
+ Me.lblHoldDisposition.Left = 2.3125!
+ Me.lblHoldDisposition.Name = "lblHoldDisposition"
+ Me.lblHoldDisposition.Style = "color: White; text-align: center; background-color: Blue; font-size: 9.75pt; "
+ Me.lblHoldDisposition.Text = "Hold Disposition"
+ Me.lblHoldDisposition.Top = 0.0!
+ Me.lblHoldDisposition.Width = 5.5!
+ '
+ 'Line33
+ '
+ Me.Line33.Border.BottomColor = System.Drawing.Color.Black
+ Me.Line33.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line33.Border.LeftColor = System.Drawing.Color.Black
+ Me.Line33.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line33.Border.RightColor = System.Drawing.Color.Black
+ Me.Line33.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line33.Border.TopColor = System.Drawing.Color.Black
+ Me.Line33.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line33.Height = 0.0!
+ Me.Line33.Left = 0.0625!
+ Me.Line33.LineWeight = 1.0!
+ Me.Line33.Name = "Line33"
+ Me.Line33.Top = 0.203125!
+ Me.Line33.Width = 7.75!
+ Me.Line33.X1 = 0.0625!
+ Me.Line33.X2 = 7.8125!
+ Me.Line33.Y1 = 0.203125!
+ Me.Line33.Y2 = 0.203125!
+ '
+ 'Line34
+ '
+ Me.Line34.Border.BottomColor = System.Drawing.Color.Black
+ Me.Line34.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line34.Border.LeftColor = System.Drawing.Color.Black
+ Me.Line34.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line34.Border.RightColor = System.Drawing.Color.Black
+ Me.Line34.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line34.Border.TopColor = System.Drawing.Color.Black
+ Me.Line34.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line34.Height = 0.2!
+ Me.Line34.Left = 0.0625!
+ Me.Line34.LineWeight = 1.0!
+ Me.Line34.Name = "Line34"
+ Me.Line34.Top = 0.0!
+ Me.Line34.Width = 0.0003187731!
+ Me.Line34.X1 = 0.0625!
+ Me.Line34.X2 = 0.06281877!
+ Me.Line34.Y1 = 0.0!
+ Me.Line34.Y2 = 0.2!
+ '
+ 'Line35
+ '
+ Me.Line35.Border.BottomColor = System.Drawing.Color.Black
+ Me.Line35.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line35.Border.LeftColor = System.Drawing.Color.Black
+ Me.Line35.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line35.Border.RightColor = System.Drawing.Color.Black
+ Me.Line35.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line35.Border.TopColor = System.Drawing.Color.Black
+ Me.Line35.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
+ Me.Line35.Height = 0.2!
+ Me.Line35.Left = 7.812181!
+ Me.Line35.LineWeight = 1.0!
+ Me.Line35.Name = "Line35"
+ Me.Line35.Top = 0.0!
+ Me.Line35.Width = 0.0003190041!
+ Me.Line35.X1 = 7.812181!
+ Me.Line35.X2 = 7.8125!
+ Me.Line35.Y1 = 0.0!
+ Me.Line35.Y2 = 0.2!
+ '
+ 'GroupFooter1
+ '
+ Me.GroupFooter1.Height = 0.01041667!
+ Me.GroupFooter1.Name = "GroupFooter1"
+ '
+ 'arERF_General
+ '
+ Me.MasterReport = False
+ Me.PageSettings.Margins.Left = 0.0!
+ Me.PageSettings.Margins.Right = 0.0!
+ Me.PageSettings.PaperHeight = 11.69!
+ Me.PageSettings.PaperWidth = 8.27!
+ Me.PrintWidth = 7.885417!
+ Me.Sections.Add(Me.PageHeader)
+ Me.Sections.Add(Me.GroupHeader1)
+ Me.Sections.Add(Me.Detail)
+ Me.Sections.Add(Me.GroupFooter1)
+ Me.Sections.Add(Me.PageFooter)
+ Me.StyleSheet.Add(New DDCssLib.StyleSheetRule(resources.GetString("$this.StyleSheet"), "Normal"))
+ Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: bo" & _
+ "ld; font-size: 16pt; font-size-adjust: inherit; font-stretch: inherit; ", "Heading1", "Normal"))
+ Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-family: Times New Roman; font-style: italic; font-variant: inherit; font-wei" & _
+ "ght: bold; font-size: 14pt; font-size-adjust: inherit; font-stretch: inherit; ", "Heading2", "Normal"))
+ Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: bo" & _
+ "ld; font-size: 13pt; font-size-adjust: inherit; font-stretch: inherit; ", "Heading3", "Normal"))
+ CType(Me.txtHoldDisposition, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtHoldItemNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtQty, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.Picture1, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtCreateDate, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.lblERFReport, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtDate, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.lblPrintDate, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.lblERFNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtERFNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.lblCustomerNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.lblLotNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.lblProductNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtLotNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtCustomerNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtProductNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.lblOPNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtOPNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.lblRuleNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtRuleNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.lblMClassNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtMClassNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.lblHoldDescription, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.lblCreator, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtCreator, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.lblCreateDate, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.txtHoldDescription, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.Label1, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.Label2, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.Label3, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.Label4, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.Label5, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.lblHoldItemNo, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.lblQty, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.lblHoldDisposition, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me, System.ComponentModel.ISupportInitialize).EndInit()
+
+ End Sub
+
+#End Region
+
+ Private Sub arERF_General_ReportStart(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.ReportStart
+ 'steve,100401,在end user電腦上沒設定任何一台印表機時,Active report預設page size設成A4會有錯誤,預設Page size改成default時,在條碼機的特殊格式大小也會有錯,故加入下列指令
+ Me.Document.Printer.PrinterName = ""
+
+ Me.txtDate.Text = Now.ToShortDateString
+ Me.txtERFNo.Text = ERFNo
+ Me.Barcode1.Text = ERFNo
+ Me.txtLotNo.Text = LotNo
+ Me.txtCustomerNo.Text = CustomerNo
+ Me.txtOPNo.Text = OPNo
+ Me.txtProductNo.Text = ProductNo
+ Me.txtRuleNo.Text = RuleNo
+ Me.txtMClassNo.Text = MClassNo
+ Me.txtHoldDescription.Text = HoldDescription
+ Me.txtCreator.Text = Creator
+ Me.txtCreateDate.Text = Format(CreateDate, "yyyy/MM/dd HH:mm")
+
+ Me.PageSettings.Margins.Left = 0.2
+ Me.PageSettings.Margins.Top = 0.3
+ Me.PageSettings.Margins.Bottom = 0.2
+ Me.PageSettings.Orientation = PageOrientation.Landscape
+ Me.PageSettings.Orientation = PageOrientation.Portrait
+
+ End Sub
+
+ Private Sub Detail_Format(ByVal sender As Object, ByVal e As System.EventArgs) Handles Detail.Format
+
+ 'If Me.intRow Mod 5 = 0 Then
+ ' Me.Detail.BackColor = Color.LightGray
+ 'Else
+ ' Me.Detail.BackColor = Color.White
+ 'End If
+
+ 'Me.intRow = Me.intRow + 1
+
+ End Sub
+
+
+
+
+
+ Private Sub PageHeader_Format(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PageHeader.Format
+
+ End Sub
+End Class
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/shared file/iMES.isl b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/iMES.isl
new file mode 100644
index 0000000..0679a67
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/iMES.isl
@@ -0,0 +1,4303 @@
+
+
+
+ 2015-02-05T03:06:30
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA3gMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADgElEQVRoQ+2XzWsTQRjGq/Qk1YOgFz3qHyLFi4LeRAri0YMHTx68eCseBMFL8W+waGPRIoixYkUrUmgVaZKaNJ/bbNpNm48mjUle531lttPpZGcm0IvMAw+Tncy7s89vZ2eTkVwuB7aOx+PWnpyctPax52k4bmEcP0wNQWi328auVCoUykYcQqPRMDaOx4u0EQ9mIxzvIDgIDgLJQWByEJgcBCYHgclBYHIQmBwEphACBjN1sVikULbGULbmoY7aI6urq2BrVUidVSF1tv0zNIzpDxSGspHneRTKRhyCatkPMo7Hi7QRD2YjHO8gmEDodrtQKBSgWq3SsQmErb0eXF/YgGe/a3RsAiFfrcHVj0V4+qtCxyYQ5HlMIKhqIiEggFKpRPsAgkDpIOAkE199GGEnv7ZQpj4dBARwY6FENVfmi9Sng6CaRwdhUM1ACP1+nwLj9/gGQSCoKAidXh9uf/Npsxmf92Cj9a8mCkK11oCJzyWqufS+AOmgRv1REAbNEwUhqiaEgL8BMGyz2aTjIAggkUhAOp2G3d1d6kOJEJa39+DyR3bst4DNAY8T23DiRQYuzuXhU6VFY1AihEVvG8bjBZjLBlCrs7ArPtVceJOFd/kghCNCMJ1HhGBTE0Iol8t019fW1sD3fUgmk5BKpaDV2i9AiRDuLm0S2fOvc3B/eQtOzazD2dksfNls0/dcIoQ7ix7VnJtdh3vfN+DkywycebUOH/LVEIAMwXQeEYJNzYHHAQPi3cc+BMBXhSj5cbi1WIbR6Qw9Z6djWXjr7a8aLhEC+iZb/qPTbHKsmclALLO/ArhFCCiTeUQIKNOaAxB6vR79KsRVgI8D7guyZAjNPz14+DOAMXZHnyR3oNU9XCND8Hfq8GCpDGNseT764cNmrX4AAFqGYDKPDMG05tDGiME7nY4SAEqGgMKTp+od2nxUkiGgMfiKv0Mbo9jPLUNA6eaRIaBMag5B0EkFQScVBJ1VEHRSQdAphIDBTI1vCwxlawxlax7qqE3/Im2tCqmzKqTOuLurLnqQcfwwNQTBRhyCjTgEG8ViMbpIG+FbYJiaEAK/y1Hm4zgEOoHGKBGCaoxslAhBNUY2HzdMjYOAn8VwOvNxDgJrHQTWOgisdRBY6yCw1kFg7X8LwVQiBFOJEEwlQjAVBhqmhiDYGkPZGiFgMFNPTU2Fd+xonYa/RnTXOFz4kRIAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
+ 249, 249, 249
+ MiddleCenter
+
+
+
+
+ White
+ Segoe UI, 9pt
+ 75, 75, 75
+ MiddleLeft
+ MiddleLeft
+
+
+
+
+ White
+ Segoe UI, 8.25pt
+ 75, 75, 75
+
+
+
+
+ White
+ Segoe UI, 9pt
+ 75, 75, 75
+
+
+
+
+ 75, 75, 75
+ White
+ 0, 170, 222
+ White
+ Silver
+ Left
+ Long
+ False
+ False
+
+
+
+
+ White
+ Segoe UI, 9pt
+ 75, 75, 75
+
+
+
+
+ White
+ Flat
+ Segoe UI, 9pt
+ 75, 75, 75
+
+
+
+
+ White
+ None
+ Microsoft Sans Serif, 12pt
+ 0, 170, 222
+ MiddleCenter
+
+
+
+
+ 0, 170, 222
+ White
+ None
+ Gainsboro
+ Flat
+ Segoe UI, 9.75pt, style=Bold
+ MiddleCenter
+ AlwaysUnderline
+ 133, 133, 133
+ MiddleCenter
+ 179, 230, 245
+
+
+
+
+ White
+ FixedSingle
+ Segoe UI, 9pt
+ 75, 75, 75
+
+
+
+
+ True
+ White
+ FixedSingle
+ Segoe UI, 9pt
+ 75, 75, 75
+ Nonclickable
+ LargeIcon
+
+
+
+
+ White
+ 75, 75, 75
+ True
+ True
+ 0, 170, 222
+ White
+ 191, 191, 191
+
+
+
+
+ White
+ None
+ Segoe UI, 8.25pt
+ 75, 75, 75
+
+
+
+
+ White
+ None
+
+
+
+
+ White
+ White
+ 75, 75, 75
+ Segoe UI, 9pt
+ White
+ White
+ True
+ White
+ True
+ White
+ 75, 75, 75
+
+
+
+
+ White
+ Segoe UI, 9pt
+ 75, 75, 75
+ MiddleCenter
+ MiddleLeft
+
+
+
+
+ White
+ None
+ 75, 75, 75
+
+
+
+
+ White
+ None
+ 75, 75, 75
+
+
+
+
+ 133, 133, 133
+ None
+
+
+
+
+ Segoe UI, 9pt
+ True
+
+
+
+
+ White
+ FixedSingle
+ Segoe UI, 9pt
+ 75, 75, 75
+ Left
+
+
+
+
+ White
+
+
+
+
+ White
+ None
+ False
+ Segoe UI, 9pt
+ 75, 75, 75
+ False
+ False
+ True
+ 25
+ False
+ True
+ True
+
+
+
+
+ White
+ Segoe UI, 8.25pt
+ 75, 75, 75
+
+
+
+
+
+ True
+
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA7QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADj0lEQVRoQ+2YzWsTQRiHq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OKteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXuf3ym4n2012JuBtHvgddjNvZt9nZycfI8lkknQTDAa1Mzk5qZ0jz2N0VCMYP0wNS2g2m8opFArclA5ra2vcVK1WU04gEOCL1OH2t8JQNUaCkWAkMEaCwEgQGAkCI0FgJAiMBIGRIHAkoDHVZDIZloDGVBMKhVgCGlPN1NQUf6/HRarmwtvUUDUj6+vrpBtI0A0k6GaYH0PD1LAEHXK5HDelgy3Ba9n3C8bjInWwG9MB440EFQntdpvS6TSVy2U+VpFQ3O/QtcUteva7wscqElLlCl1ZyNDTXwU+VpHgnkdFglfNQAkQkM1meR+ACOAnAZNMhCwaEW9+dTHP5/wkQMD1xSzXXJ7P8Dk/CV7z+EnoV9NXQrfb5YbxOj5BIAQMktDqdOnWV4s3m/H5HG01/tUMklCu1Gjic5ZrLn5IU6xU4fODJPSbZ5CEQTWOBHwHQLP1ep2PS6UShcNhisVitLe3x+eALGFlZ58uLYhjq0FiDnoc3qFjL+J0fi5FnwoNHgNkCUu5HRoPpmkuUaJKVTS7anHNuTcJep8qOXJkCarzyBJ0ahwJ+Xye7/rGxgZZlkWRSISi0Sg1GgcFQJZwd3mbzZ59naT7K0U6MbNJp2cT9GW7ya/byBLuLOW45szsJt37vkXHX8bp1KtN+pgqOwLcElTnkSXo1PQ8DmgQdx/nIMBeFTLux+HmUp5Gp+P8nJ0MJOhd7mDV2MgSkBti+Y9Oi8lRMxOnQPxgBdiRJQCVeWQJQLWmR0Kn0+FvhVgFeBywL7hxS6j/6dDDnyUaE3f0SWSXGu3DNW4J1m6VHiznaUwsz0c/LNquVHsEIG4JKvO4JajWHNoY0Xir1fIUANwSAN48Wm3x5uOFWwKCxletXd4Y5fN23BKA3zxuCUCl5pAEP7wk+OElwS9eEvzwkuCHIwGNqQafFmhKN2hKN3ZT/zv8K1I3Xk36xatJv2B397rofsH4YWpYgg7FYpGb0sGWoAPG4yJ1sBvTAeMdCfKd7hcgS8BHj1+ALMFrjDtAluA1xh0gS/Aa4w4wEgRGgsBIEBgJAiNBYCQIjASBkSDokaCKLEEVWYIqsgRVZAmqOBLQmGrwxyua0g2a0o3d1P9NjP4C33z6NGMDUeMAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2zXFsx4kTZ/GWw/2d+GbevFz7Oe7IXzqy/XLPu/f871kTEg+y2azs7u7K4uLitayvr0s6nS6uuInz83OZm5uTvr4+6e3tVRkbG5NkMimXl5fFVc/j+PhYuru7pa6uTmpra1UaGxtle3u7pM7maU6+/DcmrzStyUuNV/JWeFfC++dScKtUrKMkFAoFicfjanAsFlOjLy4u5OzsTJ9vbW1JJBJRkizy+bxsbm6qwXyyHlgip6amlET7HGQyGRkdHZWmpibVOzk5UaMhcnZ2Vtra2pREnluksgX5ZeFQ3g5H5NfFIzWM8ycyBfljNSUfPYnKt2Nx2T7NXykY3FZHSUgkEnpwa7xfTk9PJRqN6k3lcjlVxPClpSU1wAXIgFTIwHgwPj6uHoMnuADpw8PD0t7ernsCjPjOHNga4kfsIi8/zh8aw/Yken5l1G11Qhx2Y2NDN3URYAVjd3Z21M35zk2WIsCCW15YWFDyuN3m5uaSBFjgleFwWCYnJ9WId3oisnX27JZdyJt9vh6JyW9PU1XphPCA/f19p+F+wQAMIgdAXCVAZ3p6WnMAoVAq5r0gJDs6OjSefzZuXSg+L4fxZEY++SdalU6IuC0VBn7BXQkD4jbICyzwNG6VJBjkBRbs09raKi+bRLaefpaHyiF+UZD3H+9VpaMkuAx2CYbjCT09PcXXBAP3xnNqamoq8gJA0u3q6pIX/l4rmfn9yJiFnw/FqtK5tSdQKfAEflcCEinhQBn0Zv1yIJFSKShpO2dXiTgIR6YifGiyfjU6ITI41cFvsEswglxAUtzb2yu+qjxIuIQDfQBJshKQfAkHavrDjcpCaOE4K+89jlSlE8ILcHFu2WW4VyiTJC0OSV339g2lAMmrq6u6R2dnZ0W5ZGRkRAYHB7Wp+WxgXxImdoPwkyl5P0wnq9LRPoFGCHEZbgVvwSC+E9uE0crKir7MBdbgLRgE0fwml/T39xdX3AT5A29paGiQg4MDje1vRuPyYPKguOImcsbWP9dP5M3uXZlPZavSURK4UW4KSaVS6sLcGN5BCFBC19bW9LcFZBDr8/PzcnR0pO/ACHIA+lQRGh/eZ8G7aIQolxDE+0iCvAujKaH19fXPhdq2ie+PTRn7ypS+wcSFyeh5TWjE81wqo+XwjUc7MmT+ZnFbnevZgcPj5hBB3POJIXwnBDioHyQw1s3MzGjcUwXoECcmJjQE8AA/IIg19AHEPVWAJNjS0iIDAwNKhh90db+bpubT/qiWtC+G9uUD0+292xuR7407c5t+3EbnmgQAEYQF7TDujthushTwmDszQHED3Dyfdj7AVXF12mVc1JsI79wAheFk/lLZHoNJjNyUJQjD78wAhVEYxCe3ws0Tz9zi8vKyJkVI4G8Q5R+gssavHm6cyOsdWxIy3dq91k2TmROSNKyj4xqgyumUGqDK6ZQaoCrVCZEDbDKCAG8+sEIocDhcm9DwDlB/mU1ebV7XTazQut4fjkna1CLXABWk4xqggnRcA1SlOiGMtmFgPcAveARr8AjbNtsweK39imW/3GvdkNWTrOr5B6ggHcLCP0AF6bgGqEp1dHaw8BvvFeKaW8RzvAOUaxMrtKV4kH+Acq21gg5k+wco11or6LgGKNdaK14dJcEmO27cbzxivQWDiG/vAAWrrk1ww6eGbd7tH6CCdFwDVJCOa4CqVCdEbJMLAEnQRQIhwO1wOL57B6gHUwfyotnYvxFNSSKT1yzvH6CCdFwDVJCOHYaq0QlxSOo6RiIYZz0CD8Bo2y5TJvnHq3eAItPeH45fsw7LbPIkfpUzXANUkI5rgArScQ1Qlepon2CnQ4DLYxy3jkAMscwMgNcQBvyGJDtApXOXsprOKbO42YHZnDUQWmqAcumwd7kByqXjH4aq0VESMNp2hdyUNZxDQYSdIO/8AMVhDg8PlQxclyrAJ8YQApDhB89Y8/8eoET+A46Kvwl1DPddAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAAvQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADX0lEQVRoQ+2Xz2sTQRTHq/Qk1YOgFz3qHyLFi4LeRAri0YMHTx68eCseBMGbf4NFW4sWQYwtVrRFCq0iTVKT5kezzabdtPnRpDHJc97IbCfTyc68gEVhPvA97HReZt9nZyfN0OrqKlATi8XIGR8fJ+fY8xQcJwTnD1LDJTSbTesICRSEhFqtZh2cjzdJQTRGAec7CU6Ck8BxEhhOAsNJYDgJDCeB4SQwnARGKIEabIoabIoa0dTfzj8tgfpjCDNIDZdAQUigICTotn2/4Hy8QQqiKQpOAsNKQrvdhnw+D+VymV/bSNje78D1+U149rPCr20k5MoVuDq3AU9/lPi1jQR1HRsJuppICSigUCjwxlEEYpKAi4x98WGIffi1+SIfM0lAATfmC7zmyuwGHzNJ0K1jktCvpq+EbrcLnufxprPZLBeCRElodbpwe9Hnh9PorAebjT81URLKlRqMfSrwmkvv85AKKnw8SkK/daIkRNWEEvB/AGy2Xq/z6yAIIB6PQyqVgr29PT6GyBKWd/bh8pwHMb8BbA14HN+BEy/ScHEmBx9LDT4HkSUseDswGsvDTCaASpU1u+LzmgtvMvAuF4RyZAm268gSKDWhhGKxyBtcW1sD3/chkUhAMpmERuOgAJEl3F3a4mbPv87C/eVtODW5DmenM/B5q8n/LpAl3FnweM256XW493UTTr5Mw5lX6/AhVw4FqBJs15ElUGp6Xgfc/vj0cQwFiF0hI0tAbi0UYXgizd+z01MZeOsd7BqBLAFzk23/4Qm2ONZMpmEqfbADRGQJiM06sgTEtqZHQqfTgVKpxHcBvg54LqioEuq/OvDwewAj7Ik+SexCo324RpXg71bhwVIRRtj2fPTNh61KtUcARpVgs44qwbbm0MGIjbdaLa0ARJWA4Icnqy1++OhQJWCw8RV/lx+M8riIKgExraNKQGxqDkkwoZNgQifBFJ0EEzoJJkIJ1GBT1GBT1ODBJhqzzSA1Q/i1SI2uSVN0TZpypBIoCAkUhAQKOB9vkIJoikKPBPGUoyLmCQn41WMKIkvQzVGDyBJ0c9QgsgTdHDWIk8BwEhhOAsNJYDgJDCeB4SQw/hsJ/EYNEfMGqQkl2CJLsEWWYIsswRZZgi2hBGqwKWqwKWqO5rdDCn4DepjAZpDd1xAAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIscWKqUqhVWyT1KT5biZN0uajSWOS432PJL2ZTjL3DggK94EXOpM5uXOeuXNn0pFEIkG6CQQC2vH5fNo59DRKhzWC473UsIRGo6GcfD7PTemwurrKTVWrVeX4/X4+SR1ufsl7qjESjAQjgTESBEaCwEgQGAkCI0FgJAiMBEFPAhpTTTqdZgloTDXBYJAloDHVTE5O8ns9TlI1514nPdWMrK2tkW4gQTeQoBsvP4a81LAEHbLZLDelSiQS4dmAppym/aBgNuAkdcCV9VLz1yXkcrn/X0Kr1aJUKkWlUom3VSQU9tp0ZWGTnvws87aKhGSpTJfm0/T4R563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcXsjxPjcJEHB1IcM1F+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDt34bPFiMz6Xpc36n5phEkrlKk18zHDN+XcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnd3eR+QJSxv79GFebFt1UmMQQ9D23TkWYzOzibpQ77OxwBZwmJ2m8YDKZqNF6lcqZJvxeKaM6/i9DZZ7MmRJaiOI0vQqelJwAKGv9fX18myLAqHw7yy1+v7BUCWcHtpi82efpmgu8sFOja9QSdn4vRpq8Gfd5El3FrMcs2pmQ2683WTjj6P0YkXG/Q+WeoJsEtQHUeWoFPTdzugQVx97IOA7qyQsd8O1xdzNDoV4/vsuD9Ob7L7s6aL/Xa4Jqb/6JR4PqNmOkb+2P4M6MZ+O6iMI0sAqjV9EtrtNr8VYhbgdsC6YMcuofarTfe/F2lMXNFH4R2qtw7W2CVYOxW6t5SjMTE9H3yzaKtc6ROA2CWojGOXoFpzYGFE481m01EAsEsA+PJIpcmLjxNOCyMaX7F2eGGU93fjtDC6jWOXAFRqDkhww0mCG04S3OIkwQ0nCW70JKAx1eBpAQloTDX//A8oPBZ1Awm6gQTdoCFcWdXgeC81LEGHQqHATemA2YCmdMBswEnqgCvrpaYnQb7SgwJkCXj0uAXIEpyOsQfIEpyOsQfIEpyOsQcYCQIjQWAkCIwEgZEgMBIERoLASBD0SVBFlqCKLEEVWYIqsgRVehLQmGrwj1dIQGOq+bd/QCXpN3LrT59/MUO0AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAASAIAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAB6klEQVRoQ+2ZQUsCQRTHLTpFdOjQqWv0QaJr3YPo0q1z126ego7SZygqiahOS5GQFQRCICVlrqCuumFlmaa93hvMJtlwZmFDdt8P/gd33+C+3+7MOhgCFxiGoZ1wOKyd/8K1BB2SyaRoqlqtKicajbZHew9LQFgCwhIQloCwBIQlICwBYQkIS0BYAuJaAjWmmng8LiRQY6qJRCLtb/Me1xJ00894Ph1SqZR4GvoZzyVYlhVMCXa9BXOxAmzcPYvPgZNAAubjRQht3sNszBLHAiWh0fqExYsiDKCA6eM8FGpNcdzXEhKVOsyc5MEo1gD7h7WbCgxvp2HyIAunpZqoIXwtYfmqLO76xL4JKwkbRncfYHwvA2fld3H+G99Ph4VzC4a20mINGItm4Cj/1j7zg+8lvH60YPX6EUZ20rB++wS1Js6LLgKxMFLjqZeGWBidCISEXvhWAjWmGtpA9TMh0zRBNyRBN7SL1A29eQY1QvVuxggJOti2LZrSgZ4GakoH2k7TReqwdFlyNaYjQb7Tf4WQJdBrsVcIWYJTTXcIWYJTTXcIWYJTTXcIloCwBIQlICwBYQkIS0BYAsISkF8SVJElqCJLUEWWoIosQZWOBGpMNblcTkigxlTj9h8o+l1PF6maqcOsizFZ+AIGcQg8msEiNgAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADm0lEQVRoQ+2YzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXud5Jel0u8nOrAgq88AD2ck+mX1/87G7GUokEqTrQCCgbZ/Pp+0Dj6N0UMM430uGITQaDWXn83kuSkfLy8tcVLVaVbbf7+eL1NH1T3lPGQPBQDAQWAaCkIEgZCAIGQhCBoKQgSBkIAj1IKAwVafTaYaAwlQdDAYZAgpT9fj4OD/X4yJVfeZl0lNmaGVlhXQNCLoGBF17eRnykmEIOspms1yUqiKRCM8GFOU07fsZswEXqSOMrJfMH4eQy+X+fQitVotSqRSVSiU+VoFQ2GnTpbl1evS9zMcqEJKlMl2YTdPDb3k+VoFg70cFglNmIAQAyGQyvA8ABOQGAZ2MBS0aEhdzcS7HbW4QAODyXIYz52fS3OYGwakfNwj9Mn0hdDodLhjf4w4CINAgCM12h659tHizGZ3J0nr9V2YQhFK5SmPvM5w5+yZF0WKZ2wdB6NfPIAiDMj0IeAZAsbVajY+LxSKFQiGKRqO0vb3NbZAMYXFzh87NimOrTqIPuh/apENPYnR6Oknv8nU+B5IhzGc3aTSQoul4kcqVKvmWLM6cehGn18liD44MQbUfGYJOpgcBGxg+r66ukmVZFA6HeWev13cDkAzh5sIGkz35PEG3Fwt0ZHKNjk/F6cNGg7/vSoZwYz7LmRNTa3Tr8zodfhqjY8/W6G2y1ANgh6DajwxBJ7NnOaBAjD7aAKA7K2TZl8PV+RwNT8R4nR31x+lVdnfWdGVfDlfE9B+eEPdnZCZj5I/tzoCu7ctBpR8ZAqSa2QOh3W7zUyFmAZYD9gW77BBqP9p092uRRsSIPghvUb21P2OHYG1V6M5CjkbE9Lz3xaKNcmUPANgOQaUfOwTVzL6NEYU3m01HAJAdAoQfj1SavPk4yWljROFL1hZvjHJ7104bo1s/dgiQSmYfBDc5QXCTEwQ3O0FwkxMEN/UgoDBV424BCChM1X/9CxRui7oGBF0Dgq5REEZW1dgAvWQYgo4KhQIXpSPMBhSlI8wGXKSOUJCXTA+CPNL9DMkQ+AdcDMkQnM6xG5IhOJ1jd/c8LxkDAZ+7xdkLdjJkIAgZCEIGgpCBIGQgCBkIQv81BFXJEFQlQ1CVDEFVKMhLhiGgMFXjj1dAQGGq/p0XqO6oqVo/E6WfdBY2E/BzX6AAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA6wMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADjUlEQVRoQ+2XT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532zapM2fJo1JXud5ZdPpdpOdWRAU5gcPdDfzdvb97exsMpRKpUg3oVBIO4FAQDuHnsbpsEYw3k8NS2g2m8opFovclA7Ly8vcVK1WU04wGOSL1OHml6KvGiPBSDASGCNBYCQIjASBkSAwEgRGgsBIEPQkoDHVZLNZloDGVBMOh1kCGlPN+Pg4f6/HRarm3Ou0r5qhlZUV0g0k6AYSdOPnx5CfGpagQz6f56ZUicVivBrQlNuy7xesBlykDrizfmr+uoRCofD/S2i325TJZKhcLvOxioTN3Q5dmVunJz8rfKwiIV2u0KXZLD3+UeRjFQnOeVQkuNUMlAABuVyO9wGIAF4SMMlY2KIhcTGX5wp8zksCBFydy3HNxZksn/OS4DaPl4R+NX0ldLtdbhif4w0CIWCQhFanSzc+W7zZjM7kab3xp2aQhHKlRmMfc1xz/l2G4qUKnx8kod88gyQMqulJwHcANFuv1/m4VCpRJBKheDxOOzs7fA7IEha3dunCrDi2GiTmoIeRLTryLEFnp9P0odjgMUCWMJ/fotFQhqaTJapUaxRYsrjmzKskvU2XenJkCarzyBJ0anoSsIHh79XVVbIsi6LRKO/sjcZeAZAl3F7YYLOnX6bo7uImHZtco5NTSfq00eTPbWQJt+bzXHNqao3ufF2no88TdOLFGr1Pl3sCnBJU55El6NTsexzQIO4+zkGAvSpknI/D9fkCDU8k+Dk7HkzSm/zeqrFxPg7XxPIfnhDvZ9RMJiiY2FsBdpyPg8o8sgSgWrNPQqfT4W+FWAV4HLAvOHFKqP/q0P3vJRoRd/RRdJsa7YM1TgnWdpXuLRRoRCzPB98s2qhU9wlAnBJU5nFKUK05sDGi8Var5SoAOCUA/PNYtcWbjxtuGyMaX7K2eWOUz9tx2xi95nFKACo1ByR44SbBCzcJXnGT4IWbBC96EtCYavC2gAQ0ppp//gcUXou6gQTdQIJu0BDurGow3k8NS9DBlqADVgOa0gGrARepA+6sn5qeBPsuD4o9zpaAV49XgCzBbYwzQJbgNsYZIEtwG+MMMBIERoLASBAYCQIjQWAkCIwEgZEg2CdBFVmCKrIEVWQJqsgSVOlJ0A0koDHV/Ns/oNL0G0NuTL0rh9nUAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADm0lEQVRoQ+2YzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXud5Jel0u8nOrAgq88AD2ck+mX1/87G7GUokEqTrQCCgbZ/Pp+0Dj6N0UMM430uGITQaDWXn83kuSkfLy8tcVLVaVbbf7+eL1NH1T3lPGQPBQDAQWAaCkIEgZCAIGQhCBoKQgSBkIAj1IKAwVafTaYaAwlQdDAYZAgpT9fj4OD/X4yJVfeZl0lNmaGVlhXQNCLoGBF17eRnykmEIOspms1yUqiKRCM8GFOU07fsZswEXqSOMrJfMH4eQy+X+fQitVotSqRSVSiU+VoFQ2GnTpbl1evS9zMcqEJKlMl2YTdPDb3k+VoFg70cFglNmIAQAyGQyvA8ABOQGAZ2MBS0aEhdzcS7HbW4QAODyXIYz52fS3OYGwakfNwj9Mn0hdDodLhjf4w4CINAgCM12h659tHizGZ3J0nr9V2YQhFK5SmPvM5w5+yZF0WKZ2wdB6NfPIAiDMj0IeAZAsbVajY+LxSKFQiGKRqO0vb3NbZAMYXFzh87NimOrTqIPuh/apENPYnR6Oknv8nU+B5IhzGc3aTSQoul4kcqVKvmWLM6cehGn18liD44MQbUfGYJOpgcBGxg+r66ukmVZFA6HeWev13cDkAzh5sIGkz35PEG3Fwt0ZHKNjk/F6cNGg7/vSoZwYz7LmRNTa3Tr8zodfhqjY8/W6G2y1ANgh6DajwxBJ7NnOaBAjD7aAKA7K2TZl8PV+RwNT8R4nR31x+lVdnfWdGVfDlfE9B+eEPdnZCZj5I/tzoCu7ctBpR8ZAqSa2QOh3W7zUyFmAZYD9gW77BBqP9p092uRRsSIPghvUb21P2OHYG1V6M5CjkbE9Lz3xaKNcmUPANgOQaUfOwTVzL6NEYU3m01HAJAdAoQfj1SavPk4yWljROFL1hZvjHJ7104bo1s/dgiQSmYfBDc5QXCTEwQ3O0FwkxMEN/UgoDBV424BCChM1X/9CxRui7oGBF0Dgq5REEZW1dgAvWQYgo4KhQIXpSPMBhSlI8wGXKSOUJCXTA+CPNL9DMkQ+AdcDMkQnM6xG5IhOJ1jd/c8LxkDAZ+7xdkLdjJkIAgZCEIGgpCBIGQgCBkIQv81BFXJEFQlQ1CVDEFVKMhLhiGgMFXjj1dAQGGq/p0XqO6oqVo/E6WfdBY2E/BzX6AAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
+
+
+ VisualStudio2008Vista
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAArQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADT0lEQVRoQ+2ZzWsTURTFq3Ql1YWgG10q/h1S3CjoTqQgbgQXLly5cOMuuBAEN8W/waKNRasgxooVU5VCq9gmqUnzOc2knbT5aNKY5PrOlUyn00nmvQFB5R040HmZ0zf3N+/dmbRDmUyGVB2JRJQdCoWUfeBxkg4qGOcHyTCEZrMp7VKpxEWpaGlpiYuq1WrSDofDfJEquv65FCijIWgIGgJLQxDSEIQ0BCENQUhDENIQhDQEIRsCCpN1Pp9nCChM1tFolCGgMFmPj4/zez0uUtZnXmYDZYaWl5dJ1YCgakBQdZAvQ0EyDEFFhmFwUbJKJBK8GlCU17LvZ6wGXKSKcGeDZP44hGKx+O9DaLfblMvlqFwu87EMhI2dDl2aXaNHPyp8LAMhW67QhXd5evi9xMcyENzzyEDwygyEAACFQoH7AEBAfhAwyVjUpCFxMRdnizzmBwEALs8WOHN+Js9jfhC85vGD0C/TF0K32+WC8TmeIAACDYLQ6nTp2ieTm83ojEFrjd+ZQRDKlRqNfShw5uybHCWtCo8PgtBvnkEQBmVsCHgHQLH1ep2PLcuiWCxGyWSStre3eQxyQljY3KFz78Sx2SAxB92PbdKhJyk6PZ2l96UGnwM5IcwZmzQaydF02qJKtUahRZMzp16k6XXWsuE4IcjO44SgkrEhoIHh55WVFTJNk+LxOHf2RmM3ADkh3JxfZ7Inn2fo9sIGHZlcpeNTafq43uTPe3JCuDFncObE1Crd+rJGh5+m6NizVXqbLdsA3BBk53FCUMns2Q4oEHcfYwDQWxVOubfD1bkiDU+keJ8dDafplbG7anpyb4crYvkPT4jnMzKTKQqndldAz+7tIDOPEwIkm9kDodPp8FshVgG2A/qCW24I9Z8duvvNohFxRx/Et6jR3p9xQzC3qnRnvkgjYnne+2rSeqW6BwDshiAzjxuCbGZfY0ThrVbLEwDkhgDhlyeqLW4+XvJqjCh80dzixugc79mrMfrN44YAyWT2QfCTFwQ/eUHwsxcEP3lB8JMNAYXJGk8LQEBhsv7rv0DhsahqQFA1IKgaBeHOyhrnB8novyeIjIagIWgILA1BSEMQ0hCENAQhDUFIQxDSEIRsCChM1v/ff6Cy9AsSMSlLu0Av/QAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+gMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADnElEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqItcWKqUqhVWyT1KT5biZN0uajaWOS432PTHo7nWTuHSio3AdeyEzm5M555s6dJAPJZJJ0MzU1pZ1AIKCdQ09jdFgjON5PDUvY3t5WTqFQ4KZ0WFpa4qZqtZpygsEgn6QON78UfNUYCUaCkcAYCQIjQWAkCIwEgZEgMBIERoKgKwGNqSaTybAENKaaUCjEEtCYakZHR/l7PU5SNedep3zVDCwvL5NuIEE3kKAbPz+G/NSwBB1yuRw3pUo0GuXZgKbcpn2vYDbgJHXAlfVTc+AS8vn8vy+h1WpROp2mcrnM2yoSijttujK7Rk9+VnhbRUKqXKFLMxl6/KPA2yoSnOOoSHCr6SsBArLZLK8DEAG8JGCQkZBFA+JkLs/meZ+XBAi4OpvlmovTGd7nJcFtHC8JvWp6Suh0Otww3scTBEJAPwnNdodufLZ4sRmeztFa409NPwnlSo1GPma55vy7NMVKFd7fT0KvcfpJ6FfTlYDvAGi2Xq/zdqlUonA4TLFYjLa2tngfkCUsbOzQhRmxbTVIjEEPwxt05Fmczk6m6EOhwccAWcJcboOGp9I0mShRpVqjwKLFNWdeJehtqtSVI0tQHUeWoFPTlYAFDK9XVlbIsiyKRCK8sjcauwVAlnB7fp3Nnn6ZpLsLRTo2vkonJxL0aX2b37eRJdyay3HNqYlVuvN1jY4+j9OJF6v0PlXuCnBKUB1HlqBTs+d2QIO4+tgHAfaskHHeDtfn8jQ4Fuf77HgwQW9yu7PGxnk7XBPTf3BMPJ9RMx6nYHx3Bthx3g4q48gSgGrNHgntdpu/FWIW4HbAuuDEKaH+q033v5doSFzRR5FNarT21zglWJtVujefpyExPR98s2i9Ut0jAHFKUBnHKUG1Zt/CiMabzaarAOCUAPDh0WqTFx833BZGNL5obfLCKO+347Yweo3jlABUavZJ8MJNghduErziJsELNwledCWgMdXgaQEJaEw1f/0PKDwWdQMJuoEE3aAhXFnVYAH0U8MSdCgWi9yUDpgNaEoHzAacpA5oyE9NV4J8pXsFyBL4AzwCZAluxzgDZAluxzhjH+enxkjAa7s5Z8NuAUaCwEgQGAkCI0FgJAiMBMF/LUEVWYIqsgRVIME+UVXk5lTpSkBjqsEfr5CAxlTj9weU3dTBJka/AW4uNg3p+taQAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
+
+ Far
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA7AAAAAKJUE5HDQoaCgAAAA1JSERSAAAAFAAAABQIBgAAAI2JHQ0AAAAEZ0FNQQAAsY8L/GEFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAH5JREFUOE+tzMEJwDAQA0G3kP47SFMp5WKbEwizryiPwWY5NKrqVxgTGBMYExgTGBMY3XU/Na1XZubbBaPrQY3u/3njMDofangnGF0PanT/6U4wOh9qM/PtgtH1oEb3/7xxGJ0PNbwTjK4HNbr/dCcYExgTGBMYExgTGL+r8QL1YYgBA3bF7AAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA4AAAAAKJUE5HDQoaCgAAAA1JSERSAAAAFAAAABQIBgAAAI2JHQ0AAAAEZ0FNQQAAsY8L/GEFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUOE+tzMEJgEAQBMFLwfwzMClDWc/HQCP9cnwULM2wa2Z+pbGhsaGxobGhsaGRjvOKyW270Eh4FroLjcRHud8b0kh4Fjv79qGR+Ci37UIj4VnoLjQSH+V+b0gj4Vns7NuHxobGhsaGxobGhsbvZt1vy4gBqcW4UgAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ TopOnBorder
+ BottomToTop
+
+
+
+
+ HighlightEntireItem
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA9QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADl0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPm53Mk9n3tzOzm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxnA4pym/a9jNmAi9QR7qyfzIFDKBQK/z6EVqtFmUyGyuUyn6tAWN9p05WZVXrys8LnKhDS5Qpdms7S4x9FPleB4BxHBYJbpi8EAMjlcrwPAATkBQGDjIQtGhAXc3mmwG1eEADg6kyOMxenstzmBcFtHC8IvTI9IXQ6HS4Y3+MJAiBQPwjNdodufLZ4sxmeytNq40+mH4RypUYjH3OcOf8uQ/FShdv7Qeg1Tj8I/TJdCHgHQLH1ep3PS6USRSIRisfjtLW1xW2QDGF+Y4cuTItzq0FiDHoY2aAjzxJ0djJNH4oN7gPJEGbzGzQcytBkskSVao0CCxZnzrxK0tt0qQtHhqA6jgxBJ9OFgA0Mn5eXl8myLIpGo7yzNxq7AUiGcHtujcmefpmiu/PrdGx8hU5OJOnT2jZ/b0uGcGs2z5lTEyt05+sqHX2eoBMvVuh9utwF4ISgOo4MQSezZzmgQNx9tAGAPStkOZfD9dkCDY4leJ0dDybpTX531thyLodrYvoPjonnMzLjCQomdmeAbedyUBlHhgCpZvZAaLfb/FaIWYDlgH3BKSeE+q823f9eoiFxRx9FN6nR2p9xQrA2q3RvrkBDYno++GbRWqW6BwDshKAyjhOCambfxojCm82mKwDICQHCj8eqTd583OS2MaLwBWuTN0a53bbbxug1jhMCpJLZB8FLbhC85AbBy24QvOQGwUtdCChM1XhaAAIKU/Vf/wcKj0VdA4KuAUHXKAh3VtXYAP1kGIKObAg6wmxAUTrCbMBF6ggF+cl0Idh3uZ/tfjYE/gEPQzIEtz5OQzIEtz5O2/38ZAwEfJaL87Ldz0AQRwNBHA0EcTQQxNFAEEcDQRz/WwiqkiGoSoagKhmCqlCQnwxD0DUgoDBV+/0DZd+xg3WcfgND/TMv156b9wAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2zXFsx4kTZ/GWw/2d+GbevFz7Oe7IXzqy/XLPu/f871kTEg+y2azs7u7K4uLitayvr0s6nS6uuInz83OZm5uTvr4+6e3tVRkbG5NkMimXl5fFVc/j+PhYuru7pa6uTmpra1UaGxtle3u7pM7maU6+/DcmrzStyUuNV/JWeFfC++dScKtUrKMkFAoFicfjanAsFlOjLy4u5OzsTJ9vbW1JJBJRkizy+bxsbm6qwXyyHlgip6amlET7HGQyGRkdHZWmpibVOzk5UaMhcnZ2Vtra2pREnluksgX5ZeFQ3g5H5NfFIzWM8ycyBfljNSUfPYnKt2Nx2T7NXykY3FZHSUgkEnpwa7xfTk9PJRqN6k3lcjlVxPClpSU1wAXIgFTIwHgwPj6uHoMnuADpw8PD0t7ernsCjPjOHNga4kfsIi8/zh8aw/Yken5l1G11Qhx2Y2NDN3URYAVjd3Z21M35zk2WIsCCW15YWFDyuN3m5uaSBFjgleFwWCYnJ9WId3oisnX27JZdyJt9vh6JyW9PU1XphPCA/f19p+F+wQAMIgdAXCVAZ3p6WnMAoVAq5r0gJDs6OjSefzZuXSg+L4fxZEY++SdalU6IuC0VBn7BXQkD4jbICyzwNG6VJBjkBRbs09raKi+bRLaefpaHyiF+UZD3H+9VpaMkuAx2CYbjCT09PcXXBAP3xnNqamoq8gJA0u3q6pIX/l4rmfn9yJiFnw/FqtK5tSdQKfAEflcCEinhQBn0Zv1yIJFSKShpO2dXiTgIR6YifGiyfjU6ITI41cFvsEswglxAUtzb2yu+qjxIuIQDfQBJshKQfAkHavrDjcpCaOE4K+89jlSlE8ILcHFu2WW4VyiTJC0OSV339g2lAMmrq6u6R2dnZ0W5ZGRkRAYHB7Wp+WxgXxImdoPwkyl5P0wnq9LRPoFGCHEZbgVvwSC+E9uE0crKir7MBdbgLRgE0fwml/T39xdX3AT5A29paGiQg4MDje1vRuPyYPKguOImcsbWP9dP5M3uXZlPZavSURK4UW4KSaVS6sLcGN5BCFBC19bW9LcFZBDr8/PzcnR0pO/ACHIA+lQRGh/eZ8G7aIQolxDE+0iCvAujKaH19fXPhdq2ie+PTRn7ypS+wcSFyeh5TWjE81wqo+XwjUc7MmT+ZnFbnevZgcPj5hBB3POJIXwnBDioHyQw1s3MzGjcUwXoECcmJjQE8AA/IIg19AHEPVWAJNjS0iIDAwNKhh90db+bpubT/qiWtC+G9uUD0+292xuR7407c5t+3EbnmgQAEYQF7TDujthushTwmDszQHED3Dyfdj7AVXF12mVc1JsI79wAheFk/lLZHoNJjNyUJQjD78wAhVEYxCe3ws0Tz9zi8vKyJkVI4G8Q5R+gssavHm6cyOsdWxIy3dq91k2TmROSNKyj4xqgyumUGqDK6ZQaoCrVCZEDbDKCAG8+sEIocDhcm9DwDlB/mU1ebV7XTazQut4fjkna1CLXABWk4xqggnRcA1SlOiGMtmFgPcAveARr8AjbNtsweK39imW/3GvdkNWTrOr5B6ggHcLCP0AF6bgGqEp1dHaw8BvvFeKaW8RzvAOUaxMrtKV4kH+Acq21gg5k+wco11or6LgGKNdaK14dJcEmO27cbzxivQWDiG/vAAWrrk1ww6eGbd7tH6CCdFwDVJCOa4CqVCdEbJMLAEnQRQIhwO1wOL57B6gHUwfyotnYvxFNSSKT1yzvH6CCdFwDVJCOHYaq0QlxSOo6RiIYZz0CD8Bo2y5TJvnHq3eAItPeH45fsw7LbPIkfpUzXANUkI5rgArScQ1Qlepon2CnQ4DLYxy3jkAMscwMgNcQBvyGJDtApXOXsprOKbO42YHZnDUQWmqAcumwd7kByqXjH4aq0VESMNp2hdyUNZxDQYSdIO/8AMVhDg8PlQxclyrAJ8YQApDhB89Y8/8eoET+A46Kvwl1DPddAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+AMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADmklEQVRoQ+2YzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9k0SZuPJo1JXud5Jel0u8nOLBRU5oEHspN9Mvv+5mN3M5RIJEjXgUBA2z6fT9uHnkbpsIZxvpcMQ2g0GsrO5/NclI6Wl5e5qGq1qmy/388XqaObX/KeMgaCgWAgsAwEIQNByEAQMhCEDAQhA0HIQBDqQUBhqk6n0wwBhak6GAwyBBSm6vHxcX6ux0Wq+tzrpKfM0MrKCukaEHQNCLr28jLkJcMQdJTNZrkoVUUiEZ4NKMpp2vczZgMuUkcYWS+ZA4eQy+X+fQitVotSqRSVSiU+VoFQ2GnTlbl1evKzzMcqEJKlMl2aTdPjH3k+VoFg70cFglNmIAQAyGQyvA8ABOQGAZ2MBS0aEhdzeS7HbW4QAODqXIYzF2fS3OYGwakfNwj9Mn0hdDodLhjf4w4CINAgCM12h258tnizGZ3J0nr9T2YQhFK5SmMfM5w5/y5F0WKZ2wdB6NfPIAiDMj0IeAZAsbVajY+LxSKFQiGKRqO0vb3NbZAMYXFzhy7MimOrTqIPehjapCPPYnR2Okkf8nU+B5IhzGc3aTSQoul4kcqVKvmWLM6ceRWnt8liD44MQbUfGYJOpgcBGxg+r66ukmVZFA6HeWev13cDkAzh9sIGkz39MkF3Fwt0bHKNTk7F6dNGg7/vSoZwaz7LmVNTa3Tn6zodfR6jEy/W6H2y1ANgh6DajwxBJ7NnOaBAjD7aAKA7K2TZl8P1+RwNT8R4nR33x+lNdnfWdGVfDtfE9B+eEPdnZCZj5I/tzoCu7ctBpR8ZAqSa2QOh3W7zUyFmAZYD9gW77BBqv9p0/3uRRsSIPgpvUb21P2OHYG1V6N5CjkbE9HzwzaKNcmUPANgOQaUfOwTVzL6NEYU3m01HAJAdAoQfj1SavPk4yWljROFL1hZvjHJ7104bo1s/dgiQSmYfBDc5QXCTEwQ3O0FwkxMEN/UgoDBV424BCChM1X/9CxRui7oGBF0Dgq5REEZW1dgAvWQYgo4KhQIXpSPMBhSlI8wGXKSOUJCXTA+CPNL9DMkQ+AdcDMkQnM6xG5IhOJ1jd/c8LxkDAZ+7xdkLdjJkIAgZCEIGgpCBIGQgCBkIQv81BFXJEFQlQ1CVDEFVKMhLhiGgMFXjj1dAQGGq9voC1R2xg3WUfgNzejYRjgB1CAAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPk93Mk9n3N7Ozm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxXA4pyW/a9jNWAi9QRZtZP5sAhFAqFfx9Cq9WiTCZD5XKZj1UgrO+06crMKj35WeFjFQjpcoUuTWfp8Y8iH6tAcI6jAsEt0xcCAORyOd4HAALygoBBRsIWDYiLuTxT4HNeEADg6kyOMxensnzOC4LbOF4QemV6Quh0OlwwvscTBECgfhCa7Q7d+GzxZjM8lafVxp9MPwjlSo1GPuY4c/5dhuKlCp/vB6HXOP0g9Mt0IeAdAMXW63U+LpVKFIlEKB6P09bWFp+DZAjzGzt0YVocWw0SY9DDyAYdeZags5Np+lBscB9IhjCb36DhUIYmkyWqVGsUWLA4c+ZVkt6mS104MgTVcWQIOpkuBGxg+Ly8vEyWZVE0GuWdvdHYDUAyhNtza0z29MsU3Z1fp2PjK3RyIkmf1rb5e1syhFuzec6cmlihO19X6ejzBJ14sULv0+UuACcE1XFkCDqZPbcDCsTs4xwA2KtClvN2uD5boMGxBN9nx4NJepPfXTW2nLfDNbH8B8fE8xmZ8QQFE7srwLbzdlAZR4YAqWb2QGi32/xWiFWA2wH7glNOCPVfbbr/vURDYkYfRTep0dqfcUKwNqt0b65AQ2J5Pvhm0VqlugcA7ISgMo4Tgmpm38aIwpvNpisAyAkBwo/Hqk3efNzktjGi8AVrkzdG+bxtt43RaxwnBEglsw+Cl9wgeMkNgpfdIHjJDYKXuhBQmKrxtAAEFKbqv/4PFB6LugYEXQOCrlEQZlbV2AD9ZBiCjmwIOrIh6Aj9cZE6QkF+Ml0I9iz3s93PhsA/4GFIhuDWx2lIhuDWx2m7n5+MgYDPcnFetvsZCKI1EERrIIjWQBCtgSBaA0G0/y0EVckQVCVDUJUMQVUoyE+GIegaRekaRenanrGDdZx+AwQBIVZs5053AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPk93Mk9n3N7Ozm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxXA4pyW/a9jNWAi9QRZtZP5sAhFAqFfx9Cq9WiTCZD5XKZj1UgrO+06crMKj35WeFjFQjpcoUuTWfp8Y8iH6tAcI6jAsEt0xcCAORyOd4HAALygoBBRsIWDYiLuTxT4HNeEADg6kyOMxensnzOC4LbOF4QemV6Quh0OlwwvscTBECgfhCa7Q7d+GzxZjM8lafVxp9MPwjlSo1GPuY4c/5dhuKlCp/vB6HXOP0g9Mt0IeAdAMXW63U+LpVKFIlEKB6P09bWFp+DZAjzGzt0YVocWw0SY9DDyAYdeZags5Np+lBscB9IhjCb36DhUIYmkyWqVGsUWLA4c+ZVkt6mS104MgTVcWQIOpkuBGxg+Ly8vEyWZVE0GuWdvdHYDUAyhNtza0z29MsU3Z1fp2PjK3RyIkmf1rb5e1syhFuzec6cmlihO19X6ejzBJ14sULv0+UuACcE1XFkCDqZPbcDCsTs4xwA2KtClvN2uD5boMGxBN9nx4NJepPfXTW2nLfDNbH8B8fE8xmZ8QQFE7srwLbzdlAZR4YAqWb2QGi32/xWiFWA2wH7glNOCPVfbbr/vURDYkYfRTep0dqfcUKwNqt0b65AQ2J5Pvhm0VqlugcA7ISgMo4Tgmpm38aIwpvNpisAyAkBwo/Hqk3efNzktjGi8AVrkzdG+bxtt43RaxwnBEglsw+Cl9wgeMkNgpfdIHjJDYKXuhBQmKrxtAAEFKbqv/4PFB6LugYEXQOCrlEQZlbV2AD9ZBiCjmwIOrIh6Aj9cZE6QkF+Ml0I9iz3s93PhsA/4GFIhuDWx2lIhuDWx2m7n5+MgYDPcnFetvsZCKI1EERrIIjWQBCtgSBaA0G0/y0EVckQVCVDUJUMQVUoyE+GIegaRekaRenanrGDdZx+AwQBIVZs5053AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ Office2013RadioButtonGlyphInfo
+
+ -1
+ 0, 170, 222
+ Solid
+ 0, 170, 222
+ White
+ 135, 135, 135
+ None
+ Transparent
+ 0
+ 0, 170, 222
+
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA9QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADl0lEQVRoQ+2XzWsTQRjGq/Qk1YOgFz0q/h1SvCjoTaQgXgQPHjx58OIteBAEL8W/waKNRasgxhYrpiqFVrFNUpPmu9m0SZuPpo1JXud5ZdPpdpOdWSiozAMPk93Mk9n3N7Ozm4FUKkW6DoVC2g4EAto+9DROhzWM/n4yDGF7e1vZxWKRi9LR4uIiF1Wr1ZQdDAb5InV080vRV8ZAMBAMBJaBIGQgCBkIQgaCkIEgZCAIGQhCXQgoTNXZbJYhoDBVh8NhhoDCVD06Osrv9bhIVZ97nfaVGVhaWiJdA4KuAUHXfv4M+ckwBB3l83kuSlWxWIxXA4pyW/a9jNWAi9QRZtZP5sAhFAqFfx9Cq9WiTCZD5XKZj1UgrO+06crMKj35WeFjFQjpcoUuTWfp8Y8iH6tAcI6jAsEt0xcCAORyOd4HAALygoBBRsIWDYiLuTxT4HNeEADg6kyOMxensnzOC4LbOF4QemV6Quh0OlwwvscTBECgfhCa7Q7d+GzxZjM8lafVxp9MPwjlSo1GPuY4c/5dhuKlCp/vB6HXOP0g9Mt0IeAdAMXW63U+LpVKFIlEKB6P09bWFp+DZAjzGzt0YVocWw0SY9DDyAYdeZags5Np+lBscB9IhjCb36DhUIYmkyWqVGsUWLA4c+ZVkt6mS104MgTVcWQIOpkuBGxg+Ly8vEyWZVE0GuWdvdHYDUAyhNtza0z29MsU3Z1fp2PjK3RyIkmf1rb5e1syhFuzec6cmlihO19X6ejzBJ14sULv0+UuACcE1XFkCDqZPbcDCsTs4xwA2KtClvN2uD5boMGxBN9nx4NJepPfXTW2nLfDNbH8B8fE8xmZ8QQFE7srwLbzdlAZR4YAqWb2QGi32/xWiFWA2wH7glNOCPVfbbr/vURDYkYfRTep0dqfcUKwNqt0b65AQ2J5Pvhm0VqlugcA7ISgMo4Tgmpm38aIwpvNpisAyAkBwo/Hqk3efNzktjGi8AVrkzdG+bxtt43RaxwnBEglsw+Cl9wgeMkNgpfdIHjJDYKXuhBQmKrxtAAEFKbqv/4PFB6LugYEXQOCrlEQZlbV6O8nwxB0ZEPQEVYDitIR+uMidYSngJ9MF4I9y/1s97Mh8A94GJIhuPVxGpIhuPVx2u7nJ2Mg4LNcnJftfgaCaA0E0RoIojUQRGsgiNZAEO1/C0FVMgRVyRBUJUNQFQryk2EIugYEFKZq+w+Uru0ZO1jH6Tc1kyfofk37EgAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
+ RectangularSolid
+ None
+ TopOnBorder
+ BottomToTop
+
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA6gMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADjElEQVRoQ+2YT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePFWPAiCNz+DRVuLVkGMLVaaqhRaxTZJTZr/zaZJ2vxp0pjkdZ5Xsp1sN9mZBaHC/OCB7nbezr6/nZ1NOpRIJEg3gUBAO+Pj49o58jxKRzWC8X5qWEKj0VBOPp/npnRYXV3lpqrVqnIwHhepw+2veV81RoKRYCQwRoLASBAYCQIjQWAkCIwEgZEgsCWgMdWk02mWgMZUEwwGuSnd4HM9LlI1F94mfdUMra2tkW4gQTduTXrFz5chPzUsQYdsNstNqRKJRHg1oCm3Zd8vGI+L1AF31k/NP5eQy+X+fwmtVotSqRSVSiU+VpFQ2GvTtflNevarzMcqEpKlMl2ZS9PTn3k+VpHgnEdFglvNQAkQkMlkeB+ACOAlAZOMBS0aEhdzdT7H57wkQMD1+QzXXJ5N8zkvCW7zeEnoV9NXQqfT4Ybxe7xBIAQMktBsd+jWF4s3m9HZLG3W/9YMklAqV2nsc4ZrLn5IUbRY5vODJPSbZ5CEQTW2BHwGQLO1Wo2Pi8UihUIhikajtLu7y+eALGF5e48uzYljq05iDnoc2qZjL2J0fiZJn/J1HgNkCYvZbRoNpGgmXqRyRTS7YnHNuTdxep8s2nJkCarzyBJ0amwJ2MDw8/r6OlmWReFwmHf2en2/AMgS7i5tsdmzrxN0f7lAJyY36PR0nBa2Gvz7LrKEO4tZrjkzvUH3vm3S8ZcxOvVqgz4mS7YApwTVeWQJOjU9jwMaxN3HOQjorgoZ5+NwczFHwxMxfs5OTsXpXXZ/1XRxPg43xPIfnhDvZ9RMxmgqtr8CupElAJV5ZAlAtaZHQrvd5k+FWAV4HLAvOHFKqP1u08MfRRoRd/RJeIfqrYM1TgnWToUeLOVoRCzPR98t2ipXegQgTgkq8zglqNYc2BjReLPZdBUAnBIA/nik0uTNxw23jRGNr1g7vDHK57txSgBe8zglAJWaAxK8cJPghZsEr7hJ8MJNghe2BDSmGrwtIAGNqebQf4HCa1E3kKAbtya9goZwZ1WD8X5qWIIOhUKBm9IBqwFN6YDxuEgdcGf91NgS5DvdL0CWgFePV4AswW2MM0CW4DbGGSBLcBvjDDASBEaCwEgQGAkCI0FgJAiMBIGRIOiRoIosQRVZgiqyBFVkCarYEtCYavCPV0hAY6o53F+gkvQHK6ctxANB/y4AAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
+ White
+
+
+
+
+
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA+wMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADnUlEQVRoQ+2XT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532zapE3TJo1JXud5ZdPJdpOdWSiozAMPyW7mycz725nZ3YFUKkW6DoVC2g4EAto+9DROhzWM9n4yDKFeryu7WCxyUTpaXFzkoqrVqrKDwSAPUkc3vxR9ZQwEA8FAYBkIQgaCkIEgZCAIGQhCBoKQgSDUgYDCVJ3NZhkCClN1OBxmCChM1aOjo/xcj0Gq+tzrtK/MwNLSEukaEHQNCLr28zLkJ8MQdJTP57koVcViMZ4NKMpt2vcyZgMGqSNcWT+ZA4dQKBT+fQjNZpMymQyVy2U+VoGwvtuiKzOr9ORnhY9VIKTLFbo0naXHP4p8rALB2Y8KBLdMXwgAkMvleB8ACMgLAjoZCVs0IAZzeabA57wgAMDVmRxnLk5l+ZwXBLd+vCD0yvSE0G63uWD8jjsIgED9IDRabbrx2eLNZngqT6u1P5l+EMqVKo18zHHm/LsMxUsVPt8PQq9++kHol+lAwDMAit3e3ubjUqlEkUiE4vE47ezs8DlIhjC/sUsXpsWxVSPRBz2MbNCRZwk6O5mmD8Uat4FkCLP5DRoOZWgyWaLKVpUCCxZnzrxK0tt0qQNHhqDajwxBJ9OBgA0M35eXl8myLIpGo7yz12p7AUiGcHtujcmefpmiu/PrdGx8hU5OJOnTWp1/tyVDuDWb58ypiRW683WVjj5P0IkXK/Q+Xe4AcEJQ7UeGoJPpWg4oEFcf5wDAnhWynMvh+myBBscSvM6OB5P0Jr83a2w5l8M1Mf0Hx8T9GZnxBAUTezPAtnM5qPQjQ4BUM10QWq0WPxViFmA5YF9wyglh+1eL7n8v0ZC4oo+im1Rr7s84IVibW3RvrkBDYno++GbRWmWrCwDshKDSjxOCambfxojCG42GKwDICQHCn8e2Grz5uMltY0ThC9Ymb4zyedtuG6NXP04IkEpmHwQvuUHwkhsEL7tB8JIbBC91IKAwVeNuAQgoTNV//QsUbou6BgRdA4KuURCurI79ZBiCjmwIOsJsQFE6wmzAAHVkF6WjLgj2Ve5nu50NAbceL0MyBLc2TkMyBLc2TkMyBLc2TkMGgpCBIPTPQOCBethu5ydjIOC7XJyX7XYGgvg0EMSngSA+/1sIqpIhqEqGoCoZgqpkCKrqQNA1IKAwVft9gbKLOljH6TcHdzOr6BQ8HAAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAArQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADT0lEQVRoQ+2ZzWsTURTFq3Ql1YWgG10q/h1S3CjoTqQgbgQXLly5cOMuuBAEN8W/waKNRasgxooVU5VCq9gmqUnzOc2knbT5aNKY5PrOlUyn00nmvQFB5R040HmZ0zf3N+/dmbRDmUyGVB2JRJQdCoWUfeBxkg4qGOcHyTCEZrMp7VKpxEWpaGlpiYuq1WrSDofDfJEquv65FCijIWgIGgJLQxDSEIQ0BCENQUhDENIQhDQEIRsCCpN1Pp9nCChM1tFolCGgMFmPj4/zez0uUtZnXmYDZYaWl5dJ1YCgakBQdZAvQ0EyDEFFhmFwUbJKJBK8GlCU17LvZ6wGXKSKcGeDZP44hGKx+O9DaLfblMvlqFwu87EMhI2dDl2aXaNHPyp8LAMhW67QhXd5evi9xMcyENzzyEDwygyEAACFQoH7AEBAfhAwyVjUpCFxMRdnizzmBwEALs8WOHN+Js9jfhC85vGD0C/TF0K32+WC8TmeIAACDYLQ6nTp2ieTm83ojEFrjd+ZQRDKlRqNfShw5uybHCWtCo8PgtBvnkEQBmVsCHgHQLH1ep2PLcuiWCxGyWSStre3eQxyQljY3KFz78Sx2SAxB92PbdKhJyk6PZ2l96UGnwM5IcwZmzQaydF02qJKtUahRZMzp16k6XXWsuE4IcjO44SgkrEhoIHh55WVFTJNk+LxOHf2RmM3ADkh3JxfZ7Inn2fo9sIGHZlcpeNTafq43uTPe3JCuDFncObE1Crd+rJGh5+m6NizVXqbLdsA3BBk53FCUMns2Q4oEHcfYwDQWxVOubfD1bkiDU+keJ8dDafplbG7anpyb4crYvkPT4jnMzKTKQqndldAz+7tIDOPEwIkm9kDodPp8FshVgG2A/qCW24I9Z8duvvNohFxRx/Et6jR3p9xQzC3qnRnvkgjYnne+2rSeqW6BwDshiAzjxuCbGZfY0ThrVbLEwDkhgDhlyeqLW4+XvJqjCh80dzixugc79mrMfrN44YAyWT2QfCTFwQ/eUHwsxcEP3lB8JMNAYXJGk8LQEBhsv7rv0DhsahqQFA1IKgaBeHOyhrnB8novyeIjIagIWgILA1BSEMQ0hCENAQhDUFIQxDSEIRsCChM1v/ff6Cy9AsSMSlLu0Av/QAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ Office2013RadioButtonGlyphInfo
+
+
+
+
+
+
+
+
+ 0, 170, 222
+ Gray
+ Gray
+ Gray
+
+
+
+
+
+
+
+
+ Flat
+ True
+
+
+
+
+ Flat
+ True
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIscWKqUqhVWyT1KT5biZN0uajSWOS432PJL2ZTjL3DggK94EXOpM5uXOeuXNn0pFEIkG6CQQC2vH5fNo59DRKhzWC473UsIRGo6GcfD7PTemwurrKTVWrVeX4/X4+SR1ufsl7qjESjAQjgTESBEaCwEgQGAkCI0FgJAiMBEFPAhpTTTqdZgloTDXBYJAloDHVTE5O8ns9TlI1514nPdWMrK2tkW4gQTeQoBsvP4a81LAEHbLZLDelSiQS4dmAppym/aBgNuAkdcCV9VLz1yXkcrn/X0Kr1aJUKkWlUom3VSQU9tp0ZWGTnvws87aKhGSpTJfm0/T4R563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcXsjxPjcJEHB1IcM1F+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDt34bPFiMz6Xpc36n5phEkrlKk18zHDN+XcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnd3eR+QJSxv79GFebFt1UmMQQ9D23TkWYzOzibpQ77OxwBZwmJ2m8YDKZqNF6lcqZJvxeKaM6/i9DZZ7MmRJaiOI0vQqelJwAKGv9fX18myLAqHw7yy1+v7BUCWcHtpi82efpmgu8sFOja9QSdn4vRpq8Gfd5El3FrMcs2pmQ2683WTjj6P0YkXG/Q+WeoJsEtQHUeWoFPTdzugQVx97IOA7qyQsd8O1xdzNDoV4/vsuD9Ob7L7s6aL/Xa4Jqb/6JR4PqNmOkb+2P4M6MZ+O6iMI0sAqjV9EtrtNr8VYhbgdsC6YMcuofarTfe/F2lMXNFH4R2qtw7W2CVYOxW6t5SjMTE9H3yzaKtc6ROA2CWojGOXoFpzYGFE481m01EAsEsA+PJIpcmLjxNOCyMaX7F2eGGU93fjtDC6jWOXAFRqDkhww0mCG04S3OIkwQ0nCW70JKAx1eBpAQloTDX//A8oPBZ1Awm6gQTdoCFcWdXgeC81LEGHQqHATemA2YCmdMBswEnqgCvrpaYnQb7SgwJkCXj0uAXIEpyOsQfIEpyOsQfIEpyOsQcYCQIjQWAkCIwEgZEgMBIERoLASBD0SVBFlqCKLEEVWYIqsgRVehLQmGrwj1dIQGOq+bd/QCXpN3LrT59/MUO0AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2zXFsx4kTZ/GWw/2d+GbevFz7Oe7IXzqy/XLPu/f871kTEg+y2azs7u7K4uLitayvr0s6nS6uuInz83OZm5uTvr4+6e3tVRkbG5NkMimXl5fFVc/j+PhYuru7pa6uTmpra1UaGxtle3u7pM7maU6+/DcmrzStyUuNV/JWeFfC++dScKtUrKMkFAoFicfjanAsFlOjLy4u5OzsTJ9vbW1JJBJRkizy+bxsbm6qwXyyHlgip6amlET7HGQyGRkdHZWmpibVOzk5UaMhcnZ2Vtra2pREnluksgX5ZeFQ3g5H5NfFIzWM8ycyBfljNSUfPYnKt2Nx2T7NXykY3FZHSUgkEnpwa7xfTk9PJRqN6k3lcjlVxPClpSU1wAXIgFTIwHgwPj6uHoMnuADpw8PD0t7ernsCjPjOHNga4kfsIi8/zh8aw/Yken5l1G11Qhx2Y2NDN3URYAVjd3Z21M35zk2WIsCCW15YWFDyuN3m5uaSBFjgleFwWCYnJ9WId3oisnX27JZdyJt9vh6JyW9PU1XphPCA/f19p+F+wQAMIgdAXCVAZ3p6WnMAoVAq5r0gJDs6OjSefzZuXSg+L4fxZEY++SdalU6IuC0VBn7BXQkD4jbICyzwNG6VJBjkBRbs09raKi+bRLaefpaHyiF+UZD3H+9VpaMkuAx2CYbjCT09PcXXBAP3xnNqamoq8gJA0u3q6pIX/l4rmfn9yJiFnw/FqtK5tSdQKfAEflcCEinhQBn0Zv1yIJFSKShpO2dXiTgIR6YifGiyfjU6ITI41cFvsEswglxAUtzb2yu+qjxIuIQDfQBJshKQfAkHavrDjcpCaOE4K+89jlSlE8ILcHFu2WW4VyiTJC0OSV339g2lAMmrq6u6R2dnZ0W5ZGRkRAYHB7Wp+WxgXxImdoPwkyl5P0wnq9LRPoFGCHEZbgVvwSC+E9uE0crKir7MBdbgLRgE0fwml/T39xdX3AT5A29paGiQg4MDje1vRuPyYPKguOImcsbWP9dP5M3uXZlPZavSURK4UW4KSaVS6sLcGN5BCFBC19bW9LcFZBDr8/PzcnR0pO/ACHIA+lQRGh/eZ8G7aIQolxDE+0iCvAujKaH19fXPhdq2ie+PTRn7ypS+wcSFyeh5TWjE81wqo+XwjUc7MmT+ZnFbnevZgcPj5hBB3POJIXwnBDioHyQw1s3MzGjcUwXoECcmJjQE8AA/IIg19AHEPVWAJNjS0iIDAwNKhh90db+bpubT/qiWtC+G9uUD0+292xuR7407c5t+3EbnmgQAEYQF7TDujthushTwmDszQHED3Dyfdj7AVXF12mVc1JsI79wAheFk/lLZHoNJjNyUJQjD78wAhVEYxCe3ws0Tz9zi8vKyJkVI4G8Q5R+gssavHm6cyOsdWxIy3dq91k2TmROSNKyj4xqgyumUGqDK6ZQaoCrVCZEDbDKCAG8+sEIocDhcm9DwDlB/mU1ebV7XTazQut4fjkna1CLXABWk4xqggnRcA1SlOiGMtmFgPcAveARr8AjbNtsweK39imW/3GvdkNWTrOr5B6ggHcLCP0AF6bgGqEp1dHaw8BvvFeKaW8RzvAOUaxMrtKV4kH+Acq21gg5k+wco11or6LgGKNdaK14dJcEmO27cbzxivQWDiG/vAAWrrk1ww6eGbd7tH6CCdFwDVJCOa4CqVCdEbJMLAEnQRQIhwO1wOL57B6gHUwfyotnYvxFNSSKT1yzvH6CCdFwDVJCOHYaq0QlxSOo6RiIYZz0CD8Bo2y5TJvnHq3eAItPeH45fsw7LbPIkfpUzXANUkI5rgArScQ1Qlepon2CnQ4DLYxy3jkAMscwMgNcQBvyGJDtApXOXsprOKbO42YHZnDUQWmqAcumwd7kByqXjH4aq0VESMNp2hdyUNZxDQYSdIO/8AMVhDg8PlQxclyrAJ8YQApDhB89Y8/8eoET+A46Kvwl1DPddAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADk0lEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIscWKqUqhVWyT1KT5biZN0uajSWOS432PJL2ZTjL3DggK94EXOpM5uXOeuXNn0pFEIkG6CQQC2vH5fNo59DRKhzWC473UsIRGo6GcfD7PTemwurrKTVWrVeX4/X4+SR1ufsl7qjESjAQjgTESBEaCwEgQGAkCI0FgJAiMBEFPAhpTTTqdZgloTDXBYJAloDHVTE5O8ns9TlI1514nPdWMrK2tkW4gQTeQoBsvP4a81LAEHbLZLDelSiQS4dmAppym/aBgNuAkdcCV9VLz1yXkcrn/X0Kr1aJUKkWlUom3VSQU9tp0ZWGTnvws87aKhGSpTJfm0/T4R563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcXsjxPjcJEHB1IcM1F+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDt34bPFiMz6Xpc36n5phEkrlKk18zHDN+XcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnd3eR+QJSxv79GFebFt1UmMQQ9D23TkWYzOzibpQ77OxwBZwmJ2m8YDKZqNF6lcqZJvxeKaM6/i9DZZ7MmRJaiOI0vQqelJwAKGv9fX18myLAqHw7yy1+v7BUCWcHtpi82efpmgu8sFOja9QSdn4vRpq8Gfd5El3FrMcs2pmQ2683WTjj6P0YkXG/Q+WeoJsEtQHUeWoFPTdzugQVx97IOA7qyQsd8O1xdzNDoV4/vsuD9Ob7L7s6aL/Xa4Jqb/6JR4PqNmOkb+2P4M6MZ+O6iMI0sAqjV9EtrtNr8VYhbgdsC6YMcuofarTfe/F2lMXNFH4R2qtw7W2CVYOxW6t5SjMTE9H3yzaKtc6ROA2CWojGOXoFpzYGFE481m01EAsEsA+PJIpcmLjxNOCyMaX7F2eGGU93fjtDC6jWOXAFRqDkhww0mCG04S3OIkwQ0nCW70JKAx1eBpAQloTDX//A8oPBZ1Awm6gQTdoCFcWdXgeC81LEGHQqHATemA2YCmdMBswEnqgCvrpaYnQb7SgwJkCXj0uAXIEpyOsQfIEpyOsQfIEpyOsQcYCQIjQWAkCIwEgZEgMBIERoLASBD0SVBFlqCKLEEVWYIqsgRVehLQmGrwj1dIQGOq+bd/QCXpN3LrT59/MUO0AAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA7AMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADjklEQVRoQ+2XT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532zapM2fJo1JXud5ZdPJdpOdiRQU5gcPdDfzdvb97exsMpRIJEg3gUBAOz6fTzuHnkbpsEYwfpAallCv15WTz+e5KR2Wl5e5qUqlohy/388XqcPNL/mBaowEI8FIYIwEgZEgMBIERoLASBAYCQIjQdCRgMZUk06nWQIaU00wGGQJaEw14+Pj/L0eF6mac6+TA9UMrayskG4gQTeQoJtBfgwNUsMSdMhms9yUKpFIhFcDmnJb9r2C1YCL1AF3dpCaA5eQy+X+fwnNZpNSqRQVi0U+VpGwuduiK3Pr9ORniY9VJCSLJbo0m6bHP/J8rCLBOY+KBLeavhIgIJPJ8D4AEcBLAiYZC1o0JC7m8lyOz3lJgICrcxmuuTiT5nNeEtzm8ZLQq6anhHa7zQ3jc7xBIAT0k9BotenGZ4s3m9GZLK3X/tT0k1AsVWjsY4Zrzr9LUbRQ4vP9JPSap5+EfjUdCfgOgGar1SofFwoFCoVCFI1GaWdnh88BWcLi1i5dmBXHVo3EHPQwtEVHnsXo7HSSPuRrPAbIEuazWzQaSNF0vEClcoV8SxbXnHkVp7fJQkeOLEF1HlmCTk1HAjYw/L26ukqWZVE4HOadvVbbKwCyhNsLG2z29MsE3V3cpGOTa3RyKk6fNur8uY0s4dZ8lmtOTa3Rna/rdPR5jE68WKP3yWJHgFOC6jyyBJ2arscBDeLu4xwE2KtCxvk4XJ/P0fBEjJ+z4/44vcnurRob5+NwTSz/4QnxfkbNZIz8sb0VYMf5OKjMI0sAqjVdElqtFn8rxCrA44B9wYlTQvVXi+5/L9CIuKOPwttUa+6vcUqwtst0byFHI2J5Pvhm0Uap3CUAcUpQmccpQbVm38aIxhuNhqsA4JQA8M8j5QZvPm64bYxofMna5o1RPm/HbWP0mscpAajU7JPghZsEL9wkeMVNghduErzoSEBjqsHbAhLQmGr++R9QeC3qBhJ0Awm6QUO4s6rB+EFqWIIOtgQdsBrQlA5YDbhIHWwBOnRJsO9yv9jjbAl49XgFyBLcxjgDZAluY5wBsgS3Mc4AI0FgJAiMBIGRIDASBEaCwEgQGAmCLgmqyBJUkSWoIktQRZagSkeCbiABjanmb35AHXyi9BvrVTNhLiUFpAAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAArQMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADT0lEQVRoQ+2ZzWsTURTFq3Ql1YWgG10q/h1S3CjoTqQgbgQXLly5cOMuuBAEN8W/waKNRasgxooVU5VCq9gmqUnzOc2knbT5aNKY5PrOlUyn00nmvQFB5R040HmZ0zf3N+/dmbRDmUyGVB2JRJQdCoWUfeBxkg4qGOcHyTCEZrMp7VKpxEWpaGlpiYuq1WrSDofDfJEquv65FCijIWgIGgJLQxDSEIQ0BCENQUhDENIQhDQEIRsCCpN1Pp9nCChM1tFolCGgMFmPj4/zez0uUtZnXmYDZYaWl5dJ1YCgakBQdZAvQ0EyDEFFhmFwUbJKJBK8GlCU17LvZ6wGXKSKcGeDZP44hGKx+O9DaLfblMvlqFwu87EMhI2dDl2aXaNHPyp8LAMhW67QhXd5evi9xMcyENzzyEDwygyEAACFQoH7AEBAfhAwyVjUpCFxMRdnizzmBwEALs8WOHN+Js9jfhC85vGD0C/TF0K32+WC8TmeIAACDYLQ6nTp2ieTm83ojEFrjd+ZQRDKlRqNfShw5uybHCWtCo8PgtBvnkEQBmVsCHgHQLH1ep2PLcuiWCxGyWSStre3eQxyQljY3KFz78Sx2SAxB92PbdKhJyk6PZ2l96UGnwM5IcwZmzQaydF02qJKtUahRZMzp16k6XXWsuE4IcjO44SgkrEhoIHh55WVFTJNk+LxOHf2RmM3ADkh3JxfZ7Inn2fo9sIGHZlcpeNTafq43uTPe3JCuDFncObE1Crd+rJGh5+m6NizVXqbLdsA3BBk53FCUMns2Q4oEHcfYwDQWxVOubfD1bkiDU+keJ8dDafplbG7anpyb4crYvkPT4jnMzKTKQqndldAz+7tIDOPEwIkm9kDodPp8FshVgG2A/qCW24I9Z8duvvNohFxRx/Et6jR3p9xQzC3qnRnvkgjYnne+2rSeqW6BwDshiAzjxuCbGZfY0ThrVbLEwDkhgDhlyeqLW4+XvJqjCh80dzixugc79mrMfrN44YAyWT2QfCTFwQ/eUHwsxcEP3lB8JMNAYXJGk8LQEBhsv7rv0DhsahqQFA1IKgaBeHOyhrnB8novyeIjIagIWgILA1BSEMQ0hCENAQhDUFIQxDSEIRsCChM1v/ff6Cy9AsSMSlLu0Av/QAAAABJRU5ErkJgggsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA/QMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADn0lEQVRoQ+2YT2sTQRjGq/Qk1YOgFz0qfg4pXhT0JlIQL4IHD548ePEWPAiCl+JnsGhj0SqIscWKqUqhVWyT1KT532yapM2fJo1JXud5Jel0u8nOrBQU5gcPdLfzdvb97exs0qFEIkG6CQQC2vH5fNo59DRKhzWC8V5qWEKj0VBOPp/npnRYXl7mpqrVqnL8fj9fpA43v+Q91RgJRoKRwBgJAiNBYCQIjASBkSAwEgRGgqAnAY2pJp1OswQ0pppgMMgS0JhqxsfH+XM9LlI1514nPdUMrayskG4gQTeQoBsvX4a81LAEHbLZLDelSiQS4dWAppyWfb9gNeAidcCd9VJz4BJyudz/L6HValEqlaJSqcTHKhIKO226MrdOT36W+VhFQrJUpkuzaXr8I8/HKhLs86hIcKoZKAECMpkM7wMQAdwkYJKxoEVD4mIuz+X4nJsECLg6l+GaizNpPucmwWkeNwn9avpK6HQ63DB+jzcIhIBBEprtDt34bPFmMzqTpfX6n5pBEkrlKo19zHDN+XcpihbLfH6QhH7zDJIwqKYnAZ8B0GytVuPjYrFIoVCIotEobW9v8zkgS1jc3KELs+LYqpOYgx6GNunIsxidnU7Sh3ydxwBZwnx2k0YDKZqOF6lcqZJvyeKaM6/i9DZZ7MmRJajOI0vQqelJwAaGn1dXV8myLAqHw7yz1+u7BUCWcHthg82efpmgu4sFOja5Rien4vRpo8G/7yJLuDWf5ZpTU2t05+s6HX0eoxMv1uh9stQTYJegOo8sQadmz+OABnH3cQ4CuqtCxv44XJ/P0fBEjJ+z4/44vcnurpou9sfhmlj+wxPi/YyayRj5Y7sroBv746AyjywBqNbskdBut/lTIVYBHgfsC3bsEmq/2nT/e5FGxB19FN6iemt/jV2CtVWhews5GhHL88E3izbKlT0CELsElXnsElRr9m2MaLzZbDoKAHYJAH88Umny5uOE08aIxpesLd4Y5fPdOG2MbvPYJQCVmn0S3HCS4IaTBLc4SXDDSYIbPQloTDV4W0ACGlPNP/8FCq9F3UCCbiBBN2gId1Y1GO+lhiXoUCgUuCkdsBrQlA5YDbhIHboCdNgjQb7T/QJkCXj1uAXIEpzG2ANkCU5j7AGyBKcx9gAjQWAkCIwEgZEgMBIERoLASBD88xJwgcBpjD0A473U9CSoIktQRZagiixBFVmCKj0JaEw1+McrJKAx1fzNF6iDT5R+AxOLNj+SFfOFAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+ 191, 191, 191
+ White
+ 191, 191, 191
+ Office2010
+ 191, 191, 191
+
+
+
+
+ Standard
+
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAnSW5mcmFnaXN0aWNzLldpbi5DaGVja0JveEltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAAAAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAFkN1c3RvbSBjaGVja2JveCBnbHlwaHMFBwAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgMAAAAJCQAAAA8JAAAA8wMAAAKJUE5HDQoaCgAAAA1JSERSAAAAQQAAACcIBgAAAFBaJQIAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADlUlEQVRoQ+2YTWsTURSGq3Ql1YWgG10q/g4pbhR0J1IQN4ILF65cuHEXXAiCm+JvsGhj0SqIsWLFVKXQKrZJatJ8N5MmafPRpDHJ8b5Hkt5MJ5l7BxSF+8ALncmc3DnP3Lkz6UgikSDdBAIB7fh8Pu0ceBylgxrB8V5qWEKj0VBOPp/npnRYWVnhpqrVqnL8fj+fpA7XP+c91RgJRoKRwBgJAiNBYCQIjASBkSAwEgRGgqAnAY2pJp1OswQ0pppgMMgS0JhqJicn+b0eJ6maMy+TnmpGVldXSTeQoBtI0I2XH0NealiCDtlslptSJRKJ8GxAU07TflAwG3CSOuDKeqn54xJyudz/L6HValEqlaJSqcTbKhIKu226NL9Bj36UeVtFQrJUpgvv0vTwe563VSTYx1GR4FQzVAIEZDIZXgcgArhJwCATQYtGxMlcnM/xPjcJEHB5PsM15+fSvM9NgtM4bhIG1QyU0Ol0uGF8jicIhIBhEprtDl37ZPFiMz6XpY3675phEkrlKk18yHDN2TcpihbLvH+YhEHjDJMwrKYnAe8AaLZWq/F2sVikUChE0WiUdnZ2eB+QJSxt7dK5d2LbqpMYg+6HtujQkxidnk3S+3ydjwGyhIXsFo0HUjQbL1K5UiXfssU1p17E6XWy2JMjS1AdR5agU9OTgAUMf6+trZFlWRQOh3llr9f3CoAs4ebiJps9+TxBt5cKdGR6nY7PxOnjZoM/7yJLuLGQ5ZoTM+t068sGHX4ao2PP1ultstQTYJegOo4sQaem73ZAg7j62AcB3VkhY78dri7kaHQqxvfZUX+cXmX3Zk0X++1wRUz/0SnxfEbNdIz8sb0Z0I39dlAZR5YAVGv6JLTbbX4rxCzA7YB1wY5dQu1nm+5+K9KYuKIPwttUb+2vsUuwtit0ZzFHY2J63vtq0Wa50icAsUtQGccuQbVm38KIxpvNpqMAYJcA8OWRSpMXHyecFkY0vmxt88Io7+/GaWF0G8cuAajU7JPghpMEN5wkuMVJghtOEtzoSUBjqsHTAhLQmGr++R9QeCzqBhJ0Awm6QUO4sqrB8V5qWIIOhUKBm9KhK0EHzAacpA64sl5qehLkKz0oQJaAR49bgCzB6Rh7gCzB6Rh7gCzB6Rh7gJEgMBIERoLASBAYCQIjQWAkCIwEQZ8EVWQJqsgSVJElqCJLUKUnAY2pBv94RVO6gQQ0ppq/9wMqSb8AWg1JD6G7pzMAAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGJJbmZyYWdpc3RpY3M0Lldpbi52MTMuMiwgVmVyc2lvbj0xMy4yLjIwMTMyLjIwMjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2RkNWMzMTYzZjJjZDBjYgwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQwEAAAAZUluZnJhZ2lzdGljczQuU2hhcmVkLnYxMy4yLCBWZXJzaW9uPTEzLjIuMjAxMzIuMjAyMywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03ZGQ1YzMxNjNmMmNkMGNiBQEAAAAqSW5mcmFnaXN0aWNzLldpbi5SYWRpb0J1dHRvbkltYWdlR2x5cGhJbmZvBAAAAAlHbHlwaFR5cGUJR2x5cGhTaXplEkNvbWJpbmVkR2x5cGhJbWFnZQtEZXNjcmlwdGlvbgAEBAEIE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAL0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyBAAAAAIAAAABAAAABfv///8TU3lzdGVtLkRyYXdpbmcuU2l6ZQIAAAAFd2lkdGgGaGVpZ2h0AAAICAMAAAANAAAADQAAAAX6////L0luZnJhZ2lzdGljcy5TaGFyZWQuU2VyaWFsaXphdGlvbi5PYmplY3RXcmFwcGVyAQAAAAtvYmplY3RWYWx1ZQQVU3lzdGVtLkRyYXdpbmcuQml0bWFwAwAAAAQAAAAJBwAAAAYIAAAAGkN1c3RvbSByYWRpbyBidXR0b24gZ2x5cGhzBQcAAAAVU3lzdGVtLkRyYXdpbmcuQml0bWFwAQAAAAREYXRhBwIDAAAACQkAAAAPCQAAAFoGAAACiVBORw0KGgoAAAANSUhEUgAAAEEAAAAaCAYAAADovjFxAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAABfxJREFUWEfdmDlvY1UUxw1IIFHOJ4BvQEGDEAUFNGyioAEJoREC8QGmgRIhEBUiUQoqmCYKWRQpi5SJnGQ0ZCH7vkz2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+ False
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA2wAAAAKJUE5HDQoaCgAAAA1JSERSAAAACgAAAAoIBgAAAI0yz70AAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M1cbXjNgAAAFVJREFUKFNj+P//Pxi3trZeAGIBGB8dwxlARf+B+AEQGyArgGE4A6oQhD8AcQCyIhDGphCGC4hVCMILqKqwASaHSyHIMwnIikAYXSFIEcHgwRPg/xkAphkSTK5IMV8AAAAASUVORK5CYIILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA6AAAAAKJUE5HDQoaCgAAAA1JSERSAAAACgAAAAoIBgAAAI0yz70AAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M1cbXjNgAAAGJJREFUKFNj+P//P1EYqyA2zMCw6t4FIP5PAF8AKRQA4g9Iguj4ARALQIxddc8AiLEpBokZgNXA3bDqXgKSAhgOgMvDGFDFDUiKClDkkDlggVX3FoAwhji6AC6MVRAT/2cAAJhQETR6tnZYAAAAAElFTkSuQmCCCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ Never
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/shared file/iMES.pfx b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/iMES.pfx
new file mode 100644
index 0000000..bf28015
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/iMES.pfx differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/shared file/iMES.snk b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/iMES.snk
new file mode 100644
index 0000000..4206cdc
Binary files /dev/null and b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/iMES.snk differ
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/shared file/modConstant.vb b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/modConstant.vb
new file mode 100644
index 0000000..b445f5e
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/modConstant.vb
@@ -0,0 +1,22 @@
+Module modConstant
+
+ Public Const defInteger As Integer = -999 '宣告整數使用的常數,用以辨識參數是否有傳入Function中。
+ Public Const defString As String = "Null" '宣告字串使用的常數,用以辨識參數是否有傳入Function中。
+ Public Const defDateTime As Date = #12/31/1900# '宣告日期使用的常數,用以辨識參數是否有傳入Function中。
+ Public Const defSingle As Single = -999 '宣告單精準數使用的常數,用以辨識參數是否有傳入Function中。
+ Public Const defDouble As Double = -999 '宣告雙精準數使用的常數,用以辨識參數是否有傳入Function中。
+ Public Const strAddTagLabel As String = "extrabase" 'Add by py for Combine Addition XML doc
+ Public Const strAddTagName As String = "ExtraBase" 'Add by py for Combine Addition XML doc
+ Public Const defWinErrCode As String = "0000-899999"
+ Public Const defNullDate As Date = #12/31/1910# '宣告日期使用的常數,用以辨識參數是否要變更為Null。
+ Public Const defNullInteger As Integer = -9999 '宣告數值使用的常數,用以辨識參數是否要變更為Null。
+End Module
+
+'2020/01/15 Shih Kai,供前端InvokeSrv_Module時使用,用以辨識是否存入EventLog (1,2,3 >存入)
+Public Enum _enuInvokeType
+ _Load = 0
+ _Add = 1
+ _Edit = 2
+ _Delete = 3
+ _Get = 4
+End Enum
diff --git a/SRC/MESWin/SYS4/21670ll/MESWin/shared file/modQCSetting.vb b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/modQCSetting.vb
new file mode 100644
index 0000000..87e1b4e
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MESWin/shared file/modQCSetting.vb
@@ -0,0 +1,61 @@
+Module modQCSetting
+
+ Public Function LoadQCObjectInfo(ByVal pQCObjectType As String,
+ ByRef pRefTableName As String,
+ ByRef pData As DataSet,
+ Optional ByVal pQCObjectNo As String = defString,
+ Optional ByRef pFindColumnNo As String = "",
+ Optional ByRef pFindColumnName As String = "",
+ Optional ByVal pLikeSymbo As String = "",
+ Optional ByVal pQCObjectFrom As String = defString,
+ Optional ByVal pQCObjectTo As String = defString,
+ Optional ByVal pAdditional As String = "") As Boolean
+
+ Dim strMethod As String
+ Dim strNode As String
+ Dim strConditionName As String = "QCObjectType"
+ Dim strConditionValue As String = pQCObjectType
+
+ pQCObjectNo = pQCObjectNo & pLikeSymbo
+
+ Select Case pQCObjectType
+ Case 0
+ pFindColumnNo = "QCCategory"
+ pFindColumnName = "QCCategoryName"
+
+ Case 1
+ pFindColumnNo = "ProductNo"
+ pFindColumnName = "ProductName"
+
+ Case 2
+ pFindColumnNo = "QCCategory"
+ pFindColumnName = "QCCategoryName"
+
+ Case 3
+ pFindColumnNo = "MaterialNo"
+ pFindColumnName = "MaterialName"
+
+ End Select
+
+ If pQCObjectNo <> defString Then
+ strConditionName = strConditionName & ",QCObjectNo"
+ strConditionValue = strConditionValue & "," & pQCObjectNo
+ End If
+
+ If pQCObjectFrom <> defString Then
+ strConditionName = strConditionName & ",QCObjectNoFrom"
+ strConditionValue = strConditionValue & "," & pQCObjectFrom
+ End If
+
+ If pQCObjectTo <> defString Then
+ strConditionName = strConditionName & ",QCObjectNoTo"
+ strConditionValue = strConditionValue & "," & pQCObjectTo
+ End If
+
+ LoadQCObjectInfo = COM_Utility.clsUtility.InvokeLoadFunction(gComputerName, gUserNo, "wsQC.LoadQCObjectRefInfo", "loadqcobjectrefinfo",
+ Split(strConditionName, ","), Split(strConditionValue, ","),
+ pRefTableName, pData,, pAdditional)
+
+ End Function
+
+End Module
diff --git a/SRC/MESWin/SYS4/21670ll/MEStc_SXS/MEStc_ABC.csproj.vspscc b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/MEStc_ABC.csproj.vspscc
new file mode 100644
index 0000000..b6d3289
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/MEStc_ABC.csproj.vspscc
@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = ""
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}
diff --git a/SRC/MESWin/SYS4/21670ll/MEStc_SXS/MEStc_SXS.csproj b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/MEStc_SXS.csproj
new file mode 100644
index 0000000..ef7f35c
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/MEStc_SXS.csproj
@@ -0,0 +1,134 @@
+
+
+
+ Debug
+ AnyCPU
+
+
+
+
+ {8CC8664F-C718-0888-187B-600F20E362E0}
+ Library
+ MEStc_SXS
+ MEStc_SXS
+ 512
+ Windows
+ v4.6.2
+ SAK
+ SAK
+ SAK
+ SAK
+
+ $(DefaultItemExcludes);$(ProjectDir)**\*.vb
+
+
+ true
+ full
+ true
+ true
+ ..\MES_S_DLL\
+ ..\MES_S_DLL\MEStc_SXS.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ 0
+ false
+
+
+ pdbonly
+ false
+ true
+ true
+ bin\Release\
+ bin\Release\
+
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ 0
+ false
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+
+
+ False
+ ..\MES_S_DLL\data_access_service.dll
+ False
+
+
+ False
+ ..\MES_S_DLL\iMESAppSetting.dll
+ False
+
+
+ False
+ ..\MES_S_DLL\iMESComSubroutine.dll
+ False
+
+
+ False
+ ..\MES_S_DLL\iMESComXML.dll
+ False
+
+
+ False
+ ..\MES_S_DLL\iMESConst.dll
+ False
+
+
+ ..\..\MESSeries_2016\MES_S_DLL\iMESException.dll
+ False
+
+
+ False
+ ..\MES_S_DLL\iMESLog.dll
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/MEStc_SXS/MEStc_SXS.sln b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/MEStc_SXS.sln
new file mode 100644
index 0000000..22ddfea
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/MEStc_SXS.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32630.194
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MEStc_SXS", "MEStc_SXS.csproj", "{8CC8664F-C718-0888-187B-600F20E362E0}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8CC8664F-C718-0888-187B-600F20E362E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8CC8664F-C718-0888-187B-600F20E362E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8CC8664F-C718-0888-187B-600F20E362E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8CC8664F-C718-0888-187B-600F20E362E0}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {20814751-26E2-4F61-9643-BFEDC7384E35}
+ EndGlobalSection
+EndGlobal
diff --git a/SRC/MESWin/SYS4/21670ll/MEStc_SXS/NewFolder1/clsENT_21670.cs b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/NewFolder1/clsENT_21670.cs
new file mode 100644
index 0000000..f830114
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/NewFolder1/clsENT_21670.cs
@@ -0,0 +1,959 @@
+using iMESCore.Settings;
+using Microsoft.VisualBasic;
+using Microsoft.VisualBasic.CompilerServices;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using static iMESCore.Base.iMESComSubroutine;
+using static iMESCore.Base.iMESComXML;
+using static iMESCore.Base.iMESConst;
+using static iMESCore.DataBase.iMESSql;
+namespace MEStc_SXS
+{
+ public class clsENT : IDisposable
+ {
+ LoadSubcontractor
+ /*不使用modXX,不再使用OleDb
+ * 資料庫相關(建立連線/讀取資料/異動資料),使用data_access_service.dll
+ * 設定檔相關,使用iMESAppSetting
+ * Xml相關,使用iMESComXML.dll
+ * 常數相關,使用iMESConst.dll
+ * 簡易副程式,使用iMESComSubroutine.dll
+ */
+
+
+ private AppSettings objSetting = new AppSettings();
+ private string strConnectionString; // Connection string
+ private string strDataBaseType; // DataBase Type:oracle, mysql, access
+ private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ
+ private bool disposed = false; // To detect redundant calls
+ private string strSQL = "";
+ private string strSQLAddField;
+ private string strSQLAddValue;
+
+ #region --- Initial Object ---
+
+ public clsENT()
+ {
+ // Get database type
+ strDataBaseType = objSetting.GetDataBaseType();
+ // Get connection string
+ strConnectionString = objSetting.GetConnectionString(strDataBaseType);
+ // Get Message Queue Type
+ strMQType = objSetting.GetMQType();
+ }
+
+ #endregion
+
+ #region --- Property ---
+
+ // //Property--------------------------------------------------------------------------------------------------------------------------------
+ public string ConnectionString
+ {
+ get
+ {
+ return strConnectionString;
+ }
+ }
+
+ public string DataBaseType
+ {
+ get
+ {
+ return strDataBaseType;
+ }
+ }
+
+ public string MQType
+ {
+ get
+ {
+ return strMQType;
+ }
+ }
+
+ // 2003/03/22,sammi.
+ // 因TC可能呼叫KC,在整個Function中,必須要使用同一個Reverse物件,如此在產生AddReverseUpdateContent的資料時,ReverseOrder才不會重覆.
+ // 若KC再往下呼叫UD,則必須將Reverse物件傳遞予UD.
+ //public object ReverseObj
+ //{
+ // get
+ // {
+ // //return objReverse;
+ // // ReverseObj = objReverse
+ // }
+ //}
+
+
+ #endregion
+
+ #region IDisposable Support
+ private bool disposedValue; // 偵測多餘的呼叫
+
+ // IDisposable
+ protected virtual void Dispose(bool disposing)
+ {
+ if (!disposedValue)
+ {
+ if (disposing)
+ {
+ // TODO: 處置 Managed 狀態 (Managed 物件)。
+ }
+
+ // TODO: 釋放 Unmanaged 資源 (Unmanaged 物件) 並覆寫下面的 Finalize()。
+ // TODO: 將大型欄位設定為 null。
+ }
+ disposedValue = true;
+ }
+
+ // TODO: 只有當上面的 Dispose(ByVal disposing As Boolean) 有可釋放 Unmanaged 資源的程式碼時,才覆寫 Finalize()。
+ // Protected Overrides Sub Finalize()
+ // ' 請勿變更此程式碼。在上面的 Dispose(ByVal disposing As Boolean) 中輸入清除程式碼。
+ // Dispose(False)
+ // MyBase.Finalize()
+ // End Sub
+
+ // 由 Visual Basic 新增此程式碼以正確實作可處置的模式。
+ public void Dispose()
+ {
+ // 請勿變更此程式碼。在以上的 Dispose 置入清除程式碼 (ByVal 視為布林值處置)。
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+ #endregion
+
+ #region --- Subcontractor 外包商 ---
+
+
+ public string AddSubcontractor(string SubcontractorNo, string SubcontractorName, string Description = defString, string Creator = defString, DateTime CreateDate = default(DateTime), string AdditionalXml = "")
+ {
+ string AddSubcontractorRet = default(string);
+ // 此 Function 將新增一筆資料
+ // 傳入值: 各欄位新增值
+ // 傳回值: success(成功), fail(失敗)
+
+ if (CreateDate == defDateTime)
+ CreateDate = DateTime.Now;
+
+ try
+ {
+ strSQLAddField = "Insert into tblENTSubcontractor_21670 (SubcontractorNo, SubcontractorName, IssueState";
+ strSQLAddValue = " Values ('" + SubcontractorNo + "','" + SubcontractorName + "', 0";
+
+ if ((Description ?? "") != defString)
+ {
+ strSQLAddField += ",Description";
+ strSQLAddValue += ",'" + Description + "'";
+ }
+ if ((Creator ?? "") != defString)
+ {
+ strSQLAddField += ",Creator";
+ strSQLAddValue += ",'" + Creator + "'";
+ }
+ if (CreateDate != defDateTime)
+ {
+ strSQLAddField += ",CreateDate";
+ strSQLAddValue += ", To_Date('" + Strings.Format(Conversions.ToDate(CreateDate), "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS')";
+ }
+
+ if (string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 當沒有額外的欄位時,直接給定strSQL
+ strSQL = strSQLAddField + ")" + strSQLAddValue + ")";
+ }
+
+ else
+ {
+ // 加上additional的field & value 後傳回
+ strSQL = SeparateAddXML_Add(ref strSQLAddField, ref strSQLAddValue, AdditionalXml);
+
+ }
+
+ // //執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL);
+
+ // //Return success
+ AddSubcontractorRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ AddSubcontractorRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.AddSubcontractor: " & e1.Message)
+
+ return AddSubcontractorRet;
+
+ }
+
+ public string EditSubcontractor(string SubcontractorNo, string SubcontractorName = defString, string Description = defString, string AdditionalXml = "", int DataStamp = defInteger, string Reviser = defString, DateTime ReviseDate = default(DateTime))
+ {
+ string EditSubcontractorRet = default(string);
+ // 此 Function 將修改一筆資料
+ // 傳入值: 各欄位修改值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ // 先給定strSQL一定有的欄位
+ strSQL = "Update tblENTSubcontractor_21670 Set ";
+
+ if ((SubcontractorName ?? "") != defString)
+ {
+ strSQL += "SubcontractorName = '" + SubcontractorName + "',";
+ }
+ if ((Description ?? "") != defString)
+ {
+ strSQL += "Description = '" + Description + "',";
+ }
+
+ if (Reviser != defString)
+ strSQL = strSQL + "Reviser = '" + Reviser + "',";
+
+ if (ReviseDate != defDateTime)
+ strSQL = strSQL + "ReviseDate = To_Date('" + Strings.Format(ReviseDate, "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS'),";
+
+ if (DataStamp != defInteger)
+ strSQL = strSQL + "DataStamp = DataStamp + 1 ,";
+
+ // 有額外的欄位時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的field & value
+ strSQL += SeparateAddXML_Edit(AdditionalXml);
+ }
+
+ // 去除strSQL中最後一個 ","
+ if (Strings.InStr(1, strSQL, ",") != 0) // 表示有要修改的欄位
+ {
+ if (Strings.Right(strSQL, 1) == ",")
+ {
+ strSQL = Strings.Mid(strSQL, 1, Strings.Len(strSQL) - 1);
+ }
+
+ strSQL += " Where SubcontractorNo ='" + SubcontractorNo + "'";
+ strSQL = strSQL + " And DataStamp = '" + DataStamp + "'";
+
+ // 有額外的條件式時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL, 1, true);
+ }
+
+ // //Return success
+ EditSubcontractorRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ EditSubcontractorRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.EditSubcontractor: " & e1.Message)
+
+ return EditSubcontractorRet;
+
+ }
+ public string DelSubcontractor(string SubcontractorNo, string AdditionalXml = "")
+ {
+ string DelSubcontractorRet = default(string);
+ // 此 Function 將刪除資料
+ // 傳入值: 刪除的索引值
+ // 傳回值: success(成功), fail(失敗)
+ var CollectionSQL = new Collection();
+
+ try
+ {
+ // 1. 刪除Contactor
+ strSQL = "Delete From tblENTSubcontractorCont " + "Where SubcontractorNo='" + SubcontractorNo + "'";
+ CollectionSQL.Add(strSQL);
+
+ // 2. 刪除主檔
+ strSQL = "Delete From tblENTSubcontractor_21670 " + " Where SubcontractorNo ='" + SubcontractorNo + "'";
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ CollectionSQL.Add(strSQL);
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery_UPD(Conversions.ToString(DataBaseType), strConnectionString, CollectionSQL);
+
+ // //Return success
+ DelSubcontractorRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ DelSubcontractorRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.DelSubcontractor: " & e1.Message)
+
+ return DelSubcontractorRet;
+
+ }
+
+ public string LoadSubcontractor(string SubcontractorNo = defString, int IssueState = defInteger, string AdditionalXml = "")
+ {
+ string LoadSubcontractorRet = default(string);
+ // 此 Function 將資料以XML方式取出
+ // 傳入值: 索引值
+ // 傳回值: XML(成功), fail(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractor_21670 Where SubcontractorNo Is Not Null";
+
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if (IssueState != defInteger)
+ {
+ strSQL += " And IssueState = " + IssueState;
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractor_21670", cnnTemp);
+
+ // //Combine return value
+ LoadSubcontractorRet = CombineXMLReturnValue("loadSubcontractor", "tblENTSubcontractor_21670", "DataSet", FormatXMLSchema(dsENT.GetXmlSchema()), dsENT.GetXml(), "");
+ }
+
+ catch (Exception e1)
+ {
+ LoadSubcontractorRet = "fail";
+ throw;
+ } // New Exception("kcENT.LoadSubcontractor: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return LoadSubcontractorRet;
+
+ }
+
+ public DataSet ShowSubcontractor(string SubcontractorNo = defString, int IssueState = defInteger, string AdditionalXml = "")
+ {
+ DataSet ShowSubcontractorRet = default(DataSet);
+ // 此 Function 將資料以 Dataset 方式取出
+ // 傳入值: 索引值
+ // 傳回值: Dataset(成功), Nothing(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractor_21670 Where SubcontractorNo Is Not Null";
+
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if (IssueState != defInteger)
+ {
+ strSQL += " And IssueState = " + IssueState;
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractor_21670", cnnTemp);
+
+ // //Return data
+ ShowSubcontractorRet = dsENT;
+ }
+
+ catch (Exception e1)
+ {
+ ShowSubcontractorRet = null;
+ throw;
+ } // New Exception("kcENT.ShowSubcontractor: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return ShowSubcontractorRet;
+
+ }
+
+ public DataRow GetSubcontractor(string SubcontractorNo = defString, int IssueState = defInteger, string AdditionalXml = "")
+ {
+ DataRow GetSubcontractorRet = default(DataRow);
+ // 此 Function 將資料以 DataRow 方式取出
+ // 傳入值: 索引值
+ // 傳回值: DataRow(成功), Nothing(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractor_21670 Where SubcontractorNo Is Not Null";
+
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if (IssueState != defInteger)
+ {
+ strSQL += " And IssueState = " + IssueState;
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractor_21670", cnnTemp);
+
+ // //Return data
+ if (dsENT.Tables[0].Rows.Count > 0)
+ {
+ GetSubcontractorRet = dsENT.Tables[0].Rows[0];
+ }
+ else
+ {
+ GetSubcontractorRet = dsENT.Tables[0].NewRow();
+ }
+ }
+ catch (Exception e1)
+ {
+ GetSubcontractorRet = null;
+ throw;
+ } // New Exception("kcENT.GetSubcontractor: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return GetSubcontractorRet;
+
+ }
+ public string SetSubcontractorIssueState(string SubcontractorNo, int IssueState, int DataStamp = defInteger, string Reviser = defString, DateTime ReviseDate = default(DateTime))
+ {
+ string SetSubcontractorIssueStateRet = default(string);
+ // 此 Function 將修改IssueState欄位的值
+ // 傳入值: IssueState修改後的值及VendorNo
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ // 先給定strSQL一定有的欄位
+ strSQL = "Update tblENTSubcontractor_21670 Set IssueState = " + IssueState + ",";
+
+ if (Reviser != defString)
+ strSQL = strSQL + "Reviser = '" + Reviser + "',";
+
+ if (ReviseDate != defDateTime)
+ strSQL = strSQL + "ReviseDate = To_Date('" + Strings.Format(ReviseDate, "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS'),";
+
+ if (DataStamp != defInteger)
+ strSQL = strSQL + "DataStamp = DataStamp + 1 ,";
+
+ if (Strings.InStr(1, strSQL, ",") != 0) // 表示有要修改的欄位
+ {
+ if (Strings.Right(strSQL, 1) == ",")
+ {
+ strSQL = Strings.Mid(strSQL, 1, Strings.Len(strSQL) - 1);
+ }
+
+ strSQL = strSQL + " Where SubcontractorNo ='" + SubcontractorNo + "'";
+ strSQL = strSQL + " And DataStamp = '" + DataStamp + "'";
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL, 1, true);
+ }
+
+ // //Return success
+ SetSubcontractorIssueStateRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ SetSubcontractorIssueStateRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.SetSubcontractorIssueState: " & e1.Message)
+
+ return SetSubcontractorIssueStateRet;
+
+ }
+
+
+ public string AddSubcontractorCont(string SubcontractorNo, string ContactorName, string TelNo = defString, string FaxNo = defString, string Title = defString, string Address = defString, string EMail = defString, string Description = defString, string AdditionalXml = "", string Creator = defString, DateTime CreateDate = default(DateTime))
+ {
+ string AddSubcontractorContRet = default(string);
+ // 此 Function 將新增一筆資料
+ // 傳入值: 各欄位新增值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ strSQLAddField = "Insert into tblENTSubcontractorCont (SubcontractorNo, ContactorName";
+ strSQLAddValue = " Values ('" + SubcontractorNo + "','" + ContactorName + "'";
+
+ if ((TelNo ?? "") != defString)
+ {
+ strSQLAddField += ",TelNo";
+ strSQLAddValue += ",'" + TelNo + "'";
+ }
+ if ((FaxNo ?? "") != defString)
+ {
+ strSQLAddField += ",FaxNo";
+ strSQLAddValue += ",'" + FaxNo + "'";
+ }
+ if ((Title ?? "") != defString)
+ {
+ strSQLAddField += ",Title";
+ strSQLAddValue += ",'" + Title + "'";
+ }
+ if ((Address ?? "") != defString)
+ {
+ strSQLAddField += ",Address";
+ strSQLAddValue += ",'" + Address + "'";
+ }
+ if ((EMail ?? "") != defString)
+ {
+ strSQLAddField += ",EMail";
+ strSQLAddValue += ",'" + EMail + "'";
+ }
+ if ((Description ?? "") != defString)
+ {
+ strSQLAddField += ",Description";
+ strSQLAddValue += ",'" + Description + "'";
+ }
+ if (Creator != defString)
+ {
+ strSQLAddField = strSQLAddField + ",Creator";
+ strSQLAddValue = strSQLAddValue + ",'" + Creator + "'";
+ }
+ if (CreateDate != defDateTime)
+ {
+ strSQLAddField = strSQLAddField + ",CreateDate";
+ strSQLAddValue = strSQLAddValue + ", To_Date('" + Strings.Format(CreateDate, "yyyy/MM/dd HH:mm:ss") + "','YYYY/MM/DD HH24:MI:SS')";
+ }
+
+ if (string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 當沒有額外的欄位時,直接給定strSQL
+ strSQL = strSQLAddField + ")" + strSQLAddValue + ")";
+ }
+
+ else
+ {
+ // 加上additional的field & value 後傳回
+ strSQL = SeparateAddXML_Add(ref strSQLAddField, ref strSQLAddValue, AdditionalXml);
+
+ }
+
+ // //執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL);
+
+ // //Return success
+ AddSubcontractorContRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ AddSubcontractorContRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.AddSubcontractorCont: " & e1.Message)
+
+ return AddSubcontractorContRet;
+
+ }
+
+
+ public string EditSubcontractorCont(string SubcontractorNo, string ContactorName, string TelNo = defString, string FaxNo = defString, string Title = defString, string Address = defString, string EMail = defString, string Description = defString, string AdditionalXml = "", int DataStamp = defInteger, string Reviser = defString, DateTime ReviseDate = default(DateTime))
+ {
+ string EditSubcontractorContRet = default(string);
+
+ // 此 Function 將修改一筆資料
+ // 傳入值: 各欄位修改值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ // 先給定strSQL一定有的欄位
+ strSQL = "Update tblENTSubcontractorCont Set ";
+
+ if ((TelNo ?? "") != defString)
+ {
+ strSQL += "TelNo = '" + TelNo + "',";
+ }
+ if ((FaxNo ?? "") != defString)
+ {
+ strSQL += "FaxNo = '" + FaxNo + "',";
+ }
+ if ((Title ?? "") != defString)
+ {
+ strSQL += "Title = '" + Title + "',";
+ }
+ if ((Address ?? "") != defString)
+ {
+ strSQL += "Address = '" + Address + "',";
+ }
+ if ((EMail ?? "") != defString)
+ {
+ strSQL += "EMail = '" + EMail + "',";
+ }
+ if ((Description ?? "") != defString)
+ {
+ strSQL += "Description = '" + Description + "',";
+ }
+
+ if (Reviser != defString)
+ strSQL = strSQL + "Reviser = '" + Reviser + "',";
+
+ if (ReviseDate != defDateTime)
+ strSQL = strSQL + "ReviseDate = To_Date('" + Strings.Format(ReviseDate, "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS'),";
+
+ if (DataStamp != defInteger)
+ strSQL = strSQL + "DataStamp = DataStamp + 1 ,";
+
+ // 有額外的欄位時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的field & value
+ strSQL += SeparateAddXML_Edit(AdditionalXml);
+ }
+
+ // 去除strSQL中最後一個 ","
+ if (Strings.InStr(1, strSQL, ",") != 0) // 表示有要修改的欄位
+ {
+ if (Strings.Right(strSQL, 1) == ",")
+ {
+ strSQL = Strings.Mid(strSQL, 1, Strings.Len(strSQL) - 1);
+ }
+
+ strSQL += " Where SubcontractorNo = '" + SubcontractorNo + "'" + " And ContactorName ='" + ContactorName + "'";
+ strSQL = strSQL + " And DataStamp = '" + DataStamp + "'";
+
+ // 有額外的條件式時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL, 1, true);
+ }
+
+ // //Return success
+ EditSubcontractorContRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ EditSubcontractorContRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.EditSubcontractorCont: " & e1.Message)
+
+ return EditSubcontractorContRet;
+
+ }
+
+ public string DelSubcontractorCont(string SubcontractorNo, string ContactorName = defString, string AdditionalXml = "")
+ {
+ string DelSubcontractorContRet = default(string);
+ // 此 Function 將刪除資料
+ // 傳入值: 刪除的索引值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ strSQL = "Delete From tblENTSubcontractorCont " + " Where SubcontractorNo='" + SubcontractorNo + "'";
+
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL);
+
+ // //Return success
+ DelSubcontractorContRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ DelSubcontractorContRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.DelSubcontractorCont: " & e1.Message)
+
+ return DelSubcontractorContRet;
+
+ }
+
+ public string LoadSubcontractorCont(string SubcontractorNo = defString, string ContactorName = defString, string AdditionalXml = "")
+ {
+ string LoadSubcontractorContRet = default(string);
+ // 此 Function 將資料以XML方式取出
+ // 傳入值: 索引值
+ // 傳回值: XML(成功), fail(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractorCont Where SubcontractorNo Is Not Null";
+
+ // 有傳入SubcontractorNo表示只取該SubcontractorNo之資料
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractorCont", cnnTemp);
+
+ // //Combine return value
+ LoadSubcontractorContRet = CombineXMLReturnValue("loadSubcontractorcont", "tblENTSubcontractorCont", "DataSet", FormatXMLSchema(dsENT.GetXmlSchema()), dsENT.GetXml(), "");
+ }
+
+ catch (Exception e1)
+ {
+ LoadSubcontractorContRet = "fail";
+ throw;
+ } // New Exception("kcENT.LoadSubcontractorCont: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return LoadSubcontractorContRet;
+
+ }
+
+ public DataSet ShowSubcontractorCont(string SubcontractorNo = defString, string ContactorName = defString, string AdditionalXml = "")
+ {
+ DataSet ShowSubcontractorContRet = default(DataSet);
+ // 此 Function 將資料以 Dataset 方式取出
+ // 傳入值: 索引值
+ // 傳回值: Dataset(成功), Nothing(失敗)
+
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractorCont Where SubcontractorNo Is Not Null";
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractorCont", cnnTemp);
+
+ // //Return data
+ ShowSubcontractorContRet = dsENT;
+ }
+
+ catch (Exception e1)
+ {
+ ShowSubcontractorContRet = null;
+ throw;
+ } // New Exception("kcENT.ShowSubcontractorCont: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return ShowSubcontractorContRet;
+
+ }
+
+ public DataRow GetSubcontractorCont(string SubcontractorNo = defString, string ContactorName = defString, string AdditionalXml = "")
+ {
+ DataRow GetSubcontractorContRet = default(DataRow);
+ // 此 Function 將資料以 DataRow 方式取出
+ // 傳入值: 索引值
+ // 傳回值: DataRow(成功), Nothing(失敗)
+
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractorCont Where SubcontractorNo Is Not Null";
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractorCont", cnnTemp);
+
+ // //Return data
+ if (dsENT.Tables[0].Rows.Count > 0)
+ {
+ GetSubcontractorContRet = dsENT.Tables[0].Rows[0];
+ }
+ else
+ {
+ GetSubcontractorContRet = dsENT.Tables[0].NewRow();
+ }
+ }
+ catch (Exception e1)
+ {
+ GetSubcontractorContRet = null;
+ throw;
+ } // New Exception("kcENT.GetSubcontractorCont: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return GetSubcontractorContRet;
+
+ }
+
+
+
+ #endregion
+ }
+}
diff --git a/SRC/MESWin/SYS4/21670ll/MEStc_SXS/Properties/AssemblyInfo.cs b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..e2bf75b
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/Properties/AssemblyInfo.cs
@@ -0,0 +1,32 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 組件的一般資訊是由下列的屬性集控制。
+// 變更這些屬性的值即可修改組件的相關
+// 資訊。
+[assembly: AssemblyTitle("MEStc_ABC.Properties")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("iMES Technology Inc.")]
+[assembly: AssemblyProduct("MESSeries 6")]
+[assembly: AssemblyCopyright("Copyright iMES Technology Inc.")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 將 ComVisible 設定為 false 會使得這個組件中的類型
+// 對 COM 元件而言為不可見。如果您需要從 COM 存取這個組件中
+// 的類型,請在該類型上將 ComVisible 屬性設定為 true。
+[assembly: ComVisible(false)]
+
+// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID
+[assembly: Guid("00eb00ee-1246-48cf-a0bf-f5203de255f1")]
+
+// 組件的版本資訊由下列四個值所組成:
+//
+// 主要版本
+// 次要版本
+// 組建編號
+// 修訂編號
+//
+[assembly: AssemblyVersion("6.0.0.0")]
diff --git a/SRC/MESWin/SYS4/21670ll/MEStc_SXS/Properties/BuildIncrementVersionInfo.cs b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/Properties/BuildIncrementVersionInfo.cs
new file mode 100644
index 0000000..8c4e437
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/Properties/BuildIncrementVersionInfo.cs
@@ -0,0 +1 @@
+[assembly: System.Reflection.AssemblyFileVersion("6.0.5.40117")]
diff --git a/SRC/MESWin/SYS4/21670ll/MEStc_SXS/clsENT_21670.cs b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/clsENT_21670.cs
new file mode 100644
index 0000000..c10aa6e
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/clsENT_21670.cs
@@ -0,0 +1,959 @@
+using iMESCore.Settings;
+using Microsoft.VisualBasic;
+using Microsoft.VisualBasic.CompilerServices;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using static iMESCore.Base.iMESComSubroutine;
+using static iMESCore.Base.iMESComXML;
+using static iMESCore.Base.iMESConst;
+using static iMESCore.DataBase.iMESSql;
+namespace MEStc_SXS
+{
+ public class clsENT : IDisposable
+ {
+ LoadSubcontractor
+ /*不使用modXX,不再使用OleDb
+ * 資料庫相關(建立連線/讀取資料/異動資料),使用data_access_service.dll
+ * 設定檔相關,使用iMESAppSetting
+ * Xml相關,使用iMESComXML.dll
+ * 常數相關,使用iMESConst.dll
+ * 簡易副程式,使用iMESComSubroutine.dll
+ */
+
+
+ private AppSettings objSetting = new AppSettings();
+ private string strConnectionString; // Connection string
+ private string strDataBaseType; // DataBase Type:oracle, mysql, access
+ private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ
+ private bool disposed = false; // To detect redundant calls
+ private string strSQL = "";
+ private string strSQLAddField;
+ private string strSQLAddValue;
+
+ #region --- Initial Object ---
+
+ public clsENT()
+ {
+ // Get database type
+ strDataBaseType = objSetting.GetDataBaseType();
+ // Get connection string
+ strConnectionString = objSetting.GetConnectionString(strDataBaseType);
+ // Get Message Queue Type
+ strMQType = objSetting.GetMQType();
+ }
+
+ #endregion
+
+ #region --- Property ---
+
+ // //Property--------------------------------------------------------------------------------------------------------------------------------
+ public string ConnectionString
+ {
+ get
+ {
+ return strConnectionString;
+ }
+ }
+
+ public string DataBaseType
+ {
+ get
+ {
+ return strDataBaseType;
+ }
+ }
+
+ public string MQType
+ {
+ get
+ {
+ return strMQType;
+ }
+ }
+
+ // 2003/03/22,sammi.
+ // 因TC可能呼叫KC,在整個Function中,必須要使用同一個Reverse物件,如此在產生AddReverseUpdateContent的資料時,ReverseOrder才不會重覆.
+ // 若KC再往下呼叫UD,則必須將Reverse物件傳遞予UD.
+ //public object ReverseObj
+ //{
+ // get
+ // {
+ // //return objReverse;
+ // // ReverseObj = objReverse
+ // }
+ //}
+
+
+ #endregion
+
+ #region IDisposable Support
+ private bool disposedValue; // 偵測多餘的呼叫
+
+ // IDisposable
+ protected virtual void Dispose(bool disposing)
+ {
+ if (!disposedValue)
+ {
+ if (disposing)
+ {
+ // TODO: 處置 Managed 狀態 (Managed 物件)。
+ }
+
+ // TODO: 釋放 Unmanaged 資源 (Unmanaged 物件) 並覆寫下面的 Finalize()。
+ // TODO: 將大型欄位設定為 null。
+ }
+ disposedValue = true;
+ }
+
+ // TODO: 只有當上面的 Dispose(ByVal disposing As Boolean) 有可釋放 Unmanaged 資源的程式碼時,才覆寫 Finalize()。
+ // Protected Overrides Sub Finalize()
+ // ' 請勿變更此程式碼。在上面的 Dispose(ByVal disposing As Boolean) 中輸入清除程式碼。
+ // Dispose(False)
+ // MyBase.Finalize()
+ // End Sub
+
+ // 由 Visual Basic 新增此程式碼以正確實作可處置的模式。
+ public void Dispose()
+ {
+ // 請勿變更此程式碼。在以上的 Dispose 置入清除程式碼 (ByVal 視為布林值處置)。
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+ #endregion
+
+ #region --- Subcontractor 外包商 ---
+
+
+ public string AddSubcontractor(string SubcontractorNo, string SubcontractorName, string Description = defString, string Creator = defString, DateTime CreateDate = default(DateTime), string AdditionalXml = "")
+ {
+ string AddSubcontractorRet = default(string);
+ // 此 Function 將新增一筆資料
+ // 傳入值: 各欄位新增值
+ // 傳回值: success(成功), fail(失敗)
+
+ if (CreateDate == defDateTime)
+ CreateDate = DateTime.Now;
+
+ try
+ {
+ strSQLAddField = "Insert into tblENTSubcontractor (SubcontractorNo, SubcontractorName, IssueState";
+ strSQLAddValue = " Values ('" + SubcontractorNo + "','" + SubcontractorName + "', 0";
+
+ if ((Description ?? "") != defString)
+ {
+ strSQLAddField += ",Description";
+ strSQLAddValue += ",'" + Description + "'";
+ }
+ if ((Creator ?? "") != defString)
+ {
+ strSQLAddField += ",Creator";
+ strSQLAddValue += ",'" + Creator + "'";
+ }
+ if (CreateDate != defDateTime)
+ {
+ strSQLAddField += ",CreateDate";
+ strSQLAddValue += ", To_Date('" + Strings.Format(Conversions.ToDate(CreateDate), "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS')";
+ }
+
+ if (string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 當沒有額外的欄位時,直接給定strSQL
+ strSQL = strSQLAddField + ")" + strSQLAddValue + ")";
+ }
+
+ else
+ {
+ // 加上additional的field & value 後傳回
+ strSQL = SeparateAddXML_Add(ref strSQLAddField, ref strSQLAddValue, AdditionalXml);
+
+ }
+
+ // //執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL);
+
+ // //Return success
+ AddSubcontractorRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ AddSubcontractorRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.AddSubcontractor: " & e1.Message)
+
+ return AddSubcontractorRet;
+
+ }
+
+ public string EditSubcontractor(string SubcontractorNo, string SubcontractorName = defString, string Description = defString, string AdditionalXml = "", int DataStamp = defInteger, string Reviser = defString, DateTime ReviseDate = default(DateTime))
+ {
+ string EditSubcontractorRet = default(string);
+ // 此 Function 將修改一筆資料
+ // 傳入值: 各欄位修改值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ // 先給定strSQL一定有的欄位
+ strSQL = "Update tblENTSubcontractor Set ";
+
+ if ((SubcontractorName ?? "") != defString)
+ {
+ strSQL += "SubcontractorName = '" + SubcontractorName + "',";
+ }
+ if ((Description ?? "") != defString)
+ {
+ strSQL += "Description = '" + Description + "',";
+ }
+
+ if (Reviser != defString)
+ strSQL = strSQL + "Reviser = '" + Reviser + "',";
+
+ if (ReviseDate != defDateTime)
+ strSQL = strSQL + "ReviseDate = To_Date('" + Strings.Format(ReviseDate, "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS'),";
+
+ if (DataStamp != defInteger)
+ strSQL = strSQL + "DataStamp = DataStamp + 1 ,";
+
+ // 有額外的欄位時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的field & value
+ strSQL += SeparateAddXML_Edit(AdditionalXml);
+ }
+
+ // 去除strSQL中最後一個 ","
+ if (Strings.InStr(1, strSQL, ",") != 0) // 表示有要修改的欄位
+ {
+ if (Strings.Right(strSQL, 1) == ",")
+ {
+ strSQL = Strings.Mid(strSQL, 1, Strings.Len(strSQL) - 1);
+ }
+
+ strSQL += " Where SubcontractorNo ='" + SubcontractorNo + "'";
+ strSQL = strSQL + " And DataStamp = '" + DataStamp + "'";
+
+ // 有額外的條件式時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL, 1, true);
+ }
+
+ // //Return success
+ EditSubcontractorRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ EditSubcontractorRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.EditSubcontractor: " & e1.Message)
+
+ return EditSubcontractorRet;
+
+ }
+ public string DelSubcontractor(string SubcontractorNo, string AdditionalXml = "")
+ {
+ string DelSubcontractorRet = default(string);
+ // 此 Function 將刪除資料
+ // 傳入值: 刪除的索引值
+ // 傳回值: success(成功), fail(失敗)
+ var CollectionSQL = new Collection();
+
+ try
+ {
+ // 1. 刪除Contactor
+ strSQL = "Delete From tblENTSubcontractorCont " + "Where SubcontractorNo='" + SubcontractorNo + "'";
+ CollectionSQL.Add(strSQL);
+
+ // 2. 刪除主檔
+ strSQL = "Delete From tblENTSubcontractor " + " Where SubcontractorNo ='" + SubcontractorNo + "'";
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ CollectionSQL.Add(strSQL);
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery_UPD(Conversions.ToString(DataBaseType), strConnectionString, CollectionSQL);
+
+ // //Return success
+ DelSubcontractorRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ DelSubcontractorRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.DelSubcontractor: " & e1.Message)
+
+ return DelSubcontractorRet;
+
+ }
+
+ public string LoadSubcontractor(string SubcontractorNo = defString, int IssueState = defInteger, string AdditionalXml = "")
+ {
+ string LoadSubcontractorRet = default(string);
+ // 此 Function 將資料以XML方式取出
+ // 傳入值: 索引值
+ // 傳回值: XML(成功), fail(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractor_21670 Where SubcontractorNo Is Not Null";
+
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if (IssueState != defInteger)
+ {
+ strSQL += " And IssueState = " + IssueState;
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractor", cnnTemp);
+
+ // //Combine return value
+ LoadSubcontractorRet = CombineXMLReturnValue("loadSubcontractor", "tblENTSubcontractor", "DataSet", FormatXMLSchema(dsENT.GetXmlSchema()), dsENT.GetXml(), "");
+ }
+
+ catch (Exception e1)
+ {
+ LoadSubcontractorRet = "fail";
+ throw;
+ } // New Exception("kcENT.LoadSubcontractor: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return LoadSubcontractorRet;
+
+ }
+
+ public DataSet ShowSubcontractor(string SubcontractorNo = defString, int IssueState = defInteger, string AdditionalXml = "")
+ {
+ DataSet ShowSubcontractorRet = default(DataSet);
+ // 此 Function 將資料以 Dataset 方式取出
+ // 傳入值: 索引值
+ // 傳回值: Dataset(成功), Nothing(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractor Where SubcontractorNo Is Not Null";
+
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if (IssueState != defInteger)
+ {
+ strSQL += " And IssueState = " + IssueState;
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractor", cnnTemp);
+
+ // //Return data
+ ShowSubcontractorRet = dsENT;
+ }
+
+ catch (Exception e1)
+ {
+ ShowSubcontractorRet = null;
+ throw;
+ } // New Exception("kcENT.ShowSubcontractor: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return ShowSubcontractorRet;
+
+ }
+
+ public DataRow GetSubcontractor(string SubcontractorNo = defString, int IssueState = defInteger, string AdditionalXml = "")
+ {
+ DataRow GetSubcontractorRet = default(DataRow);
+ // 此 Function 將資料以 DataRow 方式取出
+ // 傳入值: 索引值
+ // 傳回值: DataRow(成功), Nothing(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractor Where SubcontractorNo Is Not Null";
+
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if (IssueState != defInteger)
+ {
+ strSQL += " And IssueState = " + IssueState;
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractor", cnnTemp);
+
+ // //Return data
+ if (dsENT.Tables[0].Rows.Count > 0)
+ {
+ GetSubcontractorRet = dsENT.Tables[0].Rows[0];
+ }
+ else
+ {
+ GetSubcontractorRet = dsENT.Tables[0].NewRow();
+ }
+ }
+ catch (Exception e1)
+ {
+ GetSubcontractorRet = null;
+ throw;
+ } // New Exception("kcENT.GetSubcontractor: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return GetSubcontractorRet;
+
+ }
+ public string SetSubcontractorIssueState(string SubcontractorNo, int IssueState, int DataStamp = defInteger, string Reviser = defString, DateTime ReviseDate = default(DateTime))
+ {
+ string SetSubcontractorIssueStateRet = default(string);
+ // 此 Function 將修改IssueState欄位的值
+ // 傳入值: IssueState修改後的值及VendorNo
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ // 先給定strSQL一定有的欄位
+ strSQL = "Update tblENTSubcontractor Set IssueState = " + IssueState + ",";
+
+ if (Reviser != defString)
+ strSQL = strSQL + "Reviser = '" + Reviser + "',";
+
+ if (ReviseDate != defDateTime)
+ strSQL = strSQL + "ReviseDate = To_Date('" + Strings.Format(ReviseDate, "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS'),";
+
+ if (DataStamp != defInteger)
+ strSQL = strSQL + "DataStamp = DataStamp + 1 ,";
+
+ if (Strings.InStr(1, strSQL, ",") != 0) // 表示有要修改的欄位
+ {
+ if (Strings.Right(strSQL, 1) == ",")
+ {
+ strSQL = Strings.Mid(strSQL, 1, Strings.Len(strSQL) - 1);
+ }
+
+ strSQL = strSQL + " Where SubcontractorNo ='" + SubcontractorNo + "'";
+ strSQL = strSQL + " And DataStamp = '" + DataStamp + "'";
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL, 1, true);
+ }
+
+ // //Return success
+ SetSubcontractorIssueStateRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ SetSubcontractorIssueStateRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.SetSubcontractorIssueState: " & e1.Message)
+
+ return SetSubcontractorIssueStateRet;
+
+ }
+
+
+ public string AddSubcontractorCont(string SubcontractorNo, string ContactorName, string TelNo = defString, string FaxNo = defString, string Title = defString, string Address = defString, string EMail = defString, string Description = defString, string AdditionalXml = "", string Creator = defString, DateTime CreateDate = default(DateTime))
+ {
+ string AddSubcontractorContRet = default(string);
+ // 此 Function 將新增一筆資料
+ // 傳入值: 各欄位新增值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ strSQLAddField = "Insert into tblENTSubcontractorCont (SubcontractorNo, ContactorName";
+ strSQLAddValue = " Values ('" + SubcontractorNo + "','" + ContactorName + "'";
+
+ if ((TelNo ?? "") != defString)
+ {
+ strSQLAddField += ",TelNo";
+ strSQLAddValue += ",'" + TelNo + "'";
+ }
+ if ((FaxNo ?? "") != defString)
+ {
+ strSQLAddField += ",FaxNo";
+ strSQLAddValue += ",'" + FaxNo + "'";
+ }
+ if ((Title ?? "") != defString)
+ {
+ strSQLAddField += ",Title";
+ strSQLAddValue += ",'" + Title + "'";
+ }
+ if ((Address ?? "") != defString)
+ {
+ strSQLAddField += ",Address";
+ strSQLAddValue += ",'" + Address + "'";
+ }
+ if ((EMail ?? "") != defString)
+ {
+ strSQLAddField += ",EMail";
+ strSQLAddValue += ",'" + EMail + "'";
+ }
+ if ((Description ?? "") != defString)
+ {
+ strSQLAddField += ",Description";
+ strSQLAddValue += ",'" + Description + "'";
+ }
+ if (Creator != defString)
+ {
+ strSQLAddField = strSQLAddField + ",Creator";
+ strSQLAddValue = strSQLAddValue + ",'" + Creator + "'";
+ }
+ if (CreateDate != defDateTime)
+ {
+ strSQLAddField = strSQLAddField + ",CreateDate";
+ strSQLAddValue = strSQLAddValue + ", To_Date('" + Strings.Format(CreateDate, "yyyy/MM/dd HH:mm:ss") + "','YYYY/MM/DD HH24:MI:SS')";
+ }
+
+ if (string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 當沒有額外的欄位時,直接給定strSQL
+ strSQL = strSQLAddField + ")" + strSQLAddValue + ")";
+ }
+
+ else
+ {
+ // 加上additional的field & value 後傳回
+ strSQL = SeparateAddXML_Add(ref strSQLAddField, ref strSQLAddValue, AdditionalXml);
+
+ }
+
+ // //執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL);
+
+ // //Return success
+ AddSubcontractorContRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ AddSubcontractorContRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.AddSubcontractorCont: " & e1.Message)
+
+ return AddSubcontractorContRet;
+
+ }
+
+
+ public string EditSubcontractorCont(string SubcontractorNo, string ContactorName, string TelNo = defString, string FaxNo = defString, string Title = defString, string Address = defString, string EMail = defString, string Description = defString, string AdditionalXml = "", int DataStamp = defInteger, string Reviser = defString, DateTime ReviseDate = default(DateTime))
+ {
+ string EditSubcontractorContRet = default(string);
+
+ // 此 Function 將修改一筆資料
+ // 傳入值: 各欄位修改值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ // 先給定strSQL一定有的欄位
+ strSQL = "Update tblENTSubcontractorCont Set ";
+
+ if ((TelNo ?? "") != defString)
+ {
+ strSQL += "TelNo = '" + TelNo + "',";
+ }
+ if ((FaxNo ?? "") != defString)
+ {
+ strSQL += "FaxNo = '" + FaxNo + "',";
+ }
+ if ((Title ?? "") != defString)
+ {
+ strSQL += "Title = '" + Title + "',";
+ }
+ if ((Address ?? "") != defString)
+ {
+ strSQL += "Address = '" + Address + "',";
+ }
+ if ((EMail ?? "") != defString)
+ {
+ strSQL += "EMail = '" + EMail + "',";
+ }
+ if ((Description ?? "") != defString)
+ {
+ strSQL += "Description = '" + Description + "',";
+ }
+
+ if (Reviser != defString)
+ strSQL = strSQL + "Reviser = '" + Reviser + "',";
+
+ if (ReviseDate != defDateTime)
+ strSQL = strSQL + "ReviseDate = To_Date('" + Strings.Format(ReviseDate, "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS'),";
+
+ if (DataStamp != defInteger)
+ strSQL = strSQL + "DataStamp = DataStamp + 1 ,";
+
+ // 有額外的欄位時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的field & value
+ strSQL += SeparateAddXML_Edit(AdditionalXml);
+ }
+
+ // 去除strSQL中最後一個 ","
+ if (Strings.InStr(1, strSQL, ",") != 0) // 表示有要修改的欄位
+ {
+ if (Strings.Right(strSQL, 1) == ",")
+ {
+ strSQL = Strings.Mid(strSQL, 1, Strings.Len(strSQL) - 1);
+ }
+
+ strSQL += " Where SubcontractorNo = '" + SubcontractorNo + "'" + " And ContactorName ='" + ContactorName + "'";
+ strSQL = strSQL + " And DataStamp = '" + DataStamp + "'";
+
+ // 有額外的條件式時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL, 1, true);
+ }
+
+ // //Return success
+ EditSubcontractorContRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ EditSubcontractorContRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.EditSubcontractorCont: " & e1.Message)
+
+ return EditSubcontractorContRet;
+
+ }
+
+ public string DelSubcontractorCont(string SubcontractorNo, string ContactorName = defString, string AdditionalXml = "")
+ {
+ string DelSubcontractorContRet = default(string);
+ // 此 Function 將刪除資料
+ // 傳入值: 刪除的索引值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ strSQL = "Delete From tblENTSubcontractorCont " + " Where SubcontractorNo='" + SubcontractorNo + "'";
+
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL);
+
+ // //Return success
+ DelSubcontractorContRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ DelSubcontractorContRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.DelSubcontractorCont: " & e1.Message)
+
+ return DelSubcontractorContRet;
+
+ }
+
+ public string LoadSubcontractorCont(string SubcontractorNo = defString, string ContactorName = defString, string AdditionalXml = "")
+ {
+ string LoadSubcontractorContRet = default(string);
+ // 此 Function 將資料以XML方式取出
+ // 傳入值: 索引值
+ // 傳回值: XML(成功), fail(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractorCont Where SubcontractorNo Is Not Null";
+
+ // 有傳入SubcontractorNo表示只取該SubcontractorNo之資料
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractorCont", cnnTemp);
+
+ // //Combine return value
+ LoadSubcontractorContRet = CombineXMLReturnValue("loadSubcontractorcont", "tblENTSubcontractorCont", "DataSet", FormatXMLSchema(dsENT.GetXmlSchema()), dsENT.GetXml(), "");
+ }
+
+ catch (Exception e1)
+ {
+ LoadSubcontractorContRet = "fail";
+ throw;
+ } // New Exception("kcENT.LoadSubcontractorCont: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return LoadSubcontractorContRet;
+
+ }
+
+ public DataSet ShowSubcontractorCont(string SubcontractorNo = defString, string ContactorName = defString, string AdditionalXml = "")
+ {
+ DataSet ShowSubcontractorContRet = default(DataSet);
+ // 此 Function 將資料以 Dataset 方式取出
+ // 傳入值: 索引值
+ // 傳回值: Dataset(成功), Nothing(失敗)
+
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractorCont Where SubcontractorNo Is Not Null";
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractorCont", cnnTemp);
+
+ // //Return data
+ ShowSubcontractorContRet = dsENT;
+ }
+
+ catch (Exception e1)
+ {
+ ShowSubcontractorContRet = null;
+ throw;
+ } // New Exception("kcENT.ShowSubcontractorCont: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return ShowSubcontractorContRet;
+
+ }
+
+ public DataRow GetSubcontractorCont(string SubcontractorNo = defString, string ContactorName = defString, string AdditionalXml = "")
+ {
+ DataRow GetSubcontractorContRet = default(DataRow);
+ // 此 Function 將資料以 DataRow 方式取出
+ // 傳入值: 索引值
+ // 傳回值: DataRow(成功), Nothing(失敗)
+
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractorCont Where SubcontractorNo Is Not Null";
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractorCont", cnnTemp);
+
+ // //Return data
+ if (dsENT.Tables[0].Rows.Count > 0)
+ {
+ GetSubcontractorContRet = dsENT.Tables[0].Rows[0];
+ }
+ else
+ {
+ GetSubcontractorContRet = dsENT.Tables[0].NewRow();
+ }
+ }
+ catch (Exception e1)
+ {
+ GetSubcontractorContRet = null;
+ throw;
+ } // New Exception("kcENT.GetSubcontractorCont: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return GetSubcontractorContRet;
+
+ }
+
+
+
+ #endregion
+ }
+}
diff --git a/SRC/MESWin/SYS4/21670ll/MEStc_SXS/tcENT/clsENT.cs b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/tcENT/clsENT.cs
new file mode 100644
index 0000000..2af6c9d
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/tcENT/clsENT.cs
@@ -0,0 +1,958 @@
+using iMESCore.Settings;
+using Microsoft.VisualBasic;
+using Microsoft.VisualBasic.CompilerServices;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using static iMESCore.Base.iMESComSubroutine;
+using static iMESCore.Base.iMESComXML;
+using static iMESCore.Base.iMESConst;
+using static iMESCore.DataBase.iMESSql;
+namespace MEStc_SXS
+{
+ public class clsENT : IDisposable
+ {
+ /*不使用modXX,不再使用OleDb
+ * 資料庫相關(建立連線/讀取資料/異動資料),使用data_access_service.dll
+ * 設定檔相關,使用iMESAppSetting
+ * Xml相關,使用iMESComXML.dll
+ * 常數相關,使用iMESConst.dll
+ * 簡易副程式,使用iMESComSubroutine.dll
+ */
+
+
+ private AppSettings objSetting = new AppSettings();
+ private string strConnectionString; // Connection string
+ private string strDataBaseType; // DataBase Type:oracle, mysql, access
+ private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ
+ private bool disposed = false; // To detect redundant calls
+ private string strSQL = "";
+ private string strSQLAddField;
+ private string strSQLAddValue;
+
+ #region --- Initial Object ---
+
+ public clsENT()
+ {
+ // Get database type
+ strDataBaseType = objSetting.GetDataBaseType();
+ // Get connection string
+ strConnectionString = objSetting.GetConnectionString(strDataBaseType);
+ // Get Message Queue Type
+ strMQType = objSetting.GetMQType();
+ }
+
+ #endregion
+
+ #region --- Property ---
+
+ // //Property--------------------------------------------------------------------------------------------------------------------------------
+ public string ConnectionString
+ {
+ get
+ {
+ return strConnectionString;
+ }
+ }
+
+ public string DataBaseType
+ {
+ get
+ {
+ return strDataBaseType;
+ }
+ }
+
+ public string MQType
+ {
+ get
+ {
+ return strMQType;
+ }
+ }
+
+ // 2003/03/22,sammi.
+ // 因TC可能呼叫KC,在整個Function中,必須要使用同一個Reverse物件,如此在產生AddReverseUpdateContent的資料時,ReverseOrder才不會重覆.
+ // 若KC再往下呼叫UD,則必須將Reverse物件傳遞予UD.
+ //public object ReverseObj
+ //{
+ // get
+ // {
+ // //return objReverse;
+ // // ReverseObj = objReverse
+ // }
+ //}
+
+
+ #endregion
+
+ #region IDisposable Support
+ private bool disposedValue; // 偵測多餘的呼叫
+
+ // IDisposable
+ protected virtual void Dispose(bool disposing)
+ {
+ if (!disposedValue)
+ {
+ if (disposing)
+ {
+ // TODO: 處置 Managed 狀態 (Managed 物件)。
+ }
+
+ // TODO: 釋放 Unmanaged 資源 (Unmanaged 物件) 並覆寫下面的 Finalize()。
+ // TODO: 將大型欄位設定為 null。
+ }
+ disposedValue = true;
+ }
+
+ // TODO: 只有當上面的 Dispose(ByVal disposing As Boolean) 有可釋放 Unmanaged 資源的程式碼時,才覆寫 Finalize()。
+ // Protected Overrides Sub Finalize()
+ // ' 請勿變更此程式碼。在上面的 Dispose(ByVal disposing As Boolean) 中輸入清除程式碼。
+ // Dispose(False)
+ // MyBase.Finalize()
+ // End Sub
+
+ // 由 Visual Basic 新增此程式碼以正確實作可處置的模式。
+ public void Dispose()
+ {
+ // 請勿變更此程式碼。在以上的 Dispose 置入清除程式碼 (ByVal 視為布林值處置)。
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+ #endregion
+
+ #region --- Subcontractor 外包商 ---
+
+
+ public string AddSubcontractor(string SubcontractorNo, string SubcontractorName, string Description = defString, string Creator = defString, DateTime CreateDate = default(DateTime), string AdditionalXml = "")
+ {
+ string AddSubcontractorRet = default(string);
+ // 此 Function 將新增一筆資料
+ // 傳入值: 各欄位新增值
+ // 傳回值: success(成功), fail(失敗)
+
+ if (CreateDate == defDateTime)
+ CreateDate = DateTime.Now;
+
+ try
+ {
+ strSQLAddField = "Insert into tblENTSubcontractor (SubcontractorNo, SubcontractorName, IssueState";
+ strSQLAddValue = " Values ('" + SubcontractorNo + "','" + SubcontractorName + "', 0";
+
+ if ((Description ?? "") != defString)
+ {
+ strSQLAddField += ",Description";
+ strSQLAddValue += ",'" + Description + "'";
+ }
+ if ((Creator ?? "") != defString)
+ {
+ strSQLAddField += ",Creator";
+ strSQLAddValue += ",'" + Creator + "'";
+ }
+ if (CreateDate != defDateTime)
+ {
+ strSQLAddField += ",CreateDate";
+ strSQLAddValue += ", To_Date('" + Strings.Format(Conversions.ToDate(CreateDate), "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS')";
+ }
+
+ if (string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 當沒有額外的欄位時,直接給定strSQL
+ strSQL = strSQLAddField + ")" + strSQLAddValue + ")";
+ }
+
+ else
+ {
+ // 加上additional的field & value 後傳回
+ strSQL = SeparateAddXML_Add(ref strSQLAddField, ref strSQLAddValue, AdditionalXml);
+
+ }
+
+ // //執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL);
+
+ // //Return success
+ AddSubcontractorRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ AddSubcontractorRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.AddSubcontractor: " & e1.Message)
+
+ return AddSubcontractorRet;
+
+ }
+
+ public string EditSubcontractor(string SubcontractorNo, string SubcontractorName = defString, string Description = defString, string AdditionalXml = "", int DataStamp = defInteger, string Reviser = defString, DateTime ReviseDate = default(DateTime))
+ {
+ string EditSubcontractorRet = default(string);
+ // 此 Function 將修改一筆資料
+ // 傳入值: 各欄位修改值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ // 先給定strSQL一定有的欄位
+ strSQL = "Update tblENTSubcontractor Set ";
+
+ if ((SubcontractorName ?? "") != defString)
+ {
+ strSQL += "SubcontractorName = '" + SubcontractorName + "',";
+ }
+ if ((Description ?? "") != defString)
+ {
+ strSQL += "Description = '" + Description + "',";
+ }
+
+ if (Reviser != defString)
+ strSQL = strSQL + "Reviser = '" + Reviser + "',";
+
+ if (ReviseDate != defDateTime)
+ strSQL = strSQL + "ReviseDate = To_Date('" + Strings.Format(ReviseDate, "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS'),";
+
+ if (DataStamp != defInteger)
+ strSQL = strSQL + "DataStamp = DataStamp + 1 ,";
+
+ // 有額外的欄位時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的field & value
+ strSQL += SeparateAddXML_Edit(AdditionalXml);
+ }
+
+ // 去除strSQL中最後一個 ","
+ if (Strings.InStr(1, strSQL, ",") != 0) // 表示有要修改的欄位
+ {
+ if (Strings.Right(strSQL, 1) == ",")
+ {
+ strSQL = Strings.Mid(strSQL, 1, Strings.Len(strSQL) - 1);
+ }
+
+ strSQL += " Where SubcontractorNo ='" + SubcontractorNo + "'";
+ strSQL = strSQL + " And DataStamp = '" + DataStamp + "'";
+
+ // 有額外的條件式時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL, 1, true);
+ }
+
+ // //Return success
+ EditSubcontractorRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ EditSubcontractorRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.EditSubcontractor: " & e1.Message)
+
+ return EditSubcontractorRet;
+
+ }
+ public string DelSubcontractor(string SubcontractorNo, string AdditionalXml = "")
+ {
+ string DelSubcontractorRet = default(string);
+ // 此 Function 將刪除資料
+ // 傳入值: 刪除的索引值
+ // 傳回值: success(成功), fail(失敗)
+ var CollectionSQL = new Collection();
+
+ try
+ {
+ // 1. 刪除Contactor
+ strSQL = "Delete From tblENTSubcontractorCont " + "Where SubcontractorNo='" + SubcontractorNo + "'";
+ CollectionSQL.Add(strSQL);
+
+ // 2. 刪除主檔
+ strSQL = "Delete From tblENTSubcontractor " + " Where SubcontractorNo ='" + SubcontractorNo + "'";
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ CollectionSQL.Add(strSQL);
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery_UPD(Conversions.ToString(DataBaseType), strConnectionString, CollectionSQL);
+
+ // //Return success
+ DelSubcontractorRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ DelSubcontractorRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.DelSubcontractor: " & e1.Message)
+
+ return DelSubcontractorRet;
+
+ }
+
+ public string LoadSubcontractor(string SubcontractorNo = defString, int IssueState = defInteger, string AdditionalXml = "")
+ {
+ string LoadSubcontractorRet = default(string);
+ // 此 Function 將資料以XML方式取出
+ // 傳入值: 索引值
+ // 傳回值: XML(成功), fail(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractor Where SubcontractorNo Is Not Null";
+
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if (IssueState != defInteger)
+ {
+ strSQL += " And IssueState = " + IssueState;
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractor", cnnTemp);
+
+ // //Combine return value
+ LoadSubcontractorRet = CombineXMLReturnValue("loadSubcontractor", "tblENTSubcontractor", "DataSet", FormatXMLSchema(dsENT.GetXmlSchema()), dsENT.GetXml(), "");
+ }
+
+ catch (Exception e1)
+ {
+ LoadSubcontractorRet = "fail";
+ throw;
+ } // New Exception("kcENT.LoadSubcontractor: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return LoadSubcontractorRet;
+
+ }
+
+ public DataSet ShowSubcontractor(string SubcontractorNo = defString, int IssueState = defInteger, string AdditionalXml = "")
+ {
+ DataSet ShowSubcontractorRet = default(DataSet);
+ // 此 Function 將資料以 Dataset 方式取出
+ // 傳入值: 索引值
+ // 傳回值: Dataset(成功), Nothing(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractor Where SubcontractorNo Is Not Null";
+
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if (IssueState != defInteger)
+ {
+ strSQL += " And IssueState = " + IssueState;
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractor", cnnTemp);
+
+ // //Return data
+ ShowSubcontractorRet = dsENT;
+ }
+
+ catch (Exception e1)
+ {
+ ShowSubcontractorRet = null;
+ throw;
+ } // New Exception("kcENT.ShowSubcontractor: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return ShowSubcontractorRet;
+
+ }
+
+ public DataRow GetSubcontractor(string SubcontractorNo = defString, int IssueState = defInteger, string AdditionalXml = "")
+ {
+ DataRow GetSubcontractorRet = default(DataRow);
+ // 此 Function 將資料以 DataRow 方式取出
+ // 傳入值: 索引值
+ // 傳回值: DataRow(成功), Nothing(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractor Where SubcontractorNo Is Not Null";
+
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if (IssueState != defInteger)
+ {
+ strSQL += " And IssueState = " + IssueState;
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractor", cnnTemp);
+
+ // //Return data
+ if (dsENT.Tables[0].Rows.Count > 0)
+ {
+ GetSubcontractorRet = dsENT.Tables[0].Rows[0];
+ }
+ else
+ {
+ GetSubcontractorRet = dsENT.Tables[0].NewRow();
+ }
+ }
+ catch (Exception e1)
+ {
+ GetSubcontractorRet = null;
+ throw;
+ } // New Exception("kcENT.GetSubcontractor: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return GetSubcontractorRet;
+
+ }
+ public string SetSubcontractorIssueState(string SubcontractorNo, int IssueState, int DataStamp = defInteger, string Reviser = defString, DateTime ReviseDate = default(DateTime))
+ {
+ string SetSubcontractorIssueStateRet = default(string);
+ // 此 Function 將修改IssueState欄位的值
+ // 傳入值: IssueState修改後的值及VendorNo
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ // 先給定strSQL一定有的欄位
+ strSQL = "Update tblENTSubcontractor Set IssueState = " + IssueState + ",";
+
+ if (Reviser != defString)
+ strSQL = strSQL + "Reviser = '" + Reviser + "',";
+
+ if (ReviseDate != defDateTime)
+ strSQL = strSQL + "ReviseDate = To_Date('" + Strings.Format(ReviseDate, "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS'),";
+
+ if (DataStamp != defInteger)
+ strSQL = strSQL + "DataStamp = DataStamp + 1 ,";
+
+ if (Strings.InStr(1, strSQL, ",") != 0) // 表示有要修改的欄位
+ {
+ if (Strings.Right(strSQL, 1) == ",")
+ {
+ strSQL = Strings.Mid(strSQL, 1, Strings.Len(strSQL) - 1);
+ }
+
+ strSQL = strSQL + " Where SubcontractorNo ='" + SubcontractorNo + "'";
+ strSQL = strSQL + " And DataStamp = '" + DataStamp + "'";
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL, 1, true);
+ }
+
+ // //Return success
+ SetSubcontractorIssueStateRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ SetSubcontractorIssueStateRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.SetSubcontractorIssueState: " & e1.Message)
+
+ return SetSubcontractorIssueStateRet;
+
+ }
+
+
+ public string AddSubcontractorCont(string SubcontractorNo, string ContactorName, string TelNo = defString, string FaxNo = defString, string Title = defString, string Address = defString, string EMail = defString, string Description = defString, string AdditionalXml = "", string Creator = defString, DateTime CreateDate = default(DateTime))
+ {
+ string AddSubcontractorContRet = default(string);
+ // 此 Function 將新增一筆資料
+ // 傳入值: 各欄位新增值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ strSQLAddField = "Insert into tblENTSubcontractorCont (SubcontractorNo, ContactorName";
+ strSQLAddValue = " Values ('" + SubcontractorNo + "','" + ContactorName + "'";
+
+ if ((TelNo ?? "") != defString)
+ {
+ strSQLAddField += ",TelNo";
+ strSQLAddValue += ",'" + TelNo + "'";
+ }
+ if ((FaxNo ?? "") != defString)
+ {
+ strSQLAddField += ",FaxNo";
+ strSQLAddValue += ",'" + FaxNo + "'";
+ }
+ if ((Title ?? "") != defString)
+ {
+ strSQLAddField += ",Title";
+ strSQLAddValue += ",'" + Title + "'";
+ }
+ if ((Address ?? "") != defString)
+ {
+ strSQLAddField += ",Address";
+ strSQLAddValue += ",'" + Address + "'";
+ }
+ if ((EMail ?? "") != defString)
+ {
+ strSQLAddField += ",EMail";
+ strSQLAddValue += ",'" + EMail + "'";
+ }
+ if ((Description ?? "") != defString)
+ {
+ strSQLAddField += ",Description";
+ strSQLAddValue += ",'" + Description + "'";
+ }
+ if (Creator != defString)
+ {
+ strSQLAddField = strSQLAddField + ",Creator";
+ strSQLAddValue = strSQLAddValue + ",'" + Creator + "'";
+ }
+ if (CreateDate != defDateTime)
+ {
+ strSQLAddField = strSQLAddField + ",CreateDate";
+ strSQLAddValue = strSQLAddValue + ", To_Date('" + Strings.Format(CreateDate, "yyyy/MM/dd HH:mm:ss") + "','YYYY/MM/DD HH24:MI:SS')";
+ }
+
+ if (string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 當沒有額外的欄位時,直接給定strSQL
+ strSQL = strSQLAddField + ")" + strSQLAddValue + ")";
+ }
+
+ else
+ {
+ // 加上additional的field & value 後傳回
+ strSQL = SeparateAddXML_Add(ref strSQLAddField, ref strSQLAddValue, AdditionalXml);
+
+ }
+
+ // //執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL);
+
+ // //Return success
+ AddSubcontractorContRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ AddSubcontractorContRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.AddSubcontractorCont: " & e1.Message)
+
+ return AddSubcontractorContRet;
+
+ }
+
+
+ public string EditSubcontractorCont(string SubcontractorNo, string ContactorName, string TelNo = defString, string FaxNo = defString, string Title = defString, string Address = defString, string EMail = defString, string Description = defString, string AdditionalXml = "", int DataStamp = defInteger, string Reviser = defString, DateTime ReviseDate = default(DateTime))
+ {
+ string EditSubcontractorContRet = default(string);
+
+ // 此 Function 將修改一筆資料
+ // 傳入值: 各欄位修改值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ // 先給定strSQL一定有的欄位
+ strSQL = "Update tblENTSubcontractorCont Set ";
+
+ if ((TelNo ?? "") != defString)
+ {
+ strSQL += "TelNo = '" + TelNo + "',";
+ }
+ if ((FaxNo ?? "") != defString)
+ {
+ strSQL += "FaxNo = '" + FaxNo + "',";
+ }
+ if ((Title ?? "") != defString)
+ {
+ strSQL += "Title = '" + Title + "',";
+ }
+ if ((Address ?? "") != defString)
+ {
+ strSQL += "Address = '" + Address + "',";
+ }
+ if ((EMail ?? "") != defString)
+ {
+ strSQL += "EMail = '" + EMail + "',";
+ }
+ if ((Description ?? "") != defString)
+ {
+ strSQL += "Description = '" + Description + "',";
+ }
+
+ if (Reviser != defString)
+ strSQL = strSQL + "Reviser = '" + Reviser + "',";
+
+ if (ReviseDate != defDateTime)
+ strSQL = strSQL + "ReviseDate = To_Date('" + Strings.Format(ReviseDate, "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS'),";
+
+ if (DataStamp != defInteger)
+ strSQL = strSQL + "DataStamp = DataStamp + 1 ,";
+
+ // 有額外的欄位時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的field & value
+ strSQL += SeparateAddXML_Edit(AdditionalXml);
+ }
+
+ // 去除strSQL中最後一個 ","
+ if (Strings.InStr(1, strSQL, ",") != 0) // 表示有要修改的欄位
+ {
+ if (Strings.Right(strSQL, 1) == ",")
+ {
+ strSQL = Strings.Mid(strSQL, 1, Strings.Len(strSQL) - 1);
+ }
+
+ strSQL += " Where SubcontractorNo = '" + SubcontractorNo + "'" + " And ContactorName ='" + ContactorName + "'";
+ strSQL = strSQL + " And DataStamp = '" + DataStamp + "'";
+
+ // 有額外的條件式時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL, 1, true);
+ }
+
+ // //Return success
+ EditSubcontractorContRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ EditSubcontractorContRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.EditSubcontractorCont: " & e1.Message)
+
+ return EditSubcontractorContRet;
+
+ }
+
+ public string DelSubcontractorCont(string SubcontractorNo, string ContactorName = defString, string AdditionalXml = "")
+ {
+ string DelSubcontractorContRet = default(string);
+ // 此 Function 將刪除資料
+ // 傳入值: 刪除的索引值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ strSQL = "Delete From tblENTSubcontractorCont " + " Where SubcontractorNo='" + SubcontractorNo + "'";
+
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL);
+
+ // //Return success
+ DelSubcontractorContRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ DelSubcontractorContRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.DelSubcontractorCont: " & e1.Message)
+
+ return DelSubcontractorContRet;
+
+ }
+
+ public string LoadSubcontractorCont(string SubcontractorNo = defString, string ContactorName = defString, string AdditionalXml = "")
+ {
+ string LoadSubcontractorContRet = default(string);
+ // 此 Function 將資料以XML方式取出
+ // 傳入值: 索引值
+ // 傳回值: XML(成功), fail(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractorCont Where SubcontractorNo Is Not Null";
+
+ // 有傳入SubcontractorNo表示只取該SubcontractorNo之資料
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractorCont", cnnTemp);
+
+ // //Combine return value
+ LoadSubcontractorContRet = CombineXMLReturnValue("loadSubcontractorcont", "tblENTSubcontractorCont", "DataSet", FormatXMLSchema(dsENT.GetXmlSchema()), dsENT.GetXml(), "");
+ }
+
+ catch (Exception e1)
+ {
+ LoadSubcontractorContRet = "fail";
+ throw;
+ } // New Exception("kcENT.LoadSubcontractorCont: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return LoadSubcontractorContRet;
+
+ }
+
+ public DataSet ShowSubcontractorCont(string SubcontractorNo = defString, string ContactorName = defString, string AdditionalXml = "")
+ {
+ DataSet ShowSubcontractorContRet = default(DataSet);
+ // 此 Function 將資料以 Dataset 方式取出
+ // 傳入值: 索引值
+ // 傳回值: Dataset(成功), Nothing(失敗)
+
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractorCont Where SubcontractorNo Is Not Null";
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractorCont", cnnTemp);
+
+ // //Return data
+ ShowSubcontractorContRet = dsENT;
+ }
+
+ catch (Exception e1)
+ {
+ ShowSubcontractorContRet = null;
+ throw;
+ } // New Exception("kcENT.ShowSubcontractorCont: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return ShowSubcontractorContRet;
+
+ }
+
+ public DataRow GetSubcontractorCont(string SubcontractorNo = defString, string ContactorName = defString, string AdditionalXml = "")
+ {
+ DataRow GetSubcontractorContRet = default(DataRow);
+ // 此 Function 將資料以 DataRow 方式取出
+ // 傳入值: 索引值
+ // 傳回值: DataRow(成功), Nothing(失敗)
+
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractorCont Where SubcontractorNo Is Not Null";
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractorCont", cnnTemp);
+
+ // //Return data
+ if (dsENT.Tables[0].Rows.Count > 0)
+ {
+ GetSubcontractorContRet = dsENT.Tables[0].Rows[0];
+ }
+ else
+ {
+ GetSubcontractorContRet = dsENT.Tables[0].NewRow();
+ }
+ }
+ catch (Exception e1)
+ {
+ GetSubcontractorContRet = null;
+ throw;
+ } // New Exception("kcENT.GetSubcontractorCont: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return GetSubcontractorContRet;
+
+ }
+
+
+
+ #endregion
+ }
+}
diff --git a/SRC/MESWin/SYS4/21670ll/MEStc_SXS/tcENT21670/clsENT_21670.cs b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/tcENT21670/clsENT_21670.cs
new file mode 100644
index 0000000..339a403
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/tcENT21670/clsENT_21670.cs
@@ -0,0 +1,969 @@
+using iMESCore.Settings;
+using Microsoft.VisualBasic;
+using Microsoft.VisualBasic.CompilerServices;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using static iMESCore.Base.iMESComSubroutine;
+using static iMESCore.Base.iMESComXML;
+using static iMESCore.Base.iMESConst;
+using static iMESCore.DataBase.iMESSql;
+namespace MEStc_SXS
+{
+ public class clsENT_21670 : IDisposable
+ {
+
+ /*不使用modXX,不再使用OleDb
+ * 資料庫相關(建立連線/讀取資料/異動資料),使用data_access_service.dll
+ * 設定檔相關,使用iMESAppSetting
+ * Xml相關,使用iMESComXML.dll
+ * 常數相關,使用iMESConst.dll
+ * 簡易副程式,使用iMESComSubroutine.dll
+ */
+
+
+ private AppSettings objSetting = new AppSettings();
+ private string strConnectionString; // Connection string
+ private string strDataBaseType; // DataBase Type:oracle, mysql, access
+ private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ
+ private bool disposed = false; // To detect redundant calls
+ private string strSQL = "";
+ private string strSQLAddField;
+ private string strSQLAddValue;
+
+ #region --- Initial Object ---
+
+ public clsENT_21670()
+ {
+ // Get database type
+ strDataBaseType = objSetting.GetDataBaseType();
+ // Get connection string
+ strConnectionString = objSetting.GetConnectionString(strDataBaseType);
+ // Get Message Queue Type
+ strMQType = objSetting.GetMQType();
+ }
+
+ #endregion
+
+ #region --- Property ---
+
+ // //Property--------------------------------------------------------------------------------------------------------------------------------
+ public string ConnectionString
+ {
+ get
+ {
+ return strConnectionString;
+ }
+ }
+
+ public string DataBaseType
+ {
+ get
+ {
+ return strDataBaseType;
+ }
+ }
+
+ public string MQType
+ {
+ get
+ {
+ return strMQType;
+ }
+ }
+
+ // 2003/03/22,sammi.
+ // 因TC可能呼叫KC,在整個Function中,必須要使用同一個Reverse物件,如此在產生AddReverseUpdateContent的資料時,ReverseOrder才不會重覆.
+ // 若KC再往下呼叫UD,則必須將Reverse物件傳遞予UD.
+ //public object ReverseObj
+ //{
+ // get
+ // {
+ // //return objReverse;
+ // // ReverseObj = objReverse
+ // }
+ //}
+
+
+ #endregion
+
+ #region IDisposable Support
+ private bool disposedValue; // 偵測多餘的呼叫
+
+ // IDisposable
+ protected virtual void Dispose(bool disposing)
+ {
+ if (!disposedValue)
+ {
+ if (disposing)
+ {
+ // TODO: 處置 Managed 狀態 (Managed 物件)。
+ }
+
+ // TODO: 釋放 Unmanaged 資源 (Unmanaged 物件) 並覆寫下面的 Finalize()。
+ // TODO: 將大型欄位設定為 null。
+ }
+ disposedValue = true;
+ }
+
+ // TODO: 只有當上面的 Dispose(ByVal disposing As Boolean) 有可釋放 Unmanaged 資源的程式碼時,才覆寫 Finalize()。
+ // Protected Overrides Sub Finalize()
+ // ' 請勿變更此程式碼。在上面的 Dispose(ByVal disposing As Boolean) 中輸入清除程式碼。
+ // Dispose(False)
+ // MyBase.Finalize()
+ // End Sub
+
+ // 由 Visual Basic 新增此程式碼以正確實作可處置的模式。
+ public void Dispose()
+ {
+ // 請勿變更此程式碼。在以上的 Dispose 置入清除程式碼 (ByVal 視為布林值處置)。
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+ #endregion
+
+ #region --- Subcontractor 外包商 ---
+
+
+ public string AddSubcontractor(string SubcontractorNo, string SubcontractorName, string WZ21670,string Description = defString, string Creator = defString, DateTime CreateDate = default(DateTime), string AdditionalXml = "")
+ {
+ string AddSubcontractorRet = default(string);
+ // 此 Function 將新增一筆資料
+ // 傳入值: 各欄位新增值
+ // 傳回值: success(成功), fail(失敗)
+
+ if (CreateDate == defDateTime)
+ CreateDate = DateTime.Now;
+
+ try
+ {
+ strSQLAddField = "Insert into tblENTSubcontractor_21670 (SubcontractorNo, SubcontractorName, IssueState";
+ strSQLAddValue = " Values ('" + SubcontractorNo + "','" + SubcontractorName + "', 0";
+
+ strSQLAddField += ",WZ21670";
+ strSQLAddValue += ",'" + WZ21670 + "'";
+
+
+ if ((Description ?? "") != defString)
+ {
+ strSQLAddField += ",Description";
+ strSQLAddValue += ",'" + Description + "'";
+ }
+ if ((Creator ?? "") != defString)
+ {
+ strSQLAddField += ",Creator";
+ strSQLAddValue += ",'" + Creator + "'";
+ }
+ if (CreateDate != defDateTime)
+ {
+ strSQLAddField += ",CreateDate";
+ strSQLAddValue += ", To_Date('" + Strings.Format(Conversions.ToDate(CreateDate), "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS')";
+ }
+
+ if (string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 當沒有額外的欄位時,直接給定strSQL
+ strSQL = strSQLAddField + ")" + strSQLAddValue + ")";
+ }
+
+ else
+ {
+ // 加上additional的field & value 後傳回
+ strSQL = SeparateAddXML_Add(ref strSQLAddField, ref strSQLAddValue, AdditionalXml);
+
+ }
+
+ // //執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL);
+
+ // //Return success
+ AddSubcontractorRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ AddSubcontractorRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.AddSubcontractor: " & e1.Message)
+
+ return AddSubcontractorRet;
+
+ }
+
+ public string EditSubcontractor(string SubcontractorNo,string WZ21670, string SubcontractorName = defString, string Description = defString, string AdditionalXml = "", int DataStamp = defInteger, string Reviser = defString, DateTime ReviseDate = default(DateTime))
+ {
+ string EditSubcontractorRet = default(string);
+ // 此 Function 將修改一筆資料
+ // 傳入值: 各欄位修改值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ // 先給定strSQL一定有的欄位
+ strSQL = "Update tblENTSubcontractor_21670 Set ";
+
+ if ((WZ21670 ?? "") != defString)
+ {
+ strSQL += "WZ21670 = '" + WZ21670 + "',";
+ }
+
+
+ if ((SubcontractorName ?? "") != defString)
+ {
+ strSQL += "SubcontractorName = '" + SubcontractorName + "',";
+ }
+ if ((Description ?? "") != defString)
+ {
+ strSQL += "Description = '" + Description + "',";
+ }
+
+ if (Reviser != defString)
+ strSQL = strSQL + "Reviser = '" + Reviser + "',";
+
+ if (ReviseDate != defDateTime)
+ strSQL = strSQL + "ReviseDate = To_Date('" + Strings.Format(ReviseDate, "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS'),";
+
+ if (DataStamp != defInteger)
+ strSQL = strSQL + "DataStamp = DataStamp + 1 ,";
+
+ // 有額外的欄位時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的field & value
+ strSQL += SeparateAddXML_Edit(AdditionalXml);
+ }
+
+ // 去除strSQL中最後一個 ","
+ if (Strings.InStr(1, strSQL, ",") != 0) // 表示有要修改的欄位
+ {
+ if (Strings.Right(strSQL, 1) == ",")
+ {
+ strSQL = Strings.Mid(strSQL, 1, Strings.Len(strSQL) - 1);
+ }
+
+ strSQL += " Where SubcontractorNo ='" + SubcontractorNo + "'";
+ strSQL = strSQL + " And DataStamp = '" + DataStamp + "'";
+
+ // 有額外的條件式時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL, 1, true);
+ }
+
+ // //Return success
+ EditSubcontractorRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ EditSubcontractorRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.EditSubcontractor: " & e1.Message)
+
+ return EditSubcontractorRet;
+
+ }
+ public string DelSubcontractor(string SubcontractorNo, string AdditionalXml = "")
+ {
+ string DelSubcontractorRet = default(string);
+ // 此 Function 將刪除資料
+ // 傳入值: 刪除的索引值
+ // 傳回值: success(成功), fail(失敗)
+ var CollectionSQL = new Collection();
+
+ try
+ {
+ // 1. 刪除Contactor
+ strSQL = "Delete From tblENTSubcontractorCont_21670 " + "Where SubcontractorNo='" + SubcontractorNo + "'";
+ CollectionSQL.Add(strSQL);
+
+ // 2. 刪除主檔
+ strSQL = "Delete From tblENTSubcontractor_21670 " + " Where SubcontractorNo ='" + SubcontractorNo + "'";
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ CollectionSQL.Add(strSQL);
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery_UPD(Conversions.ToString(DataBaseType), strConnectionString, CollectionSQL);
+
+ // //Return success
+ DelSubcontractorRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ DelSubcontractorRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.DelSubcontractor: " & e1.Message)
+
+ return DelSubcontractorRet;
+
+ }
+
+ public string LoadSubcontractor(string SubcontractorNo = defString, int IssueState = defInteger, string AdditionalXml = "")
+ {
+ string LoadSubcontractorRet = default(string);
+ // 此 Function 將資料以XML方式取出
+ // 傳入值: 索引值
+ // 傳回值: XML(成功), fail(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractor_21670 Where SubcontractorNo Is Not Null";
+
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if (IssueState != defInteger)
+ {
+ strSQL += " And IssueState = " + IssueState;
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractor_21670", cnnTemp);
+
+ // //Combine return value
+ LoadSubcontractorRet = CombineXMLReturnValue("loadSubcontractor", "tblENTSubcontractor_21670", "DataSet", FormatXMLSchema(dsENT.GetXmlSchema()), dsENT.GetXml(), "");
+ }
+
+ catch (Exception e1)
+ {
+ LoadSubcontractorRet = "fail";
+ throw;
+ } // New Exception("kcENT.LoadSubcontractor: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return LoadSubcontractorRet;
+
+ }
+
+ public DataSet ShowSubcontractor(string SubcontractorNo = defString, int IssueState = defInteger, string AdditionalXml = "")
+ {
+ DataSet ShowSubcontractorRet = default(DataSet);
+ // 此 Function 將資料以 Dataset 方式取出
+ // 傳入值: 索引值
+ // 傳回值: Dataset(成功), Nothing(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractor_21670 Where SubcontractorNo Is Not Null";
+
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if (IssueState != defInteger)
+ {
+ strSQL += " And IssueState = " + IssueState;
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractor_21670", cnnTemp);
+
+ // //Return data
+ ShowSubcontractorRet = dsENT;
+ }
+
+ catch (Exception e1)
+ {
+ ShowSubcontractorRet = null;
+ throw;
+ } // New Exception("kcENT.ShowSubcontractor: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return ShowSubcontractorRet;
+
+ }
+
+ public DataRow GetSubcontractor(string SubcontractorNo = defString, int IssueState = defInteger, string AdditionalXml = "")
+ {
+ DataRow GetSubcontractorRet = default(DataRow);
+ // 此 Function 將資料以 DataRow 方式取出
+ // 傳入值: 索引值
+ // 傳回值: DataRow(成功), Nothing(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractor_21670 Where SubcontractorNo Is Not Null";
+
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if (IssueState != defInteger)
+ {
+ strSQL += " And IssueState = " + IssueState;
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractor_21670", cnnTemp);
+
+ // //Return data
+ if (dsENT.Tables[0].Rows.Count > 0)
+ {
+ GetSubcontractorRet = dsENT.Tables[0].Rows[0];
+ }
+ else
+ {
+ GetSubcontractorRet = dsENT.Tables[0].NewRow();
+ }
+ }
+ catch (Exception e1)
+ {
+ GetSubcontractorRet = null;
+ throw;
+ } // New Exception("kcENT.GetSubcontractor: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return GetSubcontractorRet;
+
+ }
+ public string SetSubcontractorIssueState(string SubcontractorNo, int IssueState, int DataStamp = defInteger, string Reviser = defString, DateTime ReviseDate = default(DateTime))
+ {
+ string SetSubcontractorIssueStateRet = default(string);
+ // 此 Function 將修改IssueState欄位的值
+ // 傳入值: IssueState修改後的值及VendorNo
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ // 先給定strSQL一定有的欄位
+ strSQL = "Update tblENTSubcontractor_21670 Set IssueState = " + IssueState + ",";
+
+ if (Reviser != defString)
+ strSQL = strSQL + "Reviser = '" + Reviser + "',";
+
+ if (ReviseDate != defDateTime)
+ strSQL = strSQL + "ReviseDate = To_Date('" + Strings.Format(ReviseDate, "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS'),";
+
+ if (DataStamp != defInteger)
+ strSQL = strSQL + "DataStamp = DataStamp + 1 ,";
+
+ if (Strings.InStr(1, strSQL, ",") != 0) // 表示有要修改的欄位
+ {
+ if (Strings.Right(strSQL, 1) == ",")
+ {
+ strSQL = Strings.Mid(strSQL, 1, Strings.Len(strSQL) - 1);
+ }
+
+ strSQL = strSQL + " Where SubcontractorNo ='" + SubcontractorNo + "'";
+ strSQL = strSQL + " And DataStamp = '" + DataStamp + "'";
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL, 1, true);
+ }
+
+ // //Return success
+ SetSubcontractorIssueStateRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ SetSubcontractorIssueStateRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.SetSubcontractorIssueState: " & e1.Message)
+
+ return SetSubcontractorIssueStateRet;
+
+ }
+
+
+ public string AddSubcontractorCont(string SubcontractorNo, string ContactorName, string TelNo = defString, string FaxNo = defString, string Title = defString, string Address = defString, string EMail = defString, string Description = defString, string AdditionalXml = "", string Creator = defString, DateTime CreateDate = default(DateTime))
+ {
+ string AddSubcontractorContRet = default(string);
+ // 此 Function 將新增一筆資料
+ // 傳入值: 各欄位新增值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ strSQLAddField = "Insert into tblENTSubcontractorCont_21670 (SubcontractorNo, ContactorName";
+ strSQLAddValue = " Values ('" + SubcontractorNo + "','" + ContactorName + "'";
+
+ if ((TelNo ?? "") != defString)
+ {
+ strSQLAddField += ",TelNo";
+ strSQLAddValue += ",'" + TelNo + "'";
+ }
+ if ((FaxNo ?? "") != defString)
+ {
+ strSQLAddField += ",FaxNo";
+ strSQLAddValue += ",'" + FaxNo + "'";
+ }
+ if ((Title ?? "") != defString)
+ {
+ strSQLAddField += ",Title";
+ strSQLAddValue += ",'" + Title + "'";
+ }
+ if ((Address ?? "") != defString)
+ {
+ strSQLAddField += ",Address";
+ strSQLAddValue += ",'" + Address + "'";
+ }
+ if ((EMail ?? "") != defString)
+ {
+ strSQLAddField += ",EMail";
+ strSQLAddValue += ",'" + EMail + "'";
+ }
+ if ((Description ?? "") != defString)
+ {
+ strSQLAddField += ",Description";
+ strSQLAddValue += ",'" + Description + "'";
+ }
+ if (Creator != defString)
+ {
+ strSQLAddField = strSQLAddField + ",Creator";
+ strSQLAddValue = strSQLAddValue + ",'" + Creator + "'";
+ }
+ if (CreateDate != defDateTime)
+ {
+ strSQLAddField = strSQLAddField + ",CreateDate";
+ strSQLAddValue = strSQLAddValue + ", To_Date('" + Strings.Format(CreateDate, "yyyy/MM/dd HH:mm:ss") + "','YYYY/MM/DD HH24:MI:SS')";
+ }
+
+ if (string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 當沒有額外的欄位時,直接給定strSQL
+ strSQL = strSQLAddField + ")" + strSQLAddValue + ")";
+ }
+
+ else
+ {
+ // 加上additional的field & value 後傳回
+ strSQL = SeparateAddXML_Add(ref strSQLAddField, ref strSQLAddValue, AdditionalXml);
+
+ }
+
+ // //執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL);
+
+ // //Return success
+ AddSubcontractorContRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ AddSubcontractorContRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.AddSubcontractorCont: " & e1.Message)
+
+ return AddSubcontractorContRet;
+
+ }
+
+
+ public string EditSubcontractorCont(string SubcontractorNo, string ContactorName, string TelNo = defString, string FaxNo = defString, string Title = defString, string Address = defString, string EMail = defString, string Description = defString, string AdditionalXml = "", int DataStamp = defInteger, string Reviser = defString, DateTime ReviseDate = default(DateTime))
+ {
+ string EditSubcontractorContRet = default(string);
+
+ // 此 Function 將修改一筆資料
+ // 傳入值: 各欄位修改值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ // 先給定strSQL一定有的欄位
+ strSQL = "Update tblENTSubcontractorCont_21670 Set ";
+
+ if ((TelNo ?? "") != defString)
+ {
+ strSQL += "TelNo = '" + TelNo + "',";
+ }
+ if ((FaxNo ?? "") != defString)
+ {
+ strSQL += "FaxNo = '" + FaxNo + "',";
+ }
+ if ((Title ?? "") != defString)
+ {
+ strSQL += "Title = '" + Title + "',";
+ }
+ if ((Address ?? "") != defString)
+ {
+ strSQL += "Address = '" + Address + "',";
+ }
+ if ((EMail ?? "") != defString)
+ {
+ strSQL += "EMail = '" + EMail + "',";
+ }
+ if ((Description ?? "") != defString)
+ {
+ strSQL += "Description = '" + Description + "',";
+ }
+
+ if (Reviser != defString)
+ strSQL = strSQL + "Reviser = '" + Reviser + "',";
+
+ if (ReviseDate != defDateTime)
+ strSQL = strSQL + "ReviseDate = To_Date('" + Strings.Format(ReviseDate, "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS'),";
+
+ if (DataStamp != defInteger)
+ strSQL = strSQL + "DataStamp = DataStamp + 1 ,";
+
+ // 有額外的欄位時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的field & value
+ strSQL += SeparateAddXML_Edit(AdditionalXml);
+ }
+
+ // 去除strSQL中最後一個 ","
+ if (Strings.InStr(1, strSQL, ",") != 0) // 表示有要修改的欄位
+ {
+ if (Strings.Right(strSQL, 1) == ",")
+ {
+ strSQL = Strings.Mid(strSQL, 1, Strings.Len(strSQL) - 1);
+ }
+
+ strSQL += " Where SubcontractorNo = '" + SubcontractorNo + "'" + " And ContactorName ='" + ContactorName + "'";
+ strSQL = strSQL + " And DataStamp = '" + DataStamp + "'";
+
+ // 有額外的條件式時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL, 1, true);
+ }
+
+ // //Return success
+ EditSubcontractorContRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ EditSubcontractorContRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.EditSubcontractorCont: " & e1.Message)
+
+ return EditSubcontractorContRet;
+
+ }
+
+ public string DelSubcontractorCont(string SubcontractorNo, string ContactorName = defString, string AdditionalXml = "")
+ {
+ string DelSubcontractorContRet = default(string);
+ // 此 Function 將刪除資料
+ // 傳入值: 刪除的索引值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ strSQL = "Delete From tblENTSubcontractorCont_21670 " + " Where SubcontractorNo='" + SubcontractorNo + "'";
+
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL);
+
+ // //Return success
+ DelSubcontractorContRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ DelSubcontractorContRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.DelSubcontractorCont: " & e1.Message)
+
+ return DelSubcontractorContRet;
+
+ }
+
+ public string LoadSubcontractorCont(string SubcontractorNo = defString, string ContactorName = defString, string AdditionalXml = "")
+ {
+ string LoadSubcontractorContRet = default(string);
+ // 此 Function 將資料以XML方式取出
+ // 傳入值: 索引值
+ // 傳回值: XML(成功), fail(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractorCont_21670 Where SubcontractorNo Is Not Null";
+
+ // 有傳入SubcontractorNo表示只取該SubcontractorNo之資料
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractorCont_21670", cnnTemp);
+
+ // //Combine return value
+ LoadSubcontractorContRet = CombineXMLReturnValue("loadSubcontractorcont", "tblENTSubcontractorCont_21670", "DataSet", FormatXMLSchema(dsENT.GetXmlSchema()), dsENT.GetXml(), "");
+ }
+
+ catch (Exception e1)
+ {
+ LoadSubcontractorContRet = "fail";
+ throw;
+ } // New Exception("kcENT.LoadSubcontractorCont: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return LoadSubcontractorContRet;
+
+ }
+
+ public DataSet ShowSubcontractorCont(string SubcontractorNo = defString, string ContactorName = defString, string AdditionalXml = "")
+ {
+ DataSet ShowSubcontractorContRet = default(DataSet);
+ // 此 Function 將資料以 Dataset 方式取出
+ // 傳入值: 索引值
+ // 傳回值: Dataset(成功), Nothing(失敗)
+
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractorCont_21670 Where SubcontractorNo Is Not Null";
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractorCont_21670", cnnTemp);
+
+ // //Return data
+ ShowSubcontractorContRet = dsENT;
+ }
+
+ catch (Exception e1)
+ {
+ ShowSubcontractorContRet = null;
+ throw;
+ } // New Exception("kcENT.ShowSubcontractorCont: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return ShowSubcontractorContRet;
+
+ }
+
+ public DataRow GetSubcontractorCont(string SubcontractorNo = defString, string ContactorName = defString, string AdditionalXml = "")
+ {
+ DataRow GetSubcontractorContRet = default(DataRow);
+ // 此 Function 將資料以 DataRow 方式取出
+ // 傳入值: 索引值
+ // 傳回值: DataRow(成功), Nothing(失敗)
+
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractorCont_21670 Where SubcontractorNo Is Not Null";
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractorCont_21670", cnnTemp);
+
+ // //Return data
+ if (dsENT.Tables[0].Rows.Count > 0)
+ {
+ GetSubcontractorContRet = dsENT.Tables[0].Rows[0];
+ }
+ else
+ {
+ GetSubcontractorContRet = dsENT.Tables[0].NewRow();
+ }
+ }
+ catch (Exception e1)
+ {
+ GetSubcontractorContRet = null;
+ throw;
+ } // New Exception("kcENT.GetSubcontractorCont: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return GetSubcontractorContRet;
+
+ }
+
+
+
+ #endregion
+ }
+}
diff --git a/SRC/MESWin/SYS4/21670ll/MEStc_SXS/tcENT_21670/clsENT.cs b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/tcENT_21670/clsENT.cs
new file mode 100644
index 0000000..c0331f1
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/tcENT_21670/clsENT.cs
@@ -0,0 +1,958 @@
+using iMESCore.Settings;
+using Microsoft.VisualBasic;
+using Microsoft.VisualBasic.CompilerServices;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using static iMESCore.Base.iMESComSubroutine;
+using static iMESCore.Base.iMESComXML;
+using static iMESCore.Base.iMESConst;
+using static iMESCore.DataBase.iMESSql;
+namespace MEStc_SXS
+{
+ public class clsENT_21670_1 : IDisposable
+ {
+ /*不使用modXX,不再使用OleDb
+ * 資料庫相關(建立連線/讀取資料/異動資料),使用data_access_service.dll
+ * 設定檔相關,使用iMESAppSetting
+ * Xml相關,使用iMESComXML.dll
+ * 常數相關,使用iMESConst.dll
+ * 簡易副程式,使用iMESComSubroutine.dll
+ */
+
+
+ private AppSettings objSetting = new AppSettings();
+ private string strConnectionString; // Connection string
+ private string strDataBaseType; // DataBase Type:oracle, mysql, access
+ private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ
+ private bool disposed = false; // To detect redundant calls
+ private string strSQL = "";
+ private string strSQLAddField;
+ private string strSQLAddValue;
+
+ #region --- Initial Object ---
+
+ public clsENT_21670_1()
+ {
+ // Get database type
+ strDataBaseType = objSetting.GetDataBaseType();
+ // Get connection string
+ strConnectionString = objSetting.GetConnectionString(strDataBaseType);
+ // Get Message Queue Type
+ strMQType = objSetting.GetMQType();
+ }
+
+ #endregion
+
+ #region --- Property ---
+
+ // //Property--------------------------------------------------------------------------------------------------------------------------------
+ public string ConnectionString
+ {
+ get
+ {
+ return strConnectionString;
+ }
+ }
+
+ public string DataBaseType
+ {
+ get
+ {
+ return strDataBaseType;
+ }
+ }
+
+ public string MQType
+ {
+ get
+ {
+ return strMQType;
+ }
+ }
+
+ // 2003/03/22,sammi.
+ // 因TC可能呼叫KC,在整個Function中,必須要使用同一個Reverse物件,如此在產生AddReverseUpdateContent的資料時,ReverseOrder才不會重覆.
+ // 若KC再往下呼叫UD,則必須將Reverse物件傳遞予UD.
+ //public object ReverseObj
+ //{
+ // get
+ // {
+ // //return objReverse;
+ // // ReverseObj = objReverse
+ // }
+ //}
+
+
+ #endregion
+
+ #region IDisposable Support
+ private bool disposedValue; // 偵測多餘的呼叫
+
+ // IDisposable
+ protected virtual void Dispose(bool disposing)
+ {
+ if (!disposedValue)
+ {
+ if (disposing)
+ {
+ // TODO: 處置 Managed 狀態 (Managed 物件)。
+ }
+
+ // TODO: 釋放 Unmanaged 資源 (Unmanaged 物件) 並覆寫下面的 Finalize()。
+ // TODO: 將大型欄位設定為 null。
+ }
+ disposedValue = true;
+ }
+
+ // TODO: 只有當上面的 Dispose(ByVal disposing As Boolean) 有可釋放 Unmanaged 資源的程式碼時,才覆寫 Finalize()。
+ // Protected Overrides Sub Finalize()
+ // ' 請勿變更此程式碼。在上面的 Dispose(ByVal disposing As Boolean) 中輸入清除程式碼。
+ // Dispose(False)
+ // MyBase.Finalize()
+ // End Sub
+
+ // 由 Visual Basic 新增此程式碼以正確實作可處置的模式。
+ public void Dispose()
+ {
+ // 請勿變更此程式碼。在以上的 Dispose 置入清除程式碼 (ByVal 視為布林值處置)。
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+ #endregion
+
+ #region --- Subcontractor 外包商 ---
+
+
+ public string AddSubcontractor_21670(string SubcontractorNo, string SubcontractorName, string Description = defString, string Creator = defString, DateTime CreateDate = default(DateTime), string AdditionalXml = "")
+ {
+ string AddSubcontractorRet = default(string);
+ // 此 Function 將新增一筆資料
+ // 傳入值: 各欄位新增值
+ // 傳回值: success(成功), fail(失敗)
+
+ if (CreateDate == defDateTime)
+ CreateDate = DateTime.Now;
+
+ try
+ {
+ strSQLAddField = "Insert into tblENTSubcontractor_21670 (SubcontractorNo, SubcontractorName, IssueState";
+ strSQLAddValue = " Values ('" + SubcontractorNo + "','" + SubcontractorName + "', 0";
+
+ if ((Description ?? "") != defString)
+ {
+ strSQLAddField += ",Description";
+ strSQLAddValue += ",'" + Description + "'";
+ }
+ if ((Creator ?? "") != defString)
+ {
+ strSQLAddField += ",Creator";
+ strSQLAddValue += ",'" + Creator + "'";
+ }
+ if (CreateDate != defDateTime)
+ {
+ strSQLAddField += ",CreateDate";
+ strSQLAddValue += ", To_Date('" + Strings.Format(Conversions.ToDate(CreateDate), "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS')";
+ }
+
+ if (string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 當沒有額外的欄位時,直接給定strSQL
+ strSQL = strSQLAddField + ")" + strSQLAddValue + ")";
+ }
+
+ else
+ {
+ // 加上additional的field & value 後傳回
+ strSQL = SeparateAddXML_Add(ref strSQLAddField, ref strSQLAddValue, AdditionalXml);
+
+ }
+
+ // //執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL);
+
+ // //Return success
+ AddSubcontractorRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ AddSubcontractorRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.AddSubcontractor: " & e1.Message)
+
+ return AddSubcontractorRet;
+
+ }
+
+ public string EditSubcontractor_21670(string SubcontractorNo, string SubcontractorName = defString, string Description = defString, string AdditionalXml = "", int DataStamp = defInteger, string Reviser = defString, DateTime ReviseDate = default(DateTime))
+ {
+ string EditSubcontractorRet = default(string);
+ // 此 Function 將修改一筆資料
+ // 傳入值: 各欄位修改值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ // 先給定strSQL一定有的欄位
+ strSQL = "Update tblENTSubcontractor_21670 Set ";
+
+ if ((SubcontractorName ?? "") != defString)
+ {
+ strSQL += "SubcontractorName = '" + SubcontractorName + "',";
+ }
+ if ((Description ?? "") != defString)
+ {
+ strSQL += "Description = '" + Description + "',";
+ }
+
+ if (Reviser != defString)
+ strSQL = strSQL + "Reviser = '" + Reviser + "',";
+
+ if (ReviseDate != defDateTime)
+ strSQL = strSQL + "ReviseDate = To_Date('" + Strings.Format(ReviseDate, "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS'),";
+
+ if (DataStamp != defInteger)
+ strSQL = strSQL + "DataStamp = DataStamp + 1 ,";
+
+ // 有額外的欄位時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的field & value
+ strSQL += SeparateAddXML_Edit(AdditionalXml);
+ }
+
+ // 去除strSQL中最後一個 ","
+ if (Strings.InStr(1, strSQL, ",") != 0) // 表示有要修改的欄位
+ {
+ if (Strings.Right(strSQL, 1) == ",")
+ {
+ strSQL = Strings.Mid(strSQL, 1, Strings.Len(strSQL) - 1);
+ }
+
+ strSQL += " Where SubcontractorNo ='" + SubcontractorNo + "'";
+ strSQL = strSQL + " And DataStamp = '" + DataStamp + "'";
+
+ // 有額外的條件式時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL, 1, true);
+ }
+
+ // //Return success
+ EditSubcontractorRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ EditSubcontractorRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.EditSubcontractor: " & e1.Message)
+
+ return EditSubcontractorRet;
+
+ }
+ public string DelSubcontractor_21670(string SubcontractorNo, string AdditionalXml = "")
+ {
+ string DelSubcontractorRet = default(string);
+ // 此 Function 將刪除資料
+ // 傳入值: 刪除的索引值
+ // 傳回值: success(成功), fail(失敗)
+ var CollectionSQL = new Collection();
+
+ try
+ {
+ // 1. 刪除Contactor
+ strSQL = "Delete From tblENTSubcontractorCont_21670 " + "Where SubcontractorNo='" + SubcontractorNo + "'";
+ CollectionSQL.Add(strSQL);
+
+ // 2. 刪除主檔
+ strSQL = "Delete From tblENTSubcontractor_21670 " + " Where SubcontractorNo ='" + SubcontractorNo + "'";
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ CollectionSQL.Add(strSQL);
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery_UPD(Conversions.ToString(DataBaseType), strConnectionString, CollectionSQL);
+
+ // //Return success
+ DelSubcontractorRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ DelSubcontractorRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.DelSubcontractor: " & e1.Message)
+
+ return DelSubcontractorRet;
+
+ }
+
+ public string LoadSubcontractor_21670(string SubcontractorNo = defString, int IssueState = defInteger, string AdditionalXml = "")
+ {
+ string LoadSubcontractorRet = default(string);
+ // 此 Function 將資料以XML方式取出
+ // 傳入值: 索引值
+ // 傳回值: XML(成功), fail(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractor_21670 Where SubcontractorNo Is Not Null";
+
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if (IssueState != defInteger)
+ {
+ strSQL += " And IssueState = " + IssueState;
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractor_21670", cnnTemp);
+
+ // //Combine return value
+ LoadSubcontractorRet = CombineXMLReturnValue("loadSubcontractor", "tblENTSubcontractor_21670", "DataSet", FormatXMLSchema(dsENT.GetXmlSchema()), dsENT.GetXml(), "");
+ }
+
+ catch (Exception e1)
+ {
+ LoadSubcontractorRet = "fail";
+ throw;
+ } // New Exception("kcENT.LoadSubcontractor: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return LoadSubcontractorRet;
+
+ }
+
+ public DataSet ShowSubcontractor_21670(string SubcontractorNo = defString, int IssueState = defInteger, string AdditionalXml = "")
+ {
+ DataSet ShowSubcontractorRet = default(DataSet);
+ // 此 Function 將資料以 Dataset 方式取出
+ // 傳入值: 索引值
+ // 傳回值: Dataset(成功), Nothing(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractor_21670 Where SubcontractorNo Is Not Null";
+
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if (IssueState != defInteger)
+ {
+ strSQL += " And IssueState = " + IssueState;
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractor_21670", cnnTemp);
+
+ // //Return data
+ ShowSubcontractorRet = dsENT;
+ }
+
+ catch (Exception e1)
+ {
+ ShowSubcontractorRet = null;
+ throw;
+ } // New Exception("kcENT.ShowSubcontractor: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return ShowSubcontractorRet;
+
+ }
+
+ public DataRow GetSubcontractor_21670(string SubcontractorNo = defString, int IssueState = defInteger, string AdditionalXml = "")
+ {
+ DataRow GetSubcontractorRet = default(DataRow);
+ // 此 Function 將資料以 DataRow 方式取出
+ // 傳入值: 索引值
+ // 傳回值: DataRow(成功), Nothing(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractor_21670 Where SubcontractorNo Is Not Null";
+
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if (IssueState != defInteger)
+ {
+ strSQL += " And IssueState = " + IssueState;
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractor_21670", cnnTemp);
+
+ // //Return data
+ if (dsENT.Tables[0].Rows.Count > 0)
+ {
+ GetSubcontractorRet = dsENT.Tables[0].Rows[0];
+ }
+ else
+ {
+ GetSubcontractorRet = dsENT.Tables[0].NewRow();
+ }
+ }
+ catch (Exception e1)
+ {
+ GetSubcontractorRet = null;
+ throw;
+ } // New Exception("kcENT.GetSubcontractor: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return GetSubcontractorRet;
+
+ }
+ public string SetSubcontractorIssueState_21670(string SubcontractorNo, int IssueState, int DataStamp = defInteger, string Reviser = defString, DateTime ReviseDate = default(DateTime))
+ {
+ string SetSubcontractorIssueStateRet = default(string);
+ // 此 Function 將修改IssueState欄位的值
+ // 傳入值: IssueState修改後的值及VendorNo
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ // 先給定strSQL一定有的欄位
+ strSQL = "Update tblENTSubcontractor_21670 Set IssueState = " + IssueState + ",";
+
+ if (Reviser != defString)
+ strSQL = strSQL + "Reviser = '" + Reviser + "',";
+
+ if (ReviseDate != defDateTime)
+ strSQL = strSQL + "ReviseDate = To_Date('" + Strings.Format(ReviseDate, "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS'),";
+
+ if (DataStamp != defInteger)
+ strSQL = strSQL + "DataStamp = DataStamp + 1 ,";
+
+ if (Strings.InStr(1, strSQL, ",") != 0) // 表示有要修改的欄位
+ {
+ if (Strings.Right(strSQL, 1) == ",")
+ {
+ strSQL = Strings.Mid(strSQL, 1, Strings.Len(strSQL) - 1);
+ }
+
+ strSQL = strSQL + " Where SubcontractorNo ='" + SubcontractorNo + "'";
+ strSQL = strSQL + " And DataStamp = '" + DataStamp + "'";
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL, 1, true);
+ }
+
+ // //Return success
+ SetSubcontractorIssueStateRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ SetSubcontractorIssueStateRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.SetSubcontractorIssueState: " & e1.Message)
+
+ return SetSubcontractorIssueStateRet;
+
+ }
+
+
+ public string AddSubcontractorCont_21670(string SubcontractorNo, string ContactorName, string TelNo = defString, string FaxNo = defString, string Title = defString, string Address = defString, string EMail = defString, string Description = defString, string AdditionalXml = "", string Creator = defString, DateTime CreateDate = default(DateTime))
+ {
+ string AddSubcontractorContRet = default(string);
+ // 此 Function 將新增一筆資料
+ // 傳入值: 各欄位新增值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ strSQLAddField = "Insert into tblENTSubcontractorCont_21670 (SubcontractorNo, ContactorName";
+ strSQLAddValue = " Values ('" + SubcontractorNo + "','" + ContactorName + "'";
+
+ if ((TelNo ?? "") != defString)
+ {
+ strSQLAddField += ",TelNo";
+ strSQLAddValue += ",'" + TelNo + "'";
+ }
+ if ((FaxNo ?? "") != defString)
+ {
+ strSQLAddField += ",FaxNo";
+ strSQLAddValue += ",'" + FaxNo + "'";
+ }
+ if ((Title ?? "") != defString)
+ {
+ strSQLAddField += ",Title";
+ strSQLAddValue += ",'" + Title + "'";
+ }
+ if ((Address ?? "") != defString)
+ {
+ strSQLAddField += ",Address";
+ strSQLAddValue += ",'" + Address + "'";
+ }
+ if ((EMail ?? "") != defString)
+ {
+ strSQLAddField += ",EMail";
+ strSQLAddValue += ",'" + EMail + "'";
+ }
+ if ((Description ?? "") != defString)
+ {
+ strSQLAddField += ",Description";
+ strSQLAddValue += ",'" + Description + "'";
+ }
+ if (Creator != defString)
+ {
+ strSQLAddField = strSQLAddField + ",Creator";
+ strSQLAddValue = strSQLAddValue + ",'" + Creator + "'";
+ }
+ if (CreateDate != defDateTime)
+ {
+ strSQLAddField = strSQLAddField + ",CreateDate";
+ strSQLAddValue = strSQLAddValue + ", To_Date('" + Strings.Format(CreateDate, "yyyy/MM/dd HH:mm:ss") + "','YYYY/MM/DD HH24:MI:SS')";
+ }
+
+ if (string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 當沒有額外的欄位時,直接給定strSQL
+ strSQL = strSQLAddField + ")" + strSQLAddValue + ")";
+ }
+
+ else
+ {
+ // 加上additional的field & value 後傳回
+ strSQL = SeparateAddXML_Add(ref strSQLAddField, ref strSQLAddValue, AdditionalXml);
+
+ }
+
+ // //執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL);
+
+ // //Return success
+ AddSubcontractorContRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ AddSubcontractorContRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.AddSubcontractorCont: " & e1.Message)
+
+ return AddSubcontractorContRet;
+
+ }
+
+
+ public string EditSubcontractorCont_21670(string SubcontractorNo, string ContactorName, string TelNo = defString, string FaxNo = defString, string Title = defString, string Address = defString, string EMail = defString, string Description = defString, string AdditionalXml = "", int DataStamp = defInteger, string Reviser = defString, DateTime ReviseDate = default(DateTime))
+ {
+ string EditSubcontractorContRet = default(string);
+
+ // 此 Function 將修改一筆資料
+ // 傳入值: 各欄位修改值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ // 先給定strSQL一定有的欄位
+ strSQL = "Update tblENTSubcontractorCont_21670 Set ";
+
+ if ((TelNo ?? "") != defString)
+ {
+ strSQL += "TelNo = '" + TelNo + "',";
+ }
+ if ((FaxNo ?? "") != defString)
+ {
+ strSQL += "FaxNo = '" + FaxNo + "',";
+ }
+ if ((Title ?? "") != defString)
+ {
+ strSQL += "Title = '" + Title + "',";
+ }
+ if ((Address ?? "") != defString)
+ {
+ strSQL += "Address = '" + Address + "',";
+ }
+ if ((EMail ?? "") != defString)
+ {
+ strSQL += "EMail = '" + EMail + "',";
+ }
+ if ((Description ?? "") != defString)
+ {
+ strSQL += "Description = '" + Description + "',";
+ }
+
+ if (Reviser != defString)
+ strSQL = strSQL + "Reviser = '" + Reviser + "',";
+
+ if (ReviseDate != defDateTime)
+ strSQL = strSQL + "ReviseDate = To_Date('" + Strings.Format(ReviseDate, "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS'),";
+
+ if (DataStamp != defInteger)
+ strSQL = strSQL + "DataStamp = DataStamp + 1 ,";
+
+ // 有額外的欄位時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的field & value
+ strSQL += SeparateAddXML_Edit(AdditionalXml);
+ }
+
+ // 去除strSQL中最後一個 ","
+ if (Strings.InStr(1, strSQL, ",") != 0) // 表示有要修改的欄位
+ {
+ if (Strings.Right(strSQL, 1) == ",")
+ {
+ strSQL = Strings.Mid(strSQL, 1, Strings.Len(strSQL) - 1);
+ }
+
+ strSQL += " Where SubcontractorNo = '" + SubcontractorNo + "'" + " And ContactorName ='" + ContactorName + "'";
+ strSQL = strSQL + " And DataStamp = '" + DataStamp + "'";
+
+ // 有額外的條件式時再Append進原來的strSQL中
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL, 1, true);
+ }
+
+ // //Return success
+ EditSubcontractorContRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ EditSubcontractorContRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.EditSubcontractorCont: " & e1.Message)
+
+ return EditSubcontractorContRet;
+
+ }
+
+ public string DelSubcontractorCont_21670(string SubcontractorNo, string ContactorName = defString, string AdditionalXml = "")
+ {
+ string DelSubcontractorContRet = default(string);
+ // 此 Function 將刪除資料
+ // 傳入值: 刪除的索引值
+ // 傳回值: success(成功), fail(失敗)
+
+ try
+ {
+ strSQL = "Delete From tblENTSubcontractorCont_21670 " + " Where SubcontractorNo='" + SubcontractorNo + "'";
+
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery(Conversions.ToString(DataBaseType), strConnectionString, ref strSQL);
+
+ // //Return success
+ DelSubcontractorContRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ DelSubcontractorContRet = "fail";
+ // 發生錯誤時丟回本身的Function Name及系統錯誤訊息
+ throw;
+
+ } // New Exception("kcENT.DelSubcontractorCont: " & e1.Message)
+
+ return DelSubcontractorContRet;
+
+ }
+
+ public string LoadSubcontractorCont_21670(string SubcontractorNo = defString, string ContactorName = defString, string AdditionalXml = "")
+ {
+ string LoadSubcontractorContRet = default(string);
+ // 此 Function 將資料以XML方式取出
+ // 傳入值: 索引值
+ // 傳回值: XML(成功), fail(失敗)
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractorCont_21670 Where SubcontractorNo Is Not Null";
+
+ // 有傳入SubcontractorNo表示只取該SubcontractorNo之資料
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractorCont_21670", cnnTemp);
+
+ // //Combine return value
+ LoadSubcontractorContRet = CombineXMLReturnValue("loadSubcontractorcont", "tblENTSubcontractorCont_21670", "DataSet", FormatXMLSchema(dsENT.GetXmlSchema()), dsENT.GetXml(), "");
+ }
+
+ catch (Exception e1)
+ {
+ LoadSubcontractorContRet = "fail";
+ throw;
+ } // New Exception("kcENT.LoadSubcontractorCont: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return LoadSubcontractorContRet;
+
+ }
+
+ public DataSet ShowSubcontractorCont_21670(string SubcontractorNo = defString, string ContactorName = defString, string AdditionalXml = "")
+ {
+ DataSet ShowSubcontractorContRet = default(DataSet);
+ // 此 Function 將資料以 Dataset 方式取出
+ // 傳入值: 索引值
+ // 傳回值: Dataset(成功), Nothing(失敗)
+
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractorCont_21670 Where SubcontractorNo Is Not Null";
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractorCont_21670", cnnTemp);
+
+ // //Return data
+ ShowSubcontractorContRet = dsENT;
+ }
+
+ catch (Exception e1)
+ {
+ ShowSubcontractorContRet = null;
+ throw;
+ } // New Exception("kcENT.ShowSubcontractorCont: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return ShowSubcontractorContRet;
+
+ }
+
+ public DataRow GetSubcontractorCont_21670(string SubcontractorNo = defString, string ContactorName = defString, string AdditionalXml = "")
+ {
+ DataRow GetSubcontractorContRet = default(DataRow);
+ // 此 Function 將資料以 DataRow 方式取出
+ // 傳入值: 索引值
+ // 傳回值: DataRow(成功), Nothing(失敗)
+
+
+ var dsENT = default(DataSet);
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblENTSubcontractorCont_21670 Where SubcontractorNo Is Not Null";
+ if ((SubcontractorNo ?? "") != defString)
+ {
+ strSQL += " And SubcontractorNo = '" + SubcontractorNo + "'";
+ }
+ if ((ContactorName ?? "") != defString)
+ {
+ strSQL += " And ContactorName = '" + ContactorName + "'";
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL += SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsENT = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsENT, "tblENTSubcontractorCont_21670", cnnTemp);
+
+ // //Return data
+ if (dsENT.Tables[0].Rows.Count > 0)
+ {
+ GetSubcontractorContRet = dsENT.Tables[0].Rows[0];
+ }
+ else
+ {
+ GetSubcontractorContRet = dsENT.Tables[0].NewRow();
+ }
+ }
+ catch (Exception e1)
+ {
+ GetSubcontractorContRet = null;
+ throw;
+ } // New Exception("kcENT.GetSubcontractorCont: " & e1.Message)
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsENT != null)
+ {
+ dsENT.Dispose();
+ }
+
+ }
+
+ return GetSubcontractorContRet;
+
+ }
+
+
+
+ #endregion
+ }
+}
diff --git a/SRC/MESWin/SYS4/21670ll/MEStc_SXS/tcWIP/clsLot.cs b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/tcWIP/clsLot.cs
new file mode 100644
index 0000000..57d1278
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/MEStc_SXS/tcWIP/clsLot.cs
@@ -0,0 +1,337 @@
+using System;
+using System.Data;
+using System.Data.Common;
+using Microsoft.VisualBasic;
+using static iMESCore.Base.iMESComSubroutine;
+using static iMESCore.Base.iMESComXML;
+using static iMESCore.Base.iMESConst;
+using static iMESCore.DataBase.iMESSql;
+using iMESCore.Settings;
+
+namespace MEStc_SXS
+{
+
+
+ public class clsLot : IDisposable
+ {
+ /*不使用modXX,不再使用OleDb
+ * 資料庫相關(建立連線/讀取資料/異動資料),使用data_access_service.dll
+ * 設定檔相關,使用iMESAppSetting
+ * Xml相關,使用iMESComXML.dll
+ * 常數相關,使用iMESConst.dll
+ * 簡易副程式,使用iMESComSubroutine.dll
+ */
+
+
+ private AppSettings objSetting = new AppSettings();
+ private string strConnectionString; // Connection string
+ private string strDataBaseType; // DataBase Type:oracle, mysql, access
+ private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ
+ private bool disposed = false; // To detect redundant calls
+ private string strSQL = "";
+
+ #region --- Initial Object ---
+
+ public clsLot()
+ {
+ // Get database type
+ strDataBaseType = objSetting.GetDataBaseType();
+ // Get connection string
+ strConnectionString = objSetting.GetConnectionString(strDataBaseType);
+ // Get Message Queue Type
+ strMQType = objSetting.GetMQType();
+ }
+
+ #endregion
+
+ #region --- Property ---
+
+ // //Property--------------------------------------------------------------------------------------------------------------------------------
+ public string ConnectionString
+ {
+ get
+ {
+ return strConnectionString;
+ }
+ }
+
+ public string DataBaseType
+ {
+ get
+ {
+ return strDataBaseType;
+ }
+ }
+
+ public string MQType
+ {
+ get
+ {
+ return strMQType;
+ }
+ }
+
+ // 2003/03/22,sammi.
+ // 因TC可能呼叫KC,在整個Function中,必須要使用同一個Reverse物件,如此在產生AddReverseUpdateContent的資料時,ReverseOrder才不會重覆.
+ // 若KC再往下呼叫UD,則必須將Reverse物件傳遞予UD.
+ //public object ReverseObj
+ //{
+ // get
+ // {
+ // //return objReverse;
+ // // ReverseObj = objReverse
+ // }
+ //}
+
+
+ #endregion
+
+ #region IDisposable Support
+ private bool disposedValue; // 偵測多餘的呼叫
+
+ // IDisposable
+ protected virtual void Dispose(bool disposing)
+ {
+ if (!disposedValue)
+ {
+ if (disposing)
+ {
+ // TODO: 處置 Managed 狀態 (Managed 物件)。
+ }
+
+ // TODO: 釋放 Unmanaged 資源 (Unmanaged 物件) 並覆寫下面的 Finalize()。
+ // TODO: 將大型欄位設定為 null。
+ }
+ disposedValue = true;
+ }
+
+ // TODO: 只有當上面的 Dispose(ByVal disposing As Boolean) 有可釋放 Unmanaged 資源的程式碼時,才覆寫 Finalize()。
+ // Protected Overrides Sub Finalize()
+ // ' 請勿變更此程式碼。在上面的 Dispose(ByVal disposing As Boolean) 中輸入清除程式碼。
+ // Dispose(False)
+ // MyBase.Finalize()
+ // End Sub
+
+ // 由 Visual Basic 新增此程式碼以正確實作可處置的模式。
+ public void Dispose()
+ {
+ // 請勿變更此程式碼。在以上的 Dispose 置入清除程式碼 (ByVal 視為布林值處置)。
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+ #endregion
+
+
+ public string LoadOPType(string OPType = defString, int IssueState = defInteger, string AdditionalXml = "")
+ {
+ string LoadOPTypeRet = null;
+ // 此 Function 將資料以XML方式取出
+ // 傳入值: 索引值
+ // 傳回值: XML(成功), fail(失敗)
+
+
+ DataSet dsOP = null;
+
+ try
+ {
+
+ dsOP = ShowOPType(OPType, IssueState, AdditionalXml);
+
+ // //Combine return value
+ LoadOPTypeRet = CombineXMLReturnValue("loadoptype", "OPType", "DataSet", FormatXMLSchema(dsOP.GetXmlSchema()), dsOP.GetXml(), "");
+ }
+
+ catch (Exception e1)
+ {
+ LoadOPTypeRet = "fail";
+ throw;
+ } // New Exception("kcOP.LoadOPType: " & e1.Message)
+
+ finally
+ {
+ if (dsOP != null)
+ {
+ dsOP.Dispose();
+ }
+ }
+
+ return LoadOPTypeRet;
+
+ }
+
+ public DataSet ShowOPType(string OPType = defString, int IssueState = defInteger, string AdditionalXml = "")
+ {
+ DataSet ShowOPTypeRet = null;
+
+ // 此 Function 將資料以 Dataset 方式取出
+ // 傳入值: 索引值
+ // 傳回值: Dataset(成功), Nothing(失敗)
+
+
+ DataSet dsOP = null;
+ IDbConnection cnnTemp = null;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ strSQL = "Select * From tblOPType Where OPType Is Not Null";
+ if (OPType != defString)
+ {
+ strSQL = strSQL + " And OPType = '" + OPType + "'";
+ }
+ if (IssueState != defInteger)
+ {
+ strSQL = strSQL + " And IssueState = " + IssueState;
+ }
+
+ if (!string.IsNullOrEmpty(AdditionalXml))
+ {
+ // 加上additional的condition
+ strSQL = strSQL + SeparateAddXML_Condition(AdditionalXml);
+ }
+
+ // //Select data
+ dsOP = new DataSet();
+ ExecuteSQLQuery_Adapter(strSQL, dsOP, "OPType", cnnTemp);
+
+ // //Return data
+ ShowOPTypeRet = dsOP;
+ }
+
+ catch (Exception e1)
+ {
+ ShowOPTypeRet = null;
+ throw;
+ }
+
+ finally
+ {
+ CloseConnection(cnnTemp);
+ if (dsOP != null)
+ {
+ dsOP.Dispose();
+ }
+ }
+
+ return ShowOPTypeRet;
+ }
+
+ public DataRow GetOPType(string OPType = defString, int IssueState = defInteger, string AdditionalXml = "")
+ {
+ DataRow GetOPTypeRet = null;
+ // 此 Function 將資料以XML方式取出
+ // 傳入值: 索引值
+ // 傳回值: XML(成功), fail(失敗)
+
+
+ DataSet dsOP = null;
+
+ try
+ {
+
+ dsOP = ShowOPType(OPType, IssueState, AdditionalXml);
+
+ // //Return data
+ if (dsOP.Tables[0].Rows.Count > 0)
+ {
+ GetOPTypeRet = dsOP.Tables[0].Rows[0];
+ }
+ else
+ {
+ GetOPTypeRet = dsOP.Tables[0].NewRow();
+ }
+ }
+
+ catch (Exception e1)
+ {
+ GetOPTypeRet = null;
+ throw;
+ } // New Exception("kcOP.LoadOPType: " & e1.Message)
+
+ finally
+ {
+ if (dsOP != null)
+ {
+ dsOP.Dispose();
+ }
+ }
+
+ return GetOPTypeRet;
+
+ }
+
+ public string BR_CheckIn(long LotStamp, string LotNo, string LinkName, DataTable dtAttrib, DataTable dtEquipment, string UserNo, string ShiftNo,
+ string LotRecord = defString, DateTime CheckInTime = default(DateTime), string RuleNo = "", DataTable dtLoginState = null, DataTable dtAccessory = null,
+ DataTable dtMTLLot = null, string LanguageMode = defString)
+ {
+ string BR_CheckInRet = default(string);
+ // 此 Function 將更新CheckIn Data
+ // 傳入值: LotNo,dtAttrib,dtEquipment
+ // 傳回值: success(成功), fail(失敗)
+
+ IDbConnection cnnTemp = null;
+ DbDataReader drTemp;
+ var CollectionSQL = new Collection();
+ var CollectionSQL_Rows = new Collection();
+ string strSQL = "";
+
+ string LotSerial, OPNo, BRNo, SerialNo, LogGroupSerial, BaseLotNo, CurQTY;
+ int PhaseNo;
+ DateTime datEventTime;
+ long lngLotStamp;
+
+ try
+ {
+ // //Create connection
+ cnnTemp = CreateConnection(strConnectionString);
+
+ // 1.取出Temp LotState的資料
+ strSQL = "Select A.LotSerial,A.OPNo,A.SerialNo,B.BRNo,B.LogGroupSerial,B.LotStamp,B.BaseLotNo,B.CurQTY,B.PhaseNo " +
+ " From tblWIPTemp_LotState A, tblWIPLotState B " + " Where A.LotNo ='" + LotNo + "'" + " And A.LotNo = B.LotNo ";
+ // cmmTemp = New OleDb.OleDbCommand(strSQL, cnnTemp)
+ drTemp = ExecuteSQLQuery_Reader(strSQL, cnnTemp);
+ if (drTemp.Read())
+ {
+ LotSerial = drTemp["LotSerial"].ToString();
+ OPNo = drTemp["OPNo"].ToString();
+ SerialNo = drTemp["SerialNo"].ToString();
+ BRNo = drTemp["BRNo"].ToString();
+ LogGroupSerial = drTemp["LogGroupSerial"].ToString();
+ lngLotStamp = Convert.ToInt64(drTemp["LotStamp"]);
+ BaseLotNo = drTemp["BaseLotNo"].ToString();
+ CurQTY = drTemp["CurQTY"].ToString();
+ PhaseNo = Convert.ToInt32(drTemp["PhaseNo"]); // 2020/11/20 Steven Mantis: 0082084: [PAD]eRunCard_調整 BR 生產記錄
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-202003", "[%LotNo%] : " + LotNo);
+ }
+ drTemp.Close();
+
+
+ // 呼叫執行SQL指令
+ ExecuteSQLNoneQuery_ChkRowCount(strDataBaseType, strConnectionString, CollectionSQL, CollectionSQL_Rows);
+
+ // //Return success
+ BR_CheckInRet = "success";
+ }
+
+ catch (Exception e1)
+ {
+ BR_CheckInRet = "fail";
+ throw;
+ }
+ finally
+ {
+ CloseConnection(cnnTemp);
+
+ }
+ return BR_CheckInRet;
+
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/wsSXS/My Project/Application.Designer.cs b/SRC/MESWin/SYS4/21670ll/wsSXS/My Project/Application.Designer.cs
new file mode 100644
index 0000000..299bbe3
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/wsSXS/My Project/Application.Designer.cs
@@ -0,0 +1,11 @@
+// ------------------------------------------------------------------------------
+//
+// 這段程式碼是由工具產生的。
+// 執行階段版本:4.0.30319.42000
+//
+// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
+// 變更將會遺失。
+//
+// ------------------------------------------------------------------------------
+
+
diff --git a/SRC/MESWin/SYS4/21670ll/wsSXS/My Project/Application.myapp b/SRC/MESWin/SYS4/21670ll/wsSXS/My Project/Application.myapp
new file mode 100644
index 0000000..758895d
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/wsSXS/My Project/Application.myapp
@@ -0,0 +1,10 @@
+
+
+ false
+ false
+ 0
+ true
+ 0
+ 1
+ true
+
diff --git a/SRC/MESWin/SYS4/21670ll/wsSXS/My Project/Settings.Designer.cs b/SRC/MESWin/SYS4/21670ll/wsSXS/My Project/Settings.Designer.cs
new file mode 100644
index 0000000..10f0acd
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/wsSXS/My Project/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+namespace wsABC.My {
+
+
+ [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;
+ }
+ }
+ }
+}
diff --git a/SRC/MESWin/SYS4/21670ll/wsSXS/My Project/Settings.settings b/SRC/MESWin/SYS4/21670ll/wsSXS/My Project/Settings.settings
new file mode 100644
index 0000000..85b890b
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/wsSXS/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/SRC/MESWin/SYS4/21670ll/wsSXS/Properties/AssemblyInfo.cs b/SRC/MESWin/SYS4/21670ll/wsSXS/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..7ead6a6
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/wsSXS/Properties/AssemblyInfo.cs
@@ -0,0 +1,32 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 組件的一般資訊是由下列的屬性集控制。
+// 變更這些屬性的值即可修改組件的相關
+// 資訊。
+[assembly: AssemblyTitle("wsABC.Properties")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("iMES Technology Inc.")]
+[assembly: AssemblyProduct("MESSeries 6")]
+[assembly: AssemblyCopyright("Copyright iMES Technology Inc.")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 將 ComVisible 設定為 false 會使得這個組件中的類型
+// 對 COM 元件而言為不可見。如果您需要從 COM 存取這個組件中
+// 的類型,請在該類型上將 ComVisible 屬性設定為 true。
+[assembly: ComVisible(false)]
+
+// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID
+[assembly: Guid("ad05cadf-ff22-498b-a29e-df915118873d")]
+
+// 組件的版本資訊由下列四個值所組成:
+//
+// 主要版本
+// 次要版本
+// 組建編號
+// 修訂編號
+//
+[assembly: AssemblyVersion("6.0.0.0")]
diff --git a/SRC/MESWin/SYS4/21670ll/wsSXS/Properties/BuildIncrementVersionInfo.cs b/SRC/MESWin/SYS4/21670ll/wsSXS/Properties/BuildIncrementVersionInfo.cs
new file mode 100644
index 0000000..8c4e437
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/wsSXS/Properties/BuildIncrementVersionInfo.cs
@@ -0,0 +1 @@
+[assembly: System.Reflection.AssemblyFileVersion("6.0.5.40117")]
diff --git a/SRC/MESWin/SYS4/21670ll/wsSXS/Resources.Designer.cs b/SRC/MESWin/SYS4/21670ll/wsSXS/Resources.Designer.cs
new file mode 100644
index 0000000..20e487b
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/wsSXS/Resources.Designer.cs
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+namespace wsABC.My.Resources {
+ using System;
+
+
+ ///
+ /// 一个强类型的资源类,用于查找本地化的字符串等。
+ ///
+ // 此类是由 StronglyTypedResourceBuilder
+ // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
+ // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
+ // (以 /str 作为命令选项),或重新生成 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() {
+ }
+
+ ///
+ /// 返回此类使用的缓存的 ResourceManager 实例。
+ ///
+ [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("wsSXS.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// 重写当前线程的 CurrentUICulture 属性,对
+ /// 使用此强类型资源类的所有资源查找执行重写。
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/SRC/MESWin/SYS4/21670ll/wsSXS/Resources.resx b/SRC/MESWin/SYS4/21670ll/wsSXS/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/wsSXS/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/wsSXS/wsABC.csproj.vspscc b/SRC/MESWin/SYS4/21670ll/wsSXS/wsABC.csproj.vspscc
new file mode 100644
index 0000000..b6d3289
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/wsSXS/wsABC.csproj.vspscc
@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = ""
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}
diff --git a/SRC/MESWin/SYS4/21670ll/wsSXS/wsENT_21670/wsENT.cs b/SRC/MESWin/SYS4/21670ll/wsSXS/wsENT_21670/wsENT.cs
new file mode 100644
index 0000000..b603955
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/wsSXS/wsENT_21670/wsENT.cs
@@ -0,0 +1,1101 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System;
+using System.Data;
+using System.Web.Services;
+using Microsoft.VisualBasic;
+using Microsoft.VisualBasic.CompilerServices;
+using static iMESCore.Base.iMESComXML;
+using static iMESCore.Base.iMESConst;
+using static iMESCore.Base.iMESComSubroutine;
+namespace wsSXS
+{
+ public class wsENT
+ {
+ private MEStc_SXS.clsENT_21670 objENT = new MEStc_SXS.clsENT_21670();
+ private kcSYS.clsSYSUserLog objSYS = new kcSYS.clsSYSUserLog(); // 宣告Sys的物件
+ //private kcBasis_UPD.clsBasis_UPD objBasis = new kcBasis_UPD.clsBasis_UPD(); //主檔優化
+ //private kcBasis_Query.clsBasis_Query objQuery = new kcBasis_Query.clsBasis_Query(); //主檔優化
+ private System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); // 用以讀取Xml字串
+ private DateTime ArriveTime; // 送達時間
+ private string strIdentity; // Identity XML字串
+ private string strReturnValue; // ReturnValue XML字串
+ private string strException; // Exception XML字串
+ private string strResult; // Result XML字串
+ private string strMessage; // Message XML字串
+ private iMESCore.Settings.AppSettings objSetting = new iMESCore.Settings.AppSettings();
+ private string strResourceDir = "Resources";
+
+ public wsENT()
+ {
+ try
+ {
+ strResourceDir = System.IO.Path.Combine("wsUpdateResource", objSetting["ResourceDir"].ToString());
+ }
+ catch (Exception)
+ { }
+ }
+
+ #region --- Subcontractor 外包商 ---
+
+ [WebMethod(Description = "Load Subcontractor Data")]
+ public string LoadSubcontractor(string InXml)
+ {
+ string LoadSubcontractorRet = default(string);
+
+ // 先給預設值,以判斷是否有傳入該參數
+ string SubcontractorNo = defString;
+ int IssueState = 2;
+
+ ArriveTime = DateTime.Now;
+ string AdditionalXml = "";
+ try
+ {
+ // 讀取InXml字串
+ xmlDoc.LoadXml(InXml);
+ // 組Identity字串
+ strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
+
+ // 判斷是否有傳入Subcontractor,若有,表示要依Subcontractor查詢
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorNo = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // 判斷是否有傳入IssueState,若有,表示要依IssueState查詢
+ if (xmlDoc.DocumentElement.GetElementsByTagName("issuestate").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("issuestate").Item(0).SelectNodes("value").Count > 0)
+ {
+ IssueState = Conversions.ToInteger(xmlDoc.DocumentElement.GetElementsByTagName("issuestate").Item(0).SelectNodes("value").Item(0).InnerText);
+ }
+ }
+
+ // 呼叫副程式處理查詢條件與Additional格式
+ AdditionalXml = CombineXMLQueryAdditional(xmlDoc);
+
+ // 呼叫Dll執行
+ strReturnValue = objENT.LoadSubcontractor(SubcontractorNo, IssueState, AdditionalXml);
+ strException = "";
+ strResult = "success";
+ }
+
+ catch (iMESException.MESException ex)
+ {
+ strReturnValue = "";
+ strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Show Subcontractor Failed!!", ex.StackTrace);
+ strResult = "fail";
+ }
+
+ catch (Exception ex)
+ {
+ strReturnValue = "";
+ strException = CombineXMLException(defWSErrCode, ex.Message, "Show Subcontractor Failed!!", ex.StackTrace);
+ strResult = "fail";
+ }
+
+ finally
+ {
+ // 將各部份之XML字串組起來並傳出
+ LoadSubcontractorRet = CombineXMLResponse(strIdentity, strReturnValue, strException, strResult, "");
+
+ }
+
+ return LoadSubcontractorRet;
+
+ }
+
+ [WebMethod(Description = "Add Subcontractor data")]
+ public string AddSubcontractor(string InXml)
+ {
+ string AddSubcontractorRet = default(string);
+
+ // 先給預設值,以判斷是否有傳入該參數
+ var SubcontractorNo = default(string);
+ string SubcontractorName;
+ string Description = defString;
+ string WZ21670 = defString;
+ string Creator = defString;
+
+ ArriveTime = DateTime.Now;
+
+ try
+ {
+ // 讀取InXml字串
+ xmlDoc.LoadXml(InXml);
+
+ // 組Identity字串
+ strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
+
+ // 開始解譯InXml字串
+ // Subcontractor一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorNo = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorname").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorname").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorName = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorname").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorName Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorName Not Found!");
+ }
+ // Description
+ if (xmlDoc.DocumentElement.GetElementsByTagName("description").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("description").Item(0).SelectNodes("value").Count > 0)
+ {
+ Description = xmlDoc.DocumentElement.GetElementsByTagName("description").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // WZ21670
+ if (xmlDoc.DocumentElement.GetElementsByTagName("wz21670").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("wz21670").Item(0).SelectNodes("value").Count > 0)
+ {
+ WZ21670 = xmlDoc.DocumentElement.GetElementsByTagName("wz21670").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // Creator
+ if (xmlDoc.DocumentElement.GetElementsByTagName("creator").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("creator").Item(0).SelectNodes("value").Count > 0)
+ {
+ Creator = xmlDoc.DocumentElement.GetElementsByTagName("creator").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+
+ // 呼叫Dll執行新增資料
+ objENT.AddSubcontractor(SubcontractorNo, SubcontractorName,WZ21670, Description,Creator);
+
+ strException = "";
+ strResult = "success";
+
+ objSYS.AddEventLog("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, "AddSubcontractor");
+ }
+
+ catch (iMESException.MESException ex)
+ {
+ strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Add Subcontractor failed!", ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: Conversions.ToString(ex.ErrorCode));
+ }
+
+ catch (Exception ex)
+ {
+ strException = CombineXMLException(defWSErrCode, ex.Message, "Add Subcontractor failed!", ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: defWSErrCode);
+ }
+
+ finally
+ {
+ // 將各部份之XML字串組起來並傳出
+ AddSubcontractorRet = CombineXMLResponse(strIdentity, "", strException, strResult, "");
+
+ }
+
+ return AddSubcontractorRet;
+
+ }
+
+ [WebMethod(Description = "Edit Specified Subcontractor Data")]
+ public string EditSubcontractor(string InXml)
+ {
+ string EditSubcontractorRet = default(string);
+
+ // 參數先給預設值,以判斷是否有傳入該參數
+ var SubcontractorNo = default(string);
+ int IssueState = defInteger;
+ string WZ21670 = defString;
+ string SubcontractorName = defString;
+ string Description = defString;
+
+ int DataStamp = defInteger;
+ string AdditionalXml = "";
+
+ ArriveTime = DateTime.Now;
+
+ try
+ {
+ // 讀取InXml字串
+ xmlDoc.LoadXml(InXml);
+ // 組Identity字串
+ strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
+
+ // 開始解譯InXml字串
+ // Subcontractor一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorNo = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ // IssueState一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("issuestate").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("issuestate").Item(0).SelectNodes("value").Count > 0)
+ {
+ IssueState = Conversions.ToInteger(xmlDoc.DocumentElement.GetElementsByTagName("issuestate").Item(0).SelectNodes("value").Item(0).InnerText);
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "[%IssueState%]");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "[%IssueState%]");
+ }
+ // SubcontractorName不可空白
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorname").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorname").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorName = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorname").Item(0).SelectNodes("value").Item(0).InnerText;
+ if (string.IsNullOrEmpty(SubcontractorName))
+ {
+ throw new iMESException.MESException("0000-200001", "SubcontractorName is empty!");
+ }
+ }
+ }
+ // WZ21670
+ if (xmlDoc.DocumentElement.GetElementsByTagName("wz21670").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("wz21670").Item(0).SelectNodes("value").Count > 0)
+ {
+ WZ21670 = xmlDoc.DocumentElement.GetElementsByTagName("wz21670").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // Description
+ if (xmlDoc.DocumentElement.GetElementsByTagName("description").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("description").Item(0).SelectNodes("value").Count > 0)
+ {
+ Description = xmlDoc.DocumentElement.GetElementsByTagName("description").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+
+ // AdditionalXml
+ GetXMLTagValue(ref AdditionalXml, xmlDoc, "additionalxml");
+
+ // DataStamp
+ GetXMLTagValue(ref DataStamp, xmlDoc, "datastamp", true);
+
+ if (IssueState == 0) // Unfrozen時才可修改
+ {
+ // 有修改欄位值時
+ if ((SubcontractorName ?? "") != defString | (Description ?? "") != defString)
+ {
+ // 呼叫Dll執行修改
+ objENT.EditSubcontractor(SubcontractorNo,WZ21670, SubcontractorName, Description, AdditionalXml, DataStamp: DataStamp, Reviser: GetXMLCurUserNo(xmlDoc), ReviseDate: ArriveTime);
+ }
+ }
+
+ strException = "";
+ strResult = "success";
+
+ objSYS.AddEventLog("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, "EditSubcontractor");
+ }
+
+ catch (iMESException.MESException ex)
+ {
+ strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Edit Subcontractor failed!", ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: Conversions.ToString(ex.ErrorCode));
+ }
+
+ catch (Exception ex)
+ {
+ strException = CombineXMLException(defWSErrCode, ex.Message, "Edit Subcontractor failed!", ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: defWSErrCode);
+ }
+
+ finally
+ {
+ // 將各部份之XML字串組起來並傳出
+ EditSubcontractorRet = CombineXMLResponse(strIdentity, "", strException, strResult, "");
+ }
+
+ return EditSubcontractorRet;
+
+ }
+
+ [WebMethod(Description = "Delete Subcontractor By Specified Subcontractor")]
+ public string DelSubcontractor(string InXml)
+ {
+ string DelSubcontractorRet = default(string);
+
+ var SubcontractorNo = default(string);
+ int IssueState;
+ string strDelState; // 寫入tblSysEventLog中的訊息,0:未簽核刪除,2:已簽核刪除,-1:不使用刪除
+ int DataStamp = defInteger;
+
+ ArriveTime = DateTime.Now;
+
+ try
+ {
+ // 讀取InXml字串
+ xmlDoc.LoadXml(InXml);
+ // 組Identity字串
+ strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
+
+ // 開始解譯InXml字串
+ // Subcontractor一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorNo = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ // IssueState一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("issuestate").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("issuestate").Item(0).SelectNodes("value").Count > 0)
+ {
+ IssueState = Conversions.ToInteger(xmlDoc.DocumentElement.GetElementsByTagName("issuestate").Item(0).SelectNodes("value").Item(0).InnerText);
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "[%IssueState%]");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "[%IssueState%]");
+ }
+
+ // DataStamp
+ GetXMLTagValue(ref DataStamp, xmlDoc, "datastamp", true);
+
+ switch (IssueState)
+ {
+ case 0:
+ {
+ objENT.DelSubcontractor(SubcontractorNo);
+ strDelState = "未簽核刪除";
+ break;
+ }
+ case 2:
+ {
+ objENT.SetSubcontractorIssueState(SubcontractorNo, -1, DataStamp: DataStamp, Reviser: GetXMLCurUserNo(xmlDoc), ReviseDate: ArriveTime);
+ strDelState = "已簽核刪除";
+ break;
+ }
+ case -1:
+ {
+ objENT.DelSubcontractor(SubcontractorNo);
+ strDelState = "不使用刪除";
+ break;
+ }
+
+ default:
+ {
+ throw new iMESException.MESException("0000-200021", "[%IssueState%]");
+ }
+ }
+
+ strException = "";
+ strResult = "success";
+
+ objSYS.AddEventLog("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, "DelSubcontractor:" + strDelState);
+ }
+
+ catch (iMESException.MESException ex)
+ {
+ strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Delete Subcontractor failed!", ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: Conversions.ToString(ex.ErrorCode));
+ }
+
+ catch (Exception ex)
+ {
+ strException = CombineXMLException(defWSErrCode, ex.Message, "Delete Subcontractor failed!", ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: defWSErrCode);
+ }
+
+ finally
+ {
+ DelSubcontractorRet = CombineXMLResponse(strIdentity, "", strException, strResult, "");
+
+ }
+
+ return DelSubcontractorRet;
+
+ }
+
+ [WebMethod(Description = "Approve Specified Subcontractor Data")]
+ public string ApproveSubcontractor(string InXml)
+ {
+ string ApproveSubcontractorRet = default(string);
+
+ string IssueNo = "SUBCONTRACTOR BASIS"; // 簽核編號:SUBCONTRACTOR BASIS.若找不到,表示直接將狀態改為Active.
+ var SubcontractorNo = default(string);
+ int IssueState;
+ var objIssue = new kcISSUE.clsIssue();
+ DataRow IssueDR;
+ int DataStamp = defInteger;
+
+ ArriveTime = DateTime.Now;
+
+ try
+ {
+ // 讀取InXml字串
+ xmlDoc.LoadXml(InXml);
+ // 組Identity字串
+ strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
+
+ // 開始解譯InXml字串
+ // Subcontractor一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorNo = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ // IssueState一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("issuestate").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("issuestate").Item(0).SelectNodes("value").Count > 0)
+ {
+ IssueState = Conversions.ToInteger(xmlDoc.DocumentElement.GetElementsByTagName("issuestate").Item(0).SelectNodes("value").Item(0).InnerText);
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "[%IssueState%]");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "[%IssueState%]");
+ }
+
+ // DataStamp
+ GetXMLTagValue(ref DataStamp, xmlDoc, "datastamp", true);
+
+ if (IssueState == 0) // 當狀態為Unfrozen時才作
+ {
+ // 去IssueManagement中找核准的方式
+ IssueDR = objIssue.GetIssueJobMap(IssueNo);
+
+ // 找不到表示bypass直接核准
+ if (IssueDR["JobNo"] is DBNull)
+ {
+ // 直接核准
+ objENT.SetSubcontractorIssueState(SubcontractorNo, 2, DataStamp: DataStamp, Reviser: GetXMLCurUserNo(xmlDoc), ReviseDate: ArriveTime);
+ objSYS.AddEventLog("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, "ApproveSubcontractor");
+ }
+
+ else
+ {
+ // 檢查JobNo是否有定義Detail檔,沒有Detail檔則直接核准
+ DataRow tmpDR;
+ tmpDR = objIssue.GetIssueJobDetail(Conversions.ToString(IssueDR["JobNo"]));
+ if (tmpDR["JobNo"] is DBNull)
+ {
+ objENT.SetSubcontractorIssueState(SubcontractorNo, 2, DataStamp: DataStamp, Reviser: GetXMLCurUserNo(xmlDoc), ReviseDate: ArriveTime);
+ objSYS.AddEventLog("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, "ApproveSubcontractor");
+ }
+
+ else
+ {
+ // 將狀態改為Pending,且應以找到的JobNo來進入簽核
+ // 填入簽核現況檔之Initial
+ var ApproveSQL = new Collection();
+ var RejectSQL = new Collection();
+ string tmpSQL;
+ string IssueSubject;
+ string IssueMasterNo;
+
+ // 核准後應將狀態改為Active
+ tmpSQL = "Update tblENTSubcontractor_21670 Set IssueState = 2 Where SubcontractorNo = '" + SubcontractorNo + "'";
+ ApproveSQL.Add(tmpSQL);
+ // 退回則應將狀態回復到Unfrozen
+ tmpSQL = "Update tblENTSubcontractor_21670 Set IssueState = 0 Where SubcontractorNo = '" + SubcontractorNo + "'";
+ RejectSQL.Add(tmpSQL);
+
+ // Creator未傳入表示以目前的User
+ string Creator;
+ if (xmlDoc.DocumentElement.GetElementsByTagName("creator").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("creator").Item(0).SelectNodes("value").Count > 0)
+ {
+ Creator = xmlDoc.DocumentElement.GetElementsByTagName("creator").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ Creator = GetXMLCurUserNo(xmlDoc);
+ }
+ }
+ else
+ {
+ Creator = GetXMLCurUserNo(xmlDoc);
+ }
+
+ IssueSubject = "SubcontractorNo: " + SubcontractorNo;
+ IssueMasterNo = objIssue.InitIssueMasterNo();
+ // 此筆資料進入Issue流程
+ objIssue.StartIssueProcess(IssueMasterNo, ApproveSQL, RejectSQL, IssueNo, IssueDR["JobNo"].ToString(), IssueSubject, Creator);
+ // 將狀態改為Pending
+ objENT.SetSubcontractorIssueState(SubcontractorNo, 1, DataStamp: DataStamp, Reviser: GetXMLCurUserNo(xmlDoc), ReviseDate: ArriveTime);
+
+ objSYS.AddEventLog("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, "ApproveSubcontractor");
+
+ // 發Email給JobSerialNo=1之負責群組
+ objIssue.SendEmailToFirstGroup(IssueMasterNo, IssueSubject);
+ }
+ }
+ }
+ strException = "";
+ strResult = "success";
+ }
+
+
+ catch (iMESException.MESException ex)
+ {
+ strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Approve Subcontractor failed!", ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: Conversions.ToString(ex.ErrorCode));
+ }
+
+ catch (Exception ex)
+ {
+ strException = CombineXMLException(defWSErrCode, ex.Message, "Approve Subcontractor failed!", ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: defWSErrCode);
+ }
+
+ finally
+ {
+ // 將各部份之XML字串組起來並傳出
+ ApproveSubcontractorRet = CombineXMLResponse(strIdentity, "", strException, strResult, "");
+ }
+
+ return ApproveSubcontractorRet;
+
+ }
+
+ // Subcontractor Contactor
+ [WebMethod(Description = "Load Subcontractor Contactor Data")]
+ public string LoadSubcontractorCont(string InXml)
+ {
+ string LoadSubcontractorContRet = default(string);
+
+ // 先給預設值,以判斷是否有傳入該參數
+ string SubcontractorNo = defString;
+ string ContactorName = defString;
+
+ ArriveTime = DateTime.Now;
+
+ try
+ {
+ // 讀取InXml字串
+ xmlDoc.LoadXml(InXml);
+ // 組Identity字串
+ strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
+
+ // 判斷是否有傳入SubcontractorNo,若有,表示要依SubcontractorNo查詢
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorNo = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ if (xmlDoc.DocumentElement.GetElementsByTagName("contactorname").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("contactorname").Item(0).SelectNodes("value").Count > 0)
+ {
+ ContactorName = xmlDoc.DocumentElement.GetElementsByTagName("contactorname").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+
+ // 呼叫Dll執行
+ strReturnValue = objENT.LoadSubcontractorCont(SubcontractorNo, ContactorName);
+ strException = "";
+ strResult = "success";
+ }
+
+ catch (iMESException.MESException ex)
+ {
+ strReturnValue = "";
+ strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Show Subcontractor Contactor Failed!!", ex.StackTrace);
+ strResult = "fail";
+ }
+
+ catch (Exception ex)
+ {
+ strReturnValue = "";
+ strException = CombineXMLException(defWSErrCode, ex.Message, "Show Subcontractor Contactor Failed!!", ex.StackTrace);
+ strResult = "fail";
+ }
+
+ finally
+ {
+ // 將各部份之XML字串組起來並傳出
+ LoadSubcontractorContRet = CombineXMLResponse(strIdentity, strReturnValue, strException, strResult, "");
+
+ }
+
+ return LoadSubcontractorContRet;
+
+ }
+
+ [WebMethod(Description = "Add Subcontractor Contactor data")]
+ public string AddSubcontractorCont(string InXml)
+ {
+ string AddSubcontractorContRet = default(string);
+ // 先給預設值,以判斷是否有傳入該參數
+ var SubcontractorNo = default(string);
+ var ContactorName = default(string);
+ string TelNo = defString;
+ string FaxNo = defString;
+ string Title = defString;
+ string Address = defString;
+ string EMail = defString;
+ string Description = defString;
+ string AdditionalXml = "";
+
+ ArriveTime = DateTime.Now;
+
+ try
+ {
+ // 讀取InXml字串
+ xmlDoc.LoadXml(InXml);
+
+ // 組Identity字串
+ strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
+
+ // 開始解譯InXml字串
+ // SubcontractorNo一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorNo = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ // ContactorName一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("contactorname").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("contactorname").Item(0).SelectNodes("value").Count > 0)
+ {
+ ContactorName = xmlDoc.DocumentElement.GetElementsByTagName("contactorname").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "ContactorName Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "ContactorName Not Found!");
+ }
+ // TelNo
+ if (xmlDoc.DocumentElement.GetElementsByTagName("telno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("telno").Item(0).SelectNodes("value").Count > 0)
+ {
+ TelNo = xmlDoc.DocumentElement.GetElementsByTagName("telno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // FaxNo
+ if (xmlDoc.DocumentElement.GetElementsByTagName("faxno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("faxno").Item(0).SelectNodes("value").Count > 0)
+ {
+ FaxNo = xmlDoc.DocumentElement.GetElementsByTagName("faxno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // Title
+ if (xmlDoc.DocumentElement.GetElementsByTagName("title").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("title").Item(0).SelectNodes("value").Count > 0)
+ {
+ Title = xmlDoc.DocumentElement.GetElementsByTagName("title").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // Address
+ if (xmlDoc.DocumentElement.GetElementsByTagName("address").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("address").Item(0).SelectNodes("value").Count > 0)
+ {
+ Address = xmlDoc.DocumentElement.GetElementsByTagName("address").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // EMail
+ if (xmlDoc.DocumentElement.GetElementsByTagName("email").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("email").Item(0).SelectNodes("value").Count > 0)
+ {
+ EMail = xmlDoc.DocumentElement.GetElementsByTagName("email").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // Description
+ if (xmlDoc.DocumentElement.GetElementsByTagName("description").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("description").Item(0).SelectNodes("value").Count > 0)
+ {
+ Description = xmlDoc.DocumentElement.GetElementsByTagName("description").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // AdditionalXml
+ GetXMLTagValue(ref AdditionalXml, xmlDoc, "additionalxml");
+
+
+ // 呼叫Dll執行新增資料
+ objENT.AddSubcontractorCont(SubcontractorNo, ContactorName, TelNo, FaxNo, Title, Address, EMail, Description, AdditionalXml, GetXMLCurUserNo(xmlDoc), ArriveTime);
+
+ strException = "";
+ strResult = "success";
+
+ objSYS.AddEventLog("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, "AddSubcontractorContactor ContactorName:" + ContactorName);
+ }
+
+ catch (iMESException.MESException ex)
+ {
+ strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Add SubcontractorContactor Data failed, ContactorName:" + ContactorName, ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: Conversions.ToString(ex.ErrorCode));
+ }
+
+ catch (Exception ex)
+ {
+ strException = CombineXMLException(defWSErrCode, ex.Message, "Add SubcontractorContactor Data failed, ContactorName:" + ContactorName, ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: defWSErrCode);
+ }
+
+ finally
+ {
+ // 將各部份之XML字串組起來並傳出
+ AddSubcontractorContRet = CombineXMLResponse(strIdentity, "", strException, strResult, "");
+
+ }
+
+ return AddSubcontractorContRet;
+
+ }
+
+ [WebMethod(Description = "Edit Specified Subcontractor Contactor Data")]
+ public string EditSubcontractorCont(string InXml)
+ {
+ string EditSubcontractorContRet = default(string);
+ // 先給預設值,以判斷是否有傳入該參數
+ var SubcontractorNo = default(string);
+ var ContactorName = default(string);
+ string TelNo = defString;
+ string FaxNo = defString;
+ string Title = defString;
+ string Address = defString;
+ string EMail = defString;
+ string Description = defString;
+
+ int DataStamp = defInteger;
+ string AdditionalXml = "";
+
+ ArriveTime = DateTime.Now;
+
+ try
+ {
+ // 讀取InXml字串
+ xmlDoc.LoadXml(InXml);
+ // 組Identity字串
+ strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
+
+ // 開始解譯InXml字串
+ // SubcontractorNo一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorNo = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ // ContactorName一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("contactorname").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("contactorname").Item(0).SelectNodes("value").Count > 0)
+ {
+ ContactorName = xmlDoc.DocumentElement.GetElementsByTagName("contactorname").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "ContactorName Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "ContactorName Not Found!");
+ }
+ // TelNo
+ if (xmlDoc.DocumentElement.GetElementsByTagName("telno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("telno").Item(0).SelectNodes("value").Count > 0)
+ {
+ TelNo = xmlDoc.DocumentElement.GetElementsByTagName("telno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // FaxNo
+ if (xmlDoc.DocumentElement.GetElementsByTagName("faxno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("faxno").Item(0).SelectNodes("value").Count > 0)
+ {
+ FaxNo = xmlDoc.DocumentElement.GetElementsByTagName("faxno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // Title
+ if (xmlDoc.DocumentElement.GetElementsByTagName("title").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("title").Item(0).SelectNodes("value").Count > 0)
+ {
+ Title = xmlDoc.DocumentElement.GetElementsByTagName("title").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // Address
+ if (xmlDoc.DocumentElement.GetElementsByTagName("address").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("address").Item(0).SelectNodes("value").Count > 0)
+ {
+ Address = xmlDoc.DocumentElement.GetElementsByTagName("address").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // EMail
+ if (xmlDoc.DocumentElement.GetElementsByTagName("email").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("email").Item(0).SelectNodes("value").Count > 0)
+ {
+ EMail = xmlDoc.DocumentElement.GetElementsByTagName("email").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // Description
+ if (xmlDoc.DocumentElement.GetElementsByTagName("description").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("description").Item(0).SelectNodes("value").Count > 0)
+ {
+ Description = xmlDoc.DocumentElement.GetElementsByTagName("description").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+
+ // AdditionalXml
+ GetXMLTagValue(ref AdditionalXml, xmlDoc, "additionalxml");
+
+ // DataStamp
+ GetXMLTagValue(ref DataStamp, xmlDoc, "datastamp", true);
+
+ // If IssueState = 0 Then 'Unfrozen時才可修改
+ // 有修改欄位值時
+ if ((TelNo ?? "") != defString | (FaxNo ?? "") != defString | (Title ?? "") != defString | (Address ?? "") != defString | (EMail ?? "") != defString | (Description ?? "") != defString)
+ {
+ // 呼叫Dll執行修改
+ objENT.EditSubcontractorCont(SubcontractorNo, ContactorName, TelNo, FaxNo, Title, Address, EMail, Description, AdditionalXml, DataStamp: DataStamp, Reviser: GetXMLCurUserNo(xmlDoc), ReviseDate: ArriveTime);
+ }
+ // End If
+
+ strException = "";
+ strResult = "success";
+
+ objSYS.AddEventLog("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, "EditSubcontractorContactor ContactorName:" + ContactorName);
+ }
+
+ catch (iMESException.MESException ex)
+ {
+ strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Edit SubcontractorContactor Data failed, ContactorName:" + ContactorName, ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: Conversions.ToString(ex.ErrorCode));
+ }
+
+ catch (Exception ex)
+ {
+ strException = CombineXMLException(defWSErrCode, ex.Message, "Edit SubcontractorContactor Data failed, ContactorName:" + ContactorName, ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: defWSErrCode);
+ }
+
+ finally
+ {
+ // 將各部份之XML字串組起來並傳出
+ EditSubcontractorContRet = CombineXMLResponse(strIdentity, "", strException, strResult, "");
+
+ }
+
+ return EditSubcontractorContRet;
+
+ }
+
+ [WebMethod(Description = "Delete Subcontractor Contactor By Specified SubcontractorNo and ContactorName")]
+ public string DelSubcontractorCont(string InXml)
+ {
+ string DelSubcontractorContRet = default(string);
+
+ var SubcontractorNo = default(string);
+ string ContactorName = defString; // 沒有傳入表示要刪除指定Subcontractor的所有Contactor
+
+ ArriveTime = DateTime.Now;
+
+ try
+ {
+ // 讀取InXml字串
+ xmlDoc.LoadXml(InXml);
+ // 組Identity字串
+ strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
+
+ // 開始解譯InXml字串
+ // SubcontractorNo一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorNo = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ // ContactorName一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("contactorname").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("contactorname").Item(0).SelectNodes("value").Count > 0)
+ {
+ ContactorName = xmlDoc.DocumentElement.GetElementsByTagName("contactorname").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+
+ objENT.DelSubcontractorCont(SubcontractorNo, ContactorName);
+
+ strException = "";
+ strResult = "success";
+
+ objSYS.AddEventLog("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, "DelSubcontractorContactor ContactorName:" + ContactorName);
+ }
+
+ catch (iMESException.MESException ex)
+ {
+ strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Del SubcontractorContactor Data failed, ContactorName:" + ContactorName, ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: Conversions.ToString(ex.ErrorCode));
+ }
+
+ catch (Exception ex)
+ {
+ strException = CombineXMLException(defWSErrCode, ex.Message, "Del SubcontractorContactor Data failed, ContactorName:" + ContactorName, ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: defWSErrCode);
+ }
+
+ finally
+ {
+ DelSubcontractorContRet = CombineXMLResponse(strIdentity, "", strException, strResult, "");
+
+ }
+
+ return DelSubcontractorContRet;
+
+ }
+
+
+ #endregion
+ }
+}
diff --git a/SRC/MESWin/SYS4/21670ll/wsSXS/wsSXS.csproj b/SRC/MESWin/SYS4/21670ll/wsSXS/wsSXS.csproj
new file mode 100644
index 0000000..47d0b9f
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/wsSXS/wsSXS.csproj
@@ -0,0 +1,180 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {881686CE-A940-0485-2766-D411835B2FBB}
+ Library
+ wsSXS
+ wsSXS
+ 512
+ Windows
+ v4.6.2
+
+ SAK
+ SAK
+ SAK
+ SAK
+ $(DefaultItemExcludes);$(ProjectDir)**\*.vb
+
+
+ true
+ full
+ true
+ true
+ ..\MES_S_DLL\
+ ..\MES_S_DLL\wsSXS.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ 0
+ false
+
+
+ pdbonly
+ false
+ true
+ true
+ ..\..\MES_S_DLL\
+ ..\..\MES_S_DLL\
+
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ 0
+ false
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+
+ False
+ ..\MES_S_DLL\kcISSUE.dll
+
+
+ False
+ ..\MES_S_DLL\MEStc_SXS.dll
+
+
+
+ False
+ ..\MES_S_DLL\iMESAppSetting.dll
+ False
+
+
+ False
+ ..\MES_S_DLL\iMESComSubroutine.dll
+ False
+
+
+ False
+ ..\MES_S_DLL\iMESComXML.dll
+ False
+
+
+ False
+ ..\MES_S_DLL\iMESConst.dll
+ False
+
+
+ ..\MES_S_DLL\iMESException.dll
+ False
+
+
+ False
+ ..\MES_S_DLL\iMESSCI.dll
+ False
+
+
+ ..\MES_S_DLL\kcSYS.dll
+ False
+ False
+
+
+ False
+ ..\MES_S_DLL\Newtonsoft.Json.dll
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ Application.myapp
+
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ wsABC.My.Resources
+ Designer
+
+
+
+
+ MyApplicationCodeGenerator
+ Application.Designer.cs
+
+
+ SettingsSingleFileGenerator
+ wsABC.My
+ Settings.Designer.cs
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/wsSXS/wsSXS.csproj.user b/SRC/MESWin/SYS4/21670ll/wsSXS/wsSXS.csproj.user
new file mode 100644
index 0000000..3c48538
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/wsSXS/wsSXS.csproj.user
@@ -0,0 +1,6 @@
+
+
+
+ E:\code\SRC\MES_S_DLL\
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/wsSXS/wsSXS.sln b/SRC/MESWin/SYS4/21670ll/wsSXS/wsSXS.sln
new file mode 100644
index 0000000..13847da
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/wsSXS/wsSXS.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32630.194
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "wsSXS", "wsSXS.csproj", "{881686CE-A940-0485-2766-D411835B2FBB}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {881686CE-A940-0485-2766-D411835B2FBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {881686CE-A940-0485-2766-D411835B2FBB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {881686CE-A940-0485-2766-D411835B2FBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {881686CE-A940-0485-2766-D411835B2FBB}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {7B40A25F-A0CA-49E5-AB24-36F7949771DE}
+ EndGlobalSection
+EndGlobal
diff --git a/SRC/MESWin/SYS4/21670ll/wsSXS/wsWIP/wsWIP.cs b/SRC/MESWin/SYS4/21670ll/wsSXS/wsWIP/wsWIP.cs
new file mode 100644
index 0000000..f8474ef
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/wsSXS/wsWIP/wsWIP.cs
@@ -0,0 +1,131 @@
+using System;
+using Microsoft.VisualBasic;
+using static iMESCore.Base.iMESComSubroutine;
+using static iMESCore.Base.iMESComXML;
+using static iMESCore.Base.iMESConst;
+using iMESCore.Settings;
+
+namespace wsSXS
+{
+
+ public class wsWIP
+ {
+
+ private iMESCore.Settings.AppSettings objSetting = new iMESCore.Settings.AppSettings();
+ private System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); // 用以讀取Xml字串
+ private DateTime ArriveTime; // 送達時間
+ private string strIdentity; // Identity XML字串
+ private string strReturnValue; // ReturnValue XML字串
+ private string strException; // Exception XML字串
+ private string strResult; // Result XML字串
+ private string strMessage; // Message XML字串
+ private string strServiceName = "wsWIP_SXS"; // ServiceName
+ private string strResourceDir = "Resources";
+
+ private kcSYS.clsSYSUserLog objSYS = new kcSYS.clsSYSUserLog(); // 宣告Sys的物件
+
+ public wsWIP()
+ {
+ try
+ {
+ strResourceDir = System.IO.Path.Combine("wsUpdateResource", objSetting["ResourceDir"].ToString());
+ }
+ catch (Exception)
+ { }
+ }
+
+ public string HelloWorld(string InXml)
+ {
+ return "HelloWorld";
+ }
+
+
+ //public string LoadOPMaterialState(string InXml)
+ //{
+ // string LoadOPMaterialStateRet = null;
+
+ // // 先給預設值,以判斷是否有傳入該參數
+ // string OPNo = defString;
+ // string MaterialNo = defString;
+ // string MaterialLotNo = defString;
+ // string UnitNo = defString;
+ // string MaterialType = defString;
+
+ // ArriveTime = DateTime.Now;
+
+ // try
+ // {
+ // // 讀取InXml字串
+ // xmlDoc.LoadXml(InXml);
+ // // 組Identity字串
+ // strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), ArriveTime.ToString(defDateTimeFormat));
+
+ // // 判斷是否有傳入OPNo,若有,表示要依OPNo查詢
+ // if (xmlDoc.DocumentElement.GetElementsByTagName("opno").Count > 0)
+ // {
+ // if (xmlDoc.GetElementsByTagName("opno").Item(0).SelectNodes("value").Count > 0)
+ // {
+ // OPNo = xmlDoc.DocumentElement.GetElementsByTagName("opno").Item(0).SelectNodes("value").Item(0).InnerText;
+ // }
+ // }
+ // // 判斷是否有傳入MaterialNo,若有,表示要依MaterialNo查詢
+ // if (xmlDoc.DocumentElement.GetElementsByTagName("materialno").Count > 0)
+ // {
+ // if (xmlDoc.GetElementsByTagName("materialno").Item(0).SelectNodes("value").Count > 0)
+ // {
+ // MaterialNo = xmlDoc.DocumentElement.GetElementsByTagName("materialno").Item(0).SelectNodes("value").Item(0).InnerText;
+ // }
+ // }
+ // // 判斷是否有傳入MaterialLotNo,若有,表示要依MaterialLotNo查詢
+ // if (xmlDoc.DocumentElement.GetElementsByTagName("materiallotno").Count > 0)
+ // {
+ // if (xmlDoc.GetElementsByTagName("materiallotno").Item(0).SelectNodes("value").Count > 0)
+ // {
+ // MaterialLotNo = xmlDoc.DocumentElement.GetElementsByTagName("materiallotno").Item(0).SelectNodes("value").Item(0).InnerText;
+ // }
+ // }
+ // if (xmlDoc.DocumentElement.GetElementsByTagName("unitno").Count > 0)
+ // {
+ // if (xmlDoc.GetElementsByTagName("unitno").Item(0).SelectNodes("value").Count > 0)
+ // {
+ // UnitNo = xmlDoc.DocumentElement.GetElementsByTagName("unitno").Item(0).SelectNodes("value").Item(0).InnerText;
+ // }
+ // }
+ // if (xmlDoc.DocumentElement.GetElementsByTagName("materialtype").Count > 0)
+ // {
+ // if (xmlDoc.GetElementsByTagName("materialtype").Item(0).SelectNodes("value").Count > 0)
+ // {
+ // MaterialType = xmlDoc.DocumentElement.GetElementsByTagName("materialtype").Item(0).SelectNodes("value").Item(0).InnerText;
+ // }
+ // }
+
+ // // 呼叫Dll執行
+ // //strReturnValue = objWIP.LoadOPMaterialState(OPNo, MaterialNo, MaterialLotNo, UnitNo, MaterialType);
+ // strException = "";
+ // strResult = "success";
+ // }
+
+ // catch (iMESException.MESException ex)
+ // {
+ // strReturnValue = "";
+ // strException = CombineXMLException(ex.ErrorCode.ToString(), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Load OP Material State Fail!!", ex.StackTrace);
+ // strResult = "fail";
+ // }
+
+ // catch (Exception ex)
+ // {
+ // strReturnValue = "";
+ // strException = CombineXMLException(defWSErrCode, ex.Message, "Load OP Material State Fail!!", ex.StackTrace);
+ // strResult = "fail";
+ // }
+
+ // finally
+ // {
+ // // 將各部份之XML字串組起來並傳出
+ // LoadOPMaterialStateRet = CombineXMLResponse(strIdentity, strReturnValue, strException, strResult, "");
+ // }
+ // return LoadOPMaterialStateRet;
+
+ //}
+ }
+}
\ No newline at end of file
diff --git a/SRC/MESWin/SYS4/21670ll/wsSXS/wxENT/wsENT.cs b/SRC/MESWin/SYS4/21670ll/wsSXS/wxENT/wsENT.cs
new file mode 100644
index 0000000..b603955
--- /dev/null
+++ b/SRC/MESWin/SYS4/21670ll/wsSXS/wxENT/wsENT.cs
@@ -0,0 +1,1101 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System;
+using System.Data;
+using System.Web.Services;
+using Microsoft.VisualBasic;
+using Microsoft.VisualBasic.CompilerServices;
+using static iMESCore.Base.iMESComXML;
+using static iMESCore.Base.iMESConst;
+using static iMESCore.Base.iMESComSubroutine;
+namespace wsSXS
+{
+ public class wsENT
+ {
+ private MEStc_SXS.clsENT_21670 objENT = new MEStc_SXS.clsENT_21670();
+ private kcSYS.clsSYSUserLog objSYS = new kcSYS.clsSYSUserLog(); // 宣告Sys的物件
+ //private kcBasis_UPD.clsBasis_UPD objBasis = new kcBasis_UPD.clsBasis_UPD(); //主檔優化
+ //private kcBasis_Query.clsBasis_Query objQuery = new kcBasis_Query.clsBasis_Query(); //主檔優化
+ private System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); // 用以讀取Xml字串
+ private DateTime ArriveTime; // 送達時間
+ private string strIdentity; // Identity XML字串
+ private string strReturnValue; // ReturnValue XML字串
+ private string strException; // Exception XML字串
+ private string strResult; // Result XML字串
+ private string strMessage; // Message XML字串
+ private iMESCore.Settings.AppSettings objSetting = new iMESCore.Settings.AppSettings();
+ private string strResourceDir = "Resources";
+
+ public wsENT()
+ {
+ try
+ {
+ strResourceDir = System.IO.Path.Combine("wsUpdateResource", objSetting["ResourceDir"].ToString());
+ }
+ catch (Exception)
+ { }
+ }
+
+ #region --- Subcontractor 外包商 ---
+
+ [WebMethod(Description = "Load Subcontractor Data")]
+ public string LoadSubcontractor(string InXml)
+ {
+ string LoadSubcontractorRet = default(string);
+
+ // 先給預設值,以判斷是否有傳入該參數
+ string SubcontractorNo = defString;
+ int IssueState = 2;
+
+ ArriveTime = DateTime.Now;
+ string AdditionalXml = "";
+ try
+ {
+ // 讀取InXml字串
+ xmlDoc.LoadXml(InXml);
+ // 組Identity字串
+ strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
+
+ // 判斷是否有傳入Subcontractor,若有,表示要依Subcontractor查詢
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorNo = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // 判斷是否有傳入IssueState,若有,表示要依IssueState查詢
+ if (xmlDoc.DocumentElement.GetElementsByTagName("issuestate").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("issuestate").Item(0).SelectNodes("value").Count > 0)
+ {
+ IssueState = Conversions.ToInteger(xmlDoc.DocumentElement.GetElementsByTagName("issuestate").Item(0).SelectNodes("value").Item(0).InnerText);
+ }
+ }
+
+ // 呼叫副程式處理查詢條件與Additional格式
+ AdditionalXml = CombineXMLQueryAdditional(xmlDoc);
+
+ // 呼叫Dll執行
+ strReturnValue = objENT.LoadSubcontractor(SubcontractorNo, IssueState, AdditionalXml);
+ strException = "";
+ strResult = "success";
+ }
+
+ catch (iMESException.MESException ex)
+ {
+ strReturnValue = "";
+ strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Show Subcontractor Failed!!", ex.StackTrace);
+ strResult = "fail";
+ }
+
+ catch (Exception ex)
+ {
+ strReturnValue = "";
+ strException = CombineXMLException(defWSErrCode, ex.Message, "Show Subcontractor Failed!!", ex.StackTrace);
+ strResult = "fail";
+ }
+
+ finally
+ {
+ // 將各部份之XML字串組起來並傳出
+ LoadSubcontractorRet = CombineXMLResponse(strIdentity, strReturnValue, strException, strResult, "");
+
+ }
+
+ return LoadSubcontractorRet;
+
+ }
+
+ [WebMethod(Description = "Add Subcontractor data")]
+ public string AddSubcontractor(string InXml)
+ {
+ string AddSubcontractorRet = default(string);
+
+ // 先給預設值,以判斷是否有傳入該參數
+ var SubcontractorNo = default(string);
+ string SubcontractorName;
+ string Description = defString;
+ string WZ21670 = defString;
+ string Creator = defString;
+
+ ArriveTime = DateTime.Now;
+
+ try
+ {
+ // 讀取InXml字串
+ xmlDoc.LoadXml(InXml);
+
+ // 組Identity字串
+ strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
+
+ // 開始解譯InXml字串
+ // Subcontractor一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorNo = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorname").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorname").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorName = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorname").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorName Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorName Not Found!");
+ }
+ // Description
+ if (xmlDoc.DocumentElement.GetElementsByTagName("description").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("description").Item(0).SelectNodes("value").Count > 0)
+ {
+ Description = xmlDoc.DocumentElement.GetElementsByTagName("description").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // WZ21670
+ if (xmlDoc.DocumentElement.GetElementsByTagName("wz21670").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("wz21670").Item(0).SelectNodes("value").Count > 0)
+ {
+ WZ21670 = xmlDoc.DocumentElement.GetElementsByTagName("wz21670").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // Creator
+ if (xmlDoc.DocumentElement.GetElementsByTagName("creator").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("creator").Item(0).SelectNodes("value").Count > 0)
+ {
+ Creator = xmlDoc.DocumentElement.GetElementsByTagName("creator").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+
+ // 呼叫Dll執行新增資料
+ objENT.AddSubcontractor(SubcontractorNo, SubcontractorName,WZ21670, Description,Creator);
+
+ strException = "";
+ strResult = "success";
+
+ objSYS.AddEventLog("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, "AddSubcontractor");
+ }
+
+ catch (iMESException.MESException ex)
+ {
+ strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Add Subcontractor failed!", ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: Conversions.ToString(ex.ErrorCode));
+ }
+
+ catch (Exception ex)
+ {
+ strException = CombineXMLException(defWSErrCode, ex.Message, "Add Subcontractor failed!", ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: defWSErrCode);
+ }
+
+ finally
+ {
+ // 將各部份之XML字串組起來並傳出
+ AddSubcontractorRet = CombineXMLResponse(strIdentity, "", strException, strResult, "");
+
+ }
+
+ return AddSubcontractorRet;
+
+ }
+
+ [WebMethod(Description = "Edit Specified Subcontractor Data")]
+ public string EditSubcontractor(string InXml)
+ {
+ string EditSubcontractorRet = default(string);
+
+ // 參數先給預設值,以判斷是否有傳入該參數
+ var SubcontractorNo = default(string);
+ int IssueState = defInteger;
+ string WZ21670 = defString;
+ string SubcontractorName = defString;
+ string Description = defString;
+
+ int DataStamp = defInteger;
+ string AdditionalXml = "";
+
+ ArriveTime = DateTime.Now;
+
+ try
+ {
+ // 讀取InXml字串
+ xmlDoc.LoadXml(InXml);
+ // 組Identity字串
+ strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
+
+ // 開始解譯InXml字串
+ // Subcontractor一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorNo = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ // IssueState一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("issuestate").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("issuestate").Item(0).SelectNodes("value").Count > 0)
+ {
+ IssueState = Conversions.ToInteger(xmlDoc.DocumentElement.GetElementsByTagName("issuestate").Item(0).SelectNodes("value").Item(0).InnerText);
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "[%IssueState%]");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "[%IssueState%]");
+ }
+ // SubcontractorName不可空白
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorname").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorname").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorName = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorname").Item(0).SelectNodes("value").Item(0).InnerText;
+ if (string.IsNullOrEmpty(SubcontractorName))
+ {
+ throw new iMESException.MESException("0000-200001", "SubcontractorName is empty!");
+ }
+ }
+ }
+ // WZ21670
+ if (xmlDoc.DocumentElement.GetElementsByTagName("wz21670").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("wz21670").Item(0).SelectNodes("value").Count > 0)
+ {
+ WZ21670 = xmlDoc.DocumentElement.GetElementsByTagName("wz21670").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // Description
+ if (xmlDoc.DocumentElement.GetElementsByTagName("description").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("description").Item(0).SelectNodes("value").Count > 0)
+ {
+ Description = xmlDoc.DocumentElement.GetElementsByTagName("description").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+
+ // AdditionalXml
+ GetXMLTagValue(ref AdditionalXml, xmlDoc, "additionalxml");
+
+ // DataStamp
+ GetXMLTagValue(ref DataStamp, xmlDoc, "datastamp", true);
+
+ if (IssueState == 0) // Unfrozen時才可修改
+ {
+ // 有修改欄位值時
+ if ((SubcontractorName ?? "") != defString | (Description ?? "") != defString)
+ {
+ // 呼叫Dll執行修改
+ objENT.EditSubcontractor(SubcontractorNo,WZ21670, SubcontractorName, Description, AdditionalXml, DataStamp: DataStamp, Reviser: GetXMLCurUserNo(xmlDoc), ReviseDate: ArriveTime);
+ }
+ }
+
+ strException = "";
+ strResult = "success";
+
+ objSYS.AddEventLog("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, "EditSubcontractor");
+ }
+
+ catch (iMESException.MESException ex)
+ {
+ strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Edit Subcontractor failed!", ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: Conversions.ToString(ex.ErrorCode));
+ }
+
+ catch (Exception ex)
+ {
+ strException = CombineXMLException(defWSErrCode, ex.Message, "Edit Subcontractor failed!", ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: defWSErrCode);
+ }
+
+ finally
+ {
+ // 將各部份之XML字串組起來並傳出
+ EditSubcontractorRet = CombineXMLResponse(strIdentity, "", strException, strResult, "");
+ }
+
+ return EditSubcontractorRet;
+
+ }
+
+ [WebMethod(Description = "Delete Subcontractor By Specified Subcontractor")]
+ public string DelSubcontractor(string InXml)
+ {
+ string DelSubcontractorRet = default(string);
+
+ var SubcontractorNo = default(string);
+ int IssueState;
+ string strDelState; // 寫入tblSysEventLog中的訊息,0:未簽核刪除,2:已簽核刪除,-1:不使用刪除
+ int DataStamp = defInteger;
+
+ ArriveTime = DateTime.Now;
+
+ try
+ {
+ // 讀取InXml字串
+ xmlDoc.LoadXml(InXml);
+ // 組Identity字串
+ strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
+
+ // 開始解譯InXml字串
+ // Subcontractor一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorNo = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ // IssueState一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("issuestate").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("issuestate").Item(0).SelectNodes("value").Count > 0)
+ {
+ IssueState = Conversions.ToInteger(xmlDoc.DocumentElement.GetElementsByTagName("issuestate").Item(0).SelectNodes("value").Item(0).InnerText);
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "[%IssueState%]");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "[%IssueState%]");
+ }
+
+ // DataStamp
+ GetXMLTagValue(ref DataStamp, xmlDoc, "datastamp", true);
+
+ switch (IssueState)
+ {
+ case 0:
+ {
+ objENT.DelSubcontractor(SubcontractorNo);
+ strDelState = "未簽核刪除";
+ break;
+ }
+ case 2:
+ {
+ objENT.SetSubcontractorIssueState(SubcontractorNo, -1, DataStamp: DataStamp, Reviser: GetXMLCurUserNo(xmlDoc), ReviseDate: ArriveTime);
+ strDelState = "已簽核刪除";
+ break;
+ }
+ case -1:
+ {
+ objENT.DelSubcontractor(SubcontractorNo);
+ strDelState = "不使用刪除";
+ break;
+ }
+
+ default:
+ {
+ throw new iMESException.MESException("0000-200021", "[%IssueState%]");
+ }
+ }
+
+ strException = "";
+ strResult = "success";
+
+ objSYS.AddEventLog("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, "DelSubcontractor:" + strDelState);
+ }
+
+ catch (iMESException.MESException ex)
+ {
+ strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Delete Subcontractor failed!", ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: Conversions.ToString(ex.ErrorCode));
+ }
+
+ catch (Exception ex)
+ {
+ strException = CombineXMLException(defWSErrCode, ex.Message, "Delete Subcontractor failed!", ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: defWSErrCode);
+ }
+
+ finally
+ {
+ DelSubcontractorRet = CombineXMLResponse(strIdentity, "", strException, strResult, "");
+
+ }
+
+ return DelSubcontractorRet;
+
+ }
+
+ [WebMethod(Description = "Approve Specified Subcontractor Data")]
+ public string ApproveSubcontractor(string InXml)
+ {
+ string ApproveSubcontractorRet = default(string);
+
+ string IssueNo = "SUBCONTRACTOR BASIS"; // 簽核編號:SUBCONTRACTOR BASIS.若找不到,表示直接將狀態改為Active.
+ var SubcontractorNo = default(string);
+ int IssueState;
+ var objIssue = new kcISSUE.clsIssue();
+ DataRow IssueDR;
+ int DataStamp = defInteger;
+
+ ArriveTime = DateTime.Now;
+
+ try
+ {
+ // 讀取InXml字串
+ xmlDoc.LoadXml(InXml);
+ // 組Identity字串
+ strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
+
+ // 開始解譯InXml字串
+ // Subcontractor一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorNo = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ // IssueState一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("issuestate").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("issuestate").Item(0).SelectNodes("value").Count > 0)
+ {
+ IssueState = Conversions.ToInteger(xmlDoc.DocumentElement.GetElementsByTagName("issuestate").Item(0).SelectNodes("value").Item(0).InnerText);
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "[%IssueState%]");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "[%IssueState%]");
+ }
+
+ // DataStamp
+ GetXMLTagValue(ref DataStamp, xmlDoc, "datastamp", true);
+
+ if (IssueState == 0) // 當狀態為Unfrozen時才作
+ {
+ // 去IssueManagement中找核准的方式
+ IssueDR = objIssue.GetIssueJobMap(IssueNo);
+
+ // 找不到表示bypass直接核准
+ if (IssueDR["JobNo"] is DBNull)
+ {
+ // 直接核准
+ objENT.SetSubcontractorIssueState(SubcontractorNo, 2, DataStamp: DataStamp, Reviser: GetXMLCurUserNo(xmlDoc), ReviseDate: ArriveTime);
+ objSYS.AddEventLog("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, "ApproveSubcontractor");
+ }
+
+ else
+ {
+ // 檢查JobNo是否有定義Detail檔,沒有Detail檔則直接核准
+ DataRow tmpDR;
+ tmpDR = objIssue.GetIssueJobDetail(Conversions.ToString(IssueDR["JobNo"]));
+ if (tmpDR["JobNo"] is DBNull)
+ {
+ objENT.SetSubcontractorIssueState(SubcontractorNo, 2, DataStamp: DataStamp, Reviser: GetXMLCurUserNo(xmlDoc), ReviseDate: ArriveTime);
+ objSYS.AddEventLog("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, "ApproveSubcontractor");
+ }
+
+ else
+ {
+ // 將狀態改為Pending,且應以找到的JobNo來進入簽核
+ // 填入簽核現況檔之Initial
+ var ApproveSQL = new Collection();
+ var RejectSQL = new Collection();
+ string tmpSQL;
+ string IssueSubject;
+ string IssueMasterNo;
+
+ // 核准後應將狀態改為Active
+ tmpSQL = "Update tblENTSubcontractor_21670 Set IssueState = 2 Where SubcontractorNo = '" + SubcontractorNo + "'";
+ ApproveSQL.Add(tmpSQL);
+ // 退回則應將狀態回復到Unfrozen
+ tmpSQL = "Update tblENTSubcontractor_21670 Set IssueState = 0 Where SubcontractorNo = '" + SubcontractorNo + "'";
+ RejectSQL.Add(tmpSQL);
+
+ // Creator未傳入表示以目前的User
+ string Creator;
+ if (xmlDoc.DocumentElement.GetElementsByTagName("creator").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("creator").Item(0).SelectNodes("value").Count > 0)
+ {
+ Creator = xmlDoc.DocumentElement.GetElementsByTagName("creator").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ Creator = GetXMLCurUserNo(xmlDoc);
+ }
+ }
+ else
+ {
+ Creator = GetXMLCurUserNo(xmlDoc);
+ }
+
+ IssueSubject = "SubcontractorNo: " + SubcontractorNo;
+ IssueMasterNo = objIssue.InitIssueMasterNo();
+ // 此筆資料進入Issue流程
+ objIssue.StartIssueProcess(IssueMasterNo, ApproveSQL, RejectSQL, IssueNo, IssueDR["JobNo"].ToString(), IssueSubject, Creator);
+ // 將狀態改為Pending
+ objENT.SetSubcontractorIssueState(SubcontractorNo, 1, DataStamp: DataStamp, Reviser: GetXMLCurUserNo(xmlDoc), ReviseDate: ArriveTime);
+
+ objSYS.AddEventLog("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, "ApproveSubcontractor");
+
+ // 發Email給JobSerialNo=1之負責群組
+ objIssue.SendEmailToFirstGroup(IssueMasterNo, IssueSubject);
+ }
+ }
+ }
+ strException = "";
+ strResult = "success";
+ }
+
+
+ catch (iMESException.MESException ex)
+ {
+ strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Approve Subcontractor failed!", ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: Conversions.ToString(ex.ErrorCode));
+ }
+
+ catch (Exception ex)
+ {
+ strException = CombineXMLException(defWSErrCode, ex.Message, "Approve Subcontractor failed!", ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: defWSErrCode);
+ }
+
+ finally
+ {
+ // 將各部份之XML字串組起來並傳出
+ ApproveSubcontractorRet = CombineXMLResponse(strIdentity, "", strException, strResult, "");
+ }
+
+ return ApproveSubcontractorRet;
+
+ }
+
+ // Subcontractor Contactor
+ [WebMethod(Description = "Load Subcontractor Contactor Data")]
+ public string LoadSubcontractorCont(string InXml)
+ {
+ string LoadSubcontractorContRet = default(string);
+
+ // 先給預設值,以判斷是否有傳入該參數
+ string SubcontractorNo = defString;
+ string ContactorName = defString;
+
+ ArriveTime = DateTime.Now;
+
+ try
+ {
+ // 讀取InXml字串
+ xmlDoc.LoadXml(InXml);
+ // 組Identity字串
+ strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
+
+ // 判斷是否有傳入SubcontractorNo,若有,表示要依SubcontractorNo查詢
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorNo = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ if (xmlDoc.DocumentElement.GetElementsByTagName("contactorname").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("contactorname").Item(0).SelectNodes("value").Count > 0)
+ {
+ ContactorName = xmlDoc.DocumentElement.GetElementsByTagName("contactorname").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+
+ // 呼叫Dll執行
+ strReturnValue = objENT.LoadSubcontractorCont(SubcontractorNo, ContactorName);
+ strException = "";
+ strResult = "success";
+ }
+
+ catch (iMESException.MESException ex)
+ {
+ strReturnValue = "";
+ strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Show Subcontractor Contactor Failed!!", ex.StackTrace);
+ strResult = "fail";
+ }
+
+ catch (Exception ex)
+ {
+ strReturnValue = "";
+ strException = CombineXMLException(defWSErrCode, ex.Message, "Show Subcontractor Contactor Failed!!", ex.StackTrace);
+ strResult = "fail";
+ }
+
+ finally
+ {
+ // 將各部份之XML字串組起來並傳出
+ LoadSubcontractorContRet = CombineXMLResponse(strIdentity, strReturnValue, strException, strResult, "");
+
+ }
+
+ return LoadSubcontractorContRet;
+
+ }
+
+ [WebMethod(Description = "Add Subcontractor Contactor data")]
+ public string AddSubcontractorCont(string InXml)
+ {
+ string AddSubcontractorContRet = default(string);
+ // 先給預設值,以判斷是否有傳入該參數
+ var SubcontractorNo = default(string);
+ var ContactorName = default(string);
+ string TelNo = defString;
+ string FaxNo = defString;
+ string Title = defString;
+ string Address = defString;
+ string EMail = defString;
+ string Description = defString;
+ string AdditionalXml = "";
+
+ ArriveTime = DateTime.Now;
+
+ try
+ {
+ // 讀取InXml字串
+ xmlDoc.LoadXml(InXml);
+
+ // 組Identity字串
+ strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
+
+ // 開始解譯InXml字串
+ // SubcontractorNo一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorNo = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ // ContactorName一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("contactorname").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("contactorname").Item(0).SelectNodes("value").Count > 0)
+ {
+ ContactorName = xmlDoc.DocumentElement.GetElementsByTagName("contactorname").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "ContactorName Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "ContactorName Not Found!");
+ }
+ // TelNo
+ if (xmlDoc.DocumentElement.GetElementsByTagName("telno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("telno").Item(0).SelectNodes("value").Count > 0)
+ {
+ TelNo = xmlDoc.DocumentElement.GetElementsByTagName("telno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // FaxNo
+ if (xmlDoc.DocumentElement.GetElementsByTagName("faxno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("faxno").Item(0).SelectNodes("value").Count > 0)
+ {
+ FaxNo = xmlDoc.DocumentElement.GetElementsByTagName("faxno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // Title
+ if (xmlDoc.DocumentElement.GetElementsByTagName("title").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("title").Item(0).SelectNodes("value").Count > 0)
+ {
+ Title = xmlDoc.DocumentElement.GetElementsByTagName("title").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // Address
+ if (xmlDoc.DocumentElement.GetElementsByTagName("address").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("address").Item(0).SelectNodes("value").Count > 0)
+ {
+ Address = xmlDoc.DocumentElement.GetElementsByTagName("address").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // EMail
+ if (xmlDoc.DocumentElement.GetElementsByTagName("email").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("email").Item(0).SelectNodes("value").Count > 0)
+ {
+ EMail = xmlDoc.DocumentElement.GetElementsByTagName("email").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // Description
+ if (xmlDoc.DocumentElement.GetElementsByTagName("description").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("description").Item(0).SelectNodes("value").Count > 0)
+ {
+ Description = xmlDoc.DocumentElement.GetElementsByTagName("description").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // AdditionalXml
+ GetXMLTagValue(ref AdditionalXml, xmlDoc, "additionalxml");
+
+
+ // 呼叫Dll執行新增資料
+ objENT.AddSubcontractorCont(SubcontractorNo, ContactorName, TelNo, FaxNo, Title, Address, EMail, Description, AdditionalXml, GetXMLCurUserNo(xmlDoc), ArriveTime);
+
+ strException = "";
+ strResult = "success";
+
+ objSYS.AddEventLog("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, "AddSubcontractorContactor ContactorName:" + ContactorName);
+ }
+
+ catch (iMESException.MESException ex)
+ {
+ strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Add SubcontractorContactor Data failed, ContactorName:" + ContactorName, ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: Conversions.ToString(ex.ErrorCode));
+ }
+
+ catch (Exception ex)
+ {
+ strException = CombineXMLException(defWSErrCode, ex.Message, "Add SubcontractorContactor Data failed, ContactorName:" + ContactorName, ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: defWSErrCode);
+ }
+
+ finally
+ {
+ // 將各部份之XML字串組起來並傳出
+ AddSubcontractorContRet = CombineXMLResponse(strIdentity, "", strException, strResult, "");
+
+ }
+
+ return AddSubcontractorContRet;
+
+ }
+
+ [WebMethod(Description = "Edit Specified Subcontractor Contactor Data")]
+ public string EditSubcontractorCont(string InXml)
+ {
+ string EditSubcontractorContRet = default(string);
+ // 先給預設值,以判斷是否有傳入該參數
+ var SubcontractorNo = default(string);
+ var ContactorName = default(string);
+ string TelNo = defString;
+ string FaxNo = defString;
+ string Title = defString;
+ string Address = defString;
+ string EMail = defString;
+ string Description = defString;
+
+ int DataStamp = defInteger;
+ string AdditionalXml = "";
+
+ ArriveTime = DateTime.Now;
+
+ try
+ {
+ // 讀取InXml字串
+ xmlDoc.LoadXml(InXml);
+ // 組Identity字串
+ strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
+
+ // 開始解譯InXml字串
+ // SubcontractorNo一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorNo = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ // ContactorName一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("contactorname").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("contactorname").Item(0).SelectNodes("value").Count > 0)
+ {
+ ContactorName = xmlDoc.DocumentElement.GetElementsByTagName("contactorname").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "ContactorName Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "ContactorName Not Found!");
+ }
+ // TelNo
+ if (xmlDoc.DocumentElement.GetElementsByTagName("telno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("telno").Item(0).SelectNodes("value").Count > 0)
+ {
+ TelNo = xmlDoc.DocumentElement.GetElementsByTagName("telno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // FaxNo
+ if (xmlDoc.DocumentElement.GetElementsByTagName("faxno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("faxno").Item(0).SelectNodes("value").Count > 0)
+ {
+ FaxNo = xmlDoc.DocumentElement.GetElementsByTagName("faxno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // Title
+ if (xmlDoc.DocumentElement.GetElementsByTagName("title").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("title").Item(0).SelectNodes("value").Count > 0)
+ {
+ Title = xmlDoc.DocumentElement.GetElementsByTagName("title").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // Address
+ if (xmlDoc.DocumentElement.GetElementsByTagName("address").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("address").Item(0).SelectNodes("value").Count > 0)
+ {
+ Address = xmlDoc.DocumentElement.GetElementsByTagName("address").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // EMail
+ if (xmlDoc.DocumentElement.GetElementsByTagName("email").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("email").Item(0).SelectNodes("value").Count > 0)
+ {
+ EMail = xmlDoc.DocumentElement.GetElementsByTagName("email").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+ // Description
+ if (xmlDoc.DocumentElement.GetElementsByTagName("description").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("description").Item(0).SelectNodes("value").Count > 0)
+ {
+ Description = xmlDoc.DocumentElement.GetElementsByTagName("description").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+
+ // AdditionalXml
+ GetXMLTagValue(ref AdditionalXml, xmlDoc, "additionalxml");
+
+ // DataStamp
+ GetXMLTagValue(ref DataStamp, xmlDoc, "datastamp", true);
+
+ // If IssueState = 0 Then 'Unfrozen時才可修改
+ // 有修改欄位值時
+ if ((TelNo ?? "") != defString | (FaxNo ?? "") != defString | (Title ?? "") != defString | (Address ?? "") != defString | (EMail ?? "") != defString | (Description ?? "") != defString)
+ {
+ // 呼叫Dll執行修改
+ objENT.EditSubcontractorCont(SubcontractorNo, ContactorName, TelNo, FaxNo, Title, Address, EMail, Description, AdditionalXml, DataStamp: DataStamp, Reviser: GetXMLCurUserNo(xmlDoc), ReviseDate: ArriveTime);
+ }
+ // End If
+
+ strException = "";
+ strResult = "success";
+
+ objSYS.AddEventLog("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, "EditSubcontractorContactor ContactorName:" + ContactorName);
+ }
+
+ catch (iMESException.MESException ex)
+ {
+ strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Edit SubcontractorContactor Data failed, ContactorName:" + ContactorName, ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: Conversions.ToString(ex.ErrorCode));
+ }
+
+ catch (Exception ex)
+ {
+ strException = CombineXMLException(defWSErrCode, ex.Message, "Edit SubcontractorContactor Data failed, ContactorName:" + ContactorName, ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: defWSErrCode);
+ }
+
+ finally
+ {
+ // 將各部份之XML字串組起來並傳出
+ EditSubcontractorContRet = CombineXMLResponse(strIdentity, "", strException, strResult, "");
+
+ }
+
+ return EditSubcontractorContRet;
+
+ }
+
+ [WebMethod(Description = "Delete Subcontractor Contactor By Specified SubcontractorNo and ContactorName")]
+ public string DelSubcontractorCont(string InXml)
+ {
+ string DelSubcontractorContRet = default(string);
+
+ var SubcontractorNo = default(string);
+ string ContactorName = defString; // 沒有傳入表示要刪除指定Subcontractor的所有Contactor
+
+ ArriveTime = DateTime.Now;
+
+ try
+ {
+ // 讀取InXml字串
+ xmlDoc.LoadXml(InXml);
+ // 組Identity字串
+ strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
+
+ // 開始解譯InXml字串
+ // SubcontractorNo一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Count > 0)
+ {
+ SubcontractorNo = xmlDoc.DocumentElement.GetElementsByTagName("subcontractorno").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ }
+ else
+ {
+ throw new iMESException.MESException("0000-200002", "SubcontractorNo Not Found!");
+ }
+ // ContactorName一定要傳入
+ if (xmlDoc.DocumentElement.GetElementsByTagName("contactorname").Count > 0)
+ {
+ if (xmlDoc.GetElementsByTagName("contactorname").Item(0).SelectNodes("value").Count > 0)
+ {
+ ContactorName = xmlDoc.DocumentElement.GetElementsByTagName("contactorname").Item(0).SelectNodes("value").Item(0).InnerText;
+ }
+ }
+
+ objENT.DelSubcontractorCont(SubcontractorNo, ContactorName);
+
+ strException = "";
+ strResult = "success";
+
+ objSYS.AddEventLog("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, "DelSubcontractorContactor ContactorName:" + ContactorName);
+ }
+
+ catch (iMESException.MESException ex)
+ {
+ strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Del SubcontractorContactor Data failed, ContactorName:" + ContactorName, ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: Conversions.ToString(ex.ErrorCode));
+ }
+
+ catch (Exception ex)
+ {
+ strException = CombineXMLException(defWSErrCode, ex.Message, "Del SubcontractorContactor Data failed, ContactorName:" + ContactorName, ex.StackTrace);
+
+ strResult = "fail";
+
+ objSYS.AddErrorLog_ErrorCode("wsENT", GetXMLCurUserNo(xmlDoc), "SubcontractorNo", SubcontractorNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: defWSErrCode);
+ }
+
+ finally
+ {
+ DelSubcontractorContRet = CombineXMLResponse(strIdentity, "", strException, strResult, "");
+
+ }
+
+ return DelSubcontractorContRet;
+
+ }
+
+
+ #endregion
+ }
+}