Foxtable(狐表)用户栏目专家坐堂 → [分享] 专业报表设计巧用rows.Count


  共有20926人关注过本帖树形打印复制链接

主题:[分享] 专业报表设计巧用rows.Count

帅哥哟,离线,有人找我吗?
程兴刚
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
[分享] 专业报表设计巧用rows.Count  发帖心情 Post By:2011/1/3 0:48:00 [显示全部帖子]

专业报表中,设计时很多狐友都在引用行或单元格时,都直接指定行数,比如:rt.cells(0,0)rt.rows(0),由于专业报表设计过程就像贺老师说的“就像堆积木一样 ”,当您在设计时,需要在前面的某一位置插入一行,或者增加一个分组行,或者后来想嵌套更多层次的分组行,那么,这种直接以树枝形式引用行位置的地方都必须一个一个进行修改,某些时候容易出错,调试也麻烦,在这里介绍一个巧用rows.Count解决的办法,这样您可以在设计的时候从任意位置插入行,而不需要修改其他代码:

'''
Dim doc As New PrintDoc() '定义一个报表
'doc.PageSetting.Width = 210 '纸张宽度为210毫米
'doc.PageSetting.Height = 120 '纸张高度为120毫米
'doc.AutoRotate = False '禁止自动旋转打印内容
'doc.PageSetting.Landscape = True '横向打印
Doc.PageSetting.LeftMargin = 25 '设置左边距
Doc.PageSetting.RightMargin = 15 '设置右边距
Doc.PageSetting.TopMargin = 0 '设置上边距
Doc.PageSetting.BottomMargin = 0 '设置下边距
Dim rt As New prt.RenderTable() '定义一个表格对象
rt.Style.GridLines.All = New prt.LineDef '将网格线类型设为默认类型
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '垂直居中
rt.Style.Spacing.Top = 4 '表格和前面对象的垂直间隔为4毫米
rt.Style.Spacing.Bottom = 10 '表和和后续对象的垂直间隔为10毫米
rt.Style.Spacing.All = 1 报表所有网格线为1mm
rt.y = "20mm"
rt.Style.GridLines.All = New Prt.LineDef(0.5,Color.Black)
rt.Style.GridLines.Horz = new Prt.LineDef(Color.Black)
rt.Style.GridLines.Vert = new Prt.LineDef(Color.Black)
rt.Rows.Count = 1 '设置行数,需要注意的是,新增报表总行数设置为1行
rt.Cols.Count = 7 '设置列数,列数根据您的需要
rt.cells(rt.Rows.Count-1,0).Text ="北京燕化集资建房幸福新村1#楼工程班组结算单",因为总行数为1行,所以首次设置内容的时候,
引用行位置为rt.Rows.Count-1

rt.Rows(rt.Rows.Count-1).Height = 13 & "mm" ‘设置首行高度为13mm
rt.Rows(rt.Rows.Count-1).Style.GridLines.All = new Prt.LineDef(0,Color.Black) ’设置首行所有网格线为0——无网格线
rt.rows(rt.Rows.Count-1).Style.Font = New Font("隶书", 18,FontStyle.bold) '设置文本对象的字体
rt.Cells(rt.Rows.Count-1,0).SpanCols = 7 '第1行第所有单元格为一个完整单元格。

rt.cells(rt.Rows.Count,0).Text = "部门或姓名:" & e.Form.Controls("ComboBox1").Value & "结算清单"

    '关键在于上面这一行,这里设置内容引用行位置的时候,直接rt.Rows.Count,这样专业报表也就自动增加了1行,因为引用位置没有减一,也就是抓住了专业报表设置内容自动增加行的特性。
rt.Cells(rt.Rows.Count-1,0).SpanCols = 7 '第2行第1个单元格向右合并7列,

    '而到了这里,直接给最后行设置内容而不需要增加行,所以在这里必须减1,所以引用行位置因为rt.Rows.Count-1,再往下面的代码我就不需要解释,大家只需要区别需要增加行时,引用行位置的为rt.Rows.Count,不需要增加行的时候为rt.Rows.Count-1,这样您在设计报表的过程中您可以从任意位置插入行,也可以从任意位置嵌套多级分组统计行,您只需要在插入相应代码即可。

rt.rows(rt.Rows.Count-1).Style.Font = New Font("黑体",12) '设置文本对象的字体
rt.Rows(rt.Rows.Count-1).Height = 6 & "mm"
rt.rows(rt.Rows.Count-1).Style.TextAlignHorz = prt.AlignHorzEnum.left '水平居左
rt.Rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0,Color.Black)
rt.Rows(rt.Rows.Count-1).Style.GridLines.Right =new Prt.LineDef(0,Color.Black)
rt.cells(rt.Rows.Count,0).Text = "序号"
rt.cells(rt.Rows.Count-1,1).Text = "凭证号"
rt.cells(rt.Rows.Count-1,2).Text = "附件编号"
rt.cells(rt.Rows.Count-1,3).Text = "摘  要"
rt.cells(rt.Rows.Count-1,4).Text = "金  额"
rt.cells(rt.Rows.Count-1,5).Text = "日  期"
rt.cells(rt.Rows.Count-1,6).Text = "备  注"
rt.Rows(rt.Rows.Count-1).Height = 12 & "mm"
rt.rows(rt.Rows.Count-1).Style.Font = New Font("宋体", 12,FontStyle.bold) '设置文本对象的字体
rt.Rows(rt.Rows.Count-1).Style.BackColor = Color.LightGray '第一行背景颜色设为灰色.
rt.rows(rt.Rows.Count-1).Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中
rt.RowGroups(0,3).Header = prt.TableHeaderEnum.All '将前三行作为表头.
rt.Cols(0).Width = 12 & "mm"
rt.Cols(1).Width = 35 & "mm"
rt.Cols(2).Width = 16 & "mm"
rt.Cols(3).Width = 60 & "mm"
rt.Cols(4).Width = 40 & "mm"
rt.Cols(5).Width = 30 & "mm"
rt.Cols(6).Width = 20 & "mm"
rt.cells(rt.Rows.Count,0).text = "一、应付金额大写:" & CUMoney(DataTables("成本明细帐").Compute("Sum(金额)", "科目 = '应付款' and 部门或单位 = '" & e.Form.Controls("ComboBox1").Value & "'")) & "(小写:"  & format(DataTables("成本明细帐").Compute("Sum(金额)", "科目 = '应付款' and 部门或单位 = '" & e.Form.Controls("ComboBox1").Value & "'"),"0.00") & "元)"
rt.rows(rt.Rows.Count-1).Style.TextAlignHorz = prt.AlignHorzEnum.left '水平居左
rt.Cells(rt.Rows.Count-1,0).SpanCols = 7 '第4行第1个单元格向右合并7列
rt.rows(rt.Rows.Count-1).Style.Font = New Font("宋体", 12,FontStyle.bold) '设置文本对象的字体
rt.Rows(rt.Rows.Count-1).Height = 12 & "mm"
Dim drs As List(Of DataRow)
drs = DataTables("成本明细帐").Select("科目 = '应付款' and 部门或单位 = '" & e.Form.Controls("ComboBox1").Value & "'")
For i As Integer = 0 To drs.Count-1
    rt.cells(rt.Rows.Count,0).text = Format(i+1,"00")
    rt.cells(rt.Rows.Count-1,1).text = drs(i)("凭证号")
    rt.cells(rt.Rows.Count-1,2).text = drs(i)("单据编号")
    rt.cells(rt.Rows.Count-1,3).text = drs(i)("摘要")
    rt.cells(rt.Rows.Count-1,4).text = format(drs(i)("金额"),"0.00")
    rt.cells(rt.Rows.Count-1,5).text = drs(i)("日期")
    rt.cells(rt.Rows.Count-1,6).text = drs(i)("备注")
    rt.Rows(rt.Rows.Count-1).Height = 8 & "mm"
    rt.cells(rt.Rows.Count-1,3).Style.TextAlignHorz = prt.AlignHorzEnum.left '水平居左
    rt.cells(rt.Rows.Count-1,4).Style.TextAlignHorz = prt.AlignHorzEnum.Right  '水平靠右
Next
rt.cells(rt.Rows.Count,0).text = "二、已付金额大写:" & CUMoney(DataTables("成本明细帐").Compute("Sum(金额)", "科目 = '已付款' and 部门或单位 = '" & e.Form.Controls("ComboBox1").Value & "'")) & "(小写:"  & format(DataTables("成本明细帐").Compute("Sum(金额)", "科目 = '已付款' and 部门或单位 = '" & e.Form.Controls("ComboBox1").Value & "'"),"0.00") & "元)"
rt.Cells(rt.Rows.Count-1,0).SpanCols = 7 '第N行第1个单元格向右合并7列,到这里我也不知道是多少行,代码自动根据前面的筛选结果和添加的行来决定位置,只知道截止当前为最后一行。
rt.rows(rt.Rows.Count-1).Style.TextAlignHorz = prt.AlignHorzEnum.left '水平居左
rt.rows(rt.Rows.Count-1).Style.Font = New Font("宋体", 12,FontStyle.bold) '设置文本对象的字体
rt.Rows(rt.Rows.Count-1).Height = 10 & "mm"
drs = DataTables("成本明细帐").Select("科目 = '已付款' and 部门或单位 = '" & e.Form.Controls("ComboBox1").Value & "'")
For i As Integer = 0 To drs.Count-1
    rt.cells(rt.Rows.Count,0).text = Format(i+1,"00")
    rt.cells(rt.Rows.Count-1,1).text = drs(i)("凭证号")
    rt.cells(rt.Rows.Count-1,2).text = drs(i)("单据编号")
    rt.cells(rt.Rows.Count-1,3).text = drs(i)("摘要")
    rt.cells(rt.Rows.Count-1,4).text = format(drs(i)("金额"),"0.00")
    rt.cells(rt.Rows.Count-1,5).text = drs(i)("日期")
    rt.cells(rt.Rows.Count-1,6).text = drs(i)("备注")
    rt.Rows(rt.Rows.Count-1).Height = 8 & "mm"
    rt.cells(rt.Rows.Count-1,3).Style.TextAlignHorz = prt.AlignHorzEnum.left '水平居左
    rt.cells(rt.Rows.Count-1,4).Style.TextAlignHorz = prt.AlignHorzEnum.Right  '水平靠右
Next
Dim y As Integer = DataTables("成本明细帐").Compute("Sum(金额)", "科目 = '应付款' and 部门或单位 = '" & e.Form.Controls("ComboBox1").Value & "'") - DataTables("成本明细帐").Compute("Sum(金额)", "科目 = '已付款' and 部门或单位 = '" & e.Form.Controls("ComboBox1").Value & "'")
If y > 0
    rt.cells(rt.Rows.Count,0).text = "三、应结余额大写:" & CUMoney(y) & "(小写:"  & format(y,"0.00") & "元)"
Else
    rt.cells(rt.Rows.Count,0).text = "三、应结余额大写:负" & CUMoney( Math.Abs(y)) & "(小写:"  & format(y,"0.00") & "元)"
    rt.cells(rt.Rows.Count-1,0).Style.BackColor = Color.red
End If
rt.Cells(rt.Rows.Count-1,0).SpanCols = 7 '第N行第0个单元格向右合并7列,这里同样只知道为最后一行

rt.rows(rt.Rows.Count-1).Style.TextAlignHorz = prt.AlignHorzEnum.left '水平居左
rt.rows(rt.Rows.Count-1).Style.Font = New Font("宋体", 12,FontStyle.bold) '设置文本对象的字体
rt.Rows(rt.Rows.Count-1).Height = 10 & "mm"
rt.cells(rt.Rows.Count,0).text =  "备注"
rt.rows(rt.Rows.Count-1).Style.Font = New Font("宋体", 12,FontStyle.bold) '设置文本对象的字体
rt.Cells(rt.Rows.Count-1,1).SpanCols = 6 '第2行第2个单元格向右合并3列
rt.Rows(rt.Rows.Count-1).Height = 20 & "mm"
rt.cells(rt.Rows.Count,0).text =  "      审  核:         记  帐:          经手人:            年    月    日"
rt.rows(rt.Rows.Count-1).Style.Font = New Font("宋体", 12,FontStyle.bold) '设置文本对象的字体
rt.Cells(rt.Rows.Count-1,0).SpanCols = 7 '第N行第0个单元格向右合并7列,这里同样只知道为最后一行
rt.Rows(rt.Rows.Count-1).Style.GridLines.All = new Prt.LineDef(0,Color.Black)
rt.Rows(rt.Rows.Count-1).Style.GridLines.top = new Prt.LineDef(0.5,Color.Black)
rt.Rows(rt.Rows.Count-1).Height = 15 & "mm"
doc.Body.Children.Add(rt) '将表格对象加入到报表中
Doc.Preview() '预览报表

[此贴子已经被作者于2014-5-15 0:14:27编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/1/3 1:19:00 [显示全部帖子]

1楼代码生成的结果预览:

 

 


图片点击可在新窗口打开查看此主题相关图片如下:1_page1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2_page1.png
图片点击可在新窗口打开查看

 

 

 

也许大家还有更好的方法,仅供相互借鉴!


[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/1/4 22:48:00 [显示全部帖子]

惭愧!

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/2/3 0:27:00 [显示全部帖子]

顶一下,愿对那些喜欢专业报表的朋友有所帮助!


 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/4/22 21:34:00 [显示全部帖子]

这个很简单的,明天给您代码!

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/4/23 1:04:00 [显示全部帖子]

专业报表用习惯了其实很简单,很多时候可以用它来代替临时表,只要您的基础数据权限设置好了不被篡改,随时生成即可,暂时给您几个带图标的报表截图:

 


图片点击可在新窗口打开查看此主题相关图片如下:未命名3.jpg
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:未命名2.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:未命名1.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/4/23 20:47:00 [显示全部帖子]

这是专业报表截图:

 
图片点击可在新窗口打开查看此主题相关图片如下:未命名5.jpg
图片点击可在新窗口打开查看
 

这是代码:

 

If Tables("员工").Current IsNot Nothing
    Dim dr As DataRow = Tables("员工").Current.DataRow
    Dim doc As New PrintDoc() '定义一个报表
    doc.AutoRotate = False '禁止自动旋转打印内容
    doc.PageSetting.Height = "175mm" ' 纸张高度为93毫米
    doc.PageSetting.Width = "120mm" ' '纸张宽度为248毫米
    doc.PageSetting.Landscape = True '横向打印
    Doc.PageSetting.LeftMargin = 15'设置左边距
    Doc.PageSetting.RightMargin = 15 '设置右边距
    Doc.PageSetting.TopMargin = 10 '设置上边距
    Doc.PageSetting.BottomMargin = 10 '设置下边距
    '-----------------------------------------------------------------
    Dim rt As New prt.RenderTable() '定义一个表格对象
    rt.Style.GridLines.All = New prt.LineDef '将网格线类型设为默认类型
    rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '文字默认水平居中
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center '文字默认垂直居中
    rt.Style.Spacing.Top = 4 '表格和前面对象的垂直间隔为4毫米
    rt.Style.Spacing.Bottom = 3 '表和和后续对象的垂直间隔为3毫米
    rt.Style.Spacing.All = 1
    rt.CellStyle.Spacing.All = 0.5 '单元格内距设为0.5毫米
    rt.Style.GridLines.All = New Prt.LineDef(0.6,Color.Gray)
    rt.Width =150
    '-----------------------------------------------------------------
    rt.Rows.Count = 1 '设置行数
    rt.Cols.Count = 11 '设置列数
    rt.Cols(0).Width = "35mm"
    rt.Cols(1).Width = "50mm"
    rt.Cols(2).Width = "35mm"
    rt.Cols(3).Width = "55mm"
    rt.Cols(4).Width = "20mm"
    rt.Cols(5).Width = "20mm"
    rt.Cols(6).Width = "20mm"
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,0).Text = "员工资料卡"
    rt.Cells(rt.Rows.Count-1,0).SpanCols = 7 '向右合并列
    rt.Rows(rt.Rows.Count-1).Height = "8mm"
    rt.Rows(rt.Rows.Count-1).Style.GridLines.All = new Prt.LineDef(0,Color.Black)
    rt.rows(rt.Rows.Count-1).Style.Font = New Font("宋体", 16,FontStyle.Bold) '设置字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count,4).Text = "编号:"
    rt.Cells(rt.Rows.Count-1,4).SpanCols = 2
    rt.Rows(rt.Rows.Count-1).Height = "6mm"
    rt.cells(rt.Rows.Count-1,4).Style.TextAlignHorz = prt.AlignHorzEnum.right '水平靠右
    rt.rows(rt.Rows.Count-1).Style.GridLines.All = new Prt.LineDef(0,Color.Black)
    rt.Cells(rt.Rows.Count-1,4).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,6).Text = right("000" & dr("编号"),3)
    rt.cells(rt.Rows.Count-1,6).Style.TextAlignHorz = prt.AlignHorzEnum.left '水平靠右
    rt.Cells(rt.Rows.Count-1,6).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count,0).Text = "姓名"
    rt.Rows(rt.Rows.Count-1).Height = "8mm"
    rt.rows(rt.Rows.Count-1).Style.GridLines.top = new Prt.LineDef(0.6,Color.Black)
    rt.rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0.6,Color.Black)
    rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,1).Text = dr("姓名")
    rt.Cells(rt.Rows.Count-1,1).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,2).Text = "出生日期"
    rt.Cells(rt.Rows.Count-1,2).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,3).Text = format(dr("出生日期"),"yyyy年mm月dd日")
    rt.Cells(rt.Rows.Count-1,3).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count,0).Text = "部门"
    rt.Rows(rt.Rows.Count-1).Height = "8mm"
    rt.rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0.6,Color.Black)
    rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,1).Text = dr("部门")
    rt.Cells(rt.Rows.Count-1,1).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,2).Text = "雇佣日期"
    rt.Cells(rt.Rows.Count-1,2).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,3).Text = format(dr("雇佣日期"),"yyyy年mm月dd日")
    rt.Cells(rt.Rows.Count-1,3).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count,0).Text = "性别"
    rt.Rows(rt.Rows.Count-1).Height = "8mm"
    rt.rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0.6,Color.Black)
    rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,1).Text = dr("性别")
    rt.Cells(rt.Rows.Count-1,1).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,2).Text = "职务"
    rt.Cells(rt.Rows.Count-1,2).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,3).Text = dr("职务")
    rt.Cells(rt.Rows.Count-1,3).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count,0).Text = "地址"
    rt.Rows(rt.Rows.Count-1).Height = "8mm"
    rt.rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0.6,Color.Black)
    rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,1).Text = dr("地址")
    rt.Cells(rt.Rows.Count-1,1).SpanCols = 3
    rt.cells(rt.Rows.Count-1,1).Style.TextAlignHorz = prt.AlignHorzEnum.left
    rt.Cells(rt.Rows.Count-1,1).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count,0).Text = "家庭电话"
    rt.Rows(rt.Rows.Count-1).Height = "8mm"
    rt.rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0.6,Color.Black)
    rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,1).Text = dr("家庭电话")
    rt.Cells(rt.Rows.Count-1,1).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,2).Text = "办公电话"
    rt.Cells(rt.Rows.Count-1,2).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,3).Text = dr("办公电话")
    rt.Cells(rt.Rows.Count-1,3).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.Rows(rt.Rows.Count).Height = "30mm"
    rt.Cells(rt.Rows.Count-1,0).SpanCols = 7
    rt.cells(rt.Rows.Count-1,4).Style.TextAlignHorz = prt.AlignHorzEnum.left '水平靠右
    rt.rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0.6,Color.Black)
    rt.rows(rt.Rows.Count-1).Style.GridLines.Bottom = new Prt.LineDef(0.6,Color.Black)
    rt.rows(rt.Rows.Count-1).Style.GridLines.right = new Prt.LineDef(0.6,Color.Black)
    '-----------------------------------------------------------------
    rt.Cells(rt.Rows.Count-6,4).SpanCols = 3
    rt.Cells(rt.Rows.Count-6,4).Spanrows = 5
    rt.Cells(rt.Rows.Count-6,4).CellStyle.Spacing.All = 0 '单元格内距设为0.5毫米
   
    rt.Cells(rt.Rows.Count-6,4).Style.GridLines.right = new Prt.LineDef(0.6,Color.Black)
    '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    Dim ra As prt.RenderArea
    Dim rm As New prt.RenderImage
    ra = rt.Cells(rt.Rows.Count-6,4).Area
    rm = New prt.RenderImage
    rm.Image =  GetImage(dr("照片"))
    rm.Height = 43
    ra.Children.Add(rm)
     doc.Body.Children.Add(rt) '将表格对象加入到报表中
    Doc.Preview() '预览报表
End If

 

 

说明:之所以在最后给多留了2列,用代码来合并,目的是突出合并示例!

[此贴子已经被作者于2013-4-23 21:09:36编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/4/23 20:53:00 [显示全部帖子]

再附上文件:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目17.zip

 

至此,完成了我对您的承诺!

[此贴子已经被作者于2013-4-23 20:54:08编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2022/1/6 16:49:00 [显示全部帖子]

发错位置了!
[此贴子已经被作者于2022/1/6 16:50:45编辑过]

 回到顶部