Foxtable(狐表)用户栏目专家坐堂 → 专业报表合计问题


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

主题:专业报表合计问题

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
专业报表合计问题  发帖心情 Post By:2024/6/23 9:18:00 [只看该作者]

 专业报表合计问题
rt.Cells(cnt, 6).Text = Format(sum3, "#,###.00") '
执行后,空值时,显示0,不好看,如何处理?


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


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

判断一下是否空值,参考这里的方法:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=192397&authorid=0&page=0&star=2

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/6/24 9:01:00 [只看该作者]

        Dim sum2 As Double = 0

        For r As Integer = p * prs To math.min(Rows.Count - 1, ( p + 1) * prs - 1)
            sum2 += rows(r)("数量") '计算合计-数量

            For j As Integer = 0 To cols.Length - 1
                If Rows(r).IsNull(cols(j)) = False Then 
                    rt2.Cells(r - p * prs + 1, j).Text = rows(r)(cols(j))
                End If
            Next
        Next
rt2.Cells(cnt, 3).Text = Format(sum2, "#,###.00")

执行后,数量的合计为空值,还是显示0,如何实现为0不显示?


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


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

没看到有对合计做判断

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/6/24 9:31:00 [只看该作者]

        Dim sum2 As Double = 0

        For r As Integer = p * prs To math.min(Rows.Count - 1, ( p + 1) * prs - 1)
          
     If rows(r).isnull("数量") = False Then
            sum3 += rows(r)("数量") '
        End If
            For j As Integer = 0 To cols.Length - 1
                If Rows(r).IsNull(cols(j)) = False Then 
                    rt2.Cells(r - p * prs + 1, j).Text = rows(r)(cols(j))
                End If
            Next
        Next
rt2.Cells(cnt, 3).Text = Format(sum2, "#,###.00")

没报错,失效
   

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


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

神仙思路!!

if sum2 <> 0
rt2.Cells(cnt, 3).Text = Format(sum2, "#,###.00")
end if

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/6/24 11:05:00 [只看该作者]

       由于

 For p As Integer = 0 To math.Ceiling(Rows.Count / prs) - 1 '换页
        If p = math.Ceiling(Rows.Count / prs) - 1 Then'如果是最后一页
            For r As Integer = Rows.Count To ( p + 1) * prs - 1 '补空行
                rt2.Rows.Count = rt2.Rows.Count + 1
                rt2.Rows(rt2.Rows.count - 1)(0).text = " "
            Next
        Else
            rt.BreakAfter = prt.BreakEnum.Page '否则换页  
        End If
 Next
换页效果不理想,增加下面代码,效果好些,但就是最后会显示空白页,如何不显示最后的空白页?

 Dim rm5 As prt.RenderEmpty '定一个空对象
        rm5 = New prt.RenderEmpty '定义一个新的空对象
        rm5.BreakBefore = prt.BreakEnum.Page '打印前换页
        doc.Body.Children.Add(rm5) '加入到报表中

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


加好友 发短信
等级:超级版主 帖子:110867 积分:564285 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/6/24 11:37:00 [只看该作者]

换页放到前面,先换页再打印

 回到顶部