1,451
社区成员
发帖
与我相关
我的任务
分享
Dim i As Integer
For i = 1 To iRowsNo - 1 'iRowsNo 是全局变量,表示当前有多少列数据需要显示
DataTable.RemoveItem 1 '这里的目的将原来显示的数据清空掉
Next i
InitFields '使用TextMatrix设置显示表格头
ShowData GetDataFromCart 'showData 是显示数据的函数 GetDataFromCart取数据库得到数据
InitFields '使用TextMatrix设置显示表格头
ShowData GetDataFromCart 'showData 是显示数据的函数 GetDataFromCart取数据库得到数据
Private Function GetDataFromCart() As JobInvTemp()
Dim Jobs(1000) As JobInvTemp
Dim Rs As New ADODB.Recordset
Dim Conn As New ADODB.Connection
Conn.Open strConn
If Rs.State <> adStateClosed Then Rs.Close
Dim strSQL As String
strSQL = "select * from InvTemp where IsInCart=True"
Rs.Open strSQL, Conn, adOpenStatic, adLockOptimistic
Dim i As Integer
i = 0
Do While Not Rs.EOF
With Jobs(i)
.Job = Rs.Fields("Job")
.JobDate = Rs.Fields("JobDate")
.Price = Rs.Fields("Price")
.GST = Rs.Fields("GST")
.IsTicked = Rs.Fields("IsTicked")
.IsInCart = Rs.Fields("IsInCart")
End With
i = i + 1
Rs.MoveNext
Loop
Jobs(i).Job = "NULL"
Rs.Close
Conn.Close
GetDataFromCart = Jobs
End Function
Private Function ShowData(Jobs() As JobInvTemp)
Dim row As String
Dim i As Integer
i = 0
iRowsNo=0 '把iRowsNo的值清0
Do While (Jobs(i).Job <> "NULL")
row = "" & vbTab & iRowsNo+ 1 & vbTab & Jobs(i).Job & vbTab & Jobs(i).JobDate & vbTab & Jobs(i).Price & vbTab & Jobs(i).GST
DataTable.AddItem row, iRowsNo ‘设断点,一步一步运行看看
iRowsNo = iRowsNo + 1
i = i + 1
Loop
End Function
ShowData GetDataFromCart 'showData 是显示数据的函数 GetDataFromCart取数据库得到数据 '我估计问题就出在这里 GetDataFromCart代码贴出来
'这里将ShowData的实现也贴出来了。
Private Function ShowData(Jobs() As JobInvTemp)
Dim row As String
Dim i As Integer
i = 0
Do While (Jobs(i).Job <> "NULL")
row = "" & vbTab & iRowsNo & vbTab & Jobs(i).Job & vbTab & Jobs(i).JobDate & vbTab & Jobs(i).Price & vbTab & Jobs(i).GST
DataTable.AddItem row, iRowsNo
iRowsNo = iRowsNo + 1
i = i + 1
Loop
End Function
还有iRowsNo是全局变量,iRowsNo的值是会慢慢加上去的,要是之前iRowsNo=8的话,DataTable.AddItem row, iRowsNo=8
Private Function ShowData(Jobs() As JobInvTemp)
Dim row As String
Dim i As Integer
i = 0
Do While (Jobs(i).Job <> "NULL")
row = "" & vbTab & iRowsNo & vbTab & Jobs(i).Job & vbTab & Jobs(i).JobDate & vbTab & Jobs(i).Price & vbTab & Jobs(i).GST
DataTable.AddItem row, i
i = i + 1
if i > iRowsNo then exit function
Loop
End Function
Private Function ShowData(Jobs() As JobInvTemp)
Dim row As String
Dim i As Integer
i = 0
Do While (Jobs(i).Job <> "NULL")
row = "" & vbTab & iRowsNo & vbTab & Jobs(i).Job & vbTab & Jobs(i).JobDate & vbTab & Jobs(i).Price & vbTab & Jobs(i).GST
DataTable.rows=DataTable.rows+1 '<-----这个要加吧
DataTable.AddItem row, iRowsNo
iRowsNo = iRowsNo + 1
i = i + 1
Loop
End Function
For i = 0 To iRowsNo - 1 'iRowsNo 是全局变量,表示当前有多少列数据需要显示
DataTable.RemoveItem i '这里的目的将原来显示的数据清空掉
Next i