Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
ник: Alex Вот хорошая штука! Где-то спёр, где - не помню Процедура создания в отчетах таблиц с изменяемой высотой строк.
Public Sub DrawTableInDetailSection(objReportSection As Section) '============================================================== 'es 15.12.2004 'Для "красивого" обрамления в таблицу области данных табличного 'отчета c изменяемой высотой полей (и соответственно строк целиком). 'Аргумент: objReportSection = Ссылка на область данных отчета ' "Вешается" на событие PRINT области данных отчета - например так: ' Call DrawTableInDetailSection(Me.ОбластьДанных) 'Разумеется контуры полей в области данных отчета должны быть невидимы '============================================================== Dim DataControl As Control 'обект текущ. контроль Dim x As Integer Dim MaxHeight As Integer 'макс. высота в тек строке Dim MinX As Integer 'координата начала горизонтальной линии Dim MaxX As Integer 'координата конца горизонтальной линии Dim StartX As Integer 'координата начала линии по оси X Dim EndX As Integer 'координата конца линии по оси X Dim StartY As Integer 'координата начала линии по оси Y Dim EndY As Integer 'координата конца линии по оси Y On Error GoTo DrawTableInDetailSectionERR MaxX = 0 MinX = objReportSection.Parent.Width With objReportSection 'Находим макс высоту в строке For Each DataControl In .Controls x = DataControl.Height If MaxHeight < x Then MaxHeight = x x = DataControl.Left + DataControl.Width If MaxX < x Then MaxX = x x = DataControl.Left If MinX > x Then MinX = x Next 'рисуем вертикальную в Начале строки EndY = MaxHeight .Parent.Line (MinX, StartY)-(MinX, EndY) 'рисуем горизонтальную Над строкой .Parent.Line (MinX, StartY)-(MaxX, StartY) 'рисуем горизонтальную под строкой .Parent.Line (MinX, EndY)-(MaxX, EndY) 'рисуем вертикальные линии справа от каждого контрола For Each DataControl In .Controls StartX = DataControl.Left + DataControl.Width EndX = StartX .Parent.Line (StartX, StartY)-(StartX, EndY) Next End With Exit Sub DrawTableInDetailSectionERR: Err.Clear End Sub
Ваше имя:
Пароль:
Сообщение:
Прикрепить:
Для вставки смайлов в текст щелкните по значку.