Foxtable(狐表)用户栏目专家坐堂 → 请教。。某列的值自动等于某列


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

主题:请教。。某列的值自动等于某列

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


加好友 发短信
等级:五尾狐 帖子:1181 积分:8108 威望:0 精华:1 注册:2009/1/17 10:52:00
请教。。某列的值自动等于某列  发帖心情 Post By:2009/4/4 14:41:00 [只看该作者]

我想让第二列的值等于自动第一列(当第一列有内容时,第一列是表达式列)
第二列不是表达式列。
不怎么做?

请教下。
[此贴子已经被作者于2009-4-4 14:41:46编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/4 14:45:00 [只看该作者]

以下是引用卟离卟弃在2009-4-4 14:41:00的发言:
我想让第二列的值等于自动第一列(当第一列有内容时)
第二列不是表达式列。
不怎么做?

请教下。

在表的DatacolChanged 事件中编写:
 if e.Datacol.Name="第一列"
    if e.DataRow.isnull("第一列")=False
      e.DataRow("第二列")=e.DataRow("第一列")
   end if
end if

补充:要把代码中的"第一列"改为第一列的列名,把"第二列"改为第二列的列名.

[此贴子已经被作者于2009-4-4 14:48:51编辑过]

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


加好友 发短信 好心情 一级勋章
等级:超级版主 帖子:715 积分:5564 威望:0 精华:1 注册:2008/8/31 20:45:00
  发帖心情 Post By:2009/4/4 15:07:00 [只看该作者]

2楼代码缺少空值判断。
if e.Datacol.Name="第一列"
    if e.DataRow.isnull("第一列")=False then
      e.DataRow("第二列")=e.DataRow("第一列")
else
      e.DataRow("第二列")=nothing
   end if
end if

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


加好友 发短信
等级:五尾狐 帖子:1181 积分:8108 威望:0 精华:1 注册:2009/1/17 10:52:00
  发帖心情 Post By:2009/4/4 15:27:00 [只看该作者]

第一列是表达式的时候,,不行。。。

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/4 15:33:00 [只看该作者]

以下是引用卟离卟弃在2009-4-4 15:27:00的发言:
第一列是表达式的时候,,不行。。。

    当然不行,表达式列变化的时候,是不会触发DatacolChanged事件的.编写代码的时候,千万注意表达式列的问题,稍不小心,就会掉进表达式列的陷阱里.我还是觉得把列区分为表达式列不舒服,目前的表达式列这儿不能用那儿不能用有点别扭.
    我刚开始看的时候,好像没有看到说第一列是表达式列啊?
    难道是我眼花了!

[此贴子已经被作者于2009-4-4 15:35:10编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1181 积分:8108 威望:0 精华:1 注册:2009/1/17 10:52:00
  发帖心情 Post By:2009/4/4 15:35:00 [只看该作者]

有劳了,
是我后来加上去的,
谢谢


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


加好友 发短信
等级:五尾狐 帖子:1181 积分:8108 威望:0 精华:1 注册:2009/1/17 10:52:00
  发帖心情 Post By:2009/4/4 15:40:00 [只看该作者]

软件中不是有 这么一列吗?[_Identify]
我想用这一列编个编码
因为这一列是永远不会重复的。。
比如说
第三列的内容=第一列+第二列+[_Identify]
这样形成一个唯一的编码///。。。
怎么做?
第一二三列都不是表达式列。。
[此贴子已经被作者于2009-4-4 15:41:44编辑过]

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


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

以下是引用smileboy在2009-4-4 15:07:00的发言:
2楼代码缺少空值判断。
if e.Datacol.Name="第一列"
    if e.DataRow.isnull("第一列")=False then
      e.DataRow("第二列")=e.DataRow("第一列")
else
      e.DataRow("第二列")=nothing
   end if
end if


应该这样:
if e.Datacol.Name="第一列"
     e.DataRow("第二列")=e.DataRow("第一列")
end if


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


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

以下是引用卟离卟弃在2009-4-4 15:40:00的发言:
软件中不是有 这么一列吗?[_Identify]
我想用这一列编个编码
因为这一列是永远不会重复的。。
比如说
第三列的内容=第一列+第二列+[_Identify]
这样形成一个唯一的编码///。。。
怎么做?
第一二三列都不是表达式列。。
[此贴子已经被作者于2009-4-4 15:41:44编辑过]

Select Case e.DataCol.Name
    Case "第一列","第二列"
       e.DataRow("第三列") = e.DataRow("第一列") & e.DataRow("第二列") & e.DataRow("_Identify")
End Select


 回到顶部