Foxtable(狐表)用户栏目专家坐堂 → 如何通过过程对某个单元格赋值


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

主题:如何通过过程对某个单元格赋值

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


加好友 发短信
等级:幼狐 帖子:162 积分:1326 威望:0 精华:0 注册:2023/9/3 18:40:00
如何通过过程对某个单元格赋值  发帖心情 Post By:2023/9/4 18:15:00 [只看该作者]

想通过过程对表a的某个单元格进行赋值,请问代码怎么写哈?
过程共需要传递三个函数,分别是表名称(比如,表a),行、列。

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/9/4 20:02:00 [只看该作者]

至少需要4个参数,建议使用内部函数:http://www.foxtable.com/webhelp/topics/1486.htm

比如定义函数abc,函数代码为

dim 表名 as string = args(0)
dim 行 as integer = args(1)
dim  as string = args(2)
dim 
 as string = args(3)
tables(表名).rows()() = 

然后按钮调用函数代码为:
Functions.Execute("abc","表A",1,2,"我是一个值") '给表A第2行,第3列的单元格赋值为"我是一个值"
[此贴子已经被作者于2023/9/4 20:32:16编辑过]

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


加好友 发短信
等级:幼狐 帖子:162 积分:1326 威望:0 精华:0 注册:2023/9/3 18:40:00
  发帖心情 Post By:2023/9/4 20:16:00 [只看该作者]

datatable行、列脚标(你上例里的行脚标2,列脚标3)是什么类型的数据?是固定的吗?
为啥问这个问题?
因为,你给的代码,行列脚标都是以数字形式传递的。
我自己写的,列脚标以数字3传递,报错。
附信息:我的表横坐标(行)写的都是数字123456789之类。我表的纵坐标名称都是第一列、第二列这样的名字,我传字符串没报错。

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/9/4 20:34:00 [只看该作者]


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


加好友 发短信
等级:幼狐 帖子:162 积分:1326 威望:0 精华:0 注册:2023/9/3 18:40:00
  发帖心情 Post By:2023/9/4 21:22:00 [只看该作者]

你的建议是用到了“内部函数”。
在帮助里还有:杂项、高级话题、定义过程(这里定义的过程还是全局的)。
请问:
1.我觉得内部函数也是全局任何地方都可以调用。
那么自定义的内部函数与自定义的过程有什么区别?

我觉得二者区别是:
1.差一个返回值。函数有返回值,过程没有。
2.自定义的内部函数,传参个数可以是任意个。而且每个参数的类型也可以不同。
自定义过程传递的参数类型要提前声明,且传递的参数个数也得提前声明。
[此贴子已经被作者于2023/9/4 21:24:47编辑过]

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


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

差不多的。就是全局代码每次更改都得重启项目比较麻烦

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


加好友 发短信
等级:幼狐 帖子:162 积分:1326 威望:0 精华:0 注册:2023/9/3 18:40:00
  发帖心情 Post By:2023/9/4 21:33:00 [只看该作者]

我觉得二者区别是:
1.差一个返回值。函数有返回值,过程没有。
2.自定义的内部函数,传参个数可以是任意个。而且每个参数的类型也可以不同。
自定义过程传递的参数类型要提前声明,且传递的参数个数也得提前声明。

问题:
1.关于二者的区别,我说的对吗?
2.定义全局过程时,怎样定义能使得传递的参数不在意变量类型?



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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/9/4 22:02:00 [只看该作者]

1、不对。function类型的过程可以有返回值的:http://www.foxtable.com/webhelp/topics/1938.htm

2、Foxtable使用的就是vb.net,所有vb.net的语法都可以使用。动态参数可以百度搜“ParamArray

 回到顶部