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

📄 mdllistview.vb

📁 <Visual Basic 数据库开发实例精粹(第二版)>一书首先介绍了Visual Basic(简称VB)开发的技巧和重点技术
💻 VB
📖 第 1 页 / 共 2 页
字号:

  End Sub

  Public Sub AdjustListViewColumnWidth(ByRef lsv As TreeListView)
    Dim col As ColumnHeader
    Dim iWidth As Integer
    If lsv.Items.Count = 0 Then
      iWidth = -2
    Else
      iWidth = -1
    End If

    For Each col In lsv.Columns
      col.Width = iWidth
    Next

  End Sub


  ' 显示全部客户到列表控件
  Public Sub ListAllClients(ByRef lsv As TreeListView)
    '当TypeId = 0时,查找所有的客户
    '将查找到的客户集合添加到列表控件中
    ClientsToListView(0, lsv)

  End Sub
#End Region


  '从列表或树型图中得到一个客户对象
  Public Function GetClientFromListView(ByRef dmClient As clientMgrBusiness.ClientDataModel, ByVal lsv As TreeListView) As String
    '如果列表中没有被选择的项,则直接退出
    If lsv.SelectedItems.Count < 1 Then
      Return "未选种任何元素"
    End If

    Dim clientObj As New clientMgrBusiness.Client

    clientObj.GetClientInfo(dmClient, lsv.SelectedItems(0).Tag)

    Return ""
  End Function

#End Region

#Region "部门与Client相关的Combo函数"


  Public Function ClientTypeToCombo(ByVal iTypeId As Integer, _
                            ByRef cbo As System.Windows.Forms.ComboBox) As String
    '传入参数为客户的集合类与列表框
    Dim ErrMsg As String = ""
    Dim Ary As New ArrayList
    Dim typeObj As New clientMgrBusiness.ClientType
    'ErrMsg = typeObj.Search(Ary, iTypeId)

    '绑定到Combox,这是最常用的方法
    cbo.DataSource = Ary
    cbo.DisplayMember = "Name"
    cbo.ValueMember = "ID"

    Return ErrMsg
  End Function


  Public Sub AllClientsTypeToCombo(ByRef cbo As System.Windows.Forms.ComboBox)
    '当TypeId = 0时,查找所有的客户
    ClientTypeToCombo(0, cbo)
  End Sub

#End Region


#Region "与Warning相关的ListView操作"

  '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  '与Warning相关的操作
  '
  '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

  '按照“客户”设置ListView的显示样式
  Public Sub InitWarnListview(ByRef lsv As TreeListView)
    With lsv
      .Columns.Clear()
      '加入四个列首
      .Columns.Add("提醒客户", 80, HorizontalAlignment.Left)
      .Columns.Add("显示时间", 80, HorizontalAlignment.Left)
      .Columns.Add("提醒类型", 80, HorizontalAlignment.Left)
      .Columns.Add("提醒内容", 300, HorizontalAlignment.Left)
    End With
  End Sub

  Public Sub AddWarnToLvw(ByVal dmWarn As clientMgrBusiness.WarningDataModel, _
                          ByRef lsv As TreeListView, ByVal IsOverWrite As Boolean)
    '第三个参数如果是TRUE,则说明是更新当前已存在的某个列表项,否则是新加一个列表项
    Dim Itm As ListViewItem

    If IsOverWrite And lsv.SelectedItems.Count > 0 Then
      Itm = lsv.SelectedItems(0)
    Else
      Itm = New TreeListViewItem(dmWarn.ClientName)
      lsv.Items.Add(Itm)
      Itm.SubItems.AddRange(New String() {"", "", ""})
    End If

    With dmWarn
      Itm.SubItems(0).Text = .ClientName
      Itm.SubItems(1).Text = (.ShowDate)
      Itm.SubItems(2).Text = (.TypeName)
      Itm.SubItems(3).Text = (.Msg)
      Itm.Tag = .ID
    End With

  End Sub

  '将Warning集合显示到ListView中
  Public Sub WarningsToListview(ByVal dmWarn As clientMgrBusiness.WarningDataModel, ByRef lsv As ListView)

  End Sub

  Public Sub ListAllWarnings(ByRef lsv As TreeListView)
    Dim i As Integer
    '如果列表还未初始化,则初始化之(你可以采用其它方法判断是否初始化,这里是个笨办法)
    If lsv.Columns.Count = 0 Then InitWarnListview(lsv)
    lsv.Items.Clear() '清除当前的列表内容

    Dim ErrMsg As String
    Dim warnObj As New clientMgrBusiness.Warning
    Dim Ary As New ArrayList
    ErrMsg = warnObj.SearchAllWarnings(Ary)
    Dim dmWarn As clientMgrBusiness.WarningDataModel
    For i = 0 To Ary.Count - 1
      '将每个“客户”都加入到该列表中,调用了单独的函数,没有全部做到这
      '个函数中,为什么呢?参看AddWarnToLvw函数
      dmWarn = Ary(i)
      AddWarnToLvw(dmWarn, lsv, False)
    Next i
  End Sub

  '从列表或树型图中得到一个客户对象
  Public Function GetWarnFromListView(ByVal lst As ListView, _
              ByRef dmWarn As clientMgrBusiness.WarningDataModel) As String
    '如果列表中没有被选择的项,则直接退出
    If lst.SelectedItems.Count < 1 Then
      Return "未选种任何元素"
    End If

    Dim ErrMsg As String
    Dim warnObj As New clientMgrBusiness.Warning
    ErrMsg = warnObj.GetWarningInfo(dmWarn, lst.SelectedItems(0).Tag)

    Return ErrMsg

  End Function
#End Region

#Region "与Cooperate相关的ListView操作"


  ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  ' 与合作记录相关的列表操作
  ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  '按照“客户”设置ListView的显示样式
  Public Sub InitCooperateListview(ByRef lsv As TreeListView)
    With lsv
      .Columns.Clear()
      '加入四个列首
      .Columns.Add("合作客户", 80, HorizontalAlignment.Left)
      .Columns.Add("合作时间", 80, HorizontalAlignment.Left)
      .Columns.Add("满意度", 60, HorizontalAlignment.Left)
      .Columns.Add("合作说明", 200, HorizontalAlignment.Left)
    End With
  End Sub

  Public Sub AddCooperateToListView(ByVal dmCoop As clientMgrBusiness.CooperateDataModel, _
                              ByRef lsv As TreeListView, ByVal IsOverWrite As Boolean)
    '第三个参数如果是TRUE,则说明是更新当前已存在的某个列表项,否则是新加一个列表项
    Dim Itm As ListViewItem

    If IsOverWrite And lsv.SelectedItems.Count > 0 Then
      Itm = lsv.SelectedItems(0)
    Else
      Itm = New TreeListViewItem(dmCoop.ClientName)
      lsv.Items.Add(Itm)
      Itm.SubItems.AddRange(New String() {" ", " ", " "})
    End If

    With dmCoop
      Itm.Tag = .ID
      Itm.SubItems(0).Text = .ClientName
      Itm.SubItems(1).Text = (.CooperateDate)
      Itm.SubItems(2).Text = (.Satisfaction)
      Itm.SubItems(3).Text = (.Remark)
    End With

  End Sub

  '将客户集合显示到ListView中
  Public Sub CooperatesToListView(ByVal iClientId As Integer, ByRef lsv As TreeListView)
    Dim i As Integer
    '如果列表还未初始化,则初始化之(你可以采用其它方法判断是否初始化,这里是个笨办法)
    If lsv.Columns.Count = 0 Then InitCooperateListview(lsv)
    lsv.Items.Clear() '清除当前的列表内容

    Dim ErrMsg As String
    Dim coopObj As New clientMgrBusiness.Cooperate
    Dim Ary As New ArrayList
    ErrMsg = coopObj.Search(Ary, iClientId)
    Dim dmCoop As clientMgrBusiness.CooperateDataModel
    For i = 0 To Ary.Count - 1
      '将每个“客户”都加入到该列表中,调用了单独的函数,没有全部做到这
      '个函数中,为什么呢?参看AddCoopToLvw函数
      dmCoop = Ary(i)
      AddCooperateToListView(dmCoop, lsv, False)
    Next i
  End Sub

  Public Sub ListAllCooperates(ByRef lsv As TreeListView, Optional ByVal lngClientId As Integer = 0)

  End Sub


  '从列表中得到一个客户对象
  Public Function GetCoopFromListView(ByVal lsv As ListView, ByRef dmCoop As clientMgrBusiness.CooperateDataModel) As String
    '如果列表中没有被选择的项,则直接退出
    If lsv.SelectedItems.Count < 1 Then
      Return "未选种任何元素"
    End If

    Dim coopObj As New clientMgrBusiness.Cooperate
    Dim ErrMsg As String

    ErrMsg = coopObj.GetCooperateInfo(dmCoop, lsv.SelectedItems(0).Tag)

    Return ErrMsg

  End Function

#End Region

End Module

⌨️ 快捷键说明

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