Foxtable(狐表)用户栏目专家坐堂 → 窗口中做的“删除按钮”为什么不管用啊?老师帮看看吧


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

主题:窗口中做的“删除按钮”为什么不管用啊?老师帮看看吧

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
窗口中做的“删除按钮”为什么不管用啊?老师帮看看吧  发帖心情 Post By:2018/7/5 13:55:00 [只看该作者]

测试messagebox.show(1)、messagebox.show(2)和messagebox.show(3)均弹出,但是实际上并没有实现删除行的效果。

Dim tbl As Table = Tables("查询资金支出_Table1")
If tbl.Current IsNot Nothing Then
    If user.isrole("录入")  And user.group=tbl.Current("承办部门") Then
        Dim wz As Integer = Tables("资金使用申请表").FindRow(tbl.current.DataRow)
        If wz >=0 Then
            Tables("资金使用申请表").position= wz
            
            Dim id1 As Integer = Tables("资金使用申请表").Current("_Identify")
            Dim Filter As String = "[_Identify] = " & id1
            Dim drs As DataRow=DataTables("资金使用申请表").sqlfind(Filter)
            If drs IsNot Nothing                   '如果后台查询到相关的行
                DataTables("资金使用申请表").StopRedraw() 
                LockBaseMainForm()
                DataTables("资金使用申请表").RemoveFor(Filter)
                DataTables("资金使用申请表").appendload(Filter)
                UnLockBaseMainForm()
                DataTables("资金使用申请表").ResumeRedraw()
                Dim i=Tables("查询资金支出_Table1").findrow("_identify="& id1)      
                If i>=0                      '刷新表后,重新定位窗口表的当前行
                    Tables("查询资金支出_Table1").position=i
                    Tables("资金使用申请表").position=i
                End If  
            Else                               '如果后台没有查询到相关的行
                messagebox.show("该项资金申请后台不存在!")
                Return
            End If
            If tbl.Current.isnull("资金申请审核人")=False Or tbl.Current.isnull("支单审核人")=False  Or tbl.Current.isnull("出纳")=False
                messagebox.show("该项资金申请财务已审核,无法删除!")
                Return
            End If
            If   MessageBox.Show("是否删除该条资金申请【" & tbl.current("合同名称") & " 资金申请金额:" & tbl.current("资金使用申请金额") & "】", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Question)=DialogResult.Yes
messagebox.show(1)
                Tables("资金使用申请表").current.delete
messagebox.show(2)
                Tables("资金使用申请表").save
messagebox.show(3)
            End If
        End If
    Else        '如果不是在操作本部门的数据,则提示无权操作
        e.cancel=True
        messagebox.show("您无权删除该条资金申请!")
    End If
End If

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


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/7/5 14:07:00 [只看该作者]

If   MessageBox.Show("是否删除该条资金申请【" & tbl.current("合同名称") & " 资金申请金额:" & tbl.current("资金使用申请金额") & "】", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Question)=DialogResult.Yes
    messagebox.show(Tables("资金使用申请表").current(_Identify)) '弹出什么值?
    Tables("资金使用申请表").current.delete
    messagebox.show(Tables("资金使用申请表").current(_Identify)) '弹出什么值?
    Tables("资金使用申请表").save
    messagebox.show(3)
End If

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2018/7/5 14:13:00 [只看该作者]

Identify分别弹出:638  和 639  

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


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/7/5 14:18:00 [只看该作者]

说明已经删除了,到数据库看看638  还在不在

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2018/7/5 14:54:00 [只看该作者]

但是为什么删除的不是 窗口表(副表)选定的当前行啊?

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


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/7/5 15:16:00 [只看该作者]

原因:http://www.foxtable.com/webhelp/scr/1906.htm

Tables("查询资金支出_Table1").current.delete

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2018/7/6 9:05:00 [只看该作者]

改成:Tables("查询资金支出_Table1").current.delete,确实能够删除窗口副表的当前行了。
但是为什么用:Tables("资金使用申请表").current.delete   没有删除窗口副表的当前行呢?
appendload行后,已经重新定位副表和主表的当前行了啊。
Dim i=Tables("查询资金支出_Table1").findrow("_identify="& id1) 
If i>=0      '刷新表后,重新定位窗口表的当前行
      Tables("查询资金支出_Table1").position=i
      Tables("资金使用申请表").position=i
End If 

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/6 9:33:00 [只看该作者]

以下是引用guosheng在2018/7/6 9:05:00的发言:
改成:Tables("查询资金支出_Table1").current.delete,确实能够删除窗口副表的当前行了。
但是为什么用:Tables("资金使用申请表").current.delete   没有删除窗口副表的当前行呢?
 

 

你要删除哪个表的行,表名一定要写正确。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/6 9:34:00 [只看该作者]

以下是引用guosheng在2018/7/6 9:05:00的发言:
 
appendload行后,已经重新定位副表和主表的当前行了啊。
Dim i=Tables("查询资金支出_Table1").findrow("_identify="& id1) 
If i>=0      '刷新表后,重新定位窗口表的当前行
      Tables("查询资金支出_Table1").position=i
      Tables("资金使用申请表").position=i
End If 

 

主表和窗口表显示的内容有可能不同,如果filter筛选条件不同、排序不同,都会导致它们不同。

 

如果要做同步,参考 http://www.foxtable.com/webhelp/scr/2631.htm

 


 回到顶部