Foxtable(狐表)用户栏目专家坐堂 → 录入凭证设计


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

主题:录入凭证设计

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


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

        Else
            For Each dt As dataRow In dataTables("月租收费_Table1").select("车牌号码 is not null")
                Dim r As DataRow = DataTables("缴费情况").find("[车牌号码]='" & dt("车牌号码") & "'")
if r is nothing then r = DataTables("缴费情况").addnew
                    r("日期") = e.Form.Controls("rq").text
                    r("单号") = e.Form.Controls("dh").text
                    r("住址_巷") = dt("住址_巷")

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


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

这代码我按两次保存按钮,它会把数据添加两次进缴费情况表:
'一.数据录入:
Select Case e.StripItem.Name
    Case "保存" '保存代码
        If e.Form.Controls("rq").text = "" Then
            messagebox.show("请选择日期")
            Return
        ElseIf Tables("月租收费_Table1").Compute("Count([车牌号码])") = 0 Then
            Return
        ElseIf e.Form.Controls("dh").text = "" Then
            Return '如果是,取消操作.
        Else
            For Each dt As DataRow In DataTables("月租收费_Table1").Select("车牌号码 is not null")
                Dim r As DataRow = DataTables("缴费情况").find("[车牌号码]='" & dt("车牌号码") & "'")
                r = DataTables("缴费情况").addnew
                r("日期") = e.Form.Controls("rq").text
                r("单号") = e.Form.Controls("dh").text
                r("住址_巷") = dt("住址_巷")
                r("住址_号") = dt("住址_号")
                r("住址_房") = dt("住址_房")
                r("固定电话") = dt("固定电话")
                r("手机号码") = dt("手机号码")
                r("车牌号码") = dt("车牌号码")
                r("备注") = dt("备注")
                r("前缀") = "yz"
                r("缴费_月租_起计日期") = dt("缴费_月租_起计日期")
                r("缴费_月租_止计日期") = dt("缴费_月租_止计日期")
                r("缴费_月租_月租单价") = dt("缴费_月租_月租单价")
                r("录入员") = e.Form.Controls("lry").text
            Next
        End If
        DataTables("缴费情况").Save()
    Case "取消" '取消代码
        e.Form.Close()
    Case "删除" '删除代码
        e.Form.Close()
        DataTables("缴费情况").DeleteFor("[单号] =" & "'" & e.Form.Controls("dh") & "'")
End Select

我在缴费情况表的DataColChanging事件写入禁止重复录入
Select Case e.DataCol.name
    Case "车牌号码","单号"
        Dim xh As String
        Dim gg As String
        If e.DataCol.Name= "车牌号码" Then
            xh = e.NewValue
            gg = e.DataRow("单号")
        Else
            gg = e.NewValue
            xh = e.DataRow("车牌号码")
        End If
        If xh > "" AndAlso gg  > "" Then 
            Dim dr As DataRow = e.DataRow
            If e.DataTable.Find("车牌号码 = '" & xh & "' And 单号 = '" & gg & "'") IsNot Nothing Then
                MessageBox.Show("已经录入!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.Cancel = True
            End If
        End If
End Select
它只取消车牌号码录入,其它列的数据依然添加到相应的列中,只是因为我在关闭窗口代码中设置了:
DataTables("缴费情况").DeleteFor("[车牌号码] is null ")
于是车牌为空的行被删除,我要求,已录入数据直接不要再添加。

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


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

if r is nothing then r = DataTables("缴费情况").addnew

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


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

你这段代码我昨晚试过,写成这样直接报错
if r is nothing then r = DataTables("缴费情况").addnew
写成这样不报错,但一行数据都没有复制到缴费情况表
If r Is Nothing Then
                    r = DataTables("缴费情况").addnew


[此贴子已经被作者于2021/1/12 11:24:56编辑过]

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


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

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

密码:888888
你试试。

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


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

报什么错?我测试没有问题

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  57楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2021/1/12 10:27:00 [只看该作者]

Select Case e.StripItem.Name
    Case "保存" '保存代码
        if e.Form.Controls("dh").text = ""
            messagebox.show("请输入正确的单号!")
            Return
        end if
        If e.Form.Controls("rq").text = "" Then
            messagebox.show("请选择日期")
            Return
        ElseIf Tables("月租收费_Table1").Compute("Count([车牌号码])") = 0 Then
            Return
        Else
            For Each dt As DataRow In DataTables("月租收费_Table1").Select("车牌号码 is not null")
                Dim r As DataRow = DataTables("缴费情况").find("[车牌号码]='" & dt("车牌号码") & "'")
                r = DataTables("缴费情况").addnew
                r("日期") = e.Form.Controls("rq").text
                r("单号") = e.Form.Controls("dh").text
                r("住址_巷") = dt("住址_巷")
                r("住址_号") = dt("住址_号")
                r("住址_房") = dt("住址_房")
                r("固定电话") = dt("固定电话")
                r("手机号码") = dt("手机号码")
                r("车牌号码") = dt("车牌号码")
                r("备注") = dt("备注")
                r("前缀") = "yz"
                r("缴费_月租_起计日期") = dt("缴费_月租_起计日期")
                r("缴费_月租_止计日期") = dt("缴费_月租_止计日期")
                r("缴费_月租_月租单价") = dt("缴费_月租_月租单价")
                r("录入员") = e.Form.Controls("lry").text
            Next
        End If
       e.Form.Controls("dh").text = ""
        DataTables("缴费情况").Save()
    Case "取消" '取消代码
        e.Form.Close()
    Case "删除" '删除代码
        e.Form.Close()
        DataTables("缴费情况").DeleteFor("[单号] =" & "'" & e.Form.Controls("dh") & "'")
End Select

[此贴子已经被作者于2021/1/12 10:29:23编辑过]

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


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

没有复制说明车牌号相同,肯定就不添加数据了

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  59楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2021/1/12 10:43:00 [只看该作者]

或者这样:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:文档1.rar

[此贴子已经被作者于2021/1/12 10:44:25编辑过]

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


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

写成这样:重复保存,缴费情况表会录入两次数据,车牌号码及单号重复的不录入车牌号码(一定要两个条件同时并存,否则同一车牌号码,一年内缴几次费就不允许录入,这是不对的,同理同一张单同时录入几个车牌的缴费,把单号视为重复,不允许录入也不对,分类查账时就没有对应单号了。),但其它列照常录入,关闭窗口后,由于车牌号码为空,执行了关闭窗口的代码把车牌号码为空的行删除了,程兴刚开头红色标注的代码没必要的,因为窗口中的单号自动生成,不存在为空,所以无需断判,现在的代码把重复的生成后再删除又没必要,如何把效果做得更好些呢?蓝老师的代码还是54楼的问题,你打开项目把日期推前几个月试试保存就知了。

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

图片点击可在新窗口打开查看此主题相关图片如下:012.png
图片点击可在新窗口打开查看
'一.数据录入:
Select Case e.StripItem.Name
    Case "保存" '保存代码
        If e.Form.Controls("rq").text = "" Then
            messagebox.show("请选择日期")
            Return
        ElseIf Tables("月租收费_Table1").Compute("Count([车牌号码])") = 0 Then
            Return
        Else
            For Each dt As DataRow In DataTables("月租收费_Table1").Select("[车牌号码] is not null")
                Dim r As DataRow = DataTables("缴费情况").addnew
                r("日期") = e.Form.Controls("rq").text
                r("单号") = e.Form.Controls("dh").text
                r("住址_巷") = dt("住址_巷")
                r("住址_号") = dt("住址_号")
                r("住址_房") = dt("住址_房")
                r("固定电话") = dt("固定电话")
                r("手机号码") = dt("手机号码")
                r("车牌号码") = dt("车牌号码")
                r("备注") = dt("备注")
                r("前缀") = "yz"
                r("缴费_月租_起计日期") = dt("缴费_月租_起计日期")
                r("缴费_月租_止计日期") = dt("缴费_月租_止计日期")
                r("缴费_月租_月租单价") = dt("缴费_月租_月租单价")
                r("录入员") = e.Form.Controls("lry").text
            Next
        End If
        DataTables("缴费情况").Save()
    Case "取消" '取消代码
        e.Form.Close()
    Case "删除" '删除代码
        e.Form.Close()
        DataTables("缴费情况").DeleteFor("[单号] =" & "'" & e.Form.Controls("dh") & "'")
End Select

[此贴子已经被作者于2021/1/12 14:39:09编辑过]

 回到顶部
总数 81 上一页 1 2 3 4 5 6 7 8 9 下一页