Foxtable(狐表)用户栏目专家坐堂 → SQLTable动态表的绑定与设置显示行


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

主题:SQLTable动态表的绑定与设置显示行

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


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

哦,我明白了,应该是这代码阻止了保存,要把取消操作改为替代
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

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


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

我删除了缴费情况DataColChanging事件中的代码,改在DataColChanged中写,把不允许重复录入改为重算保存,但执行后值无改变。
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)
                If e.Form.name = "月租收费"
                    Dim drs As List(of DataRow) = DataTables("缴费情况").SQLSelect("[单号] = '" & Forms("月租收费").Controls("dh").text & "' And ([已审核] = False Or [已审核] Is null)")
                    If e.Form.Controls("rq").text = "" Then
                        messagebox.show("请选择日期")
                        Return
                    ElseIf Tables("月租收费_Table1").Compute("Count([车牌号码])") = 0 Then
                        Return
                    ElseIf drs.count > 0 Then
                        For Each dr0 As DataRow In drs
                            Dim trs As List(of DataRow) = DataTables("月租收费_Table1").Select("[车牌号码] is not null")
                            For i0 As Integer = 1 To trs.count - 1
                                dr0("缴费_月租_起计日期") = trs(i0)("缴费_月租_起计日期")
                                dr0("缴费_月租_止计日期") = trs(i0)("缴费_月租_止计日期")
                                dr0("缴费_月租_缴费月数") = trs(i0)("缴费_月租_缴费月数")
                                dr0("缴费_月租_月租单价") = trs(i0)("缴费_月租_月租单价")
                            Next
                        Next
                    End If
                    DataTables("缴费情况").SQLUpdate(drs)
                    DataTables("缴费情况").Load
                ElseIf e.Form.name = "临时收费录入"
                    Dim drs1 As List(of DataRow) = DataTables("缴费情况").SQLSelect("[单号] = '" & Forms("临时收费录入").Controls("dh").text & "' And ([已审核] = False Or [已审核] Is null)")
                    If e.Form.Controls("rq").text = "" Then
                        messagebox.show("请选择日期")
                        Return
                    ElseIf Tables("临时收费录入_Table1").Compute("Count([车牌号码])") = 0 Then
                        Return
                    ElseIf drs1.count > 0 Then
                        For Each dr1 As DataRow In drs1
                            Dim trs1 As List(of DataRow) = DataTables("临时收费录入_Table1").Select("[车牌号码] is not null")
                            For i1 As Integer = 1 To trs1.count - 1
                                dr1("缴费_月租_起计日期") = trs1(i1)("缴费_月租_起计日期")
                                dr1("缴费_月租_止计日期") = trs1(i1)("缴费_月租_止计日期")
                                dr1("缴费_月租_缴费月数") = trs1(i1)("缴费_月租_缴费月数")
                                dr1("缴费_月租_月租单价") = trs1(i1)("缴费_月租_月租单价")
                            Next
                        Next
                        DataTables("缴费情况").SQLUpdate(drs1)
                        DataTables("缴费情况").Load
                    ElseIf e.Form.name = "其他收费录入"
                        Dim drs2 As List(of DataRow) = DataTables("缴费情况").SQLSelect("[单号] = '" & Forms("其他收费录入").Controls("dh").text & "' And ([已审核] = False Or [已审核] Is null)")
                        If e.Form.Controls("rq").text = "" Then
                            messagebox.show("请选择日期")
                            Return
                        ElseIf Tables("其他收费录入_Table1").Compute("Count([车牌号码])") = 0 Then
                            Return
                        ElseIf drs2.count > 0 Then
                            For Each dr2 As DataRow In drs2
                                Dim trs2 As List(of DataRow) = DataTables("其他收费录入_Table1").Select("[车牌号码] is not null")
                                For i2 As Integer = 1 To trs2.count - 1
                                    dr2("缴费_月租_起计日期") = trs2(i2)("缴费_月租_起计日期")
                                    dr2("缴费_月租_止计日期") = trs2(i2)("缴费_月租_止计日期")
                                    dr2("缴费_月租_缴费月数") = trs2(i2)("缴费_月租_缴费月数")
                                    dr2("缴费_月租_月租单价") = trs2(i2)("缴费_月租_月租单价")
                                Next
                            Next
                            DataTables("缴费情况").SQLUpdate(drs2)
                            DataTables("缴费情况").Load
                        End If
                    End If
                    'e.Cancel = True
                End If
            End If
        End If
