Foxtable(狐表)用户栏目专家坐堂 → 请教一个专业报表居中打印的问题


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

主题:请教一个专业报表居中打印的问题

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


加好友 发短信
等级:二尾狐 帖子:561 积分:4284 威望:0 精华:0 注册:2014/6/12 19:15:00
请教一个专业报表居中打印的问题  发帖心情 Post By:2014/8/5 13:08:00 [显示全部帖子]

自定义了一个审批单,见  图片1


打印的时候不居中,打印结果见图片2 (在A4纸的打印结果)


我想让他居中打印,效果见图片3


请问如何弄?


代码如下:

'''

'看起来有点麻烦,不过如果我们将主标题和副标题作为表头的一部分,那么问题迎刃而解,你可以在命令窗口测试下面的代码:

 

Dim doc As New PrintDoc  '定义一个报表

doc.PageSetting.Width = 261  '设置纸张长宽

doc.PageSetting.Height = 121

Doc.PageSetting.BottomMargin = 0 '设置页边距

doc.AutoRotate = False '禁止自动旋转打印内容

 

Dim rt As New prt.RenderTable() '定义一个表格对象

rt.X = 10  '表格左部位置

rt.Y = 10 '表格上部位置

rt.Width=240 '设置表格总宽度

doc.Body.Children.Add(rt) '将表格对象加入到报表中

rt.Style.GridLines.All = New prt.Linedef  '设置网格线

rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '所有文本内容水平居中对齐

rt.Style.TextAlignVert = prt.AlignHorzEnum.Center '所有文本内容垂直居中对齐

 

 

rt.CellStyle.Spacing.All = 1 '内容距离网格线1毫米

'设置主标题

rt.Cells(0,0).text = "新疆缔森地产开发有限公司资金支付审批单"

rt.Cells(0,0).SpanCols = 8 '合并第一行全部单元格,用于显示主标题

rt.Cells(0,0).Style.TextAlignHorz = prt.AlignHorzEnum.Center '主标题居中

rt.Cells(0,0).Style.Font = New Font("宋体", 16, FontStyle.Bold) '设置主标题字体

rt.Rows(0).Style.Borders.All = New prt.LineDef("0mm", Color.white) '去掉第一行的网格线

'设置副标题

rt.Cells(1,0).text = Format(Date.Today,"yyyy年MM月dd日")    '"2014年7月22日" '通过左边空格数量来调整副标题位置

rt.Cells(1,0).SpanCols = 8 '合并地二行全部单元格,用于显示副标题

rt.Cells(1,0).Style.TextAlignHorz = prt.AlignHorzEnum.Center '副标题内容居中

rt.Rows(1).Style.Borders.All = New prt.LineDef("0mm", Color.white) '去掉第二行的网格线

rt.Rows(1).Style.Borders.Bottom = New prt.Linedef  '恢复第二行底端的网格线

rt.Rows(1).Height = 8 '设置第二行的高度,拉开和表格主体的距离.

'设置列标题

 

'rt.cells(2,0).SpanCols = 3  '合并第一行前三个单元格

'rt.Cells(2,3).SpanCols = 3  '合并第一行最后三个单元格

rt.cells(2,0).Text = "支 付 要 求"  '设置第一行第一个单元格的内容

rt.cells(3,0).SpanRows = 8 '向下合并8

rt.Cells(3,0).Text = "1、报销凭证为会计档案的总要组成部分,保存15年以上,请仔细粘贴,务使牢固,便于翻阅。" _

& vbcrlf &  "2、按从上到下,从左至右的顺序粘贴。" _

& vbcrlf & "3、审批权限人必须按照财务支出审批制度规定的权限范围签批,出纳有权拒绝办理。" _

& vbcrlf & "4、出纳办完资金支付时,要在借款金额栏加盖现金付讫印章。" _

& vbcrlf & "5、要求书写清晰,不使用艺术字体。"

rt.Cells(3,0).Style.TextAlignHorz = prt.AlignHorzEnum.Left  '左对齐

rt.Cells(3,0).Style.TextAlignVert =prt.AlignVertEnum.Top '上对齐

 

rt.cells(2,1).Text = "部门"

rt.cells(2,2).SpanCols=2

rt.cells(2,4).Text = "经办人"

rt.cells(2,6).Text = "按审核权限签章"

rt.cells(2,6).SpanCols=2

 

 

 

rt.Cells(3,1).Text ="报销金额"

rt.cells(3,2).SpanCols=2

rt.cells(3,2).Text = CUMoney(Tables("资金计划表").Current("审批金额"))

rt.cells(3,2).Style.TextAlignHorz =prt.AlignHorzEnum.Left

rt.Cells(3,4).Text ="小写:"

rt.Cells(3,5).Text =  "¥" & Tables("资金计划表").Current("审批金额")*10000

rt.Cells(3,5).Style.TextAlignHorz = prt.AlignHorzEnum.Left

 

rt.Cells(3,6).Text ="部门审核"

rt.Cells(4,6).Text ="会计稽核"

rt.Cells(5,6).Text ="财务经理"

rt.Cells(6,6).Text ="财务总监"

rt.Cells(7,6).Text ="分管财务" & vbcrlf & "副总经理"

rt.Cells(8,6).Text ="总 经 理"

rt.Cells(9,6).Text ="董 事 长"

 

rt.Cells(9,1).Text ="出纳核销"

rt.cells(9,2).SpanCols=4

 

'设置中间大矩形区域

rt.cells(4,1).SpanCols=5

rt.cells(4,1).SpanRows = 5

 

'填写中间部分内容

rt.Cells(4,1).Style.TextAlignHorz =prt.AlignHorzEnum.Left

rt.Cells(4,1).Style.TextAlignVert=prt.AlignVertEnum.Top

rt.Cells(4,1).Text ="事由"  & vbcrlf _

                                        & Tables("资金计划表").Current("开发项目")  & "--"  & Tables("资金计划表").Current("开发产品")  & vbcrlf  _

                                        & Tables("资金计划表").Current("乙方")

If  Tables("资金计划表").Current.IsNull("挂靠单位") = False Then

    rt.Cells(4,1).Text = rt.Cells(4,1).Text  &  "--"Tables("资金计划表").Current("挂靠单位") &  vbcrlf

Else

 rt.Cells(4,1).Text = rt.Cells(4,1).Text  &   vbcrlf

End If

rt.Cells(4,1).Text = rt.Cells(4,1).Text & "合同约定付款比例"  & Format(Tables("资金计划表").Current("本月付款比例"),"00%")  & vbcrlf  _

                                                                &  "累计应付款"  & Tables("资金计划表").Current("应付进度款_总累计") & "万元"   & vbcrlf  _

                                                                &  "累计已付款"  & Tables("资金计划表").Current("付款累计_全部累计") & "万元"  & vbcrlf  _

                                                                &  "本次申请金额:"  & Tables("资金计划表").Current("申请金额") & "万元"  & vbcrlf  _

                                                                &  "付款后比例:" & Format(Tables("资金计划表").Current("审批金额支付后比例"),"00%")

 

 

 

 

 

For i As Integer = 2 To 9

    rt.Rows(i).Height = 10  '设置行高

Next

 

rt.Cols(0).Width =50 '设置第1列列宽  支付要求

rt.Cols(1).Width =20 '设置第2列列宽  部门

rt.Cols(2).Width =30 '设置第3列列宽

rt.Cols(4).Width =20 '设置第4列列宽  经办人

rt.Cols(5).Width =35 '设置第5列列宽

rt.Cols(6).Width =20 '设置第6列列宽  审核人

rt.Cols(7).Width =35 '设置第7列列宽

 

Doc.Preview() '预览报表

 

 

 
此主题相关图片如下:图像 1.jpg
按此在新窗口浏览图片
此主题相关图片如下:图像 2.jpg
按此在新窗口浏览图片

此主题相关图片如下:图像 3.png
按此在新窗口浏览图片





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


加好友 发短信
等级:二尾狐 帖子:561 积分:4284 威望:0 精华:0 注册:2014/6/12 19:15:00
  发帖心情 Post By:2014/8/5 13:09:00 [显示全部帖子]

1、我不能修改打印机 默认纸张设置
2、为什么要居中,是因为我要用打印机A4纸上方的小进纸口,放专用纸,不居中就会打歪

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


加好友 发短信
等级:二尾狐 帖子:561 积分:4284 威望:0 精华:0 注册:2014/6/12 19:15:00
  发帖心情 Post By:2014/8/5 13:23:00 [显示全部帖子]

查了一下以前的帖子,感觉这个问题好像无解的样子,汗。。。。。。。。。。。

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=40579&replyID=&skin=1

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


加好友 发短信
等级:二尾狐 帖子:561 积分:4284 威望:0 精华:0 注册:2014/6/12 19:15:00
  发帖心情 Post By:2014/8/5 14:40:00 [显示全部帖子]

本身就是横向打印
我是要打印对象水平居中

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


加好友 发短信
等级:二尾狐 帖子:561 积分:4284 威望:0 精华:0 注册:2014/6/12 19:15:00
  发帖心情 Post By:2014/8/5 14:41:00 [显示全部帖子]

自己变通解决了,解决方法供后来的朋友参考:

不要定义纸张,就用A4纸
通过设置打印对象的位置,实现手动居中的效果

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


加好友 发短信
等级:二尾狐 帖子:561 积分:4284 威望:0 精华:0 注册:2014/6/12 19:15:00
  发帖心情 Post By:2014/8/5 14:42:00 [显示全部帖子]

不得不说一句,有点甜版主真敬业,每次有人问问题都能看到他的身影

赞一个

 回到顶部