Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: отчет - названия разделов
 
 автор: kot_k_k   (15.08.2010 в 15:17)   личное сообщение
 
 

нарыл код, для его вызова нужно в каждом разделе отчета сделать следующую функцию


Private Sub ВерхнийКолонтитул_Format(Cancel As Integer, FormatCount As Integer)
              nextTOP = nextTOP + section_to_HTML(Section("ВерхнийКолонтитул"), n, nextTOP)
End Sub


вопрос можно ли обойти написание ручками название раздела каждый раз - Section("ВерхнийКолонтитул") - как получить имя раздела отчета где происходт событие (т.е.находтся код)?

  Ответить  
 
 автор: Lukas   (15.08.2010 в 21:21)   личное сообщение
 
 

Можно по номеру в коллекции:
Section(0)-область данных, например.
Можно прописать на открытии отчета :

Private Sub Report_Open(Cancel As Integer)
'Здесь убрал
    Dim i As Integer
    With Me
        For i = 0 To Максимум секций в отчете' Здесь подправил.
            .Section(i).OnFormat = "=funFormat(Report, " & i & ")"
        Next i
    End With
End Sub

Или вызывать внешнюю функцию, которая сделает то-же самое.
А в общем модуле что-то типа:

Public Function funFormat(rpt As Report, i As Integer)
    Debug.Print "formatting " & rpt.Name & " Section " & rpt.Section(i).Name
End Function

В итоге: в фунции funFormat мы будем иметь и ссылку на отчет, и индекс форматируемой секции.
То есть, не нужно в каждой секции каждого отчета прописывать код.

  Ответить  
 
 автор: kot_k_k   (15.08.2010 в 23:01)   личное сообщение
 
 

блин как всегда все просто и гениально. в который раз понимаю что нужно уйти в отпуск и 24 часа в сутки учить и учить VB.

п.с.


For i = 0 To 8 ' 8-это максимум


- на проверку догнал до 14 секций, а при цикле i больше нужного кол-ва - никакой ошибки не происходит.

п.с.с. -


http://msa.dimsign.ru/index.php?type=103&urok=35


целиком про мну

  Ответить  
 
 автор: Lukas   (15.08.2010 в 23:29)   личное сообщение
 
 


до 14 секций


Угу, я не дочитал Help до конца.


целиком про мну


Ну я тоже типа подписался.

В отчетах можно:
Private Sub Report_Open(Cancel As Integer)
    funSetOnFormat Me
End Sub

Во внешнем модуле для всех отчетов типа такого:
Public Function funSetOnFormat(rpt As Report)
On Error Resume Next
    Dim i As Integer
    Err.Clear
    With rpt
        Do While Err.Number = 0
            .Section(i).OnFormat = "=funFormat(Report, " & i & ")"
            i = i + 1
        Loop
    End With
    Err.Clear
End Function

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList