Foxtable(狐表)用户栏目专家坐堂 → 安条件删除报错


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

主题:安条件删除报错

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
安条件删除报错  发帖心情 Post By:2021/8/22 14:03:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:20210822.png
图片点击可在新窗口打开查看
后台的表名取当前集合的表名,如果后台的表科目名称列与窗口里当前行的
科目名称相符,且未审核,同时财务数据源表的科目名称列不存在等于窗口中当前行科目名称的行,允许删除行,否则取消操作,我这样写报错。
Select Case e.StripItem.Name
        Case "删除行"
            Dim dt As DataRow = DataTables(vars("a")).Find("[科目名称] = '" & CurrentTable.Current("科目名称") & "' And ([已审核] = False Or [已审核] Is null)")
            Dim dr As DataRow = DataTables("财务数据源").SQLFind("[科目名称] = '" & CurrentTable.Current("科目名称") & "'")
            If dt IsNot Nothing And dr Is Nothing Then
                Dim Result As DialogResult
                Result = MessageBox.Show("是否确定要删除此单?","提示",MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                If Result = DialogResult.Yes Then
                    CurrentTable.Current.Delete()
                    DataTables(vars("a")).Save()
                Else
                    Return
                End If
            Else
                MessageBox.show("该科目含已审核初始数据,或账套启用后已被引用,不能删除.")
            End If
    End Select
[此贴子已经被作者于2021/8/22 14:04:12编辑过]

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


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

改为这样可以删除了:
If dt Is Nothing And dr Is Nothing Then
为什么是:
dt Is Nothing 不是IsNot呢?

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


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

vars("a")是哪个表?

msgbox(vars("a"))
msgbox(CurrentTable.name)
msgbox(CurrentTable.Current("科目名称"))


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


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

在窗口的Enter事件已经写了代码:
If Typeof e.sender Is WinForm.TabControl Then '判断控件是否是文本框
    Dim t As WinForm.TabControl = e.sender '使用特定类型的变量引用控件
    vars("a") = t.SelectedPage.text
End If

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


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

不是判断当前表,当前表没存在审核列,后台的表才有审核列。

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


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

那代码查的就是当前表呀

Dim dt As DataRow = DataTables(vars("a")).Find("[科目名称] = '" & CurrentTable.Current("科目名称") & "' And ([已审核] = False Or [已审核] Is null)")

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


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

不,这是定义后台的表名等于点选的集合名称的科目名称列等于当前行的科目名称,且审核列为False或审核为空的行。

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


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

窗口中的表没有审核列,后台的表才有。

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


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

那说明这个所谓的后台表没有加载需要查询的数据

 回到顶部