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


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

主题:录入凭证设计

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/1/11 22:14:00 [显示全部帖子]

去除红色标注的代码,会把窗口中的空行都添加到缴费情况表,并不断弹出重复提示(有多少行空行就弹多少个窗口),我在缴费情况表加了不允许重复提示,在关窗口代码处亦写入了DataTables("缴费情况").DeleteFor("[车牌号码] is null "),但很扰人,我要求空行不添加到缴费情况表,只添加有数据的行,但写成这样依然报错:另不明白单号日期安行正常添加了,单号去只添加一行,问题出在哪?
'一.数据录入:
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 Row In Tables("月租收费_Table1").Rows
                Dim r As DataRow = DataTables("缴费情况").addnew
                For i As Integer = 0 To Tables("月租收费_Table1").Compute("Count([车牌号码])") - 1
                    r("日期") = e.Form.Controls("rq").text
                    r("单号") = e.Form.Controls("dh").text
                    r("住址_巷") = dt(i)("住址_巷")
                    r("住址_号") = dt(i)("住址_号")
                    r("住址_房") = dt(i)("住址_房")
                    r("固定电话") = dt(i)("固定电话")
                    r("手机号码") = dt(i)("手机号码")
                    r("车牌号码") = dt(i)("车牌号码")
                    r("备注") = dt(i)("备注")
                    r("前缀") = "yz"
                    r("缴费_月租_起计日期") = dt(i)("缴费_月租_起计日期")
                    r("缴费_月租_止计日期") = dt(i)("缴费_月租_止计日期")
                    r("缴费_月租_月租单价") = dt(i)("缴费_月租_月租单价")
                    r("录入员") = e.Form.Controls("lry").text
                Next
            Next
        End If
        DataTables("缴费情况").Save()
    Case "取消" '取消代码
        e.Form.Close()
    Case "删除" '删除代码
        e.Form.Close()
        DataTables("缴费情况").DeleteFor("[单号] =" & "'" & e.Form.Controls("dh") & "'")
