Foxtable(狐表)用户栏目专家坐堂 → 时段统计问题


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

主题:时段统计问题

美女呀,离线,留言给我吧!
采菊东篱下
  111楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/12/8 16:46:00 [只看该作者]

写成这样不报错,但没数据显示
If e.Form.Controls("ComboBox1").Value = e.Form.Controls("ComboBox1").Items(0) Then


 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  112楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/12/8 16:48:00 [只看该作者]

有下拉选项,一个是空值,一个是月租停车,一个是临时停放,选第一个选项就统计所有数据。

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  113楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/12/8 16:49:00 [只看该作者]

不要固定值,是想灵活点,万一选项名称有变,起不是报错。

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  114楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/12/8 16:53:00 [只看该作者]

解决了。

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  115楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/12/8 17:28:00 [只看该作者]

改为固定引用,可以了。
[此贴子已经被作者于2021/12/8 19:22:15编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  116楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/12/9 23:03:00 [只看该作者]

 
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20211209225210.png
图片点击可在新窗口打开查看
总是提示这个错误,没有添加多两个日期控件选项前,全部都能正常显示的,添加多两个日期控件选项后就报错了,我测试过黑色部份代码没问题,能正不常显示数据,蓝色部份代码不知那出了问题。
If e.Form.Controls("StartDate").Value = Nothing OrElse e.Form.Controls("EndDate").Value = Nothing Then '当日期为空取消保存操作
            messagebox.show("请选择起止日期")
            Return
        End If
        With Tables("安费用所属期查询统计_Table1")
            .SubtotalGroups.Clear()
            LockBaseMainForm() '锁定主界面
            .StopRedraw()
            Dim cmd As New SQLCommand
            cmd.CommandText = "Select * Fr om {缴费情况} Where [_Identify] Is null"
            Dim dt0 As DataTable = cmd.ExecuteReader()
            If dt0.DataCols.Contains("查询_月租_所属日期") = False Then
                dt0.DataCols.add("查询_月租_所属日期", Gettype(Date))
            End If
            If dt0.DataCols.Contains("查询_月租_缴费金额") = False Then
                dt0.DataCols.add("查询_月租_缴费金额", Gettype(Double))
            End If
            Dim Filter1 As String
            With e.Form.Controls("ComboBox1")
                If .Value Is Nothing Then
                    Filter1 = "[分类] = '" & DataTables("分类").DataRows(0)("分类") & "'"
                End If
            End With
            If e.Form.Controls("StartDate").Value IsNot Nothing Then
                If Filter1 > "" Then
                    Filter1 = Filter1 & " And "
                End If
                Filter1 = Filter1 & "[缴费_月租_起计日期] >= #" & e.Form.Controls("StartDate").Value & "#"
            ElseIf e.Form.Controls("DateTimePicker1").Value IsNot Nothing Then
                If Filter1 > "" Then
                    Filter1 = Filter1 & " And "
                End If
                Filter1 = Filter1 & "[缴费_月租_起计日期] >= #" & e.Form.Controls("DateTimePicker1").Value & "#"
            End If
            If e.Form.Controls("EndDate").Value IsNot Nothing Then
                If Filter1 > "" Then
                    Filter1 = Filter1 & " And "
                End If
                Filter1 = Filter1 & "[缴费_月租_止计日期] <= #" & e.Form.Controls("EndDate").Value & "#"
            ElseIf e.Form.Controls("DateTimePicker2").Value IsNot Nothing Then
                If Filter1 > "" Then
                    Filter1 = Filter1 & " And "
                End If
                Filter1 = Filter1 & "[缴费_月租_止计日期] >= #" & e.Form.Controls("DateTimePicker2").Value & "#"
            End If
            With e.Form.Controls("DropBox1")
                If .Value IsNot Nothing Then
                    If Filter1 > "" Then
                        Filter1 = Filter1 & " And "
                    End If
                    Filter1 = Filter1 & "车牌号码 = '" & .Value & "'"
                End If
            End With
            If Filter1 > "" Then
                Dim drs0 As List(Of DataRow) = DataTables("缴费情况").SQLSelect(Filter1)
                Dim a As Integer
                For a = 0 To drs0.count - 1
                    Dim b As Integer
                    For b = 0 To drs0(a)("缴费_月租_缴费月数") - 1
                        Dim da0 As DataRow = dt0.AddNew()
                        da0("分类") = DataTables("分类").DataRows(0)("分类")
                        da0("住址_巷") = drs0(a)("住址_巷")
                        da0("住址_号") = drs0(a)("住址_号")
                        da0("住址_房") = drs0(a)("住址_房")
                        da0("姓名") = drs0(a)("姓名")
                        da0("手机号码") = drs0(a)("手机号码")
                        da0("车牌号码") = drs0(a)("车牌号码")
                        da0("缴费_月租_起计日期") = "#" & drs0(a)("缴费_月租_起计日期") & "#"
                        da0("缴费_月租_止计日期") = "#" & drs0(a)("缴费_月租_止计日期") & "#"
                        da0("查询_月租_所属日期") = drs0(a)("缴费_月租_起计日期").AddMonths(b)
                        da0("缴费_月租_月租单价") = drs0(a)("缴费_月租_月租单价")
                        da0("查询_月租_缴费金额") = drs0(a)("缴费_月租_月租单价")
                    Next
                Next
                Dim bc As New GroupTableBuilder("统计表2",dt0)
                Dim dt1 As fxDataSource
                bc.Filter = Filter1
                bc.Groups.AddDef("查询_月租_所属日期",DateGroupEnum.Year,"年")
                bc.Groups.AddDef("查询_月租_所属日期",DateGroupEnum.Month,"月")
                bc.Totals.AddDef("查询_月租_缴费金额")
                dt1 = bc.BuildDataSource()
            End If
[此贴子已经被作者于2021/12/12 12:26:23编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  117楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/12/9 23:03:00 [只看该作者]

            Dim Filter2 As String
            With e.Form.Controls("ComboBox1")
                If .Value Is Nothing Then
                    Filter2 = "[分类] = '" & DataTables("分类").DataRows(1)("分类") & "'"
                End If
            End With
            If e.Form.Controls("StartDate").Value IsNot Nothing Then
                If Filter2 > "" Then
                    Filter2 = Filter2 & " And "
                End If
                Filter2 = Filter2 & "[缴费_月租_起计日期] >= #" & e.Form.Controls("StartDate").Value & "#"
            ElseIf e.Form.Controls("DateTimePicker1").Value IsNot Nothing Then
                If Filter2 > "" Then
                    Filter2 = Filter2 & " And "
                End If
                Filter2 = Filter2 & "[缴费_月租_起计日期] >= #" & e.Form.Controls("DateTimePicker1").Value & "#"
            End If
            If e.Form.Controls("EndDate").Value IsNot Nothing Then
                If Filter2 > "" Then
                    Filter2 = Filter2 & " And "
                End If
                Filter2 = Filter2 & "[缴费_月租_止计日期] <= #" & e.Form.Controls("EndDate").Value & "#"
            ElseIf e.Form.Controls("DateTimePicker2").Value IsNot Nothing Then
                If Filter2 > "" Then
                    Filter2 = Filter2 & " And "
                End If
                Filter2 = Filter2 & "[缴费_月租_止计日期] >= #" & e.Form.Controls("DateTimePicker2").Value & "#"
            End If
            With e.Form.Controls("DropBox1")
                If .Value IsNot Nothing Then
                    If Filter2 > "" Then
                        Filter2 = Filter2 & " And "
                    End If
                    Filter2 = Filter2 & "车牌号码 = '" & .Value & "'"
                End If
            End With
            If Filter2 > "" Then
                Dim bc1 As New SQLGroupTableBuilder("统计表3","缴费情况")
                Dim dt2 As fxDataSource
                bc1.Filter = Filter2
                bc1.Groups.AddDef("日期",DateGroupEnum.Year,"年")
                bc1.Groups.AddDef("日期",DateGroupEnum.Month,"月")
                bc1.Totals.AddDef("缴费_临时停放_缴费金额")
                dt2 = bc1.BuildDataSource()
Dim nms As String() = {"年","月"} '指定连接列
                dt1.Combine(nms,dt2,nms) '将销售统计数据组合到进货统计数据
                .DataSource = dt1
                DataTables("安费用所属期查询统计_Table1").DataCols.Add("当月总收入",Gettype(Double),"IsNull([查询_月租_缴费金额],0) + ISNULL([缴费_临时停放_缴费金额],0) - ISNULL([缴费_其他收入_金额],0)")
                Dim g1 As New Subtotalgroup
                g1.GroupOn = "年" '分组列为客户列
                g1.TotalOn = "查询_月租_缴费金额,缴费_临时停放_缴费金额,缴费_其他收入_金额,当月总收入" '对数量和金额进行统计
                g1.Caption = "本年累计"
                .SubtotalGroups.Add(g1)
                '定义总计分组
                Dim g2 As New Subtotalgroup
                g2.GroupOn = "*"
                g2.TotalOn = "查询_月租_缴费金额,缴费_临时停放_缴费金额,缴费_其他收入_金额,当月总收入"
                .SubtotalGroups.Add(g2)
                .Subtotal() '生成汇总模式
                .DataTable.DataCols("查询_月租_缴费金额").SetFormat("#,###.##")
                .DataTable.DataCols("缴费_临时停放_缴费金额").SetFormat("#,###.##")
                .DataTable.DataCols("缴费_其他收入_金额").SetFormat("#,###.##")
                .DataTable.DataCols("当月总收入").SetFormat("#,###.##")
                .SetHeaderRowHeight(0,25,25)
                .ResumeRedraw()
                UnLockBaseMainForm() '解锁主界面
            End If
        End With

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


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

没有定义dt1这个名称的变量。在if里面定义的变量,if外面是无法使用的

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  119楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/12/9 23:15:00 [只看该作者]

Dim dt1 As fxDataSource
不是定义了吗?

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


加好友 发短信
等级:超级版主 帖子:106603 积分:542186 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/10 8:39:00 [只看该作者]

在if里面定义的变量,if外面是无法使用的,

if false then
dim dt as datatable = datatables("表A")
else
msgbox(dt is nothing) '出错
end if

msgbox(dt is nothing) '出错

 回到顶部