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


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

主题:自定义函数

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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
自定义函数  发帖心情 Post By:2017/6/29 21:28:00 [只看该作者]

我做了一个自定义函数的例子,报错是什么原因?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:自定义函数.foxdb


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/29 22:20:00 [只看该作者]

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:自定义函数.foxdb


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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2017/6/30 14:32:00 [只看该作者]

我编写一个计算列值求和的函数,怎么做?比如,如果“项目列”行值是资产合计,那么资产合计所在行的期初余额的值就等于 流动资产和非流动资产所行的期初余额合计,怎么写代码?

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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2017/6/30 14:40:00 [只看该作者]

Dim jisuanziduan As String  = Args(0)
Dim jisuanhangzhi As String  = Args(1)
Dim quzhiziduan As String  = Args(2)
Dim jisuanzhi As Double  = Args(3)
Dim quzhiziduanzhi As String  = Args(4)
If e.DataRow.name = "jisuanziduan" AndAlso e.DataRow("jisuanziduan") = "jisuanhangzhi" Then
    For i As Integer = 4 To Args.Length - 1
        jisuanzhi = jisuanzhi + e.DataTable.find("quzhiziduan = Args(i)" )
    Next
End If
Return jisuanzhi

编制以上自定义函数的代码是为了实现3楼的功能,但是自定义函数不能使用e.参数,因此不知道该怎么写了。


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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2017/6/30 14:42:00 [只看该作者]

Dim jisuanziduan As String  = Args(0)
Dim jisuanhangzhi As String  = Args(1)
Dim quzhiziduan As String  = Args(2)
Dim jisuanzhi As Double  = Args(3)
Dim quzhiziduanzhi As String  = Args(4)
If e.DataRow.name = "jisuanziduan" AndAlso e.DataRow("jisuanziduan") = "jisuanhangzhi" Then
    For i As Integer = 4 To Args.Length - 1
        jisuanzhi = jisuanzhi + e.DataTable.find("quzhiziduan = Args(i)" )(“quzhiziduan”)4楼代码这行写错了
    Next
End If
Return jisuanzhi

编制以上自定义函数的代码是为了实现3楼的功能,但是自定义函数不能使用e.参数,因此不知道该怎么写了。


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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/6/30 16:10:00 [只看该作者]

Dim jisuanziduan As String  = Args(0)
Dim jisuanhangzhi As String  = Args(1)
Dim quzhiziduan As String  = Args(2)
Dim jisuanzhi As Double  = Args(3)
Dim quzhiziduanzhi As String  = Args(4)
If e.DataRow.name = jisuanziduan AndAlso e.DataRow(jisuanziduan) = jisuanhangzhi Then
    For i As Integer = 4 To Args.Length - 1
        Dim dr As DataRow =  e.DataTable.find(quzhiziduan & “ = '" & Args(i) & "'" )
        If dr IsNot Nothing Then
            jisuanzhi = jisuanzhi +dr(quzhiziduan)
        End If
    Next
End If
Return jisuanzhi

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


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

 回复5楼,你的e参数,可以在调用函数的时候,直接传递进去的啊。

 

 然后再在函数里获取

 

Dim e = args(0)


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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2017/6/30 17:42:00 [只看该作者]

6楼没有办法在自定义函数中使用呀?7楼说的意思我不明白做,请你把6楼的函数按7楼思路给编写一下吧。


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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/6/30 18:04:00 [只看该作者]

上传实例测试

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


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

以下是引用kaituozhe在2017/6/30 17:42:00的发言:

6楼没有办法在自定义函数中使用呀?7楼说的意思我不明白做,请你把6楼的函数按7楼思路给编写一下吧。

 

调用abc函数

Functions.Execute("abc", e)

 

-------------

 

定义abc函数

Dim e = args(0)


 回到顶部
总数 22 1 2 3 下一页