End Select
[此贴子已经被作者于2021/1/11 22:16:59编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望: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 ")
于是车牌为空的行被删除,我要求,已录入数据直接不要再添加。

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望: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编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/1/12 10:19:00 [显示全部帖子]

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

密码:888888
你试试。

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望: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编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/1/12 14:38: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
        Else
            For Each dt As DataRow In DataTables("月租收费_Table1").Select("[车牌号码] is not null")
                Dim r As DataRow = DataTables("缴费情况").Find("[车牌号码] = '" & dt("车牌号码") & "'And [单号] = '" & e.Form.Controls("dh").text & "'")
                If r Is Nothing Then
                    r = DataTables("缴费情况").addnew
                    r("日期") = e.Form.Controls("rq").text
                    r("单号") = e.Form.Controls("dh").text
                    r("车牌号码") = dt("车牌号码")
                    r("备注") = dt("备注")
                    r("前缀") = "yz"
                    r("缴费_月租_起计日期") = dt("缴费_月租_起计日期")
                    r("缴费_月租_止计日期") = dt("缴费_月租_止计日期")
                    r("缴费_月租_月租单价") = dt("缴费_月租_月租单价")
                    r("录入员") = e.Form.Controls("lry").text
                End If
            Next
        End If
        DataTables("缴费情况").Save()
    Case "取消" '取消代码
        e.Form.Close()
    Case "删除" '删除代码
        e.Form.Close()
        DataTables("缴费情况").DeleteFor("[单号] =" & "'" & e.Form.Controls("dh") .text & "'")
End Select

[此贴子已经被作者于2021/1/13 21:07:55编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/1/27 10:54:00 [显示全部帖子]

双击缴费情况表行,弹出月租收费窗口,并显示当前行单据,我在DoubleClick事件中这样写报错,窗口里没任何数据显示。

图片点击可在新窗口打开查看此主题相关图片如下:012701.png
图片点击可在新窗口打开查看
If e.Row.IsNull("车牌号码") = False AndAlso e.Row.IsNull("缴费_月租_缴费金额") Then
    Forms("临时收费录入").Open()
ElseIf e.Row.IsNull("车牌号码") = False AndAlso e.Row.IsNull("缴费_临时停放_缴费金额") Then
    Forms("月租收费").Open()
    'For Each dt As DataRow In DataTables("缴费情况").Select("[车牌号码] = '" & e.DataRow("车牌号码") & "'And [单号] = '" & e.DataRow("单号") & "'")
    Dim r As DataRow = Forms("月租收费").Controls("Table1").Table.DataTable.DataRows
    Dim dts As List(of DataRow) = DataTables("缴费情况").SQLSelect("[车牌号码] = '" & e.Row("车牌号码") & "'And [单号] = '" & e.Row("单号") & "'")
    r("车牌号码") = dts("车牌号码")
    r("备注") = dts("备注")
    r("缴费_月租_起计日期") = dts("缴费_月租_起计日期")
    r("缴费_月租_止计日期") = dts("缴费_月租_止计日期")
    r("缴费_月租_月租单价") = dts("缴费_月租_月租单价")
    Forms("月租收费").Controls("rq").text = e.Row("日期")
    Forms("月租收费").Controls("dh").text = e.Row("单号")
    Forms("月租收费").Controls("lry").text = e.Row("录入员")
    Forms("月租收费").Controls("shr").text = e.Row("审核人")
    'Next
End If

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/1/27 11:29:00 [显示全部帖子]

这样写也报错啊
If e.Row.IsNull("车牌号码") = False AndAlso e.Row.IsNull("缴费_月租_缴费金额") Then
    Forms("临时收费录入").Open()
ElseIf e.Row.IsNull("车牌号码") = False AndAlso e.Row.IsNull("缴费_临时停放_缴费金额") Then
    Forms("月租收费").Open()
    Dim r As DataRow = Forms("月租收费").Controls("Table1").Table.DataTable.DataRow
    Dim dts As List(of DataRow) = DataTables("缴费情况").SQLSelect("[车牌号码] = '" & e.Row("车牌号码") & "'And [单号] = '" & e.Row("单号") & "'")
    For Each dt As DataRow In dts
        r("车牌号码") = dt("车牌号码")
        r("备注") = dt("备注")
        r("缴费_月租_起计日期") = dt("缴费_月租_起计日期")
        r("缴费_月租_止计日期") = dt("缴费_月租_止计日期")
        r("缴费_月租_月租单价") = dt("缴费_月租_月租单价")
        Forms("月租收费").Controls("rq").text = e.Row("日期")
        Forms("月租收费").Controls("dh").text = e.Row("单号")
        Forms("月租收费").Controls("lry").text = e.Row("录入员")
        Forms("月租收费").Controls("shr").text = e.Row("审核人")
    Next
End If

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/1/27 11:34:00 [显示全部帖子]

这样写也错
If e.Row.IsNull("车牌号码") = False AndAlso e.Row.IsNull("缴费_月租_缴费金额") Then
    Forms("临时收费录入").Open()
ElseIf e.Row.IsNull("车牌号码") = False AndAlso e.Row.IsNull("缴费_临时停放_缴费金额") Then
    Forms("月租收费").Open()
    Dim r As DataRow = Forms("月租收费").Controls("Table1").Table.DataTable.DataRow
    'Dim dts As List(of DataRow) = DataTables("缴费情况").SQLSelect("[车牌号码] = '" & e.Row("车牌号码") & "'And [单号] = '" & e.Row("单号") & "'")
    'For Each dt As DataRow In dts
    Dim dt As DataRow = DataTables("缴费情况").SQLfind("[车牌号码] = '" & e.Row("车牌号码") & "'And [单号] = '" & e.Row("单号") & "'")
    r("车牌号码") = dt("车牌号码")
    r("备注") = dt("备注")
    r("缴费_月租_起计日期") = dt("缴费_月租_起计日期")
    r("缴费_月租_止计日期") = dt("缴费_月租_止计日期")
    r("缴费_月租_月租单价") = dt("缴费_月租_月租单价")
    Forms("月租收费").Controls("rq").text = e.Row("日期")
    Forms("月租收费").Controls("dh").text = e.Row("单号")
    Forms("月租收费").Controls("lry").text = e.Row("录入员")
    Forms("月租收费").Controls("shr").text = e.Row("审核人")
    'Next
End If

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/1/27 12:05:00 [显示全部帖子]

你的代码是当前行,我想显示整张单的所有数据,这样写报错:
If e.Row.IsNull("车牌号码") = False AndAlso e.Row.IsNull("缴费_月租_缴费金额") Then
    Forms("临时收费录入").Open()
ElseIf e.Row.IsNull("车牌号码") = False AndAlso e.Row.IsNull("缴费_临时停放_缴费金额") Then
    Forms("月租收费").Open()
    Forms("月租收费").Controls("rq").text = e.Row("日期")
    Forms("月租收费").Controls("dh").text = e.Row("单号")
    Forms("月租收费").Controls("lry").text = e.Row("录入员")
    Forms("月租收费").Controls("shr").text = e.Row("审核人")
    Dim dts As List(of DataRow) = DataTables("缴费情况").SQLSelect("[单号] = '" & e.Row("单号") & "'")
    For i As Integer = 0 To dts.count - 1
    Dim r As Row = Forms("月租收费").Controls("Table1").Table.Row
        r("车牌号码") = dts(i)("车牌号码")
        r("备注") = dts(i)("备注")
        r("缴费_月租_起计日期") = dts(i)("缴费_月租_起计日期")
        r("缴费_月租_止计日期") = dts(i)("缴费_月租_止计日期")
        r("缴费_月租_月租单价") = dts(i)("缴费_月租_月租单价")
        i + = 1
    Next
End If
[此贴子已经被作者于2021/1/27 13:35:57编辑过]

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