Foxtable(狐表)用户栏目专家坐堂 → 窗口动态生成表的行怎样定义


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

主题:窗口动态生成表的行怎样定义

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


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

如果缴费情况表同一车牌号码在缴费_月租_缴费金额列当月累计数大于缴费_月租_月租单价,删除保存的这行数,我在DataColChanging事件这样写,报错:

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20210327151822.png
图片点击可在新窗口打开查看
Dim d As Date = e.DataRow("日期").Value
Dim y As Integer = d.Year
Dim m As Integer = d.Month
Dim Days As Integer = Date.DaysInMonth(y,m)
Dim fd As Date = New Date(y,m,1) '获得该月的第一天
Dim ld As Date = New Date(y,m,Days) '获得该月的最后一天
Select Case e.DataCol.name
    Case "车牌号码"
        If e.NewValue > 0 Then
            Dim tr As DataRow = DataTables("缴费情况").find("[分类] = '" & e.DataRow("分类") & "' And [日期] >= #" & fd & "# And [日期] <= #" & ld & "# And [车牌号码] = '" & e.DataRow("车牌号码") & "'")
            If tr IsNot Nothing Then
                Dim Sum As Double = e.DataTable.SQLCompute("Sum(缴费_月租_缴费金额)","[分类] = '" &  e.DataRow("分类") & "' And [日期] >= #" & fd & "# And [日期] <= #" & ld & "# And [车牌号码] = '" & e.DataRow("车牌号码") & "' And [_Identify] <> " & e.DataRow("_Identify"))
                If Sum + e.NewValue > e.DataRow("缴费_月租_月租单价") Then
                    Messagebox.show(e.DataRow("车牌号码") & "当月已录入租金!")
                    e.DataRow("车牌号码") = Nothing
                    e.Cancel = True
                    e.DataRow("车牌号码").Delete()
                End If
            End If
        End If
End Select
[此贴子已经被作者于2021/3/27 15:27:31编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  42楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

e.DataRow("日期").Value

单元格值没有value这种属性,不要随便创造语法

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


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

40楼的代码是禁止在同一窗口重复录入数据,但在不同单号输入相同内容,依然能保存到缴费情况表,我在缴费情况表的DataColChanging事件写禁止录入当月累计金额除于缴费月数大于单价代码,报错,数据依然可重复输入。

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

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
Select Case e.DataCol.name
    Case "车牌号码"
        If e.NewValue IsNot Nothing Then
            Dim tr As DataRow = DataTables("缴费情况").find("[分类] = '" & e.DataRow("分类") & "' And Month([日期]) = " & e.DataRow("日期").Month & " And [车牌号码] = '" & e.DataRow("车牌号码") & "'")
            If tr IsNot Nothing Then
                Dim Sum As Double = e.DataTable.SQLCompute("Sum(缴费_月租_缴费金额)","[分类] = '" &  tr("分类") & "' And Month([日期]) = " & tr("日期").Month & "# And [车牌号码] = '" & tr("车牌号码") & "' And [_Identify] <> " & tr("_Identify"))
                Dim Sum1 As Double = e.DataTable.SQLCompute("Sum(缴费_月租_缴费月数)","[分类] = '" &  tr("分类") & "' And Month([日期]) = " & tr("日期").Month & "# And [车牌号码] = '" & tr("车牌号码") & "' And [_Identify] <> " & tr("_Identify"))
                If (Sum + tr("缴费_月租_缴费金额"))/ (Sum1 + tr("缴费_月租_缴费月数")) > e.DataRow("缴费_月租_月租单价") Then
                    Messagebox.show(e.DataRow("车牌号码") & "当月已录入租金!")
                    e.DataRow("车牌号码") = Nothing
                    e.Cancel = True
                End If
            End If
        End If
End Select
[此贴子已经被作者于2021/3/28 16:20:10编辑过]

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


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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:小区车辆管理(0328).rar


密码:888888
[此贴子已经被作者于2021/3/27 23:41:48编辑过]

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


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

我知道问题在哪了,日期列没有数据。

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


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

我在月租收费窗口的DataColChanging事件中写入:禁止缴费情况表月租收费同一月同一车牌号码重复录入数据。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:小区车辆管理(0328-1).rar

密码:888888
Dim d As Date = e.Form.Controls("rq").Value
Dim m As Integer = d.Month
'当月月租不允许重复录入
If e.DataCol.Name = "车牌号码" Then
    Dim dr As DataRow
    dr = e.DataTable.Find("[车牌号码] = '" & e.NewValue & "'")
    If dr IsNot Nothing Then
        MessageBox.Show("不允许同一车牌号码在同一单号中重复录入!")
        e.DataRow("住址_序号") = Nothing
        e.DataRow("住址_巷") = Nothing
        e.DataRow("住址_号") = Nothing
        e.DataRow("住址_房") = Nothing
        e.DataRow("姓名") = Nothing
        e.DataRow("固定电话") = Nothing
        e.DataRow("手机号码") = Nothing
        e.DataRow("备注") = Nothing
        e.DataRow("车牌号码") = Nothing
        e.Cancel = True
    ElseIf DataTables("缴费情况").Find("[分类] ='" & DataTables("分类").DataRows(0)("分类") & "'And Month([日期]) = " & m & " And [车牌号码] = '" & e.NewValue & "'") IsNot Nothing Then
        MessageBox.Show("此车牌号码本月已录入缴费!")
        e.DataRow("住址_序号") = Nothing
        e.DataRow("住址_巷") = Nothing
        e.DataRow("住址_号") = Nothing
        e.DataRow("住址_房") = Nothing
        e.DataRow("姓名") = Nothing
        e.DataRow("固定电话") = Nothing
        e.DataRow("手机号码") = Nothing
        e.DataRow("备注") = Nothing
        e.DataRow("车牌号码") = Nothing
        e.Cancel = True
    End If
End If
依然出现43楼的报错。
[此贴子已经被作者于2021/3/28 21:55:56编辑过]

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


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

'当月月租不允许重复录入
If e.DataCol.Name = "车牌号码" Then
    Dim dr As DataRow
    dr = e.DataTable.Find("[车牌号码] = '" & e.NewValue & "'")
    If dr IsNot Nothing Then
        MessageBox.Show("不允许同一车牌号码在同一单号中重复录入!")
        e.DataRow("住址_序号") = Nothing
        e.DataRow("住址_巷") = Nothing
        e.DataRow("住址_号") = Nothing
        e.DataRow("住址_房") = Nothing
        e.DataRow("姓名") = Nothing
        e.DataRow("固定电话") = Nothing
        e.DataRow("手机号码") = Nothing
        e.DataRow("备注") = Nothing
        e.DataRow("车牌号码") = Nothing
        e.Cancel = True
    ElseIf DataTables("缴费情况").Find("[分类] = '" & DataTables("分类").DataRows(0)("分类") & "' And [缴费_月租_起计日期] = #" & e.DataRow("缴费_月租_起计日期") & "# And [缴费_月租_止计日期] = #" & e.DataRow("缴费_月租_止计日期") & "# And [车牌号码] = '" & e.NewValue & "'") IsNot Nothing Then
        MessageBox.Show("此车牌号码本月已录入缴费!")
        e.DataRow("住址_序号") = Nothing
        e.DataRow("住址_巷") = Nothing
        e.DataRow("住址_号") = Nothing
        e.DataRow("住址_房") = Nothing
        e.DataRow("姓名") = Nothing
        e.DataRow("固定电话") = Nothing
        e.DataRow("手机号码") = Nothing
        e.DataRow("备注") = Nothing
        e.DataRow("车牌号码") = Nothing
        e.Cancel = True
    End If
End If
这样写可以了。

 回到顶部
总数 47 上一页 1 2 3 4 5