Foxtable(狐表)用户栏目专家坐堂 → 这个报表怎么回事呀,


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

主题:这个报表怎么回事呀,

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


加好友 发短信
等级:小狐 帖子:311 积分:2288 威望:0 精华:0 注册:2011/9/22 10:21:00
这个报表怎么回事呀,  发帖心情 Post By:2012/12/4 17:59:00 [只看该作者]

代码如下:

Dim doc As New PrintDoc '定义一个报表
Doc.Columns.Add() '增加三栏
Doc.Columns.Add()
Doc.Columns(0).Spacing = 40 '栏间距15毫米
Doc.Columns(1).Spacing = 130 '栏间距15毫米
Dim tbl As Table = Tables("jiding")
doc.PageSetting.Landscape = True '横向打印
doc.PageSetting.Width = 297 '纸张宽度为100毫米
doc.PageSetting.Height = 230 '纸张高度为120毫米
Doc.PageSetting.LeftMargin = 30 '设置左边距
Doc.PageSetting.RightMargin = 10 '设置右边距
Doc.PageSetting.TopMargin = 10 '设置上边距
Doc.PageSetting.BottomMargin =10 '设置下边距
For i As Integer = tbl.TopRow To tbl.BottomRow
    Dim rw As Row = tbl.Rows(i)
    Dim rt As New prt.RenderTable() '定义一个表格对象
    Dim rx As New prt.RenderText '定义一个文本对象
    Dim ra As New prt.RenderArea '定义一个容器
    ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never  '禁止容器因为分页而被垂直分割
    '加入标题
    rx.text = "发行公司·集订分送卡"
    rx.Style.FontBold = True '字体加粗
    rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
    rx.Style.Font = New Font("黑体", 21, FontStyle.Bold) '设置字体
    rx.Style.Spacing.Bottom = 2 '和下面的对象(表格)距离3毫米
    ra.Children.Add(rx) '加入到容器中
    '指定行数?列数?列宽?行高
    rt.Rows.Count = 6 '设置总行数
    rt.Cols.Count = 4 '设置总列数
    rt.Height = 58 '设置表格的高度
     
   '设置合并单元格
    rt.Cells(0,1).SpanCols = 3
    rt.Cells(1,1).SpanCols = 3 
    rt.Cells(5,1).SpanCols = 3 '    '设置表格样式
    rt.CellStyle.Spacing.All = 1 '单元格内容缩进1毫米
    rt.Style.Spacing.Bottom = 20 ' 和下一个资料卡的距离是5毫米
    rt.Style.GridLines.All = New prt.Linedef '设置网格线
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
     '下面很简单,指定每一个单元格的内容
    rt.Cells(0,0).Text= "户        名"
    rt.Cells(0,1).Text = rw("hum")
    rt.Cells(1,0).Text= "地        址"
    rt.Cells(1,1).Text = rw("diz")
    rt.Cells(2,0).Text= "发  piao  号"
    rt.Cells(2,1).Text =("1593552")
    rt.Cells(2,2).Text= "报纸名称"
    rt.Cells(2,3).Text = rw("baom")
    rt.Cells(3,0).Text= "起订日期"
    rt.Cells(3,1).Text = rw("qsrq")
    rt.Cells(3,2).Text= "终止日期"
    rt.Cells(3,3).Text = rw("zzrq")
    rt.Cells(4,0).Text= "份        数"
    rt.Cells(4,1).Text = rw("fens")
    rt.Cells(4,2).Text= "电        话"
    rt.Cells(4,3).Text = rw("dh")
    rt.Cells(5,0).Text= "发  行  员"
    rt.Cells(5,1).Text = rw("faby")
    rt.Style.FontSize = 11.5
    rt.Cols(0).Style.TextAlignHorz = prt.AlignHorzEnum.Center
    rt.Cols(2).Style.TextAlignHorz = prt.AlignHorzEnum.Center
    ra.Children.Add(rt) '加入到容器中
    Doc.Body.ChildRen.Add(ra) '将容器加入到报表中
Next
Doc.Preview() '预览报表

想显示的结果如下:


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

以前都能用,就是现在fa piao号码此项不能变成“1593552”


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/12/4 18:02:00 [只看该作者]

将你代码中的:

 

 rt.Cells(2,1).Text =("1593552")

 

 

改为:

 

 rt.Cells(2,1).Text = rw("fa piao号列的名称")

 


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


加好友 发短信
等级:小狐 帖子:311 积分:2288 威望:0 精华:0 注册:2011/9/22 10:21:00
  发帖心情 Post By:2012/12/4 18:05:00 [只看该作者]

不行,狐爸,这列只能只定为rt.Cells(2,1).Text =("1593552") 这个,因为不存在此列,fa piao号 “1593552”这个数字必须自己填上去,以前都能用,不知今天为什么不能用了。呵,

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/4 18:05:00 [只看该作者]

 有点奇怪,直接赋值都无法显示。

 楼主可以做一个例子上传,我们看一下是什么问题。

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


加好友 发短信
等级:小狐 帖子:311 积分:2288 威望:0 精华:0 注册:2011/9/22 10:21:00
  发帖心情 Post By:2012/12/4 18:13:00 [只看该作者]

我也说奇怪了,以前那个数字是怎么回事呀。昨天都还能用。就今天不能用,请高手们指点吧

 


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


加好友 发短信
等级:小狐 帖子:365 积分:2693 威望:0 精华:1 注册:2011/11/25 7:55:00
  发帖心情 Post By:2012/12/4 18:21:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20121204182045.png
图片点击可在新窗口打开查看
'///测试正常

Dim doc As New PrintDoc '定义一个报表
Doc.Columns.Add() '增加三栏
Doc.Columns.Add()
Doc.Columns(0).Spacing = 40 '栏间距15毫米
Doc.Columns(1).Spacing = 130 '栏间距15毫米
Dim tbl As Table = Tables("表A")
doc.PageSetting.Landscape = True '横向打印
doc.PageSetting.Width = 297 '纸张宽度为100毫米
doc.PageSetting.Height = 230 '纸张高度为120毫米
Doc.PageSetting.LeftMargin = 30 '设置左边距
Doc.PageSetting.RightMargin = 10 '设置右边距
Doc.PageSetting.TopMargin = 10 '设置上边距
Doc.PageSetting.BottomMargin =10 '设置下边距
For i As Integer = tbl.TopRow To tbl.BottomRow
    Dim rw As Row = tbl.Rows(i)
    Dim rt As New prt.RenderTable() '定义一个表格对象
    Dim rx As New prt.RenderText '定义一个文本对象
    Dim ra As New prt.RenderArea '定义一个容器
    ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never  '禁止容器因为分页而被垂直分割
    '加入标题
    rx.text = "发行公司·集订分送卡"
    rx.Style.FontBold = True '字体加粗
    rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
    rx.Style.Font = New Font("黑体", 21, FontStyle.Bold) '设置字体
    rx.Style.Spacing.Bottom = 2 '和下面的对象(表格)距离3毫米
    ra.Children.Add(rx) '加入到容器中
    '指定行数?列数?列宽?行高
    rt.Rows.Count = 6 '设置总行数
    rt.Cols.Count = 4 '设置总列数
    rt.Height = 58 '设置表格的高度
     
   '设置合并单元格
    rt.Cells(0,1).SpanCols = 3
    rt.Cells(1,1).SpanCols = 3 
    rt.Cells(5,1).SpanCols = 3 '    '设置表格样式
    rt.CellStyle.Spacing.All = 1 '单元格内容缩进1毫米
    rt.Style.Spacing.Bottom = 20 ' 和下一个资料卡的距离是5毫米
    rt.Style.GridLines.All = New prt.Linedef '设置网格线
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
     '下面很简单,指定每一个单元格的内容
    rt.Cells(0,0).Text= "户        名"
    rt.Cells(1,0).Text= "地        址"
    rt.Cells(2,0).Text= "发  piao  号"
    rt.Cells(2,1).Text =("1593552")
    rt.Cells(2,2).Text= "报纸名称"
    rt.Cells(3,0).Text= "起订日期"
    rt.Cells(3,2).Text= "终止日期"
    rt.Cells(4,0).Text= "份        数"
    rt.Cells(4,2).Text= "电        话"
    rt.Cells(5,0).Text= "发  行  员"
    rt.Style.FontSize = 11.5
    rt.Cols(0).Style.TextAlignHorz = prt.AlignHorzEnum.Center
    rt.Cols(2).Style.TextAlignHorz = prt.AlignHorzEnum.Center
    ra.Children.Add(rt) '加入到容器中
    Doc.Body.ChildRen.Add(ra) '将容器加入到报表中
Next
Doc.Preview() '预览报表

[此贴子已经被作者于2012-12-4 18:22:08编辑过]

 回到顶部