以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]窗口事件AfterLoad  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=55546)

--  作者:yangxing
--  发布时间:2014/8/19 8:19:00
--  [求助]窗口事件AfterLoad

我在窗口事件AfterLoad写了一下代码!重启项目后“增加”命令就完全没有了,只有增加行编辑时才有,我是想只要是本人都可以看到“增加”命令。

 

 

Dim fm  As WinForm.FileManager = e.Form.Controls("FileManager1")
Dim r As Row = Tables("档案管理表八所").Current
 fm.DeleteCommand.Visible = False
 fm.ClearCommand.Visible =  False
 fm.ManagerCommand.Visible = False
 fm.AddFolderCommand.Visible = False
If _UserName = r("归档人") Then
    fm.AddCommand.Visible = True
Else
    fm.AddCommand.Visible = False
End If


--  作者:Bin
--  发布时间:2014/8/19 8:27:00
--  
因为If _UserName = r("归档人") Then  不成立了
--  作者:狐狸爸爸
--  发布时间:2014/8/19 8:38:00
--  

无需这么复杂,看看这里:
http://www.foxtable.com/help/topics/2638.htm
http://www.foxtable.com/help/topics/1446.htm


 将BeforeAddFile事件的代码设置为:
 
If _UserName = e.Datarow("归档人") Then
     e.Cancel = true
     Messagebox.show("不是你本人的记录,无权增加文件。")
end if
 
就OK了。

[此贴子已经被作者于2014-8-19 8:38:36编辑过]

--  作者:yangxing
--  发布时间:2014/8/19 11:20:00
--  
我去掉Then ,也一样的
--  作者:有点甜
--  发布时间:2014/8/19 11:24:00
--  

理解不了你想说什么,你原本那个例子,这个窗口是模式窗口,所以每次都会重新打开一次窗口,所以代码就这样写

 

If _UserName = r("归档人") Then
    fm.AddCommand.Visible = True
Else
    fm.AddCommand.Visible = False
End If

 

如果你的窗口是其它形式的,你就应该去写表格的currentchanged事件

 

If e.Table.Current IsNot Nothing Then
    If Forms("窗口1").Opened Then
        Dim fl As WinForm.FileManager = Forms("窗口1").Controls("FileManager1")
        If _UserName = e.Table.Current("归档人") Then
            fl.AddCommand.Visible = True
        Else
            fl.AddCommand.Visible = False
        End If
    End If
End If