16.2. Программная реализация

Настройка отчетов

Список отчетов для отображения на рабочем столе хранится в базе данных, в настройках пользователя (в таблице tp_UserProperties, где usrp_Name = ‘DashboardReports’). Для предоставления программного доступа к этому списку служит класс TDashboardManager. Этот класс позволяет:

Для редактирования этого списка отчетов служат классы TfmDashboardReports (отображение списка отчетов) и TfmDashboardReportsEditor (карточка редактирования). Отображение списка отчетов и сохранение изменений в этом списке выполняется через вызовы соответствующих методов объекта типа TDashboardManager (см. выше).

Отображение отчетов

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

Классы, занимающиеся отрисовкой отчетов:

Классы, занимающиеся подготовкой данных для отчетов:

Общая логика работы:

  1. Создается объект TDashboardReportsManager.

    1. Для каждого отчета создается объект TDashboardReportManager, который внутри себя создает объекты TDashboardReportFlowCell и TDashboardReportControlThread.

  2. Поток TDashboardReportControlThread занимается получением данных для отчета – формата печати и параметров отчета. Если какие-то из этих данных поменялись, то поток:

    1. формирует в ячейке TDashboardReportFlowCell новую картинку отчета.

    2. Передаёт эту ячейку объекту TDashboardReportsManager на отрисовку на рабочем столе.

  3. Объект TDashboardReportsManager в основном потоке перерисовывает полученные из п. 2.a ячейки.

Подробнее по каждому классу.