以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 请教一个专业报表居中打印的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=54820) |
-- 作者:蓝色理想 -- 发布时间: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()
\'预览报表
|
-- 作者:蓝色理想 -- 发布时间:2014/8/5 13:09:00 -- 1、我不能修改打印机 默认纸张设置 2、为什么要居中,是因为我要用打印机A4纸上方的小进纸口,放专用纸,不居中就会打歪
|
-- 作者:蓝色理想 -- 发布时间:2014/8/5 13:23:00 -- 查了一下以前的帖子,感觉这个问题好像无解的样子,汗。。。。。。。。。。。 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=40579&replyID=&skin=1
|
-- 作者:有点甜 -- 发布时间:2014/8/5 14:08:00 -- 什么意思,预览的时候横向即可
http://www.foxtable.com/help/topics/1190.htm
|
-- 作者:有点甜 -- 发布时间:2014/8/5 14:09:00 -- 用代码设置自定义纸张
http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=54472&skin=0
|
-- 作者:蓝色理想 -- 发布时间:2014/8/5 14:40:00 -- 本身就是横向打印 我是要打印对象水平居中
|
-- 作者:蓝色理想 -- 发布时间:2014/8/5 14:41:00 -- 自己变通解决了,解决方法供后来的朋友参考: 不要定义纸张,就用A4纸 通过设置打印对象的位置,实现手动居中的效果 |
-- 作者:蓝色理想 -- 发布时间:2014/8/5 14:42:00 -- 不得不说一句,有点甜版主真敬业,每次有人问问题都能看到他的身影 赞一个
|