End Select

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

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

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



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


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

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

密码:888888

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


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

我删除了缴费情况DataColChanging事件中的代码,改在DataColChanged中写,把不允许重复录入改为重算保存,但执行后值无改变。
我要实现如果缴费情况表中的行存在窗口行中的车牌号号及单号,不允许重复录入,把缴费情况表中单号为窗口单号的数据保存为窗口上的数据。
[此贴子已经被作者于2021/3/19 15:45:32编辑过]

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


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

这是编辑数据时的操作。

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


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

保存是在按钮中执行啊,但缴费情况表中的数据无改变,被不允许重复保存代码取消执行了,现在的问题是如何实现不允许重复录,缴费情况表保存修改后的数据?
[此贴子已经被作者于2021/3/19 16:33:49编辑过]

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


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

还有你说自动行高没问题,我这记账凭证窗口中的摘要、会计科目、明细科目列试来试去都无法实现自动行高,不知你怎样试出的!

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


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

窗口上我是做了两种判断啊,一个是已存在就在原数据上重新保存,一个是不存在就添加:
Select Case e.StripItem.Name
    Case "保存" '保存代码
        Dim drs As List(of DataRow) = DataTables("缴费情况").SQLSelect("[单号] = '" & Forms("月租收费").Controls("dh").text & "' And ([已审核] = False Or [已审核] Is null)")
        If e.Form.Controls("rq").text = "" Then
            messagebox.show("请选择日期")
            Return
        ElseIf Tables("月租收费_Table1").Compute("Count([车牌号码])") = 0 Then
            Return
        ElseIf drs.count > 0 Then
            For Each dr As DataRow In drs
                Dim trs As List(of DataRow) = DataTables("月租收费_Table1").Select("[车牌号码] is not null")
                For i As Integer = 1 To trs.count - 1
                    dr("缴费_月租_起计日期") = trs(i)("缴费_月租_起计日期")
                    dr("缴费_月租_止计日期") = trs(i)("缴费_月租_止计日期")
                    dr("缴费_月租_缴费月数") = trs(i)("缴费_月租_缴费月数")
                    dr("缴费_月租_月租单价") = trs(i)("缴费_月租_月租单价")
                Next
            Next
            DataTables("缴费情况").SQLUpdate(drs)
            DataTables("缴费情况").Load
        ElseIf drs.count = 0 Then
            For Each dt As DataRow In DataTables("月租收费_Table1").Select("[车牌号码] is not null")
                Dim r As DataRow = DataTables("缴费情况").SQLFind("[车牌号码] = '" & dt("车牌号码") & "'And [单号] = '" & e.Form.Controls("dh").text & "' And ([已审核] = False Or [已审核] Is null)")
                If r Is Nothing Then
                    r = DataTables("缴费情况").addnew
                    r("日期") = e.Form.Controls("rq").text
                    r("单号") = e.Form.Controls("dh").text
                    r("分类") = DataTables("分类").DataRows(0)("分类")
                    r("车牌号码") = dt("车牌号码")
                    r("备注") = dt("备注")
                    r("前缀") = "YZ"
                    r("缴费_月租_起计日期") = dt("缴费_月租_起计日期")
                    r("缴费_月租_止计日期") = dt("缴费_月租_止计日期")
                    r("缴费_月租_缴费月数") = dt("缴费_月租_缴费月数")
                    r("缴费_月租_月租单价") = dt("缴费_月租_月租单价")
                    r("录入员") = e.Form.Controls("lry").text
                    r("操作人姓名") = User.Name & " " & Date.Now
                End If
            Next
        End If
        DataTables("缴费情况").Save()

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


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

现在的问题还是缴费情况表上的数据并无更新,这时候不能用跨表引用同步更新方法,因为窗口上的数据关闭后被删除,应如何解决保存窗口上修改过的数据,这是很常用的数据编辑问题。

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


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

加载是你写给我的,我一直在追问无法保存问题,你写给我DataTables("缴费情况").Load这代码,其实这代码没用。

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