⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form_5.vb

📁 通版开发平台
💻 VB
字号:
Imports System.Data.SqlClient




Public Class Form_5


    Private _form As MyErp.S_Forms
    Public Property Form() As MyErp.S_Forms
        Get
            Return _form
        End Get
        Set(ByVal value As MyErp.S_Forms)
            _form = value
        End Set
    End Property


    Sub New(ByVal form As S_Forms)
        ' 此调用是 Windows 窗体设计器所必需的。
        InitializeComponent()

        ' 在 InitializeComponent() 调用之后添加任何初始化。
        With Me
            .Width = form.Width
            .Height = form.Height
            .Text = form.Text
        End With

        Me.Form = form
        Fill_ToolItem(form)
        FillColumnHeader(form)
        FillListViewItem(form)
        Me.ListView1.Columns(0).Width = 0
        Me.ListView1.FullRowSelect = True
        Me.ListView1.View = View.Details

        Me.CboTarget.SelectedIndex = 0
    End Sub

    Sub Fill_ToolItem(ByVal form As S_Forms)
        Dim dicToolStripSplitButton As New Dictionary(Of Integer, ToolStripSplitButton)
        For Each toolItem As S_ToolItem In S.SToolItem.Values
            If toolItem.ToolID = form.ToolID Then
                Select Case toolItem.TypeID
                    Case 1
                        If toolItem.ParentID = 0 Then
                            Dim tsb As New MyToolStripButton()
                            AddHandler tsb.Click, AddressOf ToolStripButton_ButtonClick
                            tsb.toolitem = toolItem
                            tsb.Text = toolItem.Text
                            If toolItem.ImageIndex > -1 Then
                                Try
                                    tsb.Image = imageList.Images(toolItem.ImageIndex)
                                Catch ex As Exception

                                End Try

                            End If
                            tsb.Name = toolItem.Name
                            tsb.TextImageRelation = TextImageRelation.ImageAboveText
                            Me.ToolStrip1.Items.Add(tsb)
                        Else
                            Dim tssb As ToolStripSplitButton = Nothing
                            dicToolStripSplitButton.TryGetValue(toolItem.ParentID, tssb)
                            If tssb IsNot Nothing Then
                                Dim toolStripMenuItem As New MyToolStripMenuItem
                                toolStripMenuItem.ToolItem = toolItem
                                toolStripMenuItem.Text = toolItem.Text
                                tssb.DropDownItems.Add(toolStripMenuItem)
                                AddHandler toolStripMenuItem.Click, AddressOf ToolStripButton_ButtonClick
                            End If
                        End If
                    Case 4
                        Dim tssb As New MyToolStripSplitButton
                        If toolItem.ImageIndex > -1 Then
                            tssb.Image = imageList.Images(toolItem.ImageIndex)
                        End If
                        tssb.TextImageRelation = TextImageRelation.ImageAboveText
                        tssb.Text = toolItem.Text
                        tssb.Name = toolItem.Name
                        tssb.ToolItem = toolItem
                        dicToolStripSplitButton.Add(toolItem.ID, tssb)
                        Me.ToolStrip1.Items.Add(tssb)
                    Case 5
                        If toolItem.ParentID = 0 Then
                            Dim tss As New ToolStripSeparator
                            Me.ToolStrip1.Items.Add(tss)
                            tss.Name = toolItem.Name
                            'dicToolItem.Add(toolItem.ID, tss)
                        Else
                            Dim tssb As ToolStripSplitButton = Nothing
                            dicToolStripSplitButton.TryGetValue(toolItem.ParentID, tssb)
                            If tssb IsNot Nothing Then
                                tssb.DropDownItems.Add(New ToolStripSeparator)
                            End If
                        End If
                    Case 9
                        Dim tssb As ToolStripSplitButton = Nothing
                        dicToolStripSplitButton.TryGetValue(toolItem.ParentID, tssb)
                        If tssb IsNot Nothing Then
                            Dim tsmi As New MyToolStripMenuItem
                            tsmi.ToolItem = toolItem
                            tsmi.Text = toolItem.Text
                            AddHandler tsmi.Click, AddressOf ToolStripButton_ButtonClick
                            tssb.DropDownItems.Add(tsmi)
                        End If
                End Select

            End If

        Next
    End Sub



    Sub FillListViewItem(ByVal form As S_Forms)


        For Each row In getDataSource(form).Tables(0).Rows
            Dim listViewItem As ListViewItem = Me.ListView1.Items.Add(row(form.HeaderKey))

            'Dim listViewItem As New ListViewItem
            'ListView1.Items.Add(listViewItem)
            For Each column As ColumnHeader In ListView1.Columns

                If column.Name IsNot String.Empty Then
                    listViewItem.SubItems.Add(row(column.Name))
                    'If IsNumeric(row(column.Name)) Then
                    '    column.TextAlign = HorizontalAlignment.Right
                    'Else
                    '    column.TextAlign = HorizontalAlignment.Left
                    'End If
                End If
            Next
        Next




    End Sub

    Private Sub Form_5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Sub FillColumnHeader(ByVal form As S_Forms)
        For Each c As S_Component In S.SComponent.Values
            If c.FormID = form.FormID Then
                Me.ListView1.Columns.Add(c.ValueMember)
                'CboTarget.Items.Add(c.Text)
                'Dim columnHeader As New ColumnHeader
                'columnHeader.Name = c.ValueMember
                'columnHeader.Text = c.ValueMember
                'Me.ListView1.Columns.Add(columnHeader)
                For Each d As S_DisplayColumns In S.SDisplayColumns.Values
                    If d.ComponentID = c.ComponentID Then
                        Dim columnHeader As New ColumnHeader
                        ColumnHeader = New ColumnHeader
                        ColumnHeader.Text = d.Caption
                        columnHeader.Name = d.FieldName
                        ColumnHeader.Width = d.Width
                        ColumnHeader.TextAlign = HorizontalAlignment.Center
                        Me.ListView1.Columns.Add(columnHeader)
                        CboTarget.Items.Add(d.Caption)
                    End If
                Next
            End If
        Next


    End Sub

    Function getDataSource(ByVal form As S_Forms) As DataSet
        Dim ds As New DataSet

        For Each DataSource In S.SDataSource.Values
            If DataSource.FormID = form.FormID And form.HeaderName = DataSource.FcTabName Then
                Dim fcSQL As String = "Select " & DataSource.SelectedSql & " From " & DataSource.FromSql
                Dim da As New SqlDataAdapter(fcSQL, DbOperate.csb.ToString)
                da.Fill(ds)
                Return ds
            End If
        Next
        Return ds
    End Function


    Private Sub ToolStripButton_ButtonClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
        If TypeOf sender Is MyToolStripButton Then
            Dim tsb As MyToolStripButton = DirectCast(sender, MyToolStripButton)
            PostEvent(tsb.ToolItem)
        End If
        If TypeOf sender Is MyToolStripMenuItem Then
            Dim tsb As MyToolStripMenuItem = DirectCast(sender, MyToolStripMenuItem)
            PostEvent(tsb.ToolItem)
        End If


    End Sub


    Sub PostEvent(ByVal toolItem As S_ToolItem)
        Select Case toolItem.EventID
            Case 99
                Me.Close()
            Case 5
                Dim form4 As New Form_4(toolItem)
                form4.ShowDialog()
            Case Else
                MsgBox("没有为 EventID = " & toolItem.EventID.ToString & "设定动作!")
        End Select
    End Sub


    Private Sub txtTarger_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTarger.TextChanged
        If CboTarget.SelectedIndex = -1 Then
            RemoveHandler txtTarger.TextChanged, AddressOf txtTarger_TextChanged
            txtTarger.Text = String.Empty
            AddHandler txtTarger.TextChanged, AddressOf txtTarger_TextChanged
            MsgBox("请选择要查找的字段!")
            CboTarget.Focus()
            Return
        Else
            If txtTarger.Text = String.Empty Then
                Me.ListView1.Items.Clear()
                FillListViewItem(Form)
                ListView1.Refresh()
            End If
            For Each lvi As ListViewItem In Me.ListView1.Items
                If Not lvi.SubItems.Item(CboTarget.SelectedIndex + 1).Text().Contains(txtTarger.Text) Then
                    lvi.Remove()
                    ListView1.Refresh()
                End If
            Next
        End If

       
    End Sub

    Private Sub CboTarget_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CboTarget.SelectedIndexChanged
        Me.ListView1.Items.Clear()
        FillListViewItem(Form)
        If txtTarger.Text <> String.Empty Then
            For Each lvi As ListViewItem In Me.ListView1.Items
                If Not lvi.SubItems.Item(CboTarget.SelectedIndex + 1).Text().Contains(txtTarger.Text) Then
                    lvi.Remove()
                    ListView1.Refresh()
                End If
            Next
        End If
    End Sub
End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -