下面是一个关于VB6的例子,主要演示了如何利用TfrxUserDataset创建主/从报表。
Dim frx As TfrxReport
Dim master_index As Integer
Dim detail_index As Integer
Dim mas(1 To 3, 1 To 20) As Integer
Dim WithEvents master_dataset As TfrxUserDataSet
Dim WithEvents detail_dataset As TfrxUserDataSet
Private Sub Command1_Click()
frx.ShowReport
End Sub
Rem ***** MASTER DATASET *****
Private Sub master_dataset_OnCheckEOF(IsEOF As Boolean)
If master_index = 20 Then
IsEOF = True
Else
IsEOF = False
End If
End Sub
Private Sub master_dataset_OnFirst()
master_index = 1
End Sub
Private Sub master_dataset_OnGetValue(ByVal VarName As Variant, Value As Variant)
If VarName = "Field1" Then
Value = mas(1, master_index)
ElseIf VarName = "Field2" Then
Value = mas(2, master_index)
ElseIf VarName = "Field3" Then
Value = mas(3, master_index)
End If
End Sub
Private Sub master_dataset_OnNext()
master_index = master_index + 1
End Sub
Private Sub master_dataset_OnPrior()
master_index = master_index - 1
End Sub
Rem ***** DEATIL DATASET *****
Private Sub detail_dataset_OnCheckEOF(IsEOF As Boolean)
If detail_index = 20 Then
IsEOF = True
Else
IsEOF = False
End If
End Sub
Private Sub detail_dataset_OnFirst()
detail_index = 1
End Sub
Private Sub detail_dataset_OnGetValue(ByVal VarName As Variant, Value As Variant)
If VarName = "Detail_1" Then
Value = "Master is " + Str(master_index)
ElseIf VarName = "Detail_2" Then
Value = mas(2, detail_index)
ElseIf VarName = "Detail_3" Then
Value = mas(3, detail_index)
End If
End Sub
Private Sub detail_dataset_OnNext()
detail_index = detail_index + 1
End Sub
Private Sub detail_dataset_OnPrior()
detail_index = detail_index - 1
End Sub
Private Sub Design_Click()
Dim designer As TfrxDesigner
Set designer = CreateObject("FastReport.TfrxDesigner")
Rem It would be better to keep commented the following line
'designer.Standalone = True
frx.DesignReport
Set designer = Nothing
End Sub
Private Sub Form_Load()
Dim i As Integer
Dim j As Integer
Set frx = CreateObject("FastReport.TfrxReport")
Set master_dataset = CreateObject("FastReport.TfrxUserDataSet")
Set detail_dataset = CreateObject("FastReport.TfrxUserDataSet")
frx.EngineOptions.SilentMode = simMessageBoxes
Rem Fill data with random values
Randomize Timer
For i = 1 To 3 Step 1
For j = 1 To 20 Step 1
mas(i, j) = Round(Rnd(1000) * 1000)
Next j
Next i
master_dataset.Name = "MyDataSet"
master_dataset.Fields = "Field1" + Chr(13) + Chr(10) + "Field2" + Chr(13) + Chr(10) + "Field3"
detail_dataset.Name = "DetailDataSet"
detail_dataset.Fields = "Detail_1" + Chr(13) + Chr(10) + "Detail_2" + Chr(13) + Chr(10) + "Detail_3"
frx.LoadReportFromFile ("UserDataSet.fr3")
master_index = 1
detail_index = 1
frx.SelectDataset True, master_dataset
frx.SelectDataset True, detail_dataset
End Sub
Private Sub Form_Unload(Cancel As Integer)
frx.SelectDataset False, master_dataset
frx.SelectDataset False, detail_dataset
Set detail_dataset = Nothing
Set master_dataset = Nothing
Set frx = Nothing
End Sub
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 [https://www.fastreportcn.com/]
本文地址:https://www.fastreportcn.com/post/1222.html