Foxtable(狐表)用户栏目专家坐堂 → 专业报表打印问题


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

主题:专业报表打印问题

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


加好友 发短信
等级:婴狐 帖子:63 积分:678 威望:0 精华:0 注册:2013/6/30 19:56:00
专业报表打印问题  发帖心情 Post By:2014/5/9 22:00:00 [只看该作者]

Dim drc As New PrintDoc
Dim rt As New prt.RenderText
rt.DataBinding.DataSource = BindTables("临时表") '将rt绑定到临时表
rt.Text= "[Fields!商品名称.Value] [Fields!销售价格.Value] [Fields!数量.Value]" '设置打印字段
drc.body.Children.Add(rt)
drc.Print() '打印

怎样设置上面“临时表”打印的位置 比如 x,y值呢

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


加好友 发短信
等级:婴狐 帖子:63 积分:678 威望:0 精华:0 注册:2013/6/30 19:56:00
  发帖心情 Post By:2014/5/9 22:47:00 [只看该作者]

表格与绑定

行组也可以设置绑定,这样我们可以很方便地将一个表格绑定到数据表。
例如,打印订单表中的某些列,代码非常简单:

Dim doc As New PrintDoc
Dim
 rt As New prt.RenderTable
Dim
 tb as Table = Tables("订单")
Dim
 ColNames As String() = New String(){"产品", "客户","单价""数量", "金额"}
For c As integer = 0 To ColNames.Length -1
    rt.Cells(0,c).Text = ColNames(c
    
rt.Cols(c).Width = tb.Cols(ColNames(c)).PrintWidth 
    
rt.Cells(1c).Text = "[Fields!" & ColNames(c) & ".Value]" '设置绑定表达式
Next

rt.RowGroups(
0,1).Style.TextAlignVert = prt.AlignVertEnum.Center '第一行内容垂直居中
rt.RowGroups(
0,1).Header = prt.TableHeaderEnum.All '将第一行作为表头。
rt.RowGroups(
1,1).DataBinding.DataSource = BindTables("订单"'将第二行绑定到订单表
doc.Body.Children.Add(rt)
doc.Preview()

注意这一行代码:

rt.RowGroups(1,1).DataBinding.DataSource = BindTables("订单"'将第二行绑定到订单表

该行代码将表格的第二行绑定到订单表,这样第二行将根据订单表中的每一行数据,自动生成副本,完成整个表格的打印。



这个表打印是从X=0,Y=0 开始的 怎样才能自定义打印位置呢 比如y=50


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


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

设置rt的相关属性就是了

请参照以下:

位置与尺寸

在之前所有的例子中,对象都是按顺序加入到报表中的,只能通过调整排列方式以及相互间隔,来间接影响对象的位置。
有的时候,我们会需要精确定位,例如单据套打。
精确定位的实现很简单,先指定对象的坐标位置,然后再加入到报表中即可。

示例

Dim doc As New PrintDoc() '定义一个报表
Dim
rt As prt.RenderText '定义一个文本对象
For
i AS integer = 1 To 5
    rt = New prt.RenderText()
'创建文本对象
    rt.Text =
"Hello Foxtable " & i '设置文本对象的内容
    rt.Width =
"Auto" '自动设置宽度
    rt.X = i *
10 + 20 '指定水平位置
    rt.y = i *
10 + 20 '指定垂直位置

    rt.Style.Borders.All = New prt.Linedef(0.3, Color.Red)
'设置边框
    doc.Body.Children.Add(rt)
'将文本对象加入到报表
Next

doc.Preview()
'预览


 回到顶部