Foxtable(狐表)用户栏目专家坐堂 → [求助] 专业报表 代码


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

主题:[求助] 专业报表 代码

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
[求助] 专业报表 代码  发帖心情 Post By:2019/8/20 11:35:00 [只看该作者]

???
[此贴子已经被作者于2019/8/20 21:32:04编辑过]

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


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

什么是行,什么是列,这个代码都没有分清楚,有修改的可能和价值吗?
你还是先回头按顺序看两遍帮助吧

下面的代码是遍历行还是列呢?
For mc As Integer = 0 To rt.Rows(rt.Rows.Count -1).Length - 1   '循环新增行所有单元格

如果要如你的代码注释,要遍历新增行,应该是:

For mc As Integer = 0 To rt.Cols.Count -1   '循环新增行所有单元格
    If tb.Cols(m).IsNumeric   '如果是数值列
    
    Else
  
    End If
Next

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/8/20 17:33:00 [只看该作者]

老师好。能否赐教给修改下(黄底色)的代码。先谢谢了。

rt.Rows.Count = rt.Rows.Count + 1 '增加本页小计行
rt.Rows(rt.Rows.Count -1).Height = 8 
rt.Cells(rt.Rows.Count -1,0).SpanCols = 5
rt.Rows(rt.Rows.Count -1).Style.TextAlignHorz = prt.AlignHorzEnum.Right 
rt.Rows(rt.Rows.Count -1).Style.Font = New Font("Arial Narrow", 8)
rt.Cells(rt.Rows.Count -1).Text = Format(rt.Cells(rt.Rows.Count -1),"#,##0.00") '千位分节符保留两位小数
[此贴子已经被作者于2019/8/20 17:33:16编辑过]

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


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

你连Foxtable中的数据表,还是专业报表中的表,都分不清楚? 

rt是什么?  不应该是从Datatable或Table中取数据打印吗?

先去看帮助,我没有办法修改你的代码。
[此贴子已经被作者于2019/8/20 17:37:18编辑过]

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/8/20 18:01:00 [只看该作者]

Dim rt As New prt.RenderTable() '定义一个表格对象
rt.Rows.Count = rt.Rows.Count + 1 '增加本页小计行
rt.Rows(rt.Rows.Count -1).Height = 8 
rt.Cells(rt.Rows.Count -1,0).SpanCols = 5
rt.Rows(rt.Rows.Count -1).Style.TextAlignHorz = prt.AlignHorzEnum.Right 
rt.Rows(rt.Rows.Count -1).Style.Font = New Font("Arial Narrow", 8)
rt.Cells(rt.Rows.Count -1).Text = Format(rt.Cells(rt.Rows.Count -1),"#,##0.00") '千位分节符保留两位小数

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


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

没看懂,要做什么?

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/8/20 21:23:00 [只看该作者]

蓝老师好. 专业报表的新增插入"本页小计"行, 其中的行高、字体、字号等已设置好.  

想实现: 
FOR 循环新增行“rt.Rows.Count -1” 所有单元格
    IF 如果是"数值"
        IF 如果数值<> "0"
            单元格的数值格式为"#,##0.00"
        ELSE
            单元格的数值格式为"-"
        END IF
    ELSE
        单元格的格式保持原格式
    END IF
NEXT

[此贴子已经被作者于2019/8/20 23:21:08编辑过]

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


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

为什么不判断表格table的单元格值,而去判断报表单元格的值?

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/8/20 22:12:00 [只看该作者]

蓝老师好。在报表每页的最后插入的“本页小计”行的单元格的值是通过用“SUM”报表代码汇总当页报表的数据而来的,不是table表单元格的原数据。我是这样理解的。
[此贴子已经被作者于2019/8/20 22:15:35编辑过]

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


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

既然是sum的,sum变量应该就是数值型,还有必要再判断是否是数值?

既然是sum的,直接对sum值格式化然后赋值不就行了?

if sum = 0 then
单元格值= “-”
else
单元格值 =  Format(sum ,"#,##0.00")
endif

 回到顶部
总数 19 1 2 下一页