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


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

主题:时段统计问题

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


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

同样的问题:前面都已经使用了不存在的列,后面再去判断有啥用

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


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

已经把查询_月租_缴费金额的合计代码改到后面了,依然提示不存在这列!
If e.Form.Controls("ComboBox1").Value = "" Then'当日期为空取消保存操作
    messagebox.show("请选择分类")
    Return
End If
If e.Form.Controls("ComboBox1").Value = e.Form.Controls("ComboBox1").Items(1) Then
    If e.Form.Controls("StartDate").Value = Nothing OrElse e.Form.Controls("EndDate").Value = Nothing Then '当日期为空取消保存操作
        messagebox.show("请选择起止日期")
        Return
    Else
        With Tables("安费用所属期查询统计_Table1")
            For i As Integer = .Rows.count - 1 To 0 Step -1
                .Rows(i).Delete
            Next
            LockBaseMainForm() '锁定主界面
            .StopRedraw()
            For i As Integer = DataTables("缴费情况").DataRows.count - 1 To 0 Step -1
                Dim tr As DataRow = DataTables("缴费情况").DataRows(i)
                If tr.Isnull("车牌号码") Then
                    tr.delete
                End If
            Next
            Dim cmd As New SQLCommand
            cmd.CommandText = "Select [_Identify],分类,住址_巷,住址_号,住址_房,姓名,手机号码,车牌号码,缴费_月租_起计日期,缴费_月租_止计日期,缴费_月租_月租单价 fro m {缴费情况} Where [缴费_月租_起计日期] >= #" & e.Form.Controls("StartDate").Value & "# And [缴费_月租_止计日期] <= #" & e.Form.Controls("EndDate").Value & "# And ([车牌号码] = '" & e.Form.Controls("DropBox1").text & "' Or [车牌号码] Is null)"
            Dim dt As DataTable = cmd.ExecuteReader()
            .DataSource = dt
            .SetColVisibleWidth("分类|60|住址_巷|60|住址_号|30|住址_房|30|姓名|50|手机号码|80|车牌号码|70|缴费_月租_起计日期|70|缴费_月租_止计日期|70|缴费_月租_月租单价|60")
            .SetHeaderRowHeight(0,0,25)
            If .Rows.Count < 15 Then
                .AddNew(15 - .Rows.Count)
            End If
            .ResumeRedraw()
            UnLockBaseMainForm() '解锁主界面
            DataTables("安费用所属期查询统计_Table1").DataCols("查询_月租_缴费金额").SetFormat("#,###.##")
            If dt.DataCols.Contains("查询_月租_有效起计日期") = False Then
                dt.DataCols.add("查询_月租_有效起计日期", Gettype(Date))
            End If
            If dt.DataCols.Contains("查询_月租_有效止计日期") = False Then
                dt.DataCols.add("查询_月租_有效止计日期", Gettype(Date))
            End If
            If dt.DataCols.Contains("查询_月租_缴费月数") = False Then
                dt.DataCols.add("查询_月租_缴费月数", Gettype(Double))
            End If
            If dt.DataCols.Contains("查询_月租_缴费金额") = False Then
                dt.DataCols.add("查询_月租_缴费金额", Gettype(Double))
            End If
            If dt.DataRows.Count > 0 Then
                For Each dr As DataRow In dt.DataRows
                    If dr("缴费_月租_起计日期") <= "#" & e.Form.Controls("StartDate").Value & "#" Then
                        dr("查询_月租_有效起计日期") = "#" & e.Form.Controls("StartDate").Value & "#"
                    ElseIf dr("缴费_月租_起计日期") > "#" & e.Form.Controls("StartDate").Value & "#" Then
                        dr("查询_月租_有效起计日期") = dr("缴费_月租_起计日期")
                    End If
                    If dr("缴费_月租_止计日期") >= "#" & e.Form.Controls("EndDate").Value Then
                        dr("查询_月租_有效止计日期") = "#" & e.Form.Controls("EndDate").Value & "#"
                    ElseIf dr("缴费_月租_止计日期") < "#" & e.Form.Controls("EndDate").Value & "#" Then
                        dr("查询_月租_有效止计日期") = dr("缴费_月租_止计日期")
                    End If
                    dr("查询_月租_缴费月数") = DateDiff("m",dr("查询_月租_有效起计日期"),dr("查询_月租_有效止计日期")) + 1
                    dr("查询_月租_缴费金额") = (DateDiff("m",dr("查询_月租_有效起计日期"),dr("查询_月租_有效止计日期")) + 1) * dr("缴费_月租_月租单价")
                Next
            End If
            .Cols("查询_月租_缴费金额").GrandTotal = True
            .GrandTotal = True
        End With
    End If

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


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

