TableReportItem
==================

.. currentmodule:: axioma.render

.. class:: TableReportItem

	Элемент отчета табличного представления данных. Позволяет отображать как таблицу целиком, так и накладывая дополнительные ограничения при отображении

	Унаследован от: :class:`ReportItem`

		.. py:method:: TableReportItem(table, rect, report)

			Конструктор

			:param table:  Ссылка на открытую таблицу
			:type table: :class:`~axioma.core.dp.Table`
			:param rect: Прямоугольник элемента отчета в координатах отчета. 
			:type rect: :class:`~PyQt5.QtCore.QRectF`
			:param report: Отчет, к которому относится создаваемый элемент. 
			:type report: :class:`~axioma.render.Report`

		.. py:method:: TableReportItem(table, rect, columns, range, report)

			Конструктор

			:param table:  Ссылка на открытую таблицу
			:type table: :class:`~axioma.core.dp.Table`
			:param rect: Прямоугольник элемента отчета в координатах отчета. 
			:type rect: :class:`~PyQt5.QtCore.QRectF`
			:param columns: Список наименований полей таблицы
			:type columns: :class:`list` [ :class:`str` ]
			:param range: Ограничение по строкам
			:type range: :class:`~axioma.core.dp.PageRange`
			:param report: Отчет, к которому относится создаваемый элемент. 
			:type report: :class:`~axioma.render.Report`
			
			
		.. py:method:: showRowNumber()

			Показывать ли номера строк

			:return: True, если да. В противном случае False
			:rtype: :class:`bool`
			
		.. py:method:: setShowRowNumber(showRowNumber)

			Управление показом номеров строк

			:param showRowNumber: True, если отображение требуется
			:type showRowNumber: :class:`bool`

		.. py:method:: allColumns()

			Список всех колонок таблицы

			:return: Список
			:rtype: :class:`list` [ :class:`str` ]

		.. py:method:: selectedColumns()

			Колонки, которые будут отображаться. При этом располагаться они будут в порядке этого списка. 

			:return: Список
			:rtype: :class:`list` [ :class:`str` ]

		.. py:method:: setSelectedColumns(selectedColumns)

			Установка списка отображаемых колонок. Если передана неверная колонка, она игнорируется.

			:param selectedColumns: Список
			:type selectedColumns: :class:`list` [ :class:`str` ]

		.. py:method:: range()

			Фильтр на строки. Если фильтр пустой, отображаются все сроки.

			:return: Текущий фильтр
			:rtype: :class:`~axioma.core.dp.PageRange`

		.. py:method:: setRange(range)

			Установка нового фильтра на строки

			:param range: Фильтр. Если передан пустой, фильтр будет отключен
			:type range: :class:`~axioma.core.dp.PageRange`

		.. py:method:: textRenderer()

			Текущее оформление текста

			:return: Оформление
			:rtype: :class:`~axioma.render.TextRenderer`

		.. py:method:: setTextRenderer(textRenderer)

			Установка нового оформления текста

			:param textRenderer: Оформление
			:type textRenderer: :class:`~axioma.render.TextRenderer`

		.. py:method:: rows()

			Количество строк в отчете

			:return: Количество записей с учетом установленного фильтра
			:rtype: :class:`int`

		.. py:method:: startNumber()

			Число, с которого начинается нумерация строк в отчете.

			:return: Установленное значение
			:rtype: :class:`int`

		.. py:method:: setStartNumber(startNumber)

			Установка нового значения, с которого начинается нумерация строк. Это может быть полезно, если есть необходимость разбить отчет на части.

			:param startNumber: Первый номер в списке
			:type startNumber: :class:`int`

		.. py:method:: table()

			Таблица, на основании которой создан отчет.

			:return: Таблица
			:rtype: :class:`~axioma.core.dp.Table`

		.. py:method:: refreshValues()

			Обновление данных. Необходимо производить после изменения какого-либо параметра


Пример использования:

  .. code-block:: python
  
    # Создание элемента отчета, основанного на таблице
    def createTableItem(report, obj):
        try:
            r_table = QRectF(0, 480, 180, 200) # Прямоугольник элемента отчета
            tableItem = TableReportItem(obj, r_table, report)
            range = PageRange(2, 10) # Фильтр по строкам
            tableItem.setRange(range)
            fields = ['Страна', 'Столица', 'Население'] #Выбранные поля 
            tableItem.setSelectedColumns(fields)
            tableItem.refreshValues()
            report.addItem(tableItem) # Добавляем в отчет
        except Exception as ex:
            print(ex)
