Foxtable(狐表)用户栏目专家坐堂 → 同一张纸上打印两张表问题


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

主题:同一张纸上打印两张表问题

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


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
同一张纸上打印两张表问题  发帖心情 Post By:2016/6/28 8:14:00 [只看该作者]

想在同一张纸上打印两张表,类似于单据的第一、第二联,请问代码怎么写呢。我的第一联代码如下,第二联怎么写呢:

Dim doc As New PrintDoc '定义一个报表
Dim rt As New prt.RenderTable() '定义一个表格对象
Dim rx As New prt.RenderText '定义一个文本对象
Dim CurRow As Row = Tables("出差记录").Current
'加入标题
rx.text = "青铜峡市铝业学校出差通知单"
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 16 '大体大小为16磅
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
rx.Style.Spacing.Bottom = 3 '和下面的对象(表格)距离3毫米
'doc.Body.Children.Add(rx) '加入到报表中
'指定行数?列数?列宽?行高
rt.Rows.Count = 7 '设置总行数
rt.Cols.Count = 16 '设置总列数
rt.Height = 70 '设置表格的高度为80毫米
rt.Cols(0).Width = 10 '设置列的宽度,剩余的宽度被分配最后列
rt.Cols(1).Width = 10
rt.Cols(2).Width = 10
rt.Cols(3).Width = 10
rt.Cols(4).Width = 10
rt.Cols(5).Width = 10
rt.Cols(6).Width = 10
rt.Cols(7).Width = 10
rt.Cols(8).Width = 10
rt.Cols(9).Width = 10
rt.Cols(10).Width = 10
rt.Cols(11).Width = 10
rt.Cols(12).Width = 10
rt.Cols(13).Width = 10
rt.Cols(14).Width = 10
rt.Cols(15).Width = 10

'设置合并单元格
rt.Cells(0,0).SpanCols =2     '第1行第1个单元格向右合并2列
rt.Cells(0,2).SpanCols =2
rt.Cells(0,4).SpanCols =2
rt.Cells(0,6).SpanCols = 2
rt.Cells(0,8).SpanCols =2
rt.Cells(0,10).SpanCols =6

 


rt.Cells(1,0).SpanCols = 2      '第二行
rt.Cells(1,2).SpanCols =14
rt.Cells(2,0).SpanCols = 2     '第三行
rt.Cells(2,2).SpanCols = 8
rt.Cells(2,10).SpanCols = 2
rt.Cells(2,12).SpanCols =6

rt.Cells(3,0).SpanCols =2      '第四行
rt.Cells(3,2).SpanCols =14

rt.Cells(4,0).SpanCols =2      '第五行
rt.Cells(4,2).SpanCols =14

rt.Cells(4,0).SpanCols =2      '第五行
rt.Cells(4,2).SpanCols =14

rt.Cells(5,0).SpanCols =2     '第六行
rt.Cells(5,2).SpanCols =2
rt.Cells(5,4).SpanCols =2
rt.Cells(5,6).SpanCols =2     
rt.Cells(5,8).SpanCols =2
rt.Cells(5,10).SpanCols =2    
rt.Cells(5,12).SpanCols =2
rt.Cells(5,14).SpanCols =2


rt.Cells(6,0).SpanCols =2     '第七行
rt.Cells(6,2).SpanCols =3
rt.Cells(6,5).SpanCols =2     
rt.Cells(6,7).SpanCols =3
rt.Cells(6,10).SpanCols =2    
rt.Cells(6,12).SpanCols =4


'设置表格样式
rt.CellStyle.Spacing.All = 1 '单元格内容缩进1毫米
rt.Style.GridLines.All = New prt.Linedef '设置网格线
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中

 

'下面很简单,指定每一个单元格的内容
rt.Cells(0,0).Text= "编  号"
rt.Cells(0,2).Text = CurRow("编号")
rt.Cells(0,4).Text= "类  别"
rt.Cells(0,6).Text = CurRow("类别")
rt.Cells(0,8).Text= "时  限"
rt.Cells(0,10).Text = CurRow("时限")

rt.Cells(1,0).Text= "出 差 人"                   '第二行
rt.Cells(1,2).Text = CurRow("出差人")

rt.Cells(2,0).Text= "地点"                     '第三行
rt.Cells(2,2).Text = CurRow("地点")
rt.Cells(2,10).Text= "通知时间"
rt.Cells(2,12).Text = CurRow ("通知时间")

rt.Cells(3,0).Text= "依据"                     '第四行
rt.Cells(3,2).Text = CurRow("依据")

rt.Cells(4,0).Text= "要求"                     '第五行
rt.Cells(4,2).Text = CurRow("要求")

rt.Cells(5,0).Text= "天数"                     '第六行
rt.Cells(5,2).Text = CurRow("天数")
rt.Cells(5,4).Text= "交通费"
rt.Cells(5,6).Text = CurRow("交通费")
rt.Cells(5,8).Text= "伙食费"
rt.Cells(5,10).Text = CurRow("伙食费")
rt.Cells(5,12).Text= "住宿费"
rt.Cells(5,14).Text = CurRow("住宿费")

rt.Cells(6,0).Text= "负责人"                   '第七行
rt.Cells(6,5).Text ="主管领导"
rt.Cells(6,10).Text ="校长审批"
doc.Body.Children.Add(rt) '将表格对象加入到报表中


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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/6/28 8:47:00 [只看该作者]

再重复添加一个表格对象不就行了

......
doc.Body.Children.Add(rt) '第一个表格
Dim rt2 As New prt.RenderTable()
'rt2赋值代码
doc.Body.Children.Add(rt2) '第二个表格


 回到顶部
帅哥哟,离线,有人找我吗?
nxqtxwz
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By:2016/6/28 9:36:00 [只看该作者]

老师你好,谢谢你的帮助。两个表可以放在一张纸上了,但两个表之间的距离如何确定呢。我在第一个表的代码结尾加入rt.Style.Spacing.Bottom =20  ,第一张表的表格行自动变窄了。在第二个表的代码前面加上rt2.Style.Spacing.Bottom =20   后,第二个表的行变窄了,这个问题怎么解决呢。

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


加好友 发短信
等级:版主 帖子:1693 积分:12135 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2016/6/28 9:37:00 [只看该作者]

rt的代码
加上
Dim rtr As New prt.RenderTable() '定义一个表格容器,存放两个对象
rtr.Rows.Count = 3 '设置总行数,中间行用于调整间距
rtr.Cols.Count = 1 
rtr.Rows(1).Height = 20   '自己调整间距
rtr.Cells(0,0).RenderObject = rt   '加入第一张表
rtr.Cells(2,0).RenderObject = rt.Clone() '加入第二张表(拷贝第一张)
doc.Body.Children.Add(rtr) '将表格容器加入到报表中
doc.Preview()   '预览

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/28 9:40:00 [只看该作者]

以下是引用nxqtxwz在2016/6/28 9:36:00的发言:
老师你好,谢谢你的帮助。两个表可以放在一张纸上了,但两个表之间的距离如何确定呢。我在第一个表的代码结尾加入rt.Style.Spacing.Bottom =20  ,第一张表的表格行自动变窄了。在第二个表的代码前面加上rt2.Style.Spacing.Bottom =20   后,第二个表的行变窄了,这个问题怎么解决呢。

 

在两个表中加,插入一个RenderText,控制好它的高度,就行啊。


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


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By:2016/6/28 9:47:00 [只看该作者]

谢谢老师,问题解决了。


 回到顶部