Imports iMESExceptionManager

Public Class frmStuBasisContDef

    Inherits COM_Kit.frmDefTemplat

    '//Public Variables
    Public EditDataRow As DataRow
    Public DefMode As Integer = 0  '0. ADD, 1.Edit, 2. Copy

    Public StuBasisNo 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 lblTelNo As System.Windows.Forms.Label
    Friend WithEvents lblDescription As System.Windows.Forms.Label
    Friend WithEvents lblTeacherName As System.Windows.Forms.Label
    Friend WithEvents lblStuBasisNo As System.Windows.Forms.Label
    Friend WithEvents gbxStuBasisContData As System.Windows.Forms.GroupBox
    Friend WithEvents txtStuBasisNo As Infragistics.Win.UltraWinEditors.UltraTextEditor
    Friend WithEvents txtTeacherName As Infragistics.Win.UltraWinEditors.UltraTextEditor
    Friend WithEvents txtTelNo As Infragistics.Win.UltraWinEditors.UltraTextEditor
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Dim Appearance1 As Infragistics.Win.Appearance = New Infragistics.Win.Appearance()
        Me.gbxStuBasisContData = New System.Windows.Forms.GroupBox()
        Me.lblTelNo = New System.Windows.Forms.Label()
        Me.txtDescription = New System.Windows.Forms.RichTextBox()
        Me.lblDescription = New System.Windows.Forms.Label()
        Me.lblStuBasisNo = New System.Windows.Forms.Label()
        Me.lblTeacherName = New System.Windows.Forms.Label()
        Me.txtStuBasisNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
        Me.txtTeacherName = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
        Me.txtTelNo = New Infragistics.Win.UltraWinEditors.UltraTextEditor()
        CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).BeginInit()
        Me.gbxStuBasisContData.SuspendLayout()
        CType(Me.txtStuBasisNo, System.ComponentModel.ISupportInitialize).BeginInit()
        CType(Me.txtTeacherName, 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)
        '
        'gbxStuBasisContData
        '
        Me.gbxStuBasisContData.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.gbxStuBasisContData.Controls.Add(Me.lblTelNo)
        Me.gbxStuBasisContData.Controls.Add(Me.txtDescription)
        Me.gbxStuBasisContData.Controls.Add(Me.lblDescription)
        Me.gbxStuBasisContData.Controls.Add(Me.lblStuBasisNo)
        Me.gbxStuBasisContData.Controls.Add(Me.lblTeacherName)
        Me.gbxStuBasisContData.Controls.Add(Me.txtStuBasisNo)
        Me.gbxStuBasisContData.Controls.Add(Me.txtTeacherName)
        Me.gbxStuBasisContData.Controls.Add(Me.txtTelNo)
        Me.gbxStuBasisContData.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.gbxStuBasisContData.Location = New System.Drawing.Point(15, 8)
        Me.gbxStuBasisContData.Name = "gbxStuBasisContData"
        Me.gbxStuBasisContData.Size = New System.Drawing.Size(469, 306)
        Me.gbxStuBasisContData.TabIndex = 0
        Me.gbxStuBasisContData.TabStop = False
        Me.gbxStuBasisContData.Text = "ENT StuBasis Contactor Data"
        '
        '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, 138)
        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(28, 138)
        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
        '
        'lblStuBasisNo
        '
        Me.lblStuBasisNo.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.lblStuBasisNo.Location = New System.Drawing.Point(14, 29)
        Me.lblStuBasisNo.Name = "lblStuBasisNo"
        Me.lblStuBasisNo.Size = New System.Drawing.Size(96, 14)
        Me.lblStuBasisNo.TabIndex = 0
        Me.lblStuBasisNo.Text = "StuBasis No"
        Me.lblStuBasisNo.TextAlign = System.Drawing.ContentAlignment.TopRight
        '
        'lblTeacherName
        '
        Me.lblTeacherName.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.lblTeacherName.Location = New System.Drawing.Point(24, 59)
        Me.lblTeacherName.Name = "lblTeacherName"
        Me.lblTeacherName.Size = New System.Drawing.Size(86, 14)
        Me.lblTeacherName.TabIndex = 2
        Me.lblTeacherName.Text = "Teacher Name"
        Me.lblTeacherName.TextAlign = System.Drawing.ContentAlignment.TopRight
        '
        'txtStuBasisNo
        '
        Me.txtStuBasisNo.Location = New System.Drawing.Point(120, 24)
        Me.txtStuBasisNo.Name = "txtStuBasisNo"
        Me.txtStuBasisNo.ReadOnly = True
        Me.txtStuBasisNo.Size = New System.Drawing.Size(114, 22)
        Me.txtStuBasisNo.TabIndex = 1
        Me.txtStuBasisNo.TabStop = False
        '
        'txtTeacherName
        '
        Appearance1.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
        Me.txtTeacherName.Appearance = Appearance1
        Me.txtTeacherName.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
        Me.txtTeacherName.Location = New System.Drawing.Point(120, 56)
        Me.txtTeacherName.Name = "txtTeacherName"
        Me.txtTeacherName.Size = New System.Drawing.Size(160, 22)
        Me.txtTeacherName.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
        '
        'frmStuBasisContDef
        '
        Me.ClientSize = New System.Drawing.Size(496, 446)
        Me.Controls.Add(Me.gbxStuBasisContData)
        Me.Font = New System.Drawing.Font("Times New Roman", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.Name = "frmStuBasisContDef"
        Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
        Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
        Me.Text = "ENT StuBasis 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.gbxStuBasisContData, 0)
        CType(Me.gbxBasisData, System.ComponentModel.ISupportInitialize).EndInit()
        Me.gbxStuBasisContData.ResumeLayout(False)
        Me.gbxStuBasisContData.PerformLayout()
        CType(Me.txtStuBasisNo, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.txtTeacherName, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.txtTelNo, System.ComponentModel.ISupportInitialize).EndInit()
        Me.ResumeLayout(False)

    End Sub

#End Region

    Private Sub frmStuBasisContDef_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
            txtStuBasisNo.Text = EditDataRow.Item("StuBasisNo").ToString
            txtTeacherName.Text = EditDataRow.Item("ContactorName").ToString
            txtTelNo.Text = EditDataRow.Item("TelNo").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
            txtStuBasisNo.Text = StuBasisNo
            SetCreateDate(Now)
            SetCreator(gUserNo)
        ElseIf DefMode = 1 Then   'Edit
            txtTeacherName.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 frmStuBasisContDef_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
        If DefMode = 0 Or DefMode = 2 Then
            txtTeacherName.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
            txtTeacherName.Focus()
        Else
            txtTelNo.Focus()
        End If

        btnApplyEnabled = False
        Cursor.Current = Cursors.Default

    End Sub

#Region "Control KeyPress"

    Private Sub txtStuBasisNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtStuBasisNo.Click
        txtStuBasisNo.SelectAll()
    End Sub

    Private Sub txtStuBasisNo_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtStuBasisNo.Enter
        txtStuBasisNo.SelectAll()
    End Sub

    Private Sub txtStuBasisNo_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtStuBasisNo.KeyPress
        If e.KeyChar = Convert.ToChar(13) Then
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtStuBasisNo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtStuBasisNo.TextChanged
        btnApplyEnabled = True
    End Sub

    Private Sub txtContactorName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTeacherName.Click
        txtTeacherName.SelectAll()
    End Sub

    Private Sub txtContactorName_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTeacherName.Enter
        txtTeacherName.SelectAll()
    End Sub

    Private Sub txtContactorName_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTeacherName.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
    'xtContactorName.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 txtTeacherName.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_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 txtFaxNo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
        btnApplyEnabled = True
    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 txtAddress_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 txtAddress_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
        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 txtStuBasisNo.Text = "" Then
            iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200001", "[%StuBasisNo%]"), MsgBoxStyle.Exclamation, Me.Text)
            txtStuBasisNo.Focus()
            Exit Function
        End If
        If txtTeacherName.Text = "" Then
            iMESExceptionManager.ExceptionManager.iMESMsgBoxShowDialog(ChgTranslateName_Msg("0000-200001", "[%TeacherName%]"), MsgBoxStyle.Exclamation, Me.Text)
            txtTeacherName.Focus()
            Exit Function
        End If

        '******************************************************************************
        '2.寫回資料庫()
        '******************************************************************************
        Dim XmlDoc As New XmlDocument

        Try
            strIdentity = CombineXMLIdentity(gComputerName, gUserNo, GetNow())
            strParameter = CombineXMLParameter("stubasisno", "StuBasisNo", "String", CInput(txtStuBasisNo.Text), "")
            strParameter = strParameter & CombineXMLParameter("teachername", "teachername", "String", CInput(txtTeacherName.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.AddStuBasisCont(InXml)
                OutXml = InvokeSrv("SXS.ws_21685.AddStuBasisCont", InXml)

            Else 'Edit
                ' 增加Datastamp
                strParameter += CombineXMLParameter("datastamp", "Datastamp", "Integer", intDataStamp, "")
                InXml = CombineXMLRequest(strIdentity, strParameter)
                ' 2016 YF, OutXml = wsENT.EditStuBasisCont(InXml)
                OutXml = InvokeSrv("SXS.ws_21685.EditStuBasisCont", InXml)

            End If

            XmlDoc.LoadXml(OutXml)
            If ChkExecutionSuccess(XmlDoc) Then
                gReturnKeyValue = txtTeacherName.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 StuBasis Contactor Failed!," & e1.Message, MsgBoxStyle.Exclamation)
            ExceptionManager.iMESShowDialog(defWinErrCode, ex.Message, ex.StackTrace)
        End Try

        XmlDoc = Nothing

    End Function
#End Region


    Private Sub frmStuBasisContDef_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

