Отобразите сообщения генерации представления

Сообщения генерации представления

API PPT может отобразить сообщения, когда вы генерируете представление PowerPoint®. Сообщения инициированы каждый раз, когда элемент представления создан или добавлен во время генерации представления.

Можно задать дополнительные сообщения, чтобы отобразиться, в то время как представление генерирует. API PPT обеспечивает эти классы для определения сообщений:

  • ProgressMessage

  • DebugMessage

  • WarningMessage

  • ErrorMessage

API PPT обеспечивает дополнительные классы для обработки диспетчеризации презентационного сообщения и отображения. Это использует события MATLAB® и прослушиватели, чтобы диспетчеризировать сообщения. Сообщение диспетчеризируется на основе данных о событиях для заданного объекта PPT. Для введения в события и прослушиватели, смотрите Событие и Концепции прослушивателя (MATLAB).

Примечание

Когда вы создаете диспетчера сообщения, API PPT сохраняет диспетчера до конца текущего сеанса работы с MATLAB. Чтобы избежать дублирующегося создания отчетов объектов сообщения во время сеанса работы с MATLAB, удалите прослушиватели события сообщения.

Отобразите сообщения по умолчанию PPT

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

  1. Создайте диспетчера сообщения, с помощью метода MessageDispatcher.getTheDispatcher. Используйте того же диспетчера для всех сообщений.

    dispatcher = MessageDispatcher.getTheDispatcher;
    
  2. Чтобы отобразить сообщения отладки, используйте свойство MessageDispatcher.Filter.

    dispatcher.Filter.DebugMessagesPass = true;
    
  3. Добавьте прослушиватель с помощью функции addlistener MATLAB. Задайте объект диспетчера, исходные данные и данные о событиях и функцию disp, которая задает данные о событиях и формат для сообщения.

    l = addlistener(dispatcher,'Message', ...
          @(src, evtdata) disp(evtdata.Message.formatAsText));
    
  4. Добавьте код, который удаляет прослушиватель после кода, который генерирует представление.

    delete(l);
    

Это представление отображает сообщения отладки.

import mlreportgen.ppt.*;

dispatcher = MessageDispatcher.getTheDispatcher;
dispatcher.Filter.DebugMessagesPass = true;

l = addlistener(dispatcher,'Message', ...
      @(src, evtdata) disp(evtdata.Message.formatAsText));

slides = Presentation('myMessagePresentation');
titleSlide = add(slides,'Title and Content');

p = Paragraph('Hello World:');
p.Style = {Bold(true)};
t = Text('  How are you?');
t.Bold = false;
append(p,t);


add(titleSlide,'Content',p);

close(slides);
     
delete(l);

Создайте и отобразите сообщение о ходе выполнения

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

  1. Создайте диспетчера сообщения.

    dispatcher = MessageDispatcher.getTheDispatcher;
    
  2. Добавьте прослушиватель с помощью функции addlistener MATLAB.

    l = addlistener(dispatcher,'Message', ...
          @(src, evtdata) disp(evtdata.Message.formatAsText));
    
  3. Диспетчеризируйте сообщение, с помощью метода Message.dispatch. Задайте объект диспетчера и сообщение, чтобы диспетчеризировать. Здесь сообщение является сообщением отладки под названием firstSlide и объектом Presentation, slides является источником сообщения.

    dispatch(dispatcher,ProgressMessage('firstSlide',slides));
    
  4. Добавьте код, который удаляет прослушиватель после кода, который генерирует представление.

    delete(l);
    

Это представление использует это сообщение о ходе выполнения.

import mlreportgen.ppt.*;
pre = Presentation('myPresentation.pptx');

dispatcher = MessageDispatcher.getTheDispatcher;
l = addlistener(dispatcher,'Message', ...
      @(src, evtdata) disp(evtdata.Message.formatAsText));


dispatch(dispatcher,ProgressMessage('starting presentation',pre));
open(pre);

titleText = Text('This is a Title');
titleText.Style = {Bold};

replace(pre,'Title',titleText);

close(pre);

delete(l);

Смотрите также

Функции

Классы