可以参考一下
Private iRow As Integer
Private Sub ActiveReport_DataInitialize()
With Me.Fields
.Add "pdno"
.Add "pno"
.Add "pname"
.Add "psizes"
.Add "unitdesci"
End With
iRow = 1
End Sub Private Sub ActiveReport_FetchData(eof As Boolean)
Static j As Long
If iRow > m_Grid.Rows - 1 Then
eof = True
Exit Sub
End If
j = j + 1
PageBreak1.Enabled = IIf(j Mod 15 = 0, True, False) '强制分页 15行/页
Fields("pdno") = m_Grid.TextMatrix(iRow, 1)
Fields("pno")= m_Grid.TextMatrix(iRow, 3)
Fields("pname") = m_Grid.TextMatrix(iRow, 4)
Fields("psizes") = m_Grid.TextMatrix(iRow, 5)
Fields("unitdesci") = m_Grid.TextMatrix(iRow, 6)
eof = False
iRow = iRow + 1
End Sub
这是您给我回的贴 我现在的问题是 我在一个窗体里有4个表格控件 在ActiveReport报表里如何读取4个表格里的数据呢?一个表格的读取按照您的办法可以了,请您在给我指点一下啊,谢谢了。
Private iRow As Integer
Private Sub ActiveReport_DataInitialize()
With Me.Fields
.Add "pdno"
.Add "pno"
.Add "pname"
.Add "psizes"
.Add "unitdesci"
End With
iRow = 1
End Sub Private Sub ActiveReport_FetchData(eof As Boolean)
Static j As Long
If iRow > m_Grid.Rows - 1 Then
eof = True
Exit Sub
End If
j = j + 1
PageBreak1.Enabled = IIf(j Mod 15 = 0, True, False) '强制分页 15行/页
Fields("pdno") = m_Grid.TextMatrix(iRow, 1)
Fields("pno")= m_Grid.TextMatrix(iRow, 3)
Fields("pname") = m_Grid.TextMatrix(iRow, 4)
Fields("psizes") = m_Grid.TextMatrix(iRow, 5)
Fields("unitdesci") = m_Grid.TextMatrix(iRow, 6)
eof = False
iRow = iRow + 1
End Sub
这是您给我回的贴 我现在的问题是 我在一个窗体里有4个表格控件 在ActiveReport报表里如何读取4个表格里的数据呢?一个表格的读取按照您的办法可以了,请您在给我指点一下啊,谢谢了。
把四个表格里的数据按需求填入一个数组,此处的m_grid就可以换成这个数组了.
dim a(100,4) as string public sub InitData()
'填充数组
end subPrivate Sub ActiveReport_DataInitialize()
With Me.Fields
.Add "pdno"
.Add "pno"
.Add "pname"
.Add "psizes"
.Add "unitdesci"
End With
iRow = 0
End Sub Private Sub ActiveReport_FetchData(eof As Boolean)
Static j As Long
If iRow > 100 Then
eof = True
Exit Sub
End If
j = j + 1
PageBreak1.Enabled = IIf(j Mod 15 = 0, True, False) '强制分页 15行/页
Fields("pdno") = a(irow,0)
Fields("pno")= a(irow,1)
Fields("pname")= a(irow,2)
eof = False
iRow = iRow + 1
End Sub 不用客气,
我这里没法测试运行,就大概给个思路,请自己改一下了.