Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
lvw.StopRedraw() '暂停绘制
lvw.View = ViewMode.Details '显示模式为详细内容
lvw.GridLines = True '显示网格线
'lvw.MultiSelect = False '禁止选择多行
'lvw.Images.Clear() '清除之前的图片
Dim gps() As String = {"bA","bB","bC"} '定义分组名称
Dim cls() As String = {"项目名称","规格","成份或质地","克重","门幅","单位","单耗","单价","金额","供应商"} '指定要显示的各列
Dim wds() As Integer = {120,100,100,45,45,40,50,60,70,100} '定义列宽
For i As Integer = 0 To cls.Length - 1
Dim c As WinForm.ListViewColumn = lvw.Columns.Add()
c.Name = cls(i) '指定列名
c.Text = cls(i)'指定列标题
c.Width = wds(i) '指定列宽
Next
For Each gp As String In gps
Dim vg As WinForm.ListViewGroup = lvw.Groups.Add() '增加分组
vg.Name = gp '指定分组名称
vg.Text = gp '指定分组标题
Next
For Each dr As DataRow In DataTables("表A").DataRows '从数据表中提取数据
Dim vr As WinForm.ListViewRow = lvw.Rows.Add() '增加一行
Dim s As String
For i As Integer = 0 To Tables("表A").Cols.Count - 1
Dim hmc As String
hmc = Tables("表A").Cols(i).Name
s = s & vbcrlf & hmc & ":" & dr(hmc)
Next
vr.ToolTipText = s.trim()
For Each cl As String In cls '逐列取值
vr("项目名称") = dr("面料名称")
vr("规格") = dr("规格")
vr("成份或质地") = dr("成份")
If dr.IsNull("克重") Then
vr("克重") = ""
Else
vr("克重") = dr("克重")
End If
If dr.IsNull("门幅") Then
vr("门幅") = ""
Else
vr("门幅") = dr("门幅")
End If
vr("单位") = dr("计量单位")
If dr.IsNull("单耗") Then
vr("单耗") = ""
Else
vr("单耗") = dr("单耗")
End If
If dr.IsNull("单价") Then
vr("单价") = ""
Else
vr("单价") = Format(dr("单价"),"n")
End If
If dr.IsNull("金额") Then
vr("金额") = ""
Else
vr("金额") = Format(Round2(dr("金额"),2),"n")
End If
vr("供应商") = dr("供应商")
vr.Group = "bA"
Next
Next
For Each dr As DataRow In DataTables("表B").DataRows '从数据表中提取数据
Dim vr As WinForm.ListViewRow = lvw.Rows.Add() '增加一行
Dim s As String
For i As Integer = 0 To Tables("表B").Cols.Count - 1
Dim hmc As String
hmc = Tables("表B").Cols(i).Name
s = s & vbcrlf & hmc & ":" & dr(hmc)
Next
vr.ToolTipText = s.trim()
For Each cl As String In cls '逐列取值
vr("项目名称") = dr("辅料名称")
vr("规格") = dr("规格")
vr("成份或质地") = dr("辅料质地")
If dr.IsNull("克重") Then
vr("克重") = ""
Else
vr("克重") = dr("克重")
End If
If dr.IsNull("门幅") Then
vr("门幅") = ""
Else
vr("门幅") = dr("门幅")
End If
vr("单位") = dr("计量单位")
If dr.IsNull("单耗") Then
vr("单耗") = ""
Else
vr("单耗") = dr("单耗")
End If
If dr.IsNull("单价") Then
vr("单价") = ""
Else
vr("单价") = Format(dr("单价"),"n")
End If
If dr.IsNull("金额") Then
vr("金额") = ""
Else
vr("金额") = Format(Round2(dr("金额"),2),"n")
End If
vr("供应商") = dr("供应商")
vr.Group = "bB"
Next
Next
For Each dr As DataRow In DataTables("涤式").DataRows '从数据表中提取数据
Dim vr As WinForm.ListViewRow = lvw.Rows.Add() '增加一行
Dim s As String
For i As Integer = 0 To Tables("涤式").Cols.Count - 1
Dim hmc As String
hmc = Tables("涤式").Cols(i).Name
s = s & vbcrlf & hmc & ":" & dr(hmc)
Next
vr.ToolTipText = s.trim()
For Each cl As String In cls '逐列取值
vr("项目名称") = dr("二次加工名称")
vr("规格") = ""
vr("成份或质地") = ""
vr("克重") = ""
vr("门幅") = ""
vr("单位") = dr("计量单位")
vr("单耗") = dr("数量")
If dr.IsNull("单价") Then
vr("单价") = ""
Else
vr("单价") = Format(dr("单价"),"n")
End If
If dr.IsNull("金额") Then
vr("金额") = ""
Else
vr("金额") = Format(Round2(dr("金额"),2),"n")
End If
vr("供应商") = dr("供应商")
vr.Group = "bC"
Next
Next
lvw.ResumeRedraw() '恢复绘制