diff --git a/SRC/MESWin/SYS5/ET_TestData21681/ET_Subcontractor.sln b/SRC/MESWin/SYS5/ET_TestData21681/ET_Subcontractor.sln
new file mode 100644
index 0000000..85b1902
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/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/SYS5/ET_TestData21681/ET_Subcontractor.vbproj b/SRC/MESWin/SYS5/ET_TestData21681/ET_Subcontractor.vbproj
new file mode 100644
index 0000000..bcad4fb
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/ET_Subcontractor.vbproj
@@ -0,0 +1,194 @@
+
+
+
+
+ Debug
+ x86
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}
+ Library
+ ET_TestData21681
+ ET_TestData21681
+ 512
+ Windows
+ v4.6.2
+
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+ true
+ true
+ true
+ ..\..\..\MESClient\
+ ET_TestData21681.xml
+ 0
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ full
+ x86
+ MinimumRecommendedRules.ruleset
+ false
+
+
+ true
+ ..\..\..\MESClient\
+ ET_TestData21681.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
+
+
+
+
+ frmTestData21681.vb
+
+
+ frmTestData21681ContDef.vb
+
+
+ frmTestData21681Def.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/SYS5/ET_TestData21681/ET_Subcontractor.vbproj.user b/SRC/MESWin/SYS5/ET_TestData21681/ET_Subcontractor.vbproj.user
new file mode 100644
index 0000000..a391289
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/ET_Subcontractor.vbproj.user
@@ -0,0 +1,6 @@
+
+
+
+ Project
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS5/ET_TestData21681/ET_Subcontractor.vbproj.vspscc b/SRC/MESWin/SYS5/ET_TestData21681/ET_Subcontractor.vbproj.vspscc
new file mode 100644
index 0000000..b6d3289
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/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/SYS5/ET_TestData21681/My Project/Application.Designer.vb b/SRC/MESWin/SYS5/ET_TestData21681/My Project/Application.Designer.vb
new file mode 100644
index 0000000..537244b
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/My Project/Application.Designer.vb
@@ -0,0 +1,13 @@
+'------------------------------------------------------------------------------
+'
+' 此代码由工具生成。
+' 运行时版本:4.0.30319.42000
+'
+' 对此文件的更改可能会导致不正确的行为,并且如果
+' 重新生成代码,这些更改将会丢失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
diff --git a/SRC/MESWin/SYS5/ET_TestData21681/My Project/Application.myapp b/SRC/MESWin/SYS5/ET_TestData21681/My Project/Application.myapp
new file mode 100644
index 0000000..758895d
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/My Project/Application.myapp
@@ -0,0 +1,10 @@
+
+
+ false
+ false
+ 0
+ true
+ 0
+ 1
+ true
+
diff --git a/SRC/MESWin/SYS5/ET_TestData21681/My Project/AssemblyInfo.vb b/SRC/MESWin/SYS5/ET_TestData21681/My Project/AssemblyInfo.vb
new file mode 100644
index 0000000..b0cdd98
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/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/SYS5/ET_TestData21681/My Project/BuildIncrementVersionInfo.vb b/SRC/MESWin/SYS5/ET_TestData21681/My Project/BuildIncrementVersionInfo.vb
new file mode 100644
index 0000000..d2f2e21
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/My Project/BuildIncrementVersionInfo.vb
@@ -0,0 +1 @@
+
diff --git a/SRC/MESWin/SYS5/ET_TestData21681/My Project/Resources.Designer.vb b/SRC/MESWin/SYS5/ET_TestData21681/My Project/Resources.Designer.vb
new file mode 100644
index 0000000..43b329e
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/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_TestData21681.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/SYS5/ET_TestData21681/My Project/Resources.resx b/SRC/MESWin/SYS5/ET_TestData21681/My Project/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/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/SYS5/ET_TestData21681/My Project/Settings.Designer.vb b/SRC/MESWin/SYS5/ET_TestData21681/My Project/Settings.Designer.vb
new file mode 100644
index 0000000..cf0082a
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/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_TestData21681.My.MySettings
+ Get
+ Return Global.ET_TestData21681.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/SRC/MESWin/SYS5/ET_TestData21681/My Project/Settings.settings b/SRC/MESWin/SYS5/ET_TestData21681/My Project/Settings.settings
new file mode 100644
index 0000000..85b890b
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/SRC/MESWin/SYS5/ET_TestData21681/My Project/licenses.licx b/SRC/MESWin/SYS5/ET_TestData21681/My Project/licenses.licx
new file mode 100644
index 0000000..e3f40e2
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/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/SYS5/ET_TestData21681/frmTestData21681.resx b/SRC/MESWin/SYS5/ET_TestData21681/frmTestData21681.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/frmTestData21681.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/SYS5/ET_TestData21681/frmTestData21681.vb b/SRC/MESWin/SYS5/ET_TestData21681/frmTestData21681.vb
new file mode 100644
index 0000000..3ea0471
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/frmTestData21681.vb
@@ -0,0 +1,1129 @@
+Imports iMESExceptionManager
+
+Imports Infragistics.Win
+Imports Infragistics.Win.UltraWinGrid
+Public Class frmTestData21681
+
+ 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 frmTestData21681Def
+
+ 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 frmTestData21681Def
+ 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 frmTestData21681Def
+ 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 frmTestData21681ContDef
+
+ 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 frmTestData21681ContDef
+ 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 frmTestData21681ContDef
+ 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.wsTest21681.LoadTestDataBasis_21681", InXml)
+
+ Dim XmlDoc As New XmlDocument '處理Xml字串之物件?
+
+ '利用XmlDoc物件處理ReturnValue
+ XmlDoc.LoadXml(OutXml)
+
+ If ChkExecutionSuccess(XmlDoc) Then
+ '讀取取出資料表之名稱
+
+ tblENTSubcontractor = XmlDoc.GetElementsByTagName("returnvalue").Item(0).SelectNodes("TestDataBasis").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.wsTest21681.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/SYS5/ET_TestData21681/frmTestData21681ContDef.resx b/SRC/MESWin/SYS5/ET_TestData21681/frmTestData21681ContDef.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/frmTestData21681ContDef.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/SYS5/ET_TestData21681/frmTestData21681ContDef.vb b/SRC/MESWin/SYS5/ET_TestData21681/frmTestData21681ContDef.vb
new file mode 100644
index 0000000..333e315
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/frmTestData21681ContDef.vb
@@ -0,0 +1,656 @@
+Imports iMESExceptionManager
+
+Public Class frmTestData21681ContDef
+
+ 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/SYS5/ET_TestData21681/frmTestData21681Def.resx b/SRC/MESWin/SYS5/ET_TestData21681/frmTestData21681Def.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/frmTestData21681Def.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/SYS5/ET_TestData21681/frmTestData21681Def.vb b/SRC/MESWin/SYS5/ET_TestData21681/frmTestData21681Def.vb
new file mode 100644
index 0000000..c38b281
--- /dev/null
+++ b/SRC/MESWin/SYS5/ET_TestData21681/frmTestData21681Def.vb
@@ -0,0 +1,421 @@
+Imports iMESExceptionManager
+
+Public Class frmTestData21681Def
+
+ 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 = CInt(EditDataRow.Item("DataStamp").ToString()) '强制转换为String类型,防止报错DBNull
+ 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("SYS.wsTest21681.AddTestDataBasis_21681", 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.wsTest21681.EditTestDataBasis_21681", 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/SYS5/ET_TestData21681/iMES.snk b/SRC/MESWin/SYS5/ET_TestData21681/iMES.snk
new file mode 100644
index 0000000..4206cdc
Binary files /dev/null and b/SRC/MESWin/SYS5/ET_TestData21681/iMES.snk differ
diff --git a/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/ET_Subcontractor.sln b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/ET_Subcontractor.sln
new file mode 100644
index 0000000..85b1902
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/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/SYS5/SYS1_ENTbasis_21681/ET_Subcontractor.vbproj b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/ET_Subcontractor.vbproj
new file mode 100644
index 0000000..d31d05f
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/ET_Subcontractor.vbproj
@@ -0,0 +1,194 @@
+
+
+
+
+ Debug
+ x86
+ {D6EE7B96-F10E-44E2-9731-162B70B4C8DD}
+ Library
+ ET_Subcontractor_21681
+ ET_Subcontractor_21681
+ 512
+ Windows
+ v4.6.2
+
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+ true
+ true
+ true
+ ..\..\..\MESClient\
+ ET_Subcontractor_21681.xml
+ 0
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ full
+ x86
+ MinimumRecommendedRules.ruleset
+ false
+
+
+ true
+ ..\..\..\MESClient\
+ ET_Subcontractor_21681.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/SYS5/SYS1_ENTbasis_21681/ET_Subcontractor.vbproj.user b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/ET_Subcontractor.vbproj.user
new file mode 100644
index 0000000..a391289
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/ET_Subcontractor.vbproj.user
@@ -0,0 +1,6 @@
+
+
+
+ Project
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/ET_Subcontractor.vbproj.vspscc b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/ET_Subcontractor.vbproj.vspscc
new file mode 100644
index 0000000..b6d3289
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/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/SYS5/SYS1_ENTbasis_21681/My Project/Application.Designer.vb b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/My Project/Application.Designer.vb
new file mode 100644
index 0000000..537244b
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/My Project/Application.Designer.vb
@@ -0,0 +1,13 @@
+'------------------------------------------------------------------------------
+'
+' 此代码由工具生成。
+' 运行时版本:4.0.30319.42000
+'
+' 对此文件的更改可能会导致不正确的行为,并且如果
+' 重新生成代码,这些更改将会丢失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
diff --git a/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/My Project/Application.myapp b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/My Project/Application.myapp
new file mode 100644
index 0000000..758895d
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/My Project/Application.myapp
@@ -0,0 +1,10 @@
+
+
+ false
+ false
+ 0
+ true
+ 0
+ 1
+ true
+
diff --git a/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/My Project/AssemblyInfo.vb b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/My Project/AssemblyInfo.vb
new file mode 100644
index 0000000..b0cdd98
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/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/SYS5/SYS1_ENTbasis_21681/My Project/BuildIncrementVersionInfo.vb b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/My Project/BuildIncrementVersionInfo.vb
new file mode 100644
index 0000000..d2f2e21
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/My Project/BuildIncrementVersionInfo.vb
@@ -0,0 +1 @@
+
diff --git a/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/My Project/Resources.Designer.vb b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/My Project/Resources.Designer.vb
new file mode 100644
index 0000000..20be636
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/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_21681.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/SYS5/SYS1_ENTbasis_21681/My Project/Resources.resx b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/My Project/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/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/SYS5/SYS1_ENTbasis_21681/My Project/Settings.Designer.vb b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/My Project/Settings.Designer.vb
new file mode 100644
index 0000000..f5b6aa4
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/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_21681.My.MySettings
+ Get
+ Return Global.ET_Subcontractor_21681.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/My Project/Settings.settings b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/My Project/Settings.settings
new file mode 100644
index 0000000..85b890b
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/My Project/licenses.licx b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/My Project/licenses.licx
new file mode 100644
index 0000000..e3f40e2
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/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/SYS5/SYS1_ENTbasis_21681/frmSubcontractor.resx b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/frmSubcontractor.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/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/SYS5/SYS1_ENTbasis_21681/frmSubcontractor.vb b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/frmSubcontractor.vb
new file mode 100644
index 0000000..11fe382
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/frmSubcontractor.vb
@@ -0,0 +1,1094 @@
+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 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 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.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.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)"
+ '
+ '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)"
+ '
+ '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, 171)
+ 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.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.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_21681.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)
+
+
+
+ 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_21681.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_21681.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)
+
+ 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)
+
+ 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_21681.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_21681.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
+
+ Private Sub iugDetail_Load(sender As Object, e As EventArgs) Handles iugDetail.Load
+
+ End Sub
+
+
+#End Region
+
+End Class
+
diff --git a/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/frmSubcontractorContDef.resx b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/frmSubcontractorContDef.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/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/SYS5/SYS1_ENTbasis_21681/frmSubcontractorContDef.vb b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/frmSubcontractorContDef.vb
new file mode 100644
index 0000000..84e729d
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/frmSubcontractorContDef.vb
@@ -0,0 +1,576 @@
+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
+ Friend WithEvents lblAddress As System.Windows.Forms.Label
+ Friend WithEvents lblFaxNo As System.Windows.Forms.Label
+ Friend WithEvents lblTelNo 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 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.txtFaxNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
+ Me.lblAddress = New System.Windows.Forms.Label()
+ Me.lblFaxNo = New System.Windows.Forms.Label()
+ Me.lblTelNo = 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.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, 167)
+ Me.gbxBasisData.Size = New System.Drawing.Size(472, 70)
+ '
+ 'btnApply
+ '
+ Me.btnApply.Location = New System.Drawing.Point(396, 246)
+ '
+ 'btnConfirm
+ '
+ Me.btnConfirm.Location = New System.Drawing.Point(208, 246)
+ '
+ 'btnClose
+ '
+ Me.btnClose.Location = New System.Drawing.Point(302, 246)
+ '
+ '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.txtFaxNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblAddress)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblFaxNo)
+ Me.gbxSubcontractorContData.Controls.Add(Me.lblTelNo)
+ 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, 151)
+ Me.gbxSubcontractorContData.TabIndex = 0
+ Me.gbxSubcontractorContData.TabStop = False
+ Me.gbxSubcontractorContData.Text = "ENT Subcontractor Contactor Data"
+ '
+ 'txtAddress
+ '
+ Me.txtAddress.Location = New System.Drawing.Point(120, 116)
+ Me.txtAddress.Name = "txtAddress"
+ Me.txtAddress.Size = New System.Drawing.Size(336, 22)
+ Me.txtAddress.TabIndex = 13
+ '
+ '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, 120)
+ 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
+ '
+ '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
+ '
+ '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, 291)
+ 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.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 Then 'Or DefMode = 2
+ 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
+ txtAddress.Text = EditDataRow.Item("Address").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 Then 'Or DefMode = 2
+ 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 Then 'Or DefMode = 2
+ txtContactorName.Focus()
+ Else
+ txtTelNo.Focus()
+ End If
+
+ 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
+
+ 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)
+ End Sub
+
+ Private Sub txtTitle_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs)
+ End Sub
+
+ Private Sub txtTitle_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
+ 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)
+ btnApplyEnabled = True
+ End Sub
+
+ Private Sub txtEMail_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
+ End Sub
+
+ Private Sub txtEMail_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs)
+ End Sub
+
+ Private Sub txtEMail_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
+ 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)
+ 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)
+ End Sub
+
+ Private Sub txtDescription_Enter(ByVal sender As Object, ByVal e As System.EventArgs)
+ End Sub
+
+ Private Sub txtDescription_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
+ 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)
+ 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("title已删除"), "")
+ strParameter = strParameter & CombineXMLParameter("address", "Address", "String", CInput(txtAddress.Text), "")
+ 'strParameter = strParameter & CombineXMLParameter("email", "EMail", "String", CInput("email已删除"), "")
+ 'strParameter = strParameter & CombineXMLParameter("description", "Description", "String", CInput("description已删除"), "")
+
+
+ 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_21681.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_21681.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
+
+ Private Sub lblSubcontractorNo_Click(sender As Object, e As EventArgs) Handles lblSubcontractorNo.Click
+
+ End Sub
+
+ Private Sub txtSubcontractorNo_ValueChanged(sender As Object, e As EventArgs) Handles txtSubcontractorNo.ValueChanged
+
+ End Sub
+End Class
+
diff --git a/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/frmSubcontractorDef.resx b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/frmSubcontractorDef.resx
new file mode 100644
index 0000000..c163729
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/frmSubcontractorDef.resx
@@ -0,0 +1,385 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+ 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
+ DBwW/bcAAAAASUVORK5CYII=
+
+
+
+
+ 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
+ DBwW/bcAAAAASUVORK5CYII=
+
+
+
\ No newline at end of file
diff --git a/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/frmSubcontractorDef.vb b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/frmSubcontractorDef.vb
new file mode 100644
index 0000000..ac5bff0
--- /dev/null
+++ b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/frmSubcontractorDef.vb
@@ -0,0 +1,480 @@
+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 txtDescription As TextBox
+ Friend WithEvents PictureBox1 As PictureBox
+ Friend WithEvents txtCompany As TextBox
+ Friend WithEvents lblCompany 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
+ 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 resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmSubcontractorDef))
+ 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.TextBox()
+ Me.PictureBox1 = New System.Windows.Forms.PictureBox()
+ 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.lblCompany = New System.Windows.Forms.Label()
+ Me.txtCompany = New System.Windows.Forms.TextBox()
+ CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.gbxSubcontractorData.SuspendLayout()
+ CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
+ 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.txtCompany)
+ Me.gbxSubcontractorData.Controls.Add(Me.lblCompany)
+ Me.gbxSubcontractorData.Controls.Add(Me.txtDescription)
+ Me.gbxSubcontractorData.Controls.Add(Me.PictureBox1)
+ 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.Location = New System.Drawing.Point(128, 85)
+ Me.txtDescription.Name = "txtDescription"
+ Me.txtDescription.Size = New System.Drawing.Size(152, 21)
+ Me.txtDescription.TabIndex = 15
+ '
+ 'PictureBox1
+ '
+ Me.PictureBox1.ErrorImage = CType(resources.GetObject("PictureBox1.ErrorImage"), System.Drawing.Image)
+ Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image)
+ Me.PictureBox1.Location = New System.Drawing.Point(297, 83)
+ Me.PictureBox1.Name = "PictureBox1"
+ Me.PictureBox1.Size = New System.Drawing.Size(165, 80)
+ Me.PictureBox1.TabIndex = 14
+ Me.PictureBox1.TabStop = False
+ '
+ '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(54, 88)
+ Me.lblDescription.Name = "lblDescription"
+ Me.lblDescription.Size = New System.Drawing.Size(66, 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
+ '
+ 'lblCompany
+ '
+ Me.lblCompany.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblCompany.Location = New System.Drawing.Point(57, 115)
+ Me.lblCompany.Name = "lblCompany"
+ Me.lblCompany.Size = New System.Drawing.Size(63, 14)
+ Me.lblCompany.TabIndex = 16
+ Me.lblCompany.Text = "Company"
+ Me.lblCompany.TextAlign = System.Drawing.ContentAlignment.TopRight
+ '
+ 'txtCompany
+ '
+ Me.txtCompany.Location = New System.Drawing.Point(128, 115)
+ Me.txtCompany.Name = "txtCompany"
+ Me.txtCompany.Size = New System.Drawing.Size(152, 21)
+ Me.txtCompany.TabIndex = 17
+ '
+ '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.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
+ 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)
+ txtDescription.SelectAll()
+ End Sub
+
+ Private Sub txtDescription_Enter(ByVal sender As Object, ByVal e As System.EventArgs)
+ txtDescription.SelectAll()
+ End Sub
+
+ Private Sub txtDescription_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
+ 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("company", "Company", "String", CInput(txtCompany.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_21681.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_21681.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 txtSubcontractorNo_ValueChanged(sender As Object, e As EventArgs) Handles txtSubcontractorNo.ValueChanged
+
+ End Sub
+
+ Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles txtDescription.TextChanged
+
+ End Sub
+
+ Private Sub lblDescription_Click(sender As Object, e As EventArgs) Handles lblDescription.Click
+
+ End Sub
+
+ Private Sub btnConfirm_Click_1(sender As Object, e As EventArgs) Handles btnConfirm.Click
+
+ End Sub
+
+ Private Sub txtCompany_TextChanged(sender As Object, e As EventArgs) Handles txtCompany.TextChanged
+
+ End Sub
+
+ Private Sub txtSubcontractorName_ValueChanged(sender As Object, e As EventArgs) Handles txtSubcontractorName.ValueChanged
+
+ End Sub
+
+#End Region
+
+End Class
+
diff --git a/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/iMES.snk b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/iMES.snk
new file mode 100644
index 0000000..4206cdc
Binary files /dev/null and b/SRC/MESWin/SYS5/SYS1_ENTbasis_21681/iMES.snk differ
diff --git a/SRC/MEStc_SXS/MEStc_SXS.csproj b/SRC/MEStc_SXS/MEStc_SXS.csproj
index 0854ab1..f5b7c6d 100644
--- a/SRC/MEStc_SXS/MEStc_SXS.csproj
+++ b/SRC/MEStc_SXS/MEStc_SXS.csproj
@@ -113,6 +113,8 @@
+
+
diff --git a/SRC/MEStc_SXS/Properties/BuildIncrementVersionInfo.cs b/SRC/MEStc_SXS/Properties/BuildIncrementVersionInfo.cs
index 99be341..8c4e437 100644
--- a/SRC/MEStc_SXS/Properties/BuildIncrementVersionInfo.cs
+++ b/SRC/MEStc_SXS/Properties/BuildIncrementVersionInfo.cs
@@ -1 +1 @@
-[assembly: System.Reflection.AssemblyFileVersion("6.0.5.40115")]
+[assembly: System.Reflection.AssemblyFileVersion("6.0.5.40117")]
diff --git a/SRC/wsSXS/Properties/BuildIncrementVersionInfo.cs b/SRC/wsSXS/Properties/BuildIncrementVersionInfo.cs
index 99be341..8c4e437 100644
--- a/SRC/wsSXS/Properties/BuildIncrementVersionInfo.cs
+++ b/SRC/wsSXS/Properties/BuildIncrementVersionInfo.cs
@@ -1 +1 @@
-[assembly: System.Reflection.AssemblyFileVersion("6.0.5.40115")]
+[assembly: System.Reflection.AssemblyFileVersion("6.0.5.40117")]
diff --git a/SRC/wsSXS/wsSXS.csproj b/SRC/wsSXS/wsSXS.csproj
index 1c0f518..cdb1291 100644
--- a/SRC/wsSXS/wsSXS.csproj
+++ b/SRC/wsSXS/wsSXS.csproj
@@ -145,8 +145,10 @@
Settings.settings
True
+
+
-
+