Imports System.Data.SqlClient
Imports System.Data

#Region "IBogartToolbar,請勿隨便更改"


Interface IBogartToolbar
    Sub j_menuPrint()
    Sub j_LoadData()
    'Sub j_setToolsBar() 
    Sub j_ChangeRecord()
    Sub j_AddRow()
    Sub j_EditRow()
    Property EnabledPrint() As Boolean
    Sub SetToolsControl(ByVal g As myDataGrid.myDatagrid)
    Property CurrentGrid() As myDataGrid.myDatagrid
End Interface
#End Region

Module DataAccess

#Region "資料庫常用方法"
    Public SystemBackColor As Color = Color.FromArgb(190, 190, 215)
    Public SystemBackColor2003 As Color = Color.FromArgb(179, 206, 247)
    Public SystemBackColorMenu As Color = Color.FromArgb(246, 246, 246)

    Public Function ExectueSQL(ByVal strSQL As String, ByVal objConn As OleDb.OleDbConnection) As DataSet
        Dim ds As New DataSet
        Dim dap As New OleDb.OleDbDataAdapter
        Try
            dap = New OleDb.OleDbDataAdapter(strSQL, objConn)
            dap.Fill(ds)
        Catch ex As Exception
            MsgBox(ex.ToString())
        Finally
            dap.Dispose()
        End Try
        Return ds
    End Function
    Public Function ExectueSQL(ByVal strSQL As String, ByVal objConn As SqlClient.SqlConnection) As DataSet
        Dim ds As New DataSet
        Dim dap As New SqlClient.SqlDataAdapter
        Try
            dap = New SqlClient.SqlDataAdapter(strSQL, objConn)
            dap.Fill(ds)
        Catch ex As Exception
            MsgBox(ex.ToString())
        Finally
            dap.Dispose()
        End Try
        Return ds
    End Function
    Public Function ExectueSQL(ByVal SqlCmd As SqlClient.SqlCommand) As DataSet
        Dim ds As New DataSet
        Dim dap As New SqlClient.SqlDataAdapter
        Try
            dap = New SqlClient.SqlDataAdapter(SqlCmd)
            dap.Fill(ds)
        Catch ex As Exception
            MsgBox(ex.ToString())
        Finally
            dap.Dispose()
        End Try
        Return ds
    End Function
    Public Function ExectueSQL(ByVal SqlCmd As OleDb.OleDbCommand) As DataSet
        Dim ds As New DataSet
        Dim dap As New OleDb.OleDbDataAdapter
        Try
            dap = New OleDb.OleDbDataAdapter(SqlCmd)
            dap.Fill(ds)
        Catch ex As Exception
            MsgBox(ex.ToString())
        Finally
            dap.Dispose()
        End Try
        Return ds
    End Function

    Public Function ExectueCmdAS400(ByVal strSQL As String, ByVal objConn As OleDb.OleDbConnection) As Boolean
        Dim ret As Boolean = False
        Try
            Dim retCount As Integer = ExectueCmd(strSQL, objConn)
            ret = IIf(retCount >= 0, True, False)
        Catch ex As Exception
            MsgBox("ExectueCmd " & vbCrLf & ex.ToString())
            ret = False
        End Try
        Return ret
    End Function

    Public Function ExectueCmd(ByVal strSQL As String, ByVal objConn As OleDb.OleDbConnection) As Integer
        Dim cmd As OleDb.OleDbCommand
        Dim ret As Integer = 0
        Try
            cmd = New OleDb.OleDbCommand(strSQL, objConn)
            cmd.CommandType = CommandType.Text
            ret = cmd.ExecuteNonQuery()
        Catch ex As Exception
            MsgBox("ExectueCmd:" & ex.ToString() & vbCrLf & strSQL)
            ret = -1
        Finally
            cmd.Dispose()
        End Try
        Return ret
    End Function
    Public Function ExectueCmd(ByVal strSQL As String, ByVal objConn As SqlClient.SqlConnection) As Integer
        Dim cmd As SqlClient.SqlCommand
        Dim ret As Integer
        If objConn.State = ConnectionState.Closed Then
            OpenConn(objConn)
        End If
        Try
            cmd = New SqlClient.SqlCommand(strSQL, objConn)
            ret = cmd.ExecuteNonQuery()
        Catch ex As Exception
            ret = -1
        Finally
            cmd.Dispose()
        End Try
        Return ret
    End Function
    Public Function ExectueCmd(ByVal SqlCmd As SqlClient.SqlCommand) As Integer
        Dim ret As Integer = -1
        Try
            ret = SqlCmd.ExecuteNonQuery()
        Catch ex As Exception
            ret = -1
        Finally
            SqlCmd.Dispose()
        End Try
        Return ret
    End Function

    Public Function ExectueCmd(ByVal SqlCmd As OleDb.OleDbCommand) As Integer
        Dim ret As Integer = -1
        Try
            ret = SqlCmd.ExecuteNonQuery()
        Catch ex As Exception
            ret = -1
        Finally
            SqlCmd.Dispose()
        End Try
        Return ret
    End Function

    Public Function CDecs(ByVal strValue As String) As Decimal
        If strValue.Trim() = "" Then
            Return 0
        Else
            Return CDec(strValue)
        End If
    End Function

    Public Function IsALL(ByVal strValue As String) As String
        strValue = strValue.Trim()
        If strValue = "" Then
            Return "All"
        Else
            Return strValue
        End If
    End Function
#End Region '請勿隨便更改

#Region "讀取Logo的方法"

    ''' <summary>
    '''     添加公用報表Logo方法
    ''' </summary>
    ''' <param name="ds" type="Data.DataSet"> 包含 Logo(Table) 的DataSet </param>
    ''' <param name="AliasName" type="String">可選參數,資料庫字段的別名,默認:CompanyLogo,不區分大小寫.</param>
    Public Sub GetLogo(ByRef ds As DataSet, Optional ByVal AliasName As String = "CompanyLogo")
        Try
            Dim dt As DataTable = GetLogo(AliasName)
            ds.Tables.Add(dt)
            ds.AcceptChanges()
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub

    ''' <summary>
    '''     添加公用報表Logo函數
    ''' </summary>
    ''' <param name="AliasName" type="String">可選參數,資料庫字段的別名,默認:CompanyLogo,不區分大小寫.</param>
    ''' <param name="tabName" type="String">可選參數,返回 Logo的表的名稱,默認:Logo,分大小寫.</param>
    ''' <returns> A System.Data.DataTable value </returns>
    Public Function GetLogo(Optional ByVal AliasName As String = "CompanyLogo", Optional ByVal tabName As String = "Logo") As DataTable
        Try
            Dim strSQL As String = ""
            Dim strCompanyCode As String = ""
            If tabName.Trim = "" Then
                tabName = "Logo"
            End If

            If AliasName.Trim = "" Then
                AliasName = "companylogo"
            End If
            Select Case g.gLocation
                Case LocationType.CHINA_SHENZHEN
                    strCompanyCode = "SHS"
                Case LocationType.THAILAND
                    strCompanyCode = "Thailand"
                Case LocationType.HONGKONG
                    strCompanyCode = "AFT"
                Case LocationType.BRUNE
                    strCompanyCode = "Brunet"
                Case Else
                    strCompanyCode = "Bogart"
            End Select
            Dim dt As DataTable = GetLogo(strCompanyCode, AliasName, tabName)
            Return dt.Copy
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Function
    ''' <summary>
    '''     添加公用報表Logo函數
    ''' </summary>
    ''' <param name="strCompanyCode" type="String">公司編號,即:Logo的編號</param>  
    ''' <param name="AliasName" type="String">資料庫字段的別名,不區分大小寫.</param>
    ''' <param name="tabName" type="String"> 返回 Logo的表的名稱,分大小寫.</param>
    ''' <returns> A System.Data.DataTable value </returns>
    Public Function GetLogo(ByVal strCompanyCode As String, _
                              ByVal AliasName As String, _
                              ByVal tabName As String) As DataTable
        Try
            Dim strSQL As String = ""
            Dim dt As DataTable = Nothing
            If tabName.Trim = "" And AliasName.Trim = "" Then
                Return dt
            End If
            If AliasName.ToLower = "companylogo" Then
                strSQL = "select CompanyLogo  from CompanyProfile where CompanyCode='" & strCompanyCode & "'"
            Else
                strSQL = "select CompanyLogo as " & AliasName & "  from CompanyProfile where CompanyCode='" & strCompanyCode & "'"
            End If
            dt = DataAccess.ExectueSQL(strSQL, SqlConnect).Tables(0)
            dt.TableName = tabName
            Return dt.Copy
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Function
#End Region '請勿隨便更改

    Public tmp_PHFRMT As DataTable

    Public Sub SetCheckBox(ByVal MyGrid As myDataGrid.myDatagrid, ByVal strColName As String)
        strColName = strColName.Trim
        If strColName = "" Then
            Exit Sub
        End If
        Dim items As C1.Win.C1TrueDBGrid.ValueItems = MyGrid.Columns(strColName).ValueItems

        With items
            ' we're going to translate values - the datasource needs to hold at least 3 states
            .Translate = True
            ' each click will cycle thru the various checkbox states
            .CycleOnClick = True
            .Presentation = C1.Win.C1TrueDBGrid.PresentationEnum.CheckBox
            ' now associate underlying db values with the checked state
            .Values.Clear()
            .Values.Add(New C1.Win.C1TrueDBGrid.ValueItem("0", False)) ' unchecked
            .Values.Add(New C1.Win.C1TrueDBGrid.ValueItem("1", True)) ' checked
            ''.Values.Add(New C1.Win.C1TrueDBGrid.ValueItem("2", "INDETERMINATE")) ' indeterminate state
        End With
    End Sub

    ''' <summary>
    ''' 返回本地IP
    ''' </summary> 
    Public Function IPAdress() As String
        Return System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName()).AddressList(0).ToString().Trim()
    End Function

    Public Function ToDataTable(ByVal MyGrid As myDataGrid.myDatagrid) As DataTable
        Dim ObjDataTable As DataTable
        Try
            If TypeOf (MyGrid.DataSource) Is DataView Then
                Dim obDataView As DataView = CType(MyGrid.DataSource, DataView)
                ObjDataTable = obDataView.Table.Clone()
                Dim idx As Integer = 0
                Dim strColNames(ObjDataTable.Columns.Count) As String
                For Each col As DataColumn In ObjDataTable.Columns
                    strColNames(idx) = col.ColumnName
                    idx += 1
                Next
                Dim IEnrator As IEnumerator = obDataView.GetEnumerator()
                While IEnrator.MoveNext()
                    Dim drv As DataRowView = CType(IEnrator.Current, DataRowView)
                    Dim dr As DataRow = ObjDataTable.NewRow
                    Try
                        For Each strName As String In strColNames
                            dr(strName) = drv(strName)
                        Next
                    Catch ex As Exception
                        Console.WriteLine(ex.Message)
                    End Try
                    ObjDataTable.Rows.Add(dr)
                End While
            ElseIf TypeOf (MyGrid.DataSource) Is DataTable Then
                ObjDataTable = CType(MyGrid.DataSource, DataTable)
            End If
        Catch oE As System.Exception
            ObjDataTable = Nothing
            ErrorMsg.Show(oE)
        End Try
        Return ObjDataTable
    End Function
    ''' <summary>
    '''     返回一個字符串
    ''' </summary>
    ''' <param name="o" type="Object"> </param>
    ''' <returns> A System.String value </returns>
    Public Function Trims(ByVal o As Object) As String
        If TypeOf (o) Is DBNull Then
            Return ""
        Else
            Return Convert.ToString(o).Trim()
        End If
    End Function

End Module

 

posted on 2013-10-14 14:50  vinsonLu  阅读(197)  评论(0编辑  收藏  举报