if e.DataRow("科目") is Nothing Then
e.DataRow("一级科目") = Nothing
Else
e.DataRow("一级科目") =(e.DataRow("科目") & "\").split("分隔符")(0)
End If
论坛有BUG,把代码中"分隔符"换为右斜杠显示不正常,记得要替换.
[此贴子已经被作者于2008-10-17 11:54:40编辑过]
将下面代码复制到命令窗口,修改V(0) 为不同数字,如V(1),测试一下,你就明白如何做了。
Dim s as String= "劳务成本\辅助生产\汽车队\办公费"
Dim V as String()
v =s.split("\")
Output.Show(v(0) )
这个我看得懂啊,
现在我是要计算像这样的一整列:
固定资产清理
固定资产清理
劳务成本\辅助生产\汽车队
劳务成本\辅助生产\汽车队\办公费
劳务成本\辅助生产\汽车队\办公费
.......
我希望得到
固定资产清理
固定资产清理
劳务成本
劳务成本
劳务成本
......
说实话,我主要是对象搞混淆了,不明白“字符”和“一列字符”在写代码时有何不同!如何计算“一列字符”啊?
我没有任何VB编程基础的,确实不易理解不同的对象。
将e.DataRow("一级科目") =(e.DataRow("科目") & "\").split(" \ ")(0)写入计算代码,在菜单中重算一级科目列,不行吗?
[此贴子已经被作者于2008-10-17 12:45:51编辑过]
如果你想让公式自动计算,在DataColChanged事件中:
If e.DataCol.Name ="科目" Then
e.DataTable.DataCols("一级科目").Recalc(e.DataRow)
End If
我试了半天,正解如下:
Dim aa as String = e.datarow("科目名称") '将科目名称赋值给aa
Dim bb as String() ’建立一字符数组
bb = aa.split("\") ‘将bb定义为一个以\分隔的数组
e.datarow("一级科目名称")=bb.(0) '将一级科目名称的值设置为数组bb的第一个值
Next
其实关键是要灵活运用,初学者是经验太不足了。
明白了一样东西:数据行、数据列作为对象,可以赋值给一个变量,再运用各种计算代码得出需要的东西,最后再赋值给另一变量。狐表自己会一行一行地计算的。
[此贴子已经被作者于2008-10-17 15:01:55编辑过]