Foxtable(狐表)用户栏目专家坐堂 → 老大 出手 一个专业报表的 纸张问题


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

主题:老大 出手 一个专业报表的 纸张问题

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


加好友 发短信
等级:三尾狐 帖子:760 积分:4714 威望:0 精华:0 注册:2011/12/17 18:37:00
老大 出手 一个专业报表的 纸张问题  发帖心情 Post By:2013/4/22 22:16:00 [只看该作者]

 Dim doc As New PrintDoc
Dim rt As New prt.RenderTable '定义一个新表格
Dim tb As Table = Tables( "出库.出库明细" )
Dim ColNames As New List(Of String)
Dim rs As New prt.RenderText()
rt.Width = "Parent.Width"
rt.Style.Spacing.Top = 21 '表格和前面对象的垂直间隔为4毫米
rs.Text = "xxxxxxxxxx公司出库单"
rs.Style.Font = New Font("微软雅黑",15)
rs.Style.TextAlignHorz = prt.AlignHorzEnum.Center '文本内容水平居中
doc.Body.Children.Add(rs)
rs= New prt.RenderText()
rt.Width = "Parent.Width"
rt.Style.Spacing.Top = 6 '表格和前面对象的垂直间隔为4毫米
rs.Text = "xxxxxxxxxxxx"
rs.Style.Font = New Font("微软雅黑",10)
rs.Style.TextAlignHorz = prt.AlignHorzEnum.Center '文本内容水平居中
doc.Body.Children.Add(rs) '将文本对象加入到表格中

For Each cl As Col In tb.Cols '排除隐藏列
    Select Case cl.Name
        Case "商品代码","商品名称","商品类别","出库用途","规格","数量","单价","单位","金额","备注"
            ' If cl.Visible Then
            ColNames.Add(cl.Name)
            'End If
    End Select
Next
rt.Width ="Auto"
rt.CanSplitHorz = True
rt.Style.Font = tb.Font
For c As Integer = 0 To ColNames.Count - 1
    rt.Cells(0,c).Text = ColNames(c)
    rt.Cells(0,c).Style.TextAlignHorz = prt.AlignHorzEnum.Center
    rt.Cols(c).Width = tb.Cols(ColNames(c)).PrintWidth
    rt.Cols(c).Style.TextAlignHorz =prt.AlignHorzEnum.Center
    rt.Cols(c).Style.TextAlignVert =prt.AlignVertEnum.Center
    For r As Integer = 0 To tb.Rows.Count -1
        rt.Cells(r + 1, c).Text = tb.Rows(r)(ColNames(c))
    Next
Next
rt.Rows.Count = rt.Rows.Count + 1
Dim cnt As Integer = rt.Rows.Count - 1
rt.Cells(cnt,0).Text = "总计"
For c As Integer = 0 To ColNames.Count - 1
    If tb.Cols(ColNames(c)).IsNumeric Then
        rt.Cells(cnt,c).Text = tb.Compute("Sum(" & ColNames(c) & ")")
    End If
Next
rt.Style.Gridlines.All = New prt.Linedef(Color.LightGray) ' 网格线
doc.Body.Children.Add(rt)doc.PageSetting.Landscape = True '打印方向
Doc.PageSetting.LeftMargin = 10 '设置左边距
Doc.PageSetting.RightMargin = 10  '设置右边距
Doc.PageSetting.TopMargin = 10  '设置上边距
Doc.PageSetting.BottomMargin = 10   '设置下边距
doc.PageSetting.Width = 270
doc.PageSetting.Height = 120     这边的纸张大小等于 打印区域的大小  帮我写下代码   
doc.Preview()


老大,红字部分帮帮忙 纠结了很多天了.
[此贴子已经被作者于2013-4-22 22:31:33编辑过]

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


加好友 发短信
等级:三尾狐 帖子:760 积分:4714 威望:0 精华:0 注册:2011/12/17 18:37:00
  发帖心情 Post By:2013/4/22 22:22:00 [只看该作者]

宽度可以固定 因为是针式打印机

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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2013/4/22 22:28:00 [只看该作者]

提供个思路:计算出各个对象的高度 +上边距+下边距

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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2013/4/22 22:34:00 [只看该作者]

其实Doc应该有个变量:返回加入报表内容的总高度!

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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2013/4/22 22:35:00 [只看该作者]

其实Doc应该有个变量:返回加入报表内容的总高度!

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


加好友 发短信
等级:三尾狐 帖子:760 积分:4714 威望:0 精华:0 注册:2011/12/17 18:37:00
  发帖心情 Post By:2013/4/22 22:36:00 [只看该作者]

老大 就这个代码 你帮我写一个尺寸 看看 

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


加好友 发短信
等级:三尾狐 帖子:760 积分:4714 威望:0 精华:0 注册:2011/12/17 18:37:00
  发帖心情 Post By:2013/4/22 22:45:00 [只看该作者]

百度没找到这个变量.能否提供一个

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40556 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/4/22 23:49:00 [只看该作者]

doc.PageSetting.Width = rt.Width + 20
doc.PageSetting.Height = rt.Height +20    

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


加好友 发短信
等级:二尾狐 帖子:504 积分:3492 威望:0 精华:3 注册:2012/11/13 15:49:00
  发帖心情 Post By:2013/4/23 1:00:00 [只看该作者]

doc.PageSetting.Height = rt.rows.count * 7 + 2*3.5                + 20 + 10

                                       表格行数                 标题行和总计行      页边   标题高度

 

是想要这样的结果?

 


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2013/4/23 7:09:00 [只看该作者]

程老大  

rt.Width + 20   rt.Width  是不能当数值型用的.  这个我昨日测试过了.
[此贴子已经被作者于2013-4-23 7:12:56编辑过]

 回到顶部
总数 14 1 2 下一页