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