以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  专业报表合计问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192442)

--  作者:lin98
--  发布时间:2024/6/23 9:18:00
--  专业报表合计问题
 专业报表合计问题
rt.Cells(cnt, 6).Text = Format(sum3, "#,###.00") \'
执行后,空值时,显示0,不好看,如何处理?


--  作者:有点蓝
--  发布时间:2024/6/23 20:43:00
--  
判断一下是否空值,参考这里的方法:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=192397&authorid=0&page=0&star=2
--  作者:lin98
--  发布时间: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不显示?


--  作者:有点蓝
--  发布时间:2024/6/24 9:06:00
--  
没看到有对合计做判断
--  作者:lin98
--  发布时间: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")

没报错,失效
   

--  作者:有点蓝
--  发布时间:2024/6/24 9:35:00
--  
神仙思路!!

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

--  作者:lin98
--  发布时间: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) \'加入到报表中

--  作者:有点蓝
--  发布时间:2024/6/24 11:37:00
--  
换页放到前面,先换页再打印