Foxtable(狐表)用户栏目专家坐堂 → 专业报表表头的问题(如何连续打印)


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

主题:专业报表表头的问题(如何连续打印)

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


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2014/1/2 21:35:00 [只看该作者]

第一个表整体放在页眉中,第二个表的第一行设置为行组:

http://www.foxtable.com/help/topics/1215.htm

 


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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2014/1/2 21:56:00 [只看该作者]

但我将前一个表设置好后将设定为页眉,为什么就提示出错?

 


图片点击可在新窗口打开查看此主题相关图片如下:360截图20140102215051822.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2014/1/2 21:57:00 [只看该作者]

你把它作为页眉,就不能加入到body账,红色方框的上一行代码要删除之

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2014/1/2 22:19:00 [只看该作者]

谢谢,出错的问题解决了,但为什么用绑定数据表再用另外一个表的行组设置表头和表尾后却不能实现自动分页呢,帮助中“表格与绑定”那个例子基本上一样却可以。

rt.RowGroups(0,1).Header = prt.TableHeaderEnum.All  '指定表头行
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 = 25
    rt.Cells(1,c).Text = "[Fields!" & ColNames(c) & ".Value]" '设置绑定表达式
Next
rt.RowGroups(1,1).DataBinding.DataSource = BindTables("订单.订单明细") '将第四行绑定到订单明细表
'设置表尾------------------------------------------------
rt.RowGroups(9,2).Footer = prt.TableHeaderEnum.All '指定表尾行
rt.Rows(9).Style.Borders.All = New prt.LineDef("0mm", Color.white) '去掉网格线
rt.Rows(9).Style.Borders.Top = New prt.Linedef  '恢复上方网格线
rt.Cells(9,0).Text= "备注:"
rt.Cells(9,1).SpanCols = 9
rt.Cells(9,1).Text= CurRow("备注")
rt.Rows(10).Style.Borders.All = New prt.LineDef("0mm", Color.white) '去掉网格线
rt.Cells(10,0).Text = "第[PageNo]页,共[PageCount]页"
rt.RowGroups(10,1).Style.TextAlignHorz = prt.AlignHorzEnum.Right '文本水平位置
doc.Body.Children.Add(rt) '将表格对象加入到报表中
Doc.Preview() '预览报表
[此贴子已经被作者于2014-1-2 22:19:58编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2014/1/2 22:32:00 [只看该作者]

别绑定,自己逐行添加,更灵活方便

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


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

试试这个:(相关的格式自己按需求微调)

 

Dim doc As New PrintDoc '定义一个报表
Dim Mtb As Table = Tables("订单")
Dim tb As Table = Tables("订单.订单明细")
Dim CurRow As Row = Tables("订单").Current
'设置打印纸张
doc.PageSetting.PaperKind = 9  'A4
'doc.PageSetting.Width = 210 '纸张宽度毫米
'doc.PageSetting.Height = 290 '纸张高度毫米
doc.PageSetting.Landscape = True '是否横向打印
Doc.PageSetting.LeftMargin = 10 '设置左边距
Doc.PageSetting.RightMargin = 10 '设置右边距
Doc.PageSetting.TopMargin = 8 '设置上边距
Doc.PageSetting.BottomMargin = 8 '设置下边距
Dim rt As New prt.RenderTable() '定义一个表格对象
'---------------------------------指定第一个表行数,列数,
rt.Cols.Count = 15 '设置总列数
'---------------------------------设置指定行的列宽,未指定的平分剩余宽度
Dim CW As String = "20|12|12|25|20|15|30|15|15|15|15|10"
Dim Cls As String() = CW.split("|")
For i As Integer = 0 To Cls.Length-1
    rt.Cols(i).Width = Cls(i)
Next

'设置表格总体样式
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '文本水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '文本垂直居中
rt.CellStyle.Spacing.All = 1 '单元格内容缩进1毫米
rt.Style.GridLines.All = New prt.Linedef(0.3,Color.Black) '设置网格线
rt.Style.Font = New Font("宋体", 12) '设置总体字体
'rt.SplitVertBehavior = prt.SplitBehaviorEnum.Never '禁止被垂直分割
rt.SplitHorzBehavior = prt.SplitBehaviorEnum.SplitIfNeeded '表格宽度超出页宽时,可以水平换页
'设置主标题------------------------------------------------
rt.Rows(rt.Rows.Count).Height = 12
rt.Rows(rt.Rows.Count-1).Style.Borders.All = New prt.LineDef("0mm", Color.white) '去掉网格线
rt.Cells(rt.Rows.Count-1,0).SpanCols = 15
rt.Cells(rt.Rows.Count-1,0).text = "上海五金有限公司"
rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 18, FontStyle.Bold) '设置主标题字体
'设置副标题------------------------------------------------
rt.Rows(rt.Rows.Count).Height = 12
rt.Cells(rt.Rows.Count-1,0).SpanCols = 15
rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 16, FontStyle.Bold) '设置副标题字体
rt.Rows(rt.Rows.Count-1).Style.Borders.All = New prt.LineDef("0mm", Color.white) '去掉网格线
rt.Rows(rt.Rows.Count-1).Style.Borders.Bottom = New prt.LineDef("0.3mm", Color.Black) '去掉网格线
rt.Cells(rt.Rows.Count-1,0).text = "订单"

'设置各单元格的值及样式
rt.Rows(rt.Rows.Count).Height = 9
rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 12, FontStyle.Bold)
rt.Cells(rt.Rows.Count-1,0).SpanCols = 3
rt.Cells(rt.Rows.Count-1,0).Text= "编号:" & CurRow("编号")
rt.Cells(rt.Rows.Count-1,3).SpanCols = 2
rt.Cells(rt.Rows.Count-1,3).Text= "客户:" & CurRow("客户")
rt.Cells(rt.Rows.Count-1,5).SpanCols = 3
rt.Cells(rt.Rows.Count-1,5).Text = "订单类别:" & CurRow("订单类别")
rt.Cells(rt.Rows.Count-1,8).SpanCols = 4
rt.Cells(rt.Rows.Count-1,8).Text = "制单日期:" & CurRow("制单日期")
rt.Cells(rt.Rows.Count-1,12).SpanCols = 3
rt.Cells(rt.Rows.Count-1,2).Text = "交货日期:" & iif(CurRow.IsNull("交货日期"),"",CurRow("交货日期"))
rt.Rows(rt.Rows.Count).Height = 9
rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 12, FontStyle.Bold)
rt.Cells(rt.Rows.Count-1,0).SpanCols = 3
rt.Cells(rt.Rows.Count-1,0).Text= "业务员:"
rt.Cells(rt.Rows.Count-1,3).SpanCols = 2
rt.Cells(rt.Rows.Count-1,5).SpanCols = 7
rt.Cells(rt.Rows.Count-1,12).SpanCols = 3
rt.Rows(rt.Rows.Count).Height = 9
rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 12, FontStyle.Bold)
rt.Cells(rt.Rows.Count-1,0).SpanCols = 3
rt.Cells(rt.Rows.Count-1,0).Text= "订单类别:库存订单"
rt.Cells(rt.Rows.Count-1,3).SpanCols = 4
rt.Cells(rt.Rows.Count-1,7).SpanCols = 8
'------------------------------------------------
rt.Rows(rt.Rows.Count).Height = 9
rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 12, FontStyle.Bold)
Dim ColNames As String() = New String(){"编号","品名","数量","单位","规格","备注"}
For c As Integer = 0 To ColNames.Length -1
    rt.Cells(rt.Rows.Count-1,c).Text= ColNames(c)
Next
rt.RowGroups(0,7).Header = prt.TableHeaderEnum.Page  '指定表头行
rt.Rows(rt.Rows.Count).Height = 8
rt.RowGroups(rt.Rows.Count-1,1).DataBinding.DataSource = BindTables("订单.订单明细") '将第四行绑定到订单明细表
For c As Integer = 0 To ColNames.Length -1
    If tb.Cols(c).IsNumeric OrElse tb.Cols(c).IsDate Then '如果是数值或日期列
        rt.Cols(c).Style.TextAlignHorz = prt.AlignHorzEnum.Right '数据水平靠右
    End If
    rt.Cells(rt.Rows.Count-1,c).Text = "[Fields!" & ColNames(c) & ".Value]" '设置绑定表达式
Next
'设置表尾------------------------------------------------
rt.Rows(rt.Rows.Count).Height = 6
rt.Rows(rt.Rows.Count-1).Style.Borders.All = New prt.LineDef("0mm", Color.white) '去掉网格线
rt.Rows(rt.Rows.Count-1).Style.Borders.Top = New prt.LineDef("0.3mm", Color.Black) '恢复上方网格线
rt.Cells(rt.Rows.Count-1,1).Style.Borders.left = New prt.LineDef("0mm", Color.white)
rt.Cells(rt.Rows.Count-1,0).Text= "备注:"
rt.Cells(rt.Rows.Count-1,1).SpanCols = 14
rt.Cells(rt.Rows.Count-1,1).Text= CurRow("备注")
rt.Rows(rt.Rows.Count).Height = 6
rt.Rows(rt.Rows.Count-1).Style.Borders.All = New prt.LineDef("0mm", Color.white) '去掉网格线
rt.Cells(rt.Rows.Count-1,0).SpanCols = 15
rt.Cells(rt.Rows.Count-1,0).Text = "第[PageNo]页,共[PageCount]页"
rt.RowGroups(rt.Rows.Count-1,1).Style.TextAlignHorz = prt.AlignHorzEnum.Right '文本水平位置
rt.RowGroups(rt.Rows.Count-2,2).Footer = prt.TableHeaderEnum.All '指定表尾行
doc.Body.Children.Add(rt) '将表格对象加入到报表中

Doc.Preview() '预览报表


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


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

以下是引用zpx_2012在2014-1-2 22:19:00的发言:
谢谢,出错的问题解决了,但为什么用绑定数据表再用另外一个表的行组设置表头和表尾后却不能实现自动分页呢,帮助中“表格与绑定”那个例子基本上一样却可以。

 

  记住:先绑定表,后设置绑定表达式,对比我的代码!


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


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

多看看这个,对您写专业报表代码有百利而无一害!

 

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=8954&skin=0

[此贴子已经被作者于2014-1-2 22:59:15编辑过]

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2014/1/2 23:28:00 [只看该作者]

谢谢程版!专业报表结果很漂亮,但是看起来头疼!

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2014/1/3 9:37:00 [只看该作者]

程版的方法确实方便,但请教一下如果要实现上下两行合并为一个单元格要怎么办?即如下图


图片点击可在新窗口打开查看此主题相关图片如下:360截图20140103093352864.jpg
图片点击可在新窗口打开查看

右边的备注等都是三行合并在一起的。要如何实现上下行合并?谢谢!

 回到顶部
总数 37 上一页 1 2 3 4 下一页