Foxtable(狐表)用户栏目专家坐堂 → 专业报表自动换行失败


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

主题:专业报表自动换行失败

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/16 16:17:00 [显示全部帖子]

 你肯定设定了表格的单元格的行高了吧?不设置的话,肯定会全部显示的。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/17 14:55:00 [显示全部帖子]

以下是引用sky-18在2014-7-17 14:46:00的发言:

最后的"备注"列全部都显示出来了.而且行高貌似都是根据备注列内容的多少来显示的.完全不管前面各列的情况

所以一定备注列的内容较少,而前面列的内容较多时,就造成前面列的内容显示不完

 

不会,默认是按照内容自动行号的。除非你设置行高。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/17 15:29:00 [显示全部帖子]

 试试这样改一下

 

        Dim rx2 As New prt.RenderText '定义一个文本对象
        rx2 = New prt.RenderText '创建一个新的文本对象
        rx2.text = Tables("订单.订单数据").rows(i-2)("原货号") '设置文本对象的内容
        rx2.Style.Spacing.All = 1 '内容和网格线的距离为1
        rtb.Cells(i,0).RenderObject = rx2 '放置在单元格中

 

 改成


        rtb.Cells(i,0).Text = Tables("订单.订单数据").rows(i-2)("原货号")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/17 15:46:00 [显示全部帖子]

对应的单元格,都要改,如

 

rtb.Cells(i,0).Text = Tables("订单.订单数据").rows(i-2)("原货号")

rtb.Cells(i,1).Text = Tables("订单.订单数据").rows(i-2)("原面料")

rtb.Cells(i,2).Text = Tables("订单.订单数据").rows(i-2)("原颜色")

[此贴子已经被作者于2014-7-17 15:46:18编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/17 16:00:00 [显示全部帖子]

以下是引用sky-18在2014-7-17 15:57:00的发言:

本来一开始只改了一个"原颜色"列的代码,,生成的报表里的"原颜色"可以换行了,不过原颜色单元格第二行字只露出一半.

所以我想是不是没有改完,于是把每列都改了,,结果每列都改了后"原颜色"这列的报表直接变成了"0"

[此贴子已经被作者于2014-7-17 15:57:52编辑过]

 

你看是否改错了,引用错了值。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/17 16:10:00 [显示全部帖子]

以下是引用sky-18在2014-7-17 16:05:00的发言:

等等,,是我代码写错了.按甜老师说的改可以的.

但是我想问一下就是,为什么按我那个写法就不行呢?因为我那个写法便于设置一些单元格格式啊.

 

你那样写的时候表格无法知道内容的多少。

 

设置单元格格式,可以直接设置即可,也是一样。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/17 16:12:00 [显示全部帖子]

 做个简单的例子发上来测试。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/17 16:50:00 [显示全部帖子]

 这段是干什么的?去掉就没问题。

 

Dim jian As New List(of Integer)
jian.AddRange(zd.Keys)
For x As Integer = 0 To jian.Count-1
    rtb.cells(jian(x)+2,0).Spanrows = zd(jian(x))
    rtb.cells(jian(x)+2,1).Spanrows = zd(jian(x))
    rtb.cells(jian(x)+2,2).Spanrows = zd(jian(x))
    rtb.Cells(jian(x)+2,0).VertSplitBehavior = prt.CellSplitBehaviorEnum.Copy
    rtb.Cells(jian(x)+2,1).VertSplitBehavior = prt.CellSplitBehaviorEnum.Copy
    rtb.Cells(jian(x)+2,2).VertSplitBehavior = prt.CellSplitBehaviorEnum.Copy
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/17 17:27:00 [显示全部帖子]

以下是引用sky-18在2014-7-17 17:16:00的发言:

这个代码是用来合并上下相同单元格的.

跟标准合并模式一样.

不知道还有没有其他更好的方法.

代码我测试过,合并有效

[此贴子已经被作者于2014-7-17 17:16:07编辑过]

 

你这段代码影响了自动换行。

 

你试试合并以后,再赋值看行不行。不行,就没办法了。


 回到顶部