This repo is archived. You can view files and clone it, but cannot push or open issues or pull requests.
SXS20240115/SRC/MESWin/Test/modTest.vb

184 lines
9.0 KiB
VB.net
Raw Permalink Normal View History

2024-01-15 10:57:41 +08:00
Imports System.Deployment.Application
Imports System.IO
Imports System.Reflection
Imports iMESExceptionManager
Module modTest
Public Const defInteger As Integer = -999 '宣告整數使用的常數用以辨識參數是否有傳入Function中。
Public Const defString As String = "Null" '宣告字串使用的常數用以辨識參數是否有傳入Function中。
Public Const defDateTime As Date = #12/31/1900# '宣告日期使用的常數用以辨識參數是否有傳入Function中。
Public Const defSingle As Single = -999 '宣告單精準數使用的常數用以辨識參數是否有傳入Function中。
Public Const defDouble As Double = -999 '宣告雙精準數使用的常數用以辨識參數是否有傳入Function中。
Public Const strAddTagLabel As String = "extrabase" 'Add by py for Combine Addition XML doc
Public Const strAddTagName As String = "ExtraBase" 'Add by py for Combine Addition XML doc
Public Const defWinErrCode As String = "0000-899999"
Public Const defNullDate As Date = #12/31/1910# '宣告日期使用的常數用以辨識參數是否要變更為Null。
Public Const defNullInteger As Integer = -9999 '宣告數值使用的常數用以辨識參數是否要變更為Null。
Sub Main()
Dim WinFormInfo As System.Windows.Forms.SystemInformation
'*****************************************************************************************************************
Dim ArgumentStr() As String = Split(Microsoft.VisualBasic.Command()) '取得傳給此執行檔的參數(應用程式路徑,UserID,Password)
Dim i As Integer
Dim App_Path As String = ""
'Modify By Peter 2005/06/21 Add /WSH
For i = LBound(ArgumentStr) To UBound(ArgumentStr)
If InStr(UCase(ArgumentStr(i)), "/DIR:") > 0 Then
App_Path = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
ElseIf InStr(UCase(ArgumentStr(i)), "/UID:") > 0 Then
gUserNo = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
ElseIf InStr(UCase(ArgumentStr(i)), "/UNA:") > 0 Then
gUserName = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
ElseIf InStr(UCase(ArgumentStr(i)), "/LVL:") > 0 Then
gUserLevel = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
ElseIf InStr(UCase(ArgumentStr(i)), "/LAN:") > 0 Then
gLanguageMode = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
ElseIf InStr(UCase(ArgumentStr(i)), "/WSH:") > 0 Then
gMESWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
ElseIf InStr(UCase(ArgumentStr(i)), "/CSH:") > 0 Then
gCUSWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
ElseIf InStr(UCase(ArgumentStr(i)), "/ENV:") > 0 Then
gSettingMode = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
ElseIf InStr(UCase(ArgumentStr(i)), "/SSH:") > 0 Then
gSFCWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
ElseIf InStr(UCase(ArgumentStr(i)), "/ESH:") > 0 Then
gERPWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
ElseIf InStr(UCase(ArgumentStr(i)), "/SSL:") > 0 Then
gEnableSSL = IIf(Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length).ToUpper = "TRUE", True, False)
End If
Next
'*****************************************************************************************************************
If App_Path = "" Then
gAppPath = Application.StartupPath
Else
gAppPath = App_Path
End If
If gUserNo = "" And gUserName = "" Then
Using obj As New frmCOMChkPassword
obj.ShowDialog()
End Using
Else
gReturnKeyValue = gUserNo
End If
'用來做為是否可以進入系統的判斷
If gReturnKeyValue <> "" Then
'取得電腦名稱
gComputerName = WinFormInfo.ComputerName
iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode
' 2014/12/26 YF, Coding時套用Pro5 Style
Infragistics.Win.AppStyling.StyleManager.Load(New MemoryStream(Global.Test.My.Resources.Resources.iMES))
gEnableStyle = True
'進入之系統
Dim fMain As New MDI_Panel
fMain.ShowDialog()
End If
End Sub
Public Function LoadAssembly(ByVal pFileName As String) As Assembly
Dim mainAssembly As System.Reflection.Assembly
Dim myfieldinfo() As System.Reflection.FieldInfo
Dim strAppBase As String = AppDomain.CurrentDomain.BaseDirectory
Dim strFilePath As String
Dim strNamespace As String
Try
'判斷是否使用ClickOnce
If ApplicationDeployment.IsNetworkDeployed Then
'ClickOnce架構下將strAppBase改指回Smart Client
Dim tempUri As System.Uri = ApplicationDeployment.CurrentDeployment.UpdateLocation
strAppBase = tempUri.ToString.Replace("/ClickOnce/MESSeries.application", "")
End If
strFilePath = strAppBase & "/" & pFileName
'檢查檔案是否存在
If (Not funCheckFileExist(strFilePath)) Then
Throw New iMESException.MESException("0000-202115", strFilePath)
End If
mainAssembly = Assembly.LoadFrom(strFilePath)
'strNamespace = mainAssembly.GetExportedTypes(0).Namespace
'設定值予Module Public變數
'myfieldinfo = mainAssembly.GetType(strNamespace & ".modWIN").GetFields()
'For i As Integer = 0 To myfieldinfo.Length - 1
' If myfieldinfo(i).Name.ToUpper = "gUserNo".ToUpper Then
' myfieldinfo(i).SetValue(myfieldinfo(i), gUserNo)
' ElseIf myfieldinfo(i).Name.ToUpper = "gUserName".ToUpper Then
' myfieldinfo(i).SetValue(myfieldinfo(i), gUserName)
' ElseIf myfieldinfo(i).Name.ToUpper = "gComputerName".ToUpper Then
' myfieldinfo(i).SetValue(myfieldinfo(i), gComputerName)
' ElseIf myfieldinfo(i).Name.ToUpper = "gUserLevel".ToUpper Then
' myfieldinfo(i).SetValue(myfieldinfo(i), gUserLevel)
' ElseIf myfieldinfo(i).Name.ToUpper = "gLanguageMode".ToUpper Then
' myfieldinfo(i).SetValue(myfieldinfo(i), gLanguageMode)
' ElseIf myfieldinfo(i).Name.ToUpper = "gAppPath".ToUpper Then
' myfieldinfo(i).SetValue(myfieldinfo(i), gAppPath)
' ElseIf myfieldinfo(i).Name.ToUpper = "gMESWebServiceHost".ToUpper Then
' myfieldinfo(i).SetValue(myfieldinfo(i), gMESWebServiceHost)
' ElseIf myfieldinfo(i).Name.ToUpper = "gCUSWebServiceHost".ToUpper Then
' myfieldinfo(i).SetValue(myfieldinfo(i), gCUSWebServiceHost)
' ElseIf myfieldinfo(i).Name.ToUpper = "gSFCWebServiceHost".ToUpper Then
' myfieldinfo(i).SetValue(myfieldinfo(i), gSFCWebServiceHost)
' ElseIf myfieldinfo(i).Name.ToUpper = "gERPWebServiceHost".ToUpper Then
' myfieldinfo(i).SetValue(myfieldinfo(i), gERPWebServiceHost)
' ElseIf myfieldinfo(i).Name.ToUpper = "gSettingMode".ToUpper Then
' myfieldinfo(i).SetValue(myfieldinfo(i), gSettingMode)
' ElseIf myfieldinfo(i).Name.ToUpper = "gEnterpriseNo".ToUpper Then
' myfieldinfo(i).SetValue(myfieldinfo(i), gEnterpriseNo)
' ElseIf myfieldinfo(i).Name.ToUpper = "gEnableSSL".ToUpper Then
' myfieldinfo(i).SetValue(myfieldinfo(i), gEnableSSL)
' ElseIf myfieldinfo(i).Name.ToUpper = "gConfigFile".ToUpper Then
' myfieldinfo(i).SetValue(myfieldinfo(i), gConfigFile)
' ElseIf myfieldinfo(i).Name.ToUpper = "gEnableStyle".ToUpper Then
' myfieldinfo(i).SetValue(myfieldinfo(i), True)
' ElseIf myfieldinfo(i).Name.ToUpper = "gSYSmode".ToUpper Then
' myfieldinfo(i).SetValue(myfieldinfo(i), gSYSmode)
' End If
'Next
Catch ex As Exception
mainAssembly = Nothing
ExceptionManager.iMESShowDialog(defWinErrCode, "Load Assembly Fail!" & vbCrLf & ex.Message, ex.StackTrace)
End Try
Return mainAssembly
End Function
'檢查檔案是否存在
Private Function funCheckFileExist(ByVal strFilePath As String) As Boolean
'Network架構下
If ApplicationDeployment.IsNetworkDeployed OrElse
Application.ExecutablePath.ToLower.StartsWith("http") Then
'暫不檢查
ElseIf IO.File.Exists(strFilePath) = False Then
'檔案架構下
Return False
End If
Return True
End Function
End Module