Программирование на Visual Basic | Microsoft Access. Как нарисовать объекты - линии в отчете

В этом разделе сайта находятся примеры из сборника программ "Архив файлов на Microsoft Access". В нем рассказывается о программировании форм, отчетов, таблиц и других объектов. Используйте этот архив для изучения работы с приложением Microsoft Office Access и программированием на Visual Basic for Application. Тем кто уже знаком с VBA, используйте поиск для нахождения кодов. Наберите, например, DAO, ADO, Recordset и найдете нужную ссылку для решения проблемы с программированием

Microsoft Access. Как нарисовать объекты - линии в отчете

06. Используя небольшое количество графических функций отчета можно нарисовать линии, окружности и т.п.

'  Нарисовать объект (линию, прямоугольник) из таблицы
Private Sub newObject(rpt As Report, sTable As String)
Dim dbs As Database, rst As Recordset, i As Integer
Const PI = 3.14
    With rpt
        .ScaleMode = 6 'Рисуем в миллиметрах
        .FontName = "Arial" 'Выбираем шрифт
        .FontSize = 8 'Размер шрифта
        .ForeColor = 0 'Цвет объектов
    End With
    Set dbs = CurrentDb 'Текущая база данных
    Set rst = dbs.OpenRecordset(sTable) 'Открываем таблицу
    If rst.RecordCount  0 Then
        rst.MoveLast  'Заполняем запрос
        rst.MoveFirst 'Устанавливаем позицию
        For i = 0 To rst.RecordCount - 1 'Просматриваем запрос
          If rst!B = True Then 'Это прямоугольник
            rpt.Line (rst!x1, rst!y1)-(rst!x2, rst!y2), 0, B
          Else 'Это линия
            rpt.Line (rst!x1, rst!y1)-(rst!x2, rst!y2)
          End If
          rst.MoveNext 'Следующий элемент
        Next
    End If
    rst.Close
    'Рисуем окружность, элипс и дугу в радианах
    rpt.ForeColor = RGB(255, 0, 0) 'Красный цвет
    rpt.Circle (40, 20), 7 'Окружность
    rpt.ForeColor = RGB(0, 255, 0) 'Зеленый цвет
    rpt.Circle (40, 50), 20, , , , 0.5 'Элипс
    rpt.ForeColor = RGB(0, 0, 255) 'Синий цвет
    rpt.Circle (40, 50), 10, , PI / 2 + 0.5, PI, 0.5 'Дуга
End Sub

Добавить комментарий

Loading