我想让第二列的值等于自动第一列(当第一列有内容时,第一列是表达式列)
第二列不是表达式列。
不怎么做?
请教下。
[此贴子已经被作者于2009-4-4 14:41:46编辑过]
以下是引用卟离卟弃在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编辑过]
以下是引用卟离卟弃在2009-4-4 15:27:00的发言:
第一列是表达式的时候,,不行。。。
当然不行,表达式列变化的时候,是不会触发DatacolChanged事件的.编写代码的时候,千万注意表达式列的问题,稍不小心,就会掉进表达式列的陷阱里.我还是觉得把列区分为表达式列不舒服,目前的表达式列这儿不能用那儿不能用有点别扭.
我刚开始看的时候,好像没有看到说第一列是表达式列啊?
难道是我眼花了!
[此贴子已经被作者于2009-4-4 15:35:10编辑过]
软件中不是有 这么一列吗?[_Identify]
我想用这一列编个编码
因为这一列是永远不会重复的。。
比如说
第三列的内容=第一列+第二列+[_Identify]
这样形成一个唯一的编码///。。。
怎么做?
第一二三列都不是表达式列。。
[此贴子已经被作者于2009-4-4 15:41:44编辑过]
以下是引用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
以下是引用卟离卟弃在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