Страница: 1 |
|
Вопрос: Сообщение EUGY от alexfor
|
Добавлено: 03.06.07 01:03
|
|
Автор вопроса: alexfor
|
EUGY, так все-таки, как в обычный репорт вб(не в кристал репортс) вставить подчиненный репорт или таблицу, ты уж извини чайника
Ответить
|
Номер ответа: 1 Автор ответа: EUGY
Вопросов: 0 Ответов: 454
|
Профиль | | #1
|
Добавлено: 03.06.07 01:58
|
в ADO есть возможность создавать иерархические рекордсеты, а в DataReport в каждой секции отражать нужный уровень иерархии этого recordset.
Извини, выдрал из какого-то своего кассового отчета дремучей давности,самому не очень наглядно, поэтому просматривай критично.
Dim cn As ADODB.Connection
Dim strShape As String
Set rsc = New ADODB.Recordset
Set rscus = New ADODB.Recordset
cn. Open "PROVIDER=MSDataShape ATA PROVIDER=NONE;"
strShape = _
"SHAPE APPEND NEW adDate AS DATA, NEW adDouble AS STARTOST,NEW adDouble AS ENDOST, " & _
" ((SHAPE APPEND NEW adDate AS DATA," & _
" NEW adBSTR AS DOC, " & _
" NEW adBSTR AS STROKA, " & _
" NEW adDouble AS SUMPLUS, " & _
" NEW adDouble AS SUMMIN) " & _
" AS Com RELATE DATA TO DATA) as Com1 "
rsc. Open strShape, cn, adOpenStatic, adLockOptimistic
'заполнить уровень 0
For x = 0 to ....
rsc.AddNew
rsc.Fields(" ATA" = CDate(...
rsc.Fields("STARTOST" = ...
rsc.Fields("ENDOST" = ...
Next
'заполнить подчиненный уровень
for y = 0 to ...
Set rscus = rsc("Com1" .Value
With rscus
.AddNew
.Fields(" ATA" = CDate(....
.Fields(" OC" = ...
.Fields("STROKA" = ...
.Fields("SUMPLUS" = ...
.Fields("SUMMIN" = ....
End With
Next
Set DataReport1.DataSource = rsc
  ataReport1.Show 1
В этом конкретном DataReport есть секция Detail
и секции Group Header & Group Footer.
В секции Detail расположены по гориз. четыре RptTextBox, в их свойствах DataField стоит DOC, STROKA, SUMPLUS, SUMMIN соответственно. Все четыре элемента имеют DataMember в свойствах "Com1".
В Group Header у меня RptTextBox STARTOST и DATA
В Group Footer - RptTextBox ENDOST
DataMember - пустые.
При запуске отчета в Group Header отображаются данные из рекордсета rsc о дате кассовых операций и начальный остаток, а в секции Detail подчиненный rscus с деталями конкретных сумм прихода- расхода денег.
в Group Footer итог на конец дня.
Связкой двух рекордсетов служит их поля "ata"
(RELATE DATA TO DATA)
внешний вид таблиц образуется с помощью RptLines обрамляющих поля DOC, STROKA, SUMPLUS, SUMMIN.
Ну, в кратце так.
Ответить
|
Страница: 1 |
Поиск по форуму