以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  不定长的数组怎么声明  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=71235)

--  作者:dj68301367
--  发布时间:2015/7/7 20:07:00
--  不定长的数组怎么声明
Dim Vsh() As String,Vwl() As String,Vsl() As String
Dim i As Integer = 0

For Each dr1 As DataRow In DataTables("BOM").Select("成品编码 = \'" & MGk & "\'")

    vsh(i) = dr1("序号")
    vwl(i) = dr1("物料编码")
    vsl(i) = dr1("数量")

    i = i+1
Next

像我这样写代码可以吗?为什么总是提示错误?

--  作者:大红袍
--  发布时间:2015/7/7 20:09:00
--  

 数组过时了,用集合

 

http://www.foxtable.com/help/topics/0217.htm

 


--  作者:大红袍
--  发布时间:2015/7/7 20:10:00
--  
 你这是想做?select 以后,就能得到 datarow 的集合啊。
--  作者:dj68301367
--  发布时间:2015/7/7 20:51:00
--  
再取值就会出错。
MGk = ""
Dim VmbtName As String
vmbtname = MbtName
If mtbf.Rows.Count > 0 Then Mstr = Mtbf.Current("产品型号")

Forms("产品查询").open()

\'Dim Vsh() As new  String,Vwl() As String,Vsl() As String
Dim Vsh As new List(of String)
Dim Vwl As new List(of String)
Dim Vsl As new List(of String)
Dim i As Integer
MbtName = vmbtname
For Each dr1 As DataRow In DataTables("BOM").Select("成品编码 = \'" & MGk & "\'")
    \'msgbox(dr1("物料编码"))
    vsh.Add(dr1("序号"))
    vwl.add(dr1("物料编码"))
    vsl.add(dr1("数量"))
Next

Dim Vwls() As String
Vwls = vwl.ToArray()

For i = 1 To vwl.Count
    Dim nr As Row = mtbf.AddNew()
    nr("成品编码") = mbtname
    nr("物料编码") = vwls(i)
Next
mtbf.Filter = "成品编码 = \'" & mbtname & "\'"

--  作者:大红袍
--  发布时间:2015/7/7 20:59:00
--  

 简化代码

 

Dim drs As List(Of DataRow) = DataTables("BOM").Select("")

For Each dr As DataRow In drs
    Dim nr As Row = mtbf.AddNew()
    nr("物料编码") = dr("物料编码")
Next