以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 窗口中做的“删除按钮”为什么不管用啊?老师帮看看吧 (http://foxtable.net/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
|