以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  窗口中做的“删除按钮”为什么不管用啊?老师帮看看吧  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=121398)

--  作者:guosheng
--  发布时间: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

--  作者:有点蓝
--  发布时间: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
--  发布时间:2018/7/5 14:13:00
--  
Identify分别弹出:638  和 639  
--  作者:有点蓝
--  发布时间:2018/7/5 14:18:00
--  
说明已经删除了,到数据库看看638  还在不在
--  作者:guosheng
--  发布时间:2018/7/5 14:54:00
--  
但是为什么删除的不是 窗口表(副表)选定的当前行啊?
--  作者:有点蓝
--  发布时间:2018/7/5 15:16:00
--  
原因:http://www.foxtable.com/webhelp/scr/1906.htm

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

--  作者:guosheng
--  发布时间: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 

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

 

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


--  作者:有点甜
--  发布时间: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