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


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

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

帅哥哟,离线,有人找我吗?
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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
hanzhang98
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
hanzhang98
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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") '千位分节符保留两位小数

 回到顶部
帅哥哟,离线,有人找我吗?
hanzhang98
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
hanzhang98
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/8/20 22:27:00 [显示全部帖子]

蓝老师好.类似在帮助示例中的代码中加入 想实现的代码. 请老师帮助指导. 谢谢. 

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

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/8/20 22:46:00 [显示全部帖子]

蓝老师好. 如果这样:
If sum1 = 0 Then
    rt.Rows(rt.Rows.count -1)(idx1).text = Format(sum1 ,"  -")
Else
    rt.Rows(rt.Rows.count -1)(idx1).text = Format(sum1 ,"#,##0.00")
End If

是必,有多少个"SUM" ,就得写多少个"If.......Else......End If".  假如有50个"SUM" ,就得写50个"If.......Else......End If".  没有能一次性全部设置的方法?
[此贴子已经被作者于2019/8/20 23:22:49编辑过]

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/8/20 22:53:00 [显示全部帖子]

以下是引用有点蓝在2019/8/20 22:48:00的发言:
都是在循环里面的,一页能有几个SUM啊
蓝老师好. 我的每页就是有38个"SUM". 也就是专业报表每页有"38"列需要"本页小计" 汇总的.

[此贴子已经被作者于2019/8/20 22:56:05编辑过]

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


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

以下是引用有点蓝在2019/8/20 22:58:00的发言:
这38个sum是怎么做的,代码发出来

就是这样的.  企业的工资表, 工资项目特别多的.
sum1 =sum1 + tb.rows(r)("工资项目1") 
sum2 =sum2 + tb.rows(r)("工资项目2")
sum3 =sum3 + tb.rows(r)("工资项目3") 
sum4 =sum4 + tb.rows(r)("工资项目4")
......
sum36 =sum36 + tb.rows(r)("工资项目36") 
sum37 =sum37 + tb.rows(r)("工资项目37")
sum38 =sum38 + tb.rows(r)("工资项目38")

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

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


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

蓝老师好.

rt.Rows(rt.Rows.Count -1)(5).Text = Format(xgwz,"#,###.00")      这种设置方法能否加入条件判断来处理计算结果为零的数值



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