Compartir a través de


Objeto ReportTable (Project)

Representa una forma en el formulario de una tabla en un informe de proyecto.

Comentarios

Nota:

[!NOTA] No está implementado para el objeto ReportTable de grabación de macros. Es decir, al grabar una macro en Project y agregar manualmente una tabla de informe o modificar elementos de la tabla, no se registran los pasos para agregar y manipular la tabla del informe.

El objeto ReportTable es un tipo de objeto de Shape; no está relacionado con el objeto Table. Proyecto ha limitado la compatibilidad con VBA para tablas de informe; para especificar los campos de la tabla, utilizar manualmente el panel de tareas Lista de campos (consulte la figura 1). Para mostrar u ocultar el panel de tareas Lista de campos, seleccione el comando de Datos de la tabla en la ficha DISEÑO bajo HERRAMIENTAS de TABLA, en la cinta de opciones. Para especificar las propiedades de presentación o diseño de la tabla, puede utilizar la ficha DISEÑO y en la ficha DISEÑO en la cinta de opciones.

Puede actualizar la consulta de datos asociada a una tabla de informe, utilizando el método UpdateTableData. Para obtener el texto en una celda de tabla, utilice el método GetCellText.

Para crear mediante programación una ReportTable, utilice el método Shapes.AddTable. Para devolver un objeto ReportTable , use Shapes(Index).Table, donde Index es el nombre o el número de índice de una forma.

Ejemplo:

La macro TestReportTable crea un informe llamado pruebas de tabla y, a continuación, crea un objeto 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

En la figura 1, el objeto superior ReportTable en el informe de pruebas de la tabla se crea mediante la macro TestReportTable. Cuando se crea la tabla por primera vez, tiene una fila y una columna; los parámetros NumRows y NumColumns del método AddTable no tienen efecto. El número de filas y columnas de la tabla se actualiza cuando se agregan manualmente campos a la tabla desde el panel de tareas Lista de campos o cuando se usa el método UpdateTableData . Puede filtrar los campos para limitar el número de filas. La macro TestReportTable escribe lo siguiente en la ventana Inmediato del VBE:

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

El objeto ReportTable inferior de la figura 1 es la tabla de informes predeterminada que Project crea al elegir Tabla en la pestaña DISEÑO en HERRAMIENTAS DE INFORME. Muestra el nombre del proyecto, la fecha de inicio, la fecha de finalización y el porcentaje completado de la tarea de resumen del proyecto (id. de tarea = 0).

Figura 1. El objeto ReportTable requiere edición manual para agregar campos y cambiar el formato

El objeto ReportTable requiere edición manual Para eliminar un objeto ReportTable , use el método Shape.Delete , como en la siguiente macro:

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

Para eliminar todo el informe, cambie a otra vista, como se muestra en la siguiente macro:

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

Métodos

Nombre
GetCellText
UpdateTableData

Propiedades

Nombre
ColumnsCount
RowsCount

Consulte también

Objeto de informe

Objeto Shape

Objeto Chart

Propiedad Chart.DataTable

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.