ITPub博客

首页 > 数据库 > 数据库开发技术 > 巧用Table控件制作复合表头的报表

巧用Table控件制作复合表头的报表

原创 数据库开发技术 作者:cxck 时间:2007-06-27 17:46:14 0 删除 编辑
使用.NET的Table控件能灵活地定制各种合并行列的报表。[@more@]

    项目要求实现一个比较复杂的报表,下面的代码定制了这个报表,并且能显示指定的图像。
    注: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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    38
  • 访问量
    74699