首页 > 数据库 > 数据库开发技术 > 巧用Table控件制作复合表头的报表
项目要求实现一个比较复杂的报表,下面的代码定制了这个报表,并且能显示指定的图像。
注:tb是一个Table控件。
Protected WithEvents tbi As System.Web.UI.WebControls.Table
...
Sub do_set_tb()
Dim trow As TableRow
Dim tcell As TableCell
With tb
.Rows.Clear()
.Width = System.Web.UI.WebControls.Unit.Parse("2048px")
End With
trow = New TableRow '1
set_tb_cell(trow, 0, "客户号", 60, 3)
set_tb_cell(trow, 1, "商品号", 200)
set_tb_cell(trow, 2, "△", 20, 3)
set_tb_cell(trow, 3, "外观图", 80, 3)
set_tb_cell(trow, 4, " ")
set_tb_cell(trow, 5, " ", 30, 1, 33)
set_tb_cell(trow, 38, "计划", 100, 1, 3)
set_tb_row(tb, trow, 0)
trow = New TableRow '2
set_tb_cell(trow, 1, "商品名", 200)
set_tb_cell(trow, 4, "订货", 40)
set_tb_cell(trow, 5, "合计", 40, 2)
set_tb_cell(trow, 6, "截止23", 40, 2, 1, 3)
set_tb_cell(trow, 7, "5", 100, 1, 6)
set_tb_cell(trow, 13, "6", 100, 1, 22)
set_tb_cell(trow, 35, "7", 100, 1, 3)
set_tb_cell(trow, 38, "07/04~" + vbCrLf + "07/16", 80, 2, 1)
set_tb_cell(trow, 39, "07/17~" + vbCrLf + "07/30", 80, 2, 1)
set_tb_cell(trow, 40, "07/31~" + vbCrLf + "08/19", 80, 2, 1)
set_tb_row(tb, trow, 1)
trow = New TableRow '3
set_tb_cell(trow, 1, "产品号", 200)
set_tb_cell(trow, 4, "数量", 40)
set_tb_cell(trow, 7, "26")
set_tb_cell(trow, 8, "27")
set_tb_cell(trow, 9, "28")
set_tb_cell(trow, 10, "29")
set_tb_cell(trow, 11, "30")
set_tb_cell(trow, 12, "31")
set_tb_cell(trow, 13, "02")
set_tb_cell(trow, 14, "03")
set_tb_cell(trow, 15, "04")
set_tb_cell(trow, 16, "05")
set_tb_cell(trow, 17, "06")
set_tb_cell(trow, 18, "09")
set_tb_cell(trow, 19, "10")
set_tb_cell(trow, 20, "11")
set_tb_cell(trow, 21, "12")
set_tb_cell(trow, 22, "13")
set_tb_cell(trow, 23, "16")
set_tb_cell(trow, 24, "17")
set_tb_cell(trow, 25, "18")
set_tb_cell(trow, 26, "19")
set_tb_cell(trow, 27, "20")
set_tb_cell(trow, 28, "21")
set_tb_cell(trow, 29, "23")
set_tb_cell(trow, 30, "24")
set_tb_cell(trow, 31, "25")
set_tb_cell(trow, 32, "26")
set_tb_cell(trow, 33, "27")
set_tb_cell(trow, 34, "30")
set_tb_cell(trow, 35, "01")
set_tb_cell(trow, 36, "02")
set_tb_cell(trow, 37, "03")
set_tb_row(tb, trow, 2)
trow = New TableRow '4
set_tb_cell(trow, 0, "10512J", 60, 3)
set_tb_cell(trow, 1, "41514211112SF", 200)
set_tb_cell(trow, 2, "00", 20, 3)
set_tb_cell(trow, 3, "
", 80, 3)
set_tb_cell(trow, 4, "买入", 40)
set_blank_cell(trow, 5, 40)
set_tb_row(tb, trow, 3)
trow = New TableRow '5
set_tb_cell(trow, 1, "BRACKET,LH", 200)
set_tb_cell(trow, 4, "订货", 40)
set_blank_cell(trow, 5, 40)
set_tb_row(tb, trow, 4)
trow = New TableRow '6
set_tb_cell(trow, 1, "41514211112SF", 200)
set_tb_cell(trow, 4, "计划", 40)
set_blank_cell(trow, 5, 40)
set_tb_row(tb, trow, 5)
End Sub
Sub set_tb_row(ByRef tb As Table, ByVal trow As TableRow, ByVal row As Int16, Optional ByVal height As Int16 = 20)
With tb
trow.Height = System.Web.UI.WebControls.Unit.Parse(height)
.Rows().AddAt(row, trow)
End With
End Sub
Sub set_tb_cell(ByRef trow As TableRow, ByVal col As Int16, ByVal txt As String, Optional ByVal width As Int16 = 30, Optional ByVal rowspan As Int16 = 1, Optional ByVal colspan As Int16 = 1, Optional ByVal valign As Int16 = 1, Optional ByVal halign As Int16 = 1, Optional ByVal bkcolor As String = "Color.Green", Optional ByVal frcolor As String = "Color.Black")
Dim tcell As New TableCell
With trow
tcell.Text = txt
tcell.Width = System.Web.UI.WebControls.Unit.Parse(width)
tcell.VerticalAlign = valign
tcell.HorizontalAlign = halign
tcell.RowSpan = rowspan
tcell.ColumnSpan = colspan
tcell.BackColor = Color.FromName(bkcolor)
tcell.ForeColor = Color.FromName(frcolor)
.Cells().Add(tcell)
End With
End Sub
Sub set_blank_cell(ByRef trow As TableRow, ByVal col1 As Int16, ByVal col2 As Int16)
Dim tcell As TableCell
Dim i As Int16
For i = col1 To col2 Step 1
tcell = New TableCell
tcell.Text = " "
trow.Cells().Add(tcell)
Next
End Sub
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/174388/viewspace-921618/ ,如需转载,请注明出处,否则将追究法律责任。