Foxtable(狐表)用户栏目专家坐堂 → [原创]有关自定义函数调用(急用!!)


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

主题:[原创]有关自定义函数调用(急用!!)

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


加好友 发短信
等级:小狐 帖子:352 积分:3192 威望:0 精华:0 注册:2008/9/1 9:38:00
[原创]有关自定义函数调用(急用!!)  发帖心情 Post By:2011/8/15 11:04:00 [只看该作者]

以下为自定义函数competrnce_read代码

 

Dim dr As DataRow
Dim bm As String=Args(0)
Dim allcol,editcol,repeatfill As String
dr=DataTables("用户权限").find("用户='" & _username & "' and 表名='" & bm & "' and 停用=0")
If dr IsNot Nothing Then
    Vars("QX_gridname")=dr("表名")
    Vars("QX_view")=dr("视图")
    Vars("QX_opengrid")=dr("打开表")
    Vars("QX_editgrid")=dr("编辑表")
    Vars("QX_addrow")=dr("新增行")
    Vars("QX_deleterow")=dr("删除行")
    Vars("QX_addmultirow")=dr("新增多行")
    Vars("QX_deletemultirow")=dr("删除多行")
    Vars("QX_hidecol")=dr("隐藏列")
    Vars("QX_unhidecol")=dr("取消隐藏列")
    Vars("QX_lockrow")=dr("锁定行")
    Vars("QX_unlockrow")=dr("取消锁定行")
    Vars("QX_copy")=dr("复制")
    Vars("QX_paste")=dr("粘贴")
    Vars("QX_clone")=dr("克隆行")
    Vars("QX_export")=dr("导出")
    Vars("QX_review")=dr("审核")
    Vars("QX_printlabel")=dr("标签打印")
    Vars("QX_extract")=dr("提取数据")
    Vars("QX_zandian")=dr("站点")
    editcol=dr("可编辑列")
    repeatfill=dr("不可填充列")
    If vars("QX_opengrid")=True Then
        MainTable=Tables(vars("QX_gridname"))
        DataTables(vars("QX_gridname")).allowedit=Vars("QX_editgrid")
        If vars("QX_view")<>Nothing Then
            Tables(vars("QX_gridname")).stopredraw
            Tables(vars("QX_gridname")).openview(Vars("QX_view"))
            Tables(vars("QX_gridname")).resumeredraw
        End If    
        If Vars("QX_editgrid")=True Then
            If editcol IsNot Nothing
                Dim names As New List(Of String)
                For Each dc As DataCol In DataTables(vars("QX_gridname")).DataCols
                    names.add(dc.name)
                Next
                Dim t1(DataTables(vars("QX_gridname")).DataCols.count-1) As String
                For i As Integer=0 To DataTables(vars("QX_gridname")).DataCols.count-1
                    t1(i)=names(i)
                Next
                editcol="""" & editcol.replace(vbcrlf,""",""") & """"
                DataTables(vars("QX_gridname")).allowedit=True
                Tables(vars("QX_gridname")).allowedit=True
                For k As Integer=0 To t1.length-1
                    Select Case t1(k)
                        Case editcol
                            DataTables(vars("QX_gridname")).DataCols(t1(k)).allowedit=True
                            Tables(vars("QX_gridname")).Cols(t1(k)).allowedit=True
                        Case Else
                            DataTables(vars("QX_gridname")).DataCols(t1(k)).allowedit=False
                            Tables(vars("QX_gridname")).Cols(t1(k)).allowedit=False
                    End Select
                Next
            End If
        End If
        If Vars("QX_zandian")="管理员" Then
            Select Case vars("QX_gridname")
                Case "分组权限","用户权限"
                    For Each dc As DataCol In DataTables(vars("QX_gridname")).DataCols
                        If dc.name<>"操作记录" Then
                            DataTables(vars("QX_gridname")).DataCols(dc.name).allowedit=True
                            Tables(vars("QX_gridname")).Cols(dc.name).allowedit=True
                        Else
                            DataTables(vars("QX_gridname")).DataCols(dc.name).allowedit=False
                            Tables(vars("QX_gridname")).Cols(dc.name).allowedit=False
                        End If
                    Next
            End Select
        End If
    Else
        messagebox.show("您无权限打开所选表,请和系统管理员联系!","提示")
    End If
Else
    messagebox.show("当前用户权限未分配,请检查权限分配表,和系统管理员联系!","提示")
End If

 

问题:

1、以上自定义代码有问题吗?自定义函数据使用时应注意些什么?

 

2、我在调用此函数时很多定义的权限不能用,比如复制权限:(看图片)

在首次打开程序调用时复制数据会卡住,用ctrl+alt+del按下后然后重新再复制才可以复制数据,而且以后复制的数据都一直是第一次复制时的数据。

 

3、在自定义菜单标准按钮click事件中写入以下代码,调用自定义函数据,发现很多定义的权限不起作用,如编辑列等权限,全局变量赋值没有问题的,都可以正常读取值。

Functions.Execute("competence_read","外延")

 

请贺老师和高手帮忙看下,谢谢!


图片点击可在新窗口打开查看此主题相关图片如下:img1.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/8/15 11:05:00 [只看该作者]

这么长,我要晕了。

 


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


加好友 发短信
等级:小狐 帖子:352 积分:3192 威望:0 精华:0 注册:2008/9/1 9:38:00
  发帖心情 Post By:2011/8/15 11:12:00 [只看该作者]

其实中间主要是给全局变量赋值,想请教自定义代码的用法,什么时候触发,在菜单中触发行吗?


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/15 11:19:00 [只看该作者]

呵呵,能否简化一下问题,做个简单的例子,能体现出关键问题就行。

 

图片点击可在新窗口打开查看


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/8/15 13:06:00 [只看该作者]

要这么复杂做权限表?

 回到顶部