以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  请教一个专业报表居中打印的问题  (http://www.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() \'预览报表

 

 

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

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





--  作者:蓝色理想
--  发布时间: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
--  
不得不说一句,有点甜版主真敬业,每次有人问问题都能看到他的身影

赞一个