Foxtable(狐表)用户栏目专家坐堂 → 将单元格的内容转化为计算代码出错


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

主题:将单元格的内容转化为计算代码出错

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


加好友 发短信
等级:四尾狐 帖子:967 积分:8517 威望:0 精华:0 注册:2015/8/12 16:28:00
将单元格的内容转化为计算代码出错  发帖心情 Post By:2016/7/17 14:29:00 [只看该作者]

Dim exp As DataRow
            exp=DataTables("货代明细").find("[货代名称]='" & dr("货代名称") & "' And" & "[服务类型] ='" & dr("服务类型") & "'"  )
            DataTables("信息输出表").DataRows(i)("总运费")=DataTables("信息输出表").Compute(exp("计算方式") )
    
图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

即使我的计算代码写成[]+[],最简单的加法。提示聚合函数出错。

.NET Framework 版本:2.0.50727.8689
Foxtable 版本:2016.6.26.1
错误所在事件:窗口,窗口1,Button1,Click
详细错误信息:
无法计算。表达式“System.Data.NameNode”不是聚合。

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


加好友 发短信
等级:四尾狐 帖子:967 积分:8517 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/7/17 14:31:00 [只看该作者]

本意是每个货代都有不同的计价方式,不写在代码里面方便就的维护。有没有什么办法可以实现?

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/7/18 8:57:00 [只看该作者]

 计算表达式,用这个:
http://www.foxtable.com/webhelp/scr/1277.htm


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


加好友 发短信
等级:四尾狐 帖子:967 积分:8517 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/7/18 10:13:00 [只看该作者]

非常感谢


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


加好友 发短信
等级:四尾狐 帖子:967 积分:8517 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/7/19 13:03:00 [只看该作者]

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=4430&authorid=0&page=12&star=1

 

我在其他链接里面找到这个,就是动态增加自定义函数。稍作修改就可以替代原有的函数。

但是请问,里面提到的这个

ReadAllText()

这个text文档需要放在那里?因为客户安装的路径可能不同。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/19 15:05:00 [只看该作者]

参考

 

Functions.remove("函数")
Dim Code As String
Code = "msgbox(123)"
Functions.Add("函数",Code)
Functions.Complie()
Functions.Execute("函数")

 

http://www.foxtable.com/webhelp/scr/1487.htm

 



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


加好友 发短信
等级:四尾狐 帖子:967 积分:8517 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/7/20 8:49:00 [只看该作者]

我明白这个add的添加自定义函数的。

但是这个code 的代码字符串是从其他文件读来的,这样在以后就可以随时更新大量琐碎但很简单的计算方法。

 

我的问题是:FileSys.ReadAllText(File,System.Text.Encoding.Default) 

 

这个text文档让客户放在那里?因为每台客户的电脑的安装路径都不一样

 

Dim Code as String = FileSys.ReadAllText(File,System.Text.Encoding.Default)   ‘读文本文件
    Functions.Add("Zdy",Code)   '添加到自定义函数
    Functions.Complie()             '编译
    Functions.Execute("Zdy")     '执行
    Functions.Remove("Zdy")     '代码执行完毕即删除函数


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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/7/20 8:54:00 [只看该作者]

http://www.foxtable.com/webhelp/scr/0358.htm

Dim Code as String = FileSys.ReadAllText(ProjectPath & "filename.txt",System.Text.Encoding.Default)   ‘读文本文件

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/20 8:58:00 [只看该作者]

 放在项目的文件夹下,然后用系统变量projectpath & "文件名.txt"


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


加好友 发短信
等级:四尾狐 帖子:967 积分:8517 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/7/20 9:04:00 [只看该作者]

非常感谢,这个每个计算方法不一致的东西为了方便客户维护搞了好几天,从单元格写代码到外部文件更新代码。。。


 回到顶部