Здравствуйте!
При программном создании отчета возникли три вопроса,
но посвящать каждому отдельную тему, наверное не стоит.
Вот эти вопросы.
1-й вопрос. При создании контрола в области заголовка
Set Ctl = CreateReportControl(.Name, acLabel, acHeader, , "", 0, 0, .Width, 0.582 * TWIP)
заголовок должен уже существовать, то есть в меню
Строка меню —>
Виддолжен быть включен переключатель
Заголовок/примечание отчета.
Для этого применяю
DoCmd.RunCommand acCmdReportHdrFtr
Но поскольку это переключатель, то применение этой команды при уже существующем заголовке
приведет к исчезновению этого заголовка.
Отсюда вопрос: Как узнать заранее, есть ли уже заголовок?Пока делаю так:
Dim H As Single
On Error Resume Next
H = .Section(acHeader).Height
If Err.Number = 2462 Then
DoCmd.RunCommand acCmdReportHdrFtr
End If
On Error GoTo 0
Но может есть способ лучше?
2-й вопрос. Создаю группу с заголовком
Dim varGroupLevel As Variant
varGroupLevel = CreateGroupLevel(.Name, "=True", True, False)
После этого создаю контролы в заголовке созданной группы
Set Ctl = CreateReportControl(.Name, acLabel, acGroupLevel?Header,....)
Вместо выделенного красным вопросительного знака нужно указать
номер созданного уровня группировки - от 1 до 10.
Отсюда вопрос: Как узнать номер созданного уровня группировки?Хотя .GroupLevel это массив, но UBound(.GroupLevel) применить не удалось.
Поэтому делаю так:
Dim B As Boolean, _
i As Byte, _
K As Byte
On Error Resume Next
For i = 0 To 9
B = .GroupLevel(i).GroupHeader
If Err = 2464 Then
Exit For
End If
Next
On Error Resume Next
K = 2 * i + 3
Set Ctl = CreateReportControl(.Name, acLabel, K,.....)
Но хорошо ли это?
Как сделать правильнее?
3-й вопрос. Можно ли программно удалить определенный уровень группировки (группу)?
Если можно, то как?_____________________________________________________________
Пояснения:
а) Используется запись с точками .Name/.Section/... потому, что все это находится внутри With <отчет> ..... End With.
б) Конечно, в отдельных случаях я могу и знать, есть уже заголовок или нет, как и номер уровня группировки.
Но хочется сделать в общем виде.
http://www.sql.ru/forum/1247439/rabota-s-zagolovkom-i-urovnyami-gruppirovki-pri-programmnom-sozdanii-otcheta