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


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

主题:专业报表打印问题

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


加好友 发短信
等级:七尾狐 帖子:1765 积分:16651 威望:0 精华:0 注册:2017/6/1 23:12:00
专业报表打印问题  发帖心情 Post By:2019/11/12 16:07:00 [只看该作者]

Dim doc As New PrintDoc '定义一个新报表
Doc.PageSetting.topMargin=6
Dim rt As New prt.RenderTable '定义一个新表格
Dim rx As New prt.RenderText '定义一个文本对象

Dim tb As Table = Tables("欠款查询_table2")
Tables("欠款查询_table2").Font=New Font("宋体",13,FontStyle.Regular)
'rt.Width = "Auto" '表格宽度为自动,也就是等于各列设置宽度之和
rt.SplitHorzBehavior = prt.SplitBehaviorEnum.SplitIfNeeded '表格宽度超出页宽时,可以水平换页
rt.Style.Font = tb.Font

rx = New prt.RenderText() '创建文本对象
rx.Text = "欠 款 汇 总 表"
'rx.Width = "Auto" '自动设置宽度
'rx.Height= "Auto"
rx.Style.Font = New Font("宋体", 16, FontStyle.Bold) '设置字体
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中
doc.Body.Children.Add(rx) '将文本对象加入到报表

rx = New prt.RenderText() '创建文本对象
rx.text="欠款类型:" & e.Form.Controls("TextBox2").text
rx.x=10
rx.y=15
doc.Body.Children.Add(rx) '将文本对象加入到报表

rx = New prt.RenderText() '创建文本对象
rx.text="开始日期:" & e.Form.Controls("DateTimePicker3").value
rx.x=35
rx.y=15
doc.Body.Children.Add(rx) '将文本对象加入到报表

rx = New prt.RenderText() '创建文本对象
rx.text="结束日期:" & e.Form.Controls("DateTimePicker3").value
rx.x=70
rx.y=15
doc.Body.Children.Add(rx) '将文本对象加入到报表

rx = New prt.RenderText() '创建文本对象
If e.Form.Controls("RadioButton1").checked=True
    rx.text="付款状态:全部"
End If
If e.Form.Controls("RadioButton2").checked=True
    rx.text="付款状态:未付款"
End If
If e.Form.Controls("RadioButton3").checked=True
    rx.text="付款状态:已付款"
End If
rx.x=95
rx.y=15
doc.Body.Children.Add(rx) '将文本对象加入到报表

rx.Style.Spacing.Bottom = 30 '和下面的对象(表格)距离3
For c As Integer = 0 To tb.Cols.Count -1 '逐列设置和填入内容
    rt.Cells(0,c).Text = tb.Cols(c).Name '列名作为标题
    rt.Cells(0,c).Style.TextAlignHorz = prt.AlignHorzEnum.Center '标题内容水平居中
    rt.Cols(c).Width = tb.Cols(c).PrintWidth '列宽等于实际列宽
    If tb.Cols(c).IsNumeric OrElse tb.Cols(c).IsDate Then '如果是数值或日期列
        rt.Cols(c).Style.TextAlignHorz = prt.AlignHorzEnum.Right '数据水平靠右
    End If
    For r As Integer = 0 To tb.Rows.Count -1 '开始填入该列内容
        rt.Cells(r + 1, c).Text = tb(r,c)
    Next
Next
'rt.X = "(Parent.Width - Width) / 2 + 25.4" '25.4是Doc.PageSetting.LeftMargin的值,如果改了这个值,这里相应改改
rt.x =  CExp("(Parent.Width - Width) / 2 + {0}", doc.PageSetting.LeftMargin)
rt.Style.Gridlines.All = New prt.Linedef(Color.Gray) '灰色网格线
rt.CellStyle.Spacing.All = 0.5 '单元格内距设为0.5毫米
rt.Rows(0).Style.TextAlignHorz = prt.AlignHorzEnum.Center '第一行内容水平居中
rt.RowGroups(0,1).Header = prt.TableHeaderEnum.All '利用行组,将第一行设为表头
doc.Body.Children.Add(rt) '将表格加入到报表
doc.Preview()

rx.Style.Spacing.Bottom = 30 '和下面的对象(表格)距离3   我设置这个属性不好用,表格不向下移动



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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/12 16:51:00 [只看该作者]

rx.Style.Spacing.Bottom = 30
改为
rt.y = "Prev.Bottom + 30"

 回到顶部