Foxtable(狐表)用户栏目专家坐堂 → 自定义函数的参数问题


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

主题:自定义函数的参数问题

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


加好友 发短信
等级:二尾狐 帖子:597 积分:4974 威望:0 精华:0 注册:2012/12/27 12:34:00
自定义函数的参数问题  发帖心情 Post By:2015/3/16 11:19:00 [只看该作者]

自定义函数中的参数不能直接接收与任何一个表格中字段名称相同的文本型数据吗? 我在实际操作中遇到了,自定义函数接受不到。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/3/16 11:19:00 [只看该作者]

可以接收任何数据类型,任何数据.  你具体是怎么做的,出现什么问题

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


加好友 发短信
等级:二尾狐 帖子:597 积分:4974 威望:0 精华:0 注册:2012/12/27 12:34:00
  发帖心情 Post By:2015/3/16 11:31:00 [只看该作者]

Dim mArgs,aArgs As String
Dim result As Boolean
Dim perdr As DataRow = DataTables("TB_Permissions").Find("[tb_Caption] = '" & mArgs & "' And [" & aArgs & "] like '%" & Vars("userid") & "%'")
If perdr IsNot Nothing Then
    result = True
Else
    result = False
End If
Return result

这是我的自定义函数,其中aArgs需要接收的是DataTables("TB_Permissions")中某一字段的名称。
在使用时将mArgs和aArgs传递给自定义函数。但调试中mArgs可以正常传递,因为其是一个不与任何字段名称冲突的文本型变量。但aArgs就有问题了。

提示出错:
---------------------------
错误
---------------------------
自定义函数"QX"执行出错,错误信息如下:



System.Data.SyntaxErrorException: 表达式包含无效名称:“[] like '%12042%'”。

   在 System.Data.ExpressionParser.ScanName(Char chEnd, Char esc, String charsToEscape)

   在 System.Data.ExpressionParser.Scan()

   在 System.Data.ExpressionParser.Parse()

   在 System.Data.DataExpression..ctor(DataTable table, String expression, Type type)

   在 System.Data.Select..ctor(DataTable table, String filterExpression, String sort, DataViewRowState recordStates)

   在 System.Data.DataTable.Select(String filterExpression, String sort)

   在 Foxtable.DataTable.Find(String filterExpression, String Sort, Int32 Index)

   在 UserCode.AeQJR5u78jTuRcoAE(Object[] Args)
---------------------------
确定   
---------------------------



[此贴子已经被作者于2015/3/16 11:32:03编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/16 11:34:00 [只看该作者]

不论什么变量,都传递的。

 

接收的时候直接写

 

Dim a1 = args(0)

Dim a2 = args(1)

Dim a3 = args(2)


 回到顶部