以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 专业报表 表格的网格线问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=151171)

--  作者:晨曦396
--  发布时间:2020/6/17 8:57:00
--  [求助] 专业报表 表格的网格线问题

图片点击可在新窗口打开查看此主题相关图片如下:{cacb05cc-dfe1-41e4-9d89-0ca60c8cc080}_20200617085807.jpg
图片点击可在新窗口打开查看
  网格线显示可以按照单元格,行设置是否显示,如果想按照选定的区域进行设置,代码应该是怎么样的,比如由两个单元格定位产生了一个区域(如截图所示),只能一行或按照单元格设置吗?
[此贴子已经被作者于2020/6/17 8:58:31编辑过]

--  作者:有点蓝
--  发布时间:2020/6/17 9:18:00
--  
按照单元格设置,如:

Dim doc As New PrintDoc \'定义一个报表
Dim rt As New prt.RenderTable() \'定义一个表格对象
doc.Body.Children.Add(rt) \'将表格对象加入到报表中
rt.Style.GridLines.All = New prt.Linedef \'设置网格线
\'下面的代码向表格中填入值
For r As Integer = 0 To 5
    For c As Integer = 0 To 5
        Dim rx As New prt.RenderText \'定义一个文本对象
        rx.Text = r & "," & c \'为文本对象设置内容
        rt.Cells(r, c).RenderObject = rx \'将文本对象放置在单元格中
        If r = 1 AndAlso c >=1 AndAlso c<=3 Then
            rt.Cells(r, c).Style.Borders.Top = New prt.LineDef("1", Color.Red)
        End If
        If r >= 1 AndAlso c =1 AndAlso r<=3 Then
            rt.Cells(r, c).Style.Borders.left = New prt.LineDef("1", Color.Red)
        End If
        If r = 3 AndAlso c >=1 AndAlso c<=3 Then
            rt.Cells(r, c).Style.Borders.Bottom = New prt.LineDef("1", Color.Red)
        End If
        If r >= 1 AndAlso c =3 AndAlso r<=3 Then
            rt.Cells(r, c).Style.Borders.Right = New prt.LineDef("1", Color.Red)
        End If
    Next
Next
doc.Preview() \'预览报表