以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  从字符串“总计”到类型“Double”的转换无效  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96178)

--  作者:fubblyc
--  发布时间:2017/2/14 23:28:00
--  从字符串“总计”到类型“Double”的转换无效

    Dim g As Subtotalgroup
    Dim t As Table  = e.Form.Controls("table1").Table
    t.SubtotalGroups.Clear()
   
    If e.Form.Controls("RadioButton2").checked = True Then       
        g = New Subtotalgroup \'定义一个新的分组
        g.Aggregate = AggregateEnum.Sum \'统计类型为求和
        g.GroupOn = "门店名称" \'分组列为客户列
        g.TotalOn = "小票数,销售数量,销售金额,吊牌金额,VIP销售金额,VIP小票数,目标,与目标差额" \'对数量和金额进行统计
        g.Caption = "{0} 小计          " \'设置标题
        t.SubtotalGroups.Add(g) \'加到分组集合中
       
        g = New Subtotalgroup \'定义一个新的分组
        g.Aggregate = AggregateEnum.Sum \'统计类型为求和
        g.GroupOn = "*" \'分组列为客户列
        g.TotalOn = "小票数,销售数量,销售金额,吊牌金额,VIP销售金额,VIP小票数,目标,与目标差额" \'对数量和金额进行统计
        g.Caption = "总计          " \'设置标题
        t.SubtotalGroups.Add(g) \'加到分组集合中
        t.Subtotal() \'生成汇总模式
       
    Else
        g = New Subtotalgroup \'定义一个新的分组
        g.Aggregate = AggregateEnum.Sum \'统计类型为求和
        g.GroupOn = "*" \'分组列为客户列
        g.TotalOn = "小票数,销售数量,销售金额,吊牌金额,VIP销售金额,VIP小票数,目标,与目标差额" \'对数量和金额进行统计
        g.Caption = "总计          " \'设置标题
        t.SubtotalGroups.Add(g) \'加到分组集合中
        t.Subtotal() \'生成汇总模式
    End If

\'    ------------------以上代码没问题无需看
    Dim r As Row
    Dim r1 As Row
   
    For i As Integer = 0 To  Tables(e.Form.Name & "_table1").Rows.Count(True) -1
        r =  Tables(e.Form.Name & "_table1").Rows(i,True)
        If r("销售金额") > 0 Then
            r("VIP销售占比") = r("VIP销售金额") / r("销售金额")
        Else
        End If
        
        For i1 As Integer = 0 To  Tables(e.Form.Name & "_table1").Rows.Count(True) - 1
            r1 =  Tables(e.Form.Name & "_table1").Rows(i1,True)
            If e.Form.Controls("RadioButton2").checked = True Then    \'门店分组 
                If r1("年份") = r("年份")+1  And r1("周次") = r("周次") And r1("门店名称") = r("门店名称")   Then
                    r1("销售金额_去年同期") = r("销售金额")
                End If
\'    ------------------以上代码没问题无需看,以下报错                
            Else     \'没有门店分组,整体的
                If r1("年份") = r("年份")+1  And r1("周次") = r("周次")   Then
                    r1("销售金额_去年同期") = r("销售金额")
                End If   
             
        Next
    Next

[此贴子已经被作者于2017/2/14 23:29:35编辑过]

--  作者:有点蓝
--  发布时间:2017/2/15 8:33:00
--  

在汇总模式下,第一列存储的可能是“总计”、“小计”这类的内容,计算的时候要注意,截图汇总后的表格看看

--  作者:fubblyc
--  发布时间:2017/2/15 9:01:00
--  

有点蓝 老师,你看


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20170215085926.png
图片点击可在新窗口打开查看

那怎么破呢?

有门店分组的就不会:


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/2/15 9:02:15编辑过]

--  作者:有点色
--  发布时间:2017/2/15 9:13:00
--  

判断一下是不是汇总行

 

If r1("年份") = r("年份")+1  And r1("周次") = r("周次")   Then
    r1("销售金额_去年同期") = r("销售金额")
End If     

 

-----------------改成-----------------

 

If r1.IsGroup Then

 

Else

    If r1("年份") = r("年份")+1  And r1("周次") = r("周次")   Then
            r1("销售金额_去年同期") = r("销售金额")
    End If     

End If


--  作者:fubblyc
--  发布时间:2017/2/15 9:16:00
--  

我就是需要汇总行有这些计算的数据。不然就不需要汇总了。

 

有没有别的办法呢?

 

为什么有门店分组的就不会呢?是不是加个分组 就可以解决呢。。


--  作者:有点色
--  发布时间:2017/2/15 9:18:00
--  
看4楼啊,如果是汇总行,就不要判断年月列了啊,直接赋值。
--  作者:fubblyc
--  发布时间:2017/2/15 9:30:00
--  

有点色 老师,年月我还是要。哈,我刚才加上账套列作为分组,就可以。


图片点击可在新窗口打开查看此主题相关图片如下:4.png
图片点击可在新窗口打开查看

 

 

就是后台视图要生生地加上 账套 这个列


图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看

 


 


--  作者:有点色
--  发布时间:2017/2/15 10:07:00
--  

直接这样写不行?

 

If r1.IsGroup Then

    r1("销售金额_去年同期") = r("销售金额") 

Else

    If r1("年份") = r("年份")+1  And r1("周次") = r("周次")   Then
            r1("销售金额_去年同期") = r("销售金额")
    End If     

End If


--  作者:fubblyc
--  发布时间:2017/2/15 14:57:00
--  

恩恩,我试试看。谢谢有点色老师!