Объект ReportTable (Project)

Представляет фигуру в виде таблицы в отчете Project.

Примечания

Примечание.

Запись макросов для объекта ReportTable не реализована. То есть, при записи макроса в Project и ручном добавлении таблицы отчета или редактировании ее элементов действия по добавлению таблицы отчета и работе с ней не записываются.

Объект ReportTable является разновидностью объекта Shape ; он не связан с объектом Table . Project имеет ограниченную поддержку VBA для таблиц отчетов; для задания полей таблицы вручную используется область задач Список полей (рис. 1). Чтобы отобразить или скрыть область задач " Список полей ", выберите на ленте команду " Табличные данные " на вкладке "Конструктор " раздела "Работа с таблицами ". Задать свойства макета или конструктора таблицы можно с помощью вкладок "Конструктор " и " Макет " на ленте.

Вы можете обновить запрос данных, связанный с таблицей отчета, с помощью метода UpdateTableData . Чтобы получить текст в ячейке таблицы, используйте метод GetCellText .

Чтобы программно создать таблицу отчетов, используйте метод Shapes.AddTable . Чтобы возвратить объект ReportTable , используйте Shapes(Index).Table, где Index — это имя или номер индекса фигуры.

Пример

Макрос TestReportTable создает отчет с именем "Тесты таблиц", а затем — объект ReportTable .

Sub TestReportTable()
    Dim theReport As Report
    Dim theShape As Shape
    Dim theReportTable As ReportTable
    Dim reportName As String
    Dim tableName As String
    Dim rows As Integer, columns As Integer, left As Integer, _
        top As Integer, width As Integer, height As Integer    
    rows = 3
    columns = 4
    left = 20
    top = 20
    width = 200
    height = 100
    
    reportName = "Table Tests"
    tableName = "Basic Project Data Table"
    
    Set theReport = ActiveProject.Reports.Add(reportName)
    
    ' Project ignores the NumRows and NumColumns parameters when creating a ReportTable.
    Set theShape = theReport.Shapes.AddTable( _
        rows, columns, left, top, width, height)
    
    theShape.Name = tableName
    
    Set theReportTable = theShape.Table
    
    With theReportTable
        Debug.Print "Rows: " & .RowsCount
        Debug.Print "Columns: " & .ColumnsCount
        Debug.Print "Table contents:" & vbCrLf & .GetCellText(1, 1)
    End With
End Sub

На рисунке 1 верхний объект ReportTable в отчете Table Tests создается макросом TestReportTable . При первом создании таблица содержит одну строку и один столбец; параметры NumRows и NumColumns метода AddTable не действуют. Количество строк и столбцов в таблице обновляется при ручном добавлении полей из области задач "Список полей " или при использовании метода UpdateTableData . Вы можете отфильтровать поля, чтобы ограничить количество строк. Макрос TestReportTable записывает следующее в окно интерпретации VBE:

Rows: 1
Columns: 1
Table contents:
Use the Table Data taskpane to build a table

Нижний объект ReportTable на рисунке 1 — это таблица отчета по умолчанию, создаваемая Project при выборе Table на вкладке DESIGN в REPORT TOOLS. В нем отображается название проекта, дата начала, дата окончания и процент завершения суммарной задачи проекта (ИД задачи = 0).

Рис. 1. Объект ReportTable требует ручного редактирования для добавления полей и изменения форматирования

Объект ReportTable требует ручного редактирования Чтобы удалить объект ReportTable , используйте метод Shape.Delete , как в следующем макросе:

Sub DeleteTheReportTable()
    Dim theReport As Report
    Dim theShape As Shape
    Dim reportName As String
    Dim tableName As String
    
    reportName = "Table Tests"
    tableName = "Basic Project Data Table"
    
    Set theReport = ActiveProject.Reports(reportName)
    Set theShape = theReport.Shapes(tableName)
    
    theShape.Delete
End Sub

Чтобы удалить весь отчет, переключитесь на другое представление, как в следующем макросе:

Sub DeleteTheReport()
    Dim i As Integer
    Dim reportName As String
    
    reportName = "Table Tests"
    
    ' To delete the active report, change to another view.
    ViewApplyEx Name:="&Gantt Chart"
    
    ActiveProject.Reports(reportName).Delete
End Sub

Методы

Имя
GetCellText
UpdateTableData

Свойства

Имя
ColumnsCount
RowsCount

См. также

Объект отчета

Shape Object

Объект диаграммы

Chart.DataTable - свойство

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.