以文本方式查看主题

-  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=7539)

--  作者:hejfen
--  发布时间:2010/7/7 10:17:00
--  请问这段代码那里不对

Dim tb As Table = Tables("地址")
For i as Integer = tb.TopRow To tb.BottomRow
   For Each k As Row in Tables("地址.用户").Rows
     k("生成房号") = System.Text.RegularExpressions.Regex.Replace(k("房号"), "[\\D]", "")
         if K("生成房号").length>2 then
             k("层") = k("生成房号").SubString(0,k("生成房号").Length - 2)
             k("号") = k("生成房号").SubString(k("生成房号").Length - 2)      
        end if
    Next

Next

我想选定Tables("地址")的区域后,连续执行以上代码,但为什么只执行选定的第一行。


--  作者:狐狸爸爸
--  发布时间:2010/7/7 10:22:00
--  

Dim tb As Table = Tables("地址")
For i as Integer = tb.TopRow To tb.BottomRow
   For Each k As DataRow in Tables("地址").Rows(i).GetChildRows("用户")
     k("生成房号") = System.Text.RegularExpressions.Regex.Replace(k("房号"), "[\\D]", "")
         if K("生成房号").length>2 then
             k("层") = k("生成房号").SubString(0,k("生成房号").Length - 2)
             k("号") = k("生成房号").SubString(k("生成房号").Length - 2)      
        end if
    Next

Next

 

 

另:建议在foxtable添加System.Text.RegularExpressions命名空间,这样使用起来方便。


--  作者:hejfen
--  发布时间:2010/7/7 11:21:00
--  

在foxtable添加System.Text.RegularExpressions命名空间

如何做?


--  作者:狐狸爸爸
--  发布时间:2010/7/7 11:41:00
--  

菜单的外部引用按钮


--  作者:hejfen
--  发布时间:2010/7/7 15:34:00
--  
For Each k As DataRow in Tables("地址").Rows(i).GetChildRows("用户")
这句提示GetChildRows不是tables的成员,改成For Each k As DataRow in dataTables("地址").dataRows(i).GetChildRows("用户"),不进行筛选,可以正确计算,但筛选数据后执行,不能计算。应该是datatable和table的区别造成的了。应怎么改代码,才能进行筛选数据后都可以正常计算?
[此贴子已经被作者于2010-7-7 15:49:07编辑过]

--  作者:狐狸爸爸
--  发布时间:2010/7/7 15:47:00
--  

Dim tb As Table = Tables("地址")
For i as Integer = tb.TopRow To tb.BottomRow
   For Each k As DataRow in Tables("地址").Rows(i).DataRow.GetChildRows("用户")
     k("生成房号") = System.Text.RegularExpressions.Regex.Replace(k("房号"), "[\\D]", "")
         if K("生成房号").length>2 then
             k("层") = k("生成房号").SubString(0,k("生成房号").Length - 2)
             k("号") = k("生成房号").SubString(k("生成房号").Length - 2)      
        end if
    Next

Next


--  作者:hejfen
--  发布时间:2010/7/7 15:52:00
--  
谢谢