Foxtable(狐表)用户栏目专家坐堂 → 局部变量问题


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

主题:局部变量问题

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


加好友 发短信
等级:一尾狐 帖子:400 积分:3961 威望:0 精华:0 注册:2009/4/28 7:39:00
局部变量问题  发帖心情 Post By:2009/12/12 13:57:00 [只看该作者]

查了FOXTABLE帮助,始终找不到"局部变量"提法.不知FOXTABLE有无局部变量说法?比如下列代码由两大模块组成,若能在填充数据模块之前申明是局部变量,之后告知是局部变量结束;同理, 计算模块之前申明是局部变量,之后告知是局部变量结束.这样就方便多了,代码中的变量”dr”     就不用改写了,无需将第二个变量设为”dr1”.在实际设计中会省去许多记忆变量的麻烦.这个问题应是很普遍的问题,不知大家目前是怎样解决它的?

 

填充数据模块

DataTables("过渡表").DataRows.Clear()
Tables("
过渡表").Redraw = False
Dim
dt As Table = Tables("过渡表")
Dim Count As Integer = Tables("
课程表").Count
Dim
dr As DataRow
…………….
Tables("
过渡表").Redraw = True

 

‘’计算模块

Dim t As New DataTableBuilder("temp") '创建临时表
………….

For Each dr As DataRow In DataTables("统计").DataRows
    dr("
出现次数") = DataTables("temp").Compute("Count(字符)", "字符 = '" & dr("字符") & "'")
Next


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2009/12/12 14:17:00 [只看该作者]

最好做到见名知意:
drFill   drCalc
这样可读性能好一点,还不怕重复。

至于变量的生命周期的:
Dim i As Integer
For i As Integer = 0 TO 10
Next
是不允许的


For i As Integer = 0 TO 10
Next
For i As Integer = 0 TO 10
Next
是允许的。






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


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/12/13 9:26:00 [只看该作者]

呵呵,其实变量的名称却是应该是有意义的,特别是代码很长的时候。
foxtable中的示例代码很短,所以都是dr1、dr2这样的了,后果是养成了很多用户不良的习惯,我也意识到这个问题了。

关于变量的作用范围,和vb.net完全一样的。

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33951 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/13 10:25:00 [只看该作者]

呵,这样的习惯,老六是罪魁。
俺以后用中文,意义似乎更大图片点击可在新窗口打开查看

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7249 积分:40704 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2009/12/13 13:04:00 [只看该作者]

以下是引用czy在2009-12-13 10:25:00的发言:
呵,这样的习惯,老六是罪魁。
俺以后用中文,意义似乎更大图片点击可在新窗口打开查看


   就是,我以前就是有中文,现在被帮助文件给染色了,因为长期复制修改代码的习惯!

      


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


加好友 发短信
等级:小狐 帖子:324 积分:3807 威望:0 精华:0 注册:2008/9/1 7:34:00
  发帖心情 Post By:2009/12/14 11:35:00 [只看该作者]

以下是引用czy在2009-12-13 10:25:00的发言:
呵,这样的习惯,老六是罪魁。
俺以后用中文,意义似乎更大图片点击可在新窗口打开查看

举一反三一下:
例1:
dim h as integer =0
DataTables("课时名单").DataRows.Clear()
For Each 课程表的行 As DataRow In DataTables("课程表").DataRows
    for Each 课程表的列 as Datacol in DataTables("课程表").Datacols
        if 课程表的行(课程表的列) isnot nothing  then    
..........
例2:
dim h as integer =0
DataTables("课时名单").DataRows.Clear()
For Each 课程表的  行 As DataRow In DataTables("课程表").DataRows
    for Each 课程表的  列 as Datacol in DataTables("课程表").Datacols
        if 课程表的  行(课程表的  列) isnot nothing  then                                                  

.............

感觉怪怪的,是否需加特别标示为变量?如%课程表的行%

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


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/12/14 12:00:00 [只看该作者]

用中文,看起来更乱。

“课程表的行”不如拼音缩写:kbh

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


加好友 发短信
等级:一尾狐 帖子:400 积分:3961 威望:0 精华:0 注册:2009/4/28 7:39:00
  发帖心情 Post By:2009/12/26 17:25:00 [只看该作者]

今天遇到一个需要将7个过程连接起来的设计,每个过程都没有问题,但合在一起不是这里有问题,就是那里有问题,改了这处忘了那处,到处都是问题。故再次建议增加“过程1”,“过程2”,。。。。“过程n”中使用的“全局变量”和“局部变量”,以便各个过程的变量互不干扰。

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


加好友 发短信
等级:一尾狐 帖子:400 积分:3961 威望:0 精华:0 注册:2009/4/28 7:39:00
  发帖心情 Post By:2009/12/26 17:58:00 [只看该作者]

我采用内部函数试试。

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


加好友 发短信
等级:一尾狐 帖子:400 积分:3961 威望:0 精华:0 注册:2009/4/28 7:39:00
  发帖心情 Post By:2009/12/26 18:40:00 [只看该作者]

测试成功了,解决过程变量问题最好的方法是内部函数。

 回到顶部