Main Content

Reporting on DocBlock Blocks

This example shows how to include the contents of Simulink DocBlock blocks in a Microsoft® Word report generated by the Report API. The example model, slreportgen_demo_docblock, contains only DocBlock blocks, with one block for each kind of DocBlock document type:

  • RTF

  • HTML

  • Text

In the generated report, the contents of the DocBlock blocks look like this:

Import the API namespaces so that you can refer to API classes by their unqualified names, that is, without the names of the class namespaces in which they reside.

import slreportgen.finder.*
import mlreportgen.dom.*

Load the model for this example.

model = 'slreportgen_demo_docblock';

Create a container to hold the report content. To avoid a compilation error due to the model containing only virtual blocks, set the CompileModelBeforeReporting property of the report object to false.

rpt ='ModelDoc', 'docx');
rpt.CompileModelBeforeReporting = false;

Add a title page and table of contents.

add(rpt,TitlePage('Title',sprintf('%s Model Documentation',model)));

Find and loop through all the systems in the model.

finder = SystemDiagramFinder(model);
for system = find(finder)

Create a chapter for each system. Include the system name in the chapter title. Use the chapter to report on the DocBlock content of the system.

    ch = Chapter('Title',sprintf('System %s', system.Name));

Find all the DocBlock blocks in the current system. Each result returns the DocBlock reporter for the found DocBlock. The add method invokes the DocBlock reporter.

    docBlockFinder = BlockFinder(system);
    docBlockFinder.Properties = {'MaskType', 'DocBlock'}';
    results = find(docBlockFinder);
    if ~isempty(results)
        add(ch, results);
        add(ch, "This system does not have documentation.");

Close and view the report.


See Also

| | | |

Related Topics