以文本方式查看主题

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

--  作者:wh420
--  发布时间:2021/12/21 17:17:00
--  weui统计问题
如何根据单选的值来决定统计的FILTER条件?例如单选框我选了“收”,则把这个关键字“收”传到汇总的过滤条件中。(gp.Filter=("classtype=\'收\'")
    With wb.AddRadioGroup("form1","sz","收支")
        .Add("s1","收")
        .Add("s2","支")
    End With
    
    With wb.AddCheckGroup("form1","rdg1","选择分组列")
        .Add("fz3","年")
        .Add("fz4","月")
        \'.Add("fz5","收支")
        .add("fz6","项目")
        .add("fz7","名称")
        .attribute="style=\'font-size: 15px;\'"
    End With
    
    With wb.AddCheckGroup("form1","rdg2","选择统计列")
        \'.Add("huodongdate","活动日期")h
        .Add("money","金额")
        \'.Add("classtype","收支")
        \'.Add("detailname","名称")
        .attribute="style=\'font-size: 15px;\'"
    End With
    
    With wb.AddButtonGroup("form1","btg1",True)
        .Add("btn1", "统计", "submit")
        .Add("btn2", "返回", "button","list.htm") \'返回列表
        
    End With
    
    
    
Else \'显示统计结果
    
    For Each key As String In e.PostValues.Keys
        output.show(key & ":" & e.PostValues(key) & "-")
    Next
    
    Dim gp As new SQLGroupTableBuilder("统计表1","shouzhi")
    gp.C
    gp.GroupProportion =True
    \'gp.Filter=("classtype=\'支\'")
    \'gp.Filter = Functions.Execute("GetCookieFilter",e) \'根据Cookie合成条件
    If e.PostValues.ContainsKey("riqi") Then
        gp.Groups.AddDef("日期")
    End If
    \'If e.PostValues.ContainsKey("classtype") Then
    \'gp.Groups.AddDef("收支")
    \'End If
    \'
    If e.PostValues.ContainsKey("itemname") Then
        gp.Groups.AddDef("项目")
    End If
    
    If e.PostValues.ContainsKey("detailname") Then
        gp.Groups.AddDef("名称")
    End If
    
    If e.PostValues.ContainsKey("fz1") Then
        gp.Groups.AddDef("classtype","收支","收支")
    End If
    
    If e.PostValues.ContainsKey("fz3") Then
        gp.Groups.AddDef("riqi",DateGroupEnum.Year,"年")
    End If
    If e.PostValues.ContainsKey("fz4") Then
        gp.Groups.AddDef("riqi",DateGroupEnum.Month,"月")
    End If
    
    \'If e.PostValues.ContainsKey("fz5") Then
    \'gp.Groups.AddDef("classtype","收支","收支")
    \'End If
    
    If e.PostValues.ContainsKey("fz6") Then
        gp.Groups.AddDef("itemname","项目","项目")
    End If
    If e.PostValues.ContainsKey("fz7") Then
        gp.Groups.AddDef("detailname","名称","名称")
    End If
    
    
    
    If e.PostValues.ContainsKey("money") Then
        gp.Totals.AddDef("money","金额")
    End If
    
    
    If gp.Groups.Count = 0 OrElse gp.Totals.Count = 0 Then
        \'        wb.AddTopTips("","toptip1","请选择分组列和统计列!").msec = 2000 \'如
        e.WriteString("请选择分组列和统计列!")
        
        \'wb.InsertHTML("请选择分组列和统计列!")
    Else
        With wb.AddTable("","Table1")
            .CreateFromDataTable(gp.Build(True))
        End With
        With wb.AddButtonGroup("","btg1", False)  \'水平排列
            .Add("btn6", "重新统计","button","tongji.htm")
            .Add("btn7", "返回列表","button","list.htm?page=0")
        End With
    End If
End If
e.WriteString(wb.Build)
[此贴子已经被作者于2021/12/21 17:17:04编辑过]

--  作者:有点蓝
--  发布时间:2021/12/21 17:24:00
--  
If e.PostValues.ContainsKey("s1") 
gp.Filter="classtype=\'\'"
elseIf e.PostValues.ContainsKey("s2") 
gp.Filter="classtype=\'\'"
endif

--  作者:wh420
--  发布时间:2021/12/21 17:37:00
--  
If e.PostValues.ContainsKey("s1") 
gp.Filter="classtype=\'\'"
elseIf e.PostValues.ContainsKey("s2") 
gp.Filter="classtype=\'\'"
endif

output.show(gp.filter)为空,没有数据

--  作者:有点蓝
--  发布时间:2021/12/21 17:53:00
--  
If e.PostValues.ContainsKey("sz") 
If e.PostValues("sz") = “s1”
gp.Filter="classtype=\'\'"
elseIf e.PostValues("sz") = “s2”
gp.Filter="classtype=\'\'"
endif
end if


--  作者:wh420
--  发布时间:2021/12/22 14:28:00
--  
收到,谢谢。

1、如何让LIST页首次访问时,只统计一次数据(见图上方框选)?翻页、再次刷新页不执行统计操作?
2、添、删、改时再统计?

--  作者:有点蓝
--  发布时间:2021/12/22 14:55:00
--  
除非建一个表把统计结果保存下来
--  作者:wh420
--  发布时间:2021/12/22 14:59:00
--  
用COOKIES做标记呢?能实现吗


--  作者:有点蓝
--  发布时间:2021/12/22 15:25:00
--  
做怎么样的标记?