以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]数组的疑惑  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=701)

--  作者:jweishan
--  发布时间:2008/9/26 0:17:00
--  [求助]数组的疑惑
      我这有个简化了的表,其中“成本名称”列是从其它表填充过来的数据,我想利用此列自动生成:“成本项目”、“一级明细”、“二级明细”、“三级明细”,所以我在成本项目列设置了计算代码,出现问题如下:

      1、重算列出现提示,大意是说数组越界,按回车键仍可计算出来。

      2、其中有3行不能计算。

       计算代码我检查了好几遍,好像没错误,百思不得其解,请高手帮我看看,谢谢了!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:abc.table



Dim mc As String = e.datarow("成本名称")
Dim Values as String()
Dim n as Integer
if mc.indexof("-") <> -1 then
 Values = mc.split("-")
        n = Values.length
 Select Case n
     Case 1
  e.datarow("成本项目") = Values(0)
  e.datarow("一级明细") = Values(1)
     Case 2
  e.datarow("成本项目") = Values(0)
  e.datarow("一级明细") = Values(1)
  e.datarow("二级明细") = Values(2)
     Case 3
  e.datarow("成本项目") = Values(0)
  e.datarow("一级明细") = Values(1)
  e.datarow("二级明细") = Values(2)
  e.datarow("三级明细") = Values(3)
 End Select
else
 e.datarow("成本项目") = e.datarow("成本名称")
end if


--  作者:程兴刚
--  发布时间:2008/9/26 1:36:00
--  

这里改一下就ok:


 n = Values.length-1


--  作者:jweishan
--  发布时间:2008/9/26 9:00:00
--  

谢谢!明白了!


--  作者:blackzhu
--  发布时间:2008/9/26 20:29:00
--  
以下是引用jweishan在2008-9-26 0:17:00的发言:
      我这有个简化了的表,其中“成本名称”列是从其它表填充过来的数据,我想利用此列自动生成:“成本项目”、“一级明细”、“二级明细”、“三级明细”,所以我在成本项目列设置了计算代码,出现问题如下:

      1、重算列出现提示,大意是说数组越界,按回车键仍可计算出来。

      2、其中有3行不能计算。

       计算代码我检查了好几遍,好像没错误,百思不得其解,请高手帮我看看,谢谢了!
 下载信息  [文件大小:320.0 KB  下载次数:14]
图片点击可在新窗口打开查看点击浏览该文件:abc.table



Dim mc As String = e.datarow("成本名称")
Dim Values as String()
Dim n as Integer
if mc.indexof("-") <> -1 then
 Values = mc.split("-")
        n = Values.length
 Select Case n
     Case 1
  e.datarow("成本项目") = Values(0)
  e.datarow("一级明细") = Values(1)
     Case 2
  e.datarow("成本项目") = Values(0)
  e.datarow("一级明细") = Values(1)
  e.datarow("二级明细") = Values(2)
     Case 3
  e.datarow("成本项目") = Values(0)
  e.datarow("一级明细") = Values(1)
  e.datarow("二级明细") = Values(2)
  e.datarow("三级明细") = Values(3)
 End Select
else
 e.datarow("成本项目") = e.datarow("成本名称")
end if

  唉,代码太烦了关键灵活应用不行。


--  作者:jweishan
--  发布时间:2008/9/27 0:08:00
--  

烦是烦一点,但也有好处,灵活、强大!