Здравствуйте, Аноним, Вы писали:
А> Спасибо я понял уже все работает, возник только вопрос а как сделать CrossReport. Поясняю, к примеру есть родители и дети. Связь у одного родителя(пусть будет отец) много детей, чтобы отображало родитель и всех его детей. Как это сделать, ведь у 1 отчета 1 DataSource. В общем неясен этот момент.
Recordset двухуровневой:
rs1.Open " SHAPE APPEND New adInteger As PK," & _
" New adVarChar(20) As F12," & _
" New adVarChar(20) As F13," & _
" ((SHAPE APPEND New adInteger As FK," & _
" New adInteger as F22," & _
" New adInteger as F23," & _
" New adVarChar(20) As F24)" & _
" RELATE PK TO FK) as Cmd2", _
, adOpenStatic, adLockOptimistic
rs1 — Master
Set rs2 = rs1.Fields("Cmd2").Value — Child
репорт это понимает!
Peter
VB6.0 Отчеты. Можно ли DataReport без DataEnvironment
От:
Аноним
Дата:
06.04.04 12:08
Оценка:
Смысл такой, нужно постироить отчет, но данные берутся спец. образом в рекордсет, но коннекшена как такового (есть конечно но свой, то есть никакой Conncetion string нельзя сделать). Как засунуть данные в DataReport, как можно DataSource верный присвоить (т. е. не открывая никакие коннекшены).
Re: VB6.0 Отчеты. Можно ли DataReport без DataEnvironment
От:
Аноним
Дата:
06.04.04 13:05
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Смысл такой, нужно постироить отчет, но данные берутся спец. образом в рекордсет, но коннекшена как такового (есть конечно но свой, то есть никакой Conncetion string нельзя сделать). Как засунуть данные в DataReport, как можно DataSource верный присвоить (т. е. не открывая никакие коннекшены).
свяжи просто твой Recordset к DataSource
Set myReport.DataSource = myRecordset
пример:
Private Sub Command1_Click()
Dim s As Long
Set rs1 = New ADODB.Recordset
rs1.ActiveConnection = "provider=msdatashape;data provider=none;"
rs1.Open " SHAPE APPEND New adInteger As Spielnummer," & _
" New adVarChar(20) As Punktsumme," & _
" New adVarChar(20) As Spiel," & _
" ((SHAPE APPEND New adInteger As ZSpielnr," & _
" New adInteger as Platz," & _
" New adInteger as Punkte," & _
" New adVarChar(20) As PunkteText)" & _
" RELATE Spielnummer TO ZSpielnr) as Cmd2", _
, adOpenStatic, adLockOptimistic
' parent recordset
For i = 1 To 5
rs1.AddNew Array("Spielnummer", "Spiel"), Array(i, "Spiel " & i)
Next i
' child recordset
i = 5
Set rs2 = rs1("Cmd2").Value
For j = 1 To 20
rs2.AddNew Array("ZSpielnr", "Platz", "Punkte", "PunkteText"), _
Array(i * Rnd() + 0.5, j, 21 — j, Format((21 — j), "#0 ") & "Punkte ")
Next
Set rs2 = rs1.Fields("Cmd2").Value
rs2.Sort = "Punkte ASC"
' Kontroll
Set MSHFlexGrid1.DataSource = rs2
' Summe
With rs1
.MoveFirst
Do Until .EOF
s = 0
rs2.MoveFirst
Do Until rs2.EOF
s = s + rs2.Fields("Punkte").Value
rs2.MoveNext
Loop
s = s * 15000
.Fields("Punktsumme").Value = Format(Int(s / 3600), "#0 ") & _
Format(Int(s / 60) Mod 60, "00\:") & Format(s Mod 60, "00")
.MoveNext
Loop
End With
Dim sdf As New StdDataFormat
With sdf
.Format = "d hh:NN:ss"
End With
' Report
With DataRpt2
Set .DataSource = rs1
.Sections("Section1").Controls("Text1").DataMember = "Cmd2"
.Sections("Section1").Controls("Text1").DataField = "PunkteText"
.Sections("Section6").Controls("Text2").DataField = "Spiel"
.Sections("Section7").Controls("Text3").DataField = "Punktsumme"
.Show
End With
End Sub
Peter
Re[2]: VB6.0 Отчеты. Можно ли DataReport без DataEnvironment
От:
Аноним
Дата:
06.04.04 14:23
Оценка:
Спасибо я понял уже все работает, возник только вопрос а как сделать CrossReport. Поясняю, к примеру есть родители и дети. Связь у одного родителя(пусть будет отец) много детей, чтобы отображало родитель и всех его детей. Как это сделать, ведь у 1 отчета 1 DataSource. В общем неясен этот момент.