在前面肯定有,学会搜索。点击代码编辑器左下角“查找替换”按钮,搜索出错的列名

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


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

我在代码器搜过了!

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


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

刚才真搜过的,现在发现还有一个,把它放到最后,没出现这个提示又出现不存在查询_月租_有效起计日期列、不存在查询_月租_有效起计日期列!临时列总报错!
[此贴子已经被作者于2021/12/2 14:41:42编辑过]

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


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


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20211202160341.png
图片点击可在新窗口打开查看
这代码得出很多重复的数据,我要得出2020-12-01到2021-06-30所有不重复累计数,这些数据有些很可能不是连续交费的,所以只能在此基础上再统计一次。
If e.Form.Controls("ComboBox1").Value = "" Then'当日期为空取消保存操作
    messagebox.show("请选择分类")
    Return
End If
If e.Form.Controls("ComboBox1").Value = e.Form.Controls("ComboBox1").Items(1) Then
    If e.Form.Controls("StartDate").Value = Nothing OrElse e.Form.Controls("EndDate").Value = Nothing Then '当日期为空取消保存操作
        messagebox.show("请选择起止日期")
        Return
    Else
        Dim Filter As String
        Dim f2 As String
        Filter = "分类 = '" & e.Form.Controls("ComboBox1").Value & "'"
        With e.Form.Controls("StartDate")
            If .Value IsNot Nothing Then
                f2 = "[缴费_月租_起计日期] >= #" & .Value & "#"
            End If
        End With
        With e.Form.Controls("EndDate")
            If .Value IsNot Nothing Then
                If f2 > "" Then
                    f2 = Filter & " And "
                End If
                f2  = f2  & "[缴费_月租_起计日期] <= #" & .Value & "#"
            End If
        End With
        If F2 > "" Then
            If Filter > "" Then
                Filter = Filter & " And "
            End If
            Filter = Filter & " (" & F2 & ") "
        End If
        With e.Form.Controls("DropBox1")
            If .Value IsNot Nothing Then
                If Filter > "" Then
                    Filter = Filter & " And "
                End If
                Filter = Filter & "车牌号码 = '" & .Value & "'"
            End If
        End With
        If Filter > "" Then
            With Tables("安费用所属期查询统计_Table1")
                For i As Integer = .Rows.count - 1 To 0 Step -1
                    .Rows(i).Delete
                Next
                LockBaseMainForm() '锁定主界面
                .StopRedraw()
                For i As Integer = DataTables("缴费情况").DataRows.count - 1 To 0 Step -1
                    Dim tr As DataRow = DataTables("缴费情况").DataRows(i)
                    If tr.Isnull("车牌号码") Then
                        tr.delete
                    End If
                Next
                .Fill("Select [_Identify],分类,住址_巷,住址_号,住址_房,姓名,手机号码,车牌号码,缴费_月租_起计日期,缴费_月租_止计日期,缴费_月租_月租单价 fr om {缴费情况} Where " & Filter,False)
                If .Rows.Count < 15 Then
                    .AddNew(15 - .Rows.Count)
                End If
                .ResumeRedraw()
                UnLockBaseMainForm() '解锁主界面
            End With
        End If
        Dim t As DataTable = e.Form.Controls("Table1").Table.DataTable
        If t.DataCols.Contains("查询_月租_有效起计日期") = False Then
            t.DataCols.add("查询_月租_有效起计日期", Gettype(Date))
        End If
        If t.DataCols.Contains("查询_月租_有效止计日期") = False Then
            t.DataCols.add("查询_月租_有效止计日期", Gettype(Date))
        End If
        If t.DataCols.Contains("查询_月租_缴费月数") = False Then
            t.DataCols.add("查询_月租_缴费月数", Gettype(Double))
        End If
        If t.DataCols.Contains("查询_月租_缴费金额") = False Then
            t.DataCols.add("查询_月租_缴费金额", Gettype(Double))
        End If
        Tables("安费用所属期查询统计_Table1").SetColVisibleWidth("分类|60|住址_巷|60|住址_号|30|住址_房|30|姓名|50|手机号码|80|车牌号码|70|查询_月租_有效起计日期|70|查询_月租_有效止计日期|70|缴费_月租_月租单价|60|查询_月租_缴费月数|70|查询_月租_缴费金额|70")
        Tables("安费用所属期查询统计_Table1").SetHeaderRowHeight(0,0,25)
        If t.DataRows.Count > 0 Then
            Dim rq1 As Date
            Dim rq2 As Date
            For Each dr As DataRow In t.DataRows
                If dr("缴费_月租_起计日期") <= "#" & e.Form.Controls("StartDate").Value & "#" Then
                    rq1 = "#" & e.Form.Controls("StartDate").Value & "#"
                ElseIf dr("缴费_月租_起计日期") > "#" & e.Form.Controls("StartDate").Value & "#" Then
                    rq1 = "#" & dr("缴费_月租_起计日期") & "#"
                End If
                If dr("缴费_月租_止计日期") >= "#" & e.Form.Controls("EndDate").Value & "#" Then
                    rq2 = "#" & e.Form.Controls("EndDate").Value & "#"
                ElseIf dr("缴费_月租_止计日期") < "#" & e.Form.Controls("EndDate").Value & "#" Then
                    rq2 = "#" & dr("缴费_月租_止计日期") & "#"
                End If                
                If dr.IsNull("车牌号码") Then
                    dr("查询_月租_有效起计日期") = Nothing
                    dr("查询_月租_有效止计日期") = Nothing
                    dr("查询_月租_缴费月数") = Nothing
                Else
                    dr("查询_月租_有效起计日期") = rq1
                    dr("查询_月租_有效止计日期") = rq2
                    dr("查询_月租_缴费月数") = DateDiff("m",dr("查询_月租_有效起计日期"),dr("查询_月租_有效止计日期")) + 1
                    dr("查询_月租_缴费金额") = (DateDiff("m",dr("查询_月租_有效起计日期"),dr("查询_月租_有效止计日期")) + 1) * dr("缴费_月租_月租单价")
                End If
            Next
        End If
        Tables("安费用所属期查询统计_Table1").Cols("查询_月租_缴费金额").GrandTotal = True
        Tables("安费用所属期查询统计_Table1").GrandTotal = True
        DataTables("安费用所属期查询统计_Table1").DataCols("查询_月租_缴费金额").SetFormat("#,###.##")
    End If
End If
[此贴子已经被作者于2021/12/2 17:29:18编辑过]

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


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

个人的建议是,另外再加一个缴费表,按月存储缴费记录,也就是缴费3个月,就有3条记录,缴费10个月就有10条记录。

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


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

可是现在是1个月收3个月的费,有的交半年,有的交一年,这样会生成很多数,出纳也不愿做这么多工。
[此贴子已经被作者于2021/12/2 16:18:26编辑过]

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


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

这个是开发人员的事,和出纳没有半毛钱的关系。交半年就写代码自动增加6行记录,叫多少个月就增加多少行

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


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

我们小区月租缴费的车辆有520台另有临时停车收费如果一个月一行,会生成多少行数,占很多内存吧?
[此贴子已经被作者于2021/12/2 17:03:08编辑过]

 回到顶部