KD Reports API Documentation  2.0
Public Member Functions | List of all members
KDReports::XmlElementHandler Class Reference

#include <KDReportsXmlElementHandler.h>

Public Member Functions

 XmlElementHandler ()
 
virtual ~XmlElementHandler ()
 
virtual bool autoTableElement (KDReports::AutoTableElement &tableElement, QDomElement &xmlElement)
 
virtual bool chartElement (KDReports::ChartElement &chartElement, QDomElement &xmlElement)
 
virtual void customElement (const QDomElement &xmlElement)
 
virtual bool endCell (KDReports::Cell &cell, QDomElement &xmlElement)
 
virtual void endFooter (KDReports::Footer &footer, const QDomElement &xmlElement)
 
virtual void endHeader (KDReports::Header &header, const QDomElement &xmlElement)
 
virtual void endReport (KDReports::Report &report, const QDomElement &xmlElement)
 
virtual bool endTableElement (KDReports::TableElement &tableElement, QDomElement &xmlElement)
 
KDReports::ErrorDetails errorDetails ()
 
virtual bool hLineElement (KDReports::HLineElement &hLineElement, QDomElement &xmlElement)
 
virtual bool htmlElement (KDReports::HtmlElement &htmlElement, QDomElement &xmlElement)
 
virtual bool imageElement (KDReports::ImageElement &imageElement, QDomElement &xmlElement)
 
virtual bool pageBreak (QDomElement &xmlElement)
 
virtual bool paragraphMargin (qreal &left, qreal &top, qreal &right, qreal &bottom, const QDomElement &xmlElement)
 
void setErrorDetails (const KDReports::ErrorDetails &details)
 
virtual bool startCell (KDReports::Cell &cell, QDomElement &xmlElement)
 
virtual bool startFooter (KDReports::Footer &footer, QDomElement &xmlElement)
 
virtual bool startHeader (KDReports::Header &header, QDomElement &xmlElement)
 
virtual bool startReport (KDReports::Report &report, QDomElement &xmlElement)
 
virtual bool startTableElement (KDReports::TableElement &tableElement, QDomElement &xmlElement)
 
virtual bool tabs (QList< QTextOption::Tab > &tabs, const QDomElement &xmlElement)
 
virtual bool textElement (KDReports::TextElement &textElement, QDomElement &xmlElement)
 
virtual bool variable (KDReports::VariableType &type, QDomElement &xmlElement)
 
virtual bool vspace (int &size, QDomElement &xmlElement)
 

Detailed Description

This handler is called for each XML element being parsed from an XML file. It allows you to customize the XML dynamically at runtime, by deriving from the XmlElementHandler interface and reimplementing some or all of the hooks. Each hook (virtual method) is called after the XML element has been parsed into a KDReports element, and before the KDReports element is added to the report. After that, both the XML element and the KDReports element are discarded, which is why this customization has to happen during loading.

Example: bool CustomElementHandler::textElement( KDReports::TextElement& textElement, const QDomElement& xmlElement ) { const QString id = xmlElement.attribute( "id" ); if ( id == "customerName" ) textElement.setTextColor( Qt::blue ); return true; }

All virtual methods return a boolean which can be used to skip an element: if the method returns false, the KDReports element will not be added to the report.

Note that you can even insert new elements into the report from any of the handler methods. Those additional elements will be inserted before the currently parsed element.

It is possible to signal an error, during parsing, by calling setErrorDetails. This will result in parsing being terminated, and the error being reported to the user.

To set up the handler so that it is used during parsing, use handler = new CustomElementHandler; report.setXmlElementHandler( handler );

Definition at line 84 of file KDReportsXmlElementHandler.h.

Constructor & Destructor Documentation

◆ XmlElementHandler()

KDReports::XmlElementHandler::XmlElementHandler ( )

Definition at line 40 of file KDReportsXmlElementHandler.cpp.

◆ ~XmlElementHandler()

KDReports::XmlElementHandler::~XmlElementHandler ( )
virtualdefault

Member Function Documentation

◆ autoTableElement()

bool KDReports::XmlElementHandler::autoTableElement ( KDReports::AutoTableElement tableElement,
QDomElement &  xmlElement 
)
virtual

Called after parsing a "table" element (when a model is set) and its attributes, but before parsing the cells in the table. Changes to those attributes must be done on tableElement.

As a special case, changes to the alignment for block elements must be done using xmlElement.setAttribute().

Definition at line 122 of file KDReportsXmlElementHandler.cpp.

◆ chartElement()

bool KDReports::XmlElementHandler::chartElement ( KDReports::ChartElement chartElement,
QDomElement &  xmlElement 
)
virtual

Called after parsing "chart" and its attributes. Changes to those attributes must be done on chartElement.

As a special case, changes to the alignment for block elements must be done using xmlElement.setAttribute().

Definition at line 129 of file KDReportsXmlElementHandler.cpp.

◆ customElement()

void KDReports::XmlElementHandler::customElement ( const QDomElement &  xmlElement)
virtual

Called after parsing "custom", whose only purpose is to call this method. This allows you to define special places in the XML file where this method should be called, for instance to insert dynamic content into the report.

Definition at line 156 of file KDReportsXmlElementHandler.cpp.

◆ endCell()

bool KDReports::XmlElementHandler::endCell ( KDReports::Cell cell,
QDomElement &  xmlElement 
)
virtual

Called after parsing each "cell" element inside a table and its contents. Returning false makes the cell empty.

Definition at line 115 of file KDReportsXmlElementHandler.cpp.

◆ endFooter()

void KDReports::XmlElementHandler::endFooter ( KDReports::Footer footer,
const QDomElement &  xmlElement 
)
virtual

Called after parsing "footer" and its contents.

Definition at line 74 of file KDReportsXmlElementHandler.cpp.

◆ endHeader()

void KDReports::XmlElementHandler::endHeader ( KDReports::Header header,
const QDomElement &  xmlElement 
)
virtual

Called after parsing "header" and its contents.

Definition at line 61 of file KDReportsXmlElementHandler.cpp.

◆ endReport()

void KDReports::XmlElementHandler::endReport ( KDReports::Report report,
const QDomElement &  xmlElement 
)
virtual

Called at the end of the parsing of the whole report. The "report" element is passed again here.

Definition at line 161 of file KDReportsXmlElementHandler.cpp.

◆ endTableElement()

bool KDReports::XmlElementHandler::endTableElement ( KDReports::TableElement tableElement,
QDomElement &  xmlElement 
)
virtual

Called after parsing a "table" (without a model) and its cells. Returning false skips the whole table.

Definition at line 101 of file KDReportsXmlElementHandler.cpp.

◆ errorDetails()

KDReports::ErrorDetails KDReports::XmlElementHandler::errorDetails ( )
Returns
an ErrorDetails instance.

Definition at line 203 of file KDReportsXmlElementHandler.cpp.

◆ hLineElement()

bool KDReports::XmlElementHandler::hLineElement ( KDReports::HLineElement hLineElement,
QDomElement &  xmlElement 
)
virtual

Called after parsing a "hline". Returning false skips the whole line. Can be used to change hline attributes.

Definition at line 149 of file KDReportsXmlElementHandler.cpp.

◆ htmlElement()

bool KDReports::XmlElementHandler::htmlElement ( KDReports::HtmlElement htmlElement,
QDomElement &  xmlElement 
)
virtual

Called after parsing "html", its attributes and the html content. Changes to those attributes must be done on htmlElement.

As a special case, changes to the alignment and paragraph-background for block elements must done using xmlElement.setAttribute(), since they are not properties of KDReports::HtmlElement.

Definition at line 87 of file KDReportsXmlElementHandler.cpp.

◆ imageElement()

bool KDReports::XmlElementHandler::imageElement ( KDReports::ImageElement imageElement,
QDomElement &  xmlElement 
)
virtual

Called after parsing "image" and its attributes. Changes to those attributes must be done on imageElement.

As a special case, changes to the alignment for block elements must be done using xmlElement.setAttribute().

Definition at line 136 of file KDReportsXmlElementHandler.cpp.

◆ pageBreak()

bool KDReports::XmlElementHandler::pageBreak ( QDomElement &  xmlElement)
virtual

Called after parsing "page-break". Can be used to skip the page break depending on some condition.

Definition at line 143 of file KDReportsXmlElementHandler.cpp.

◆ paragraphMargin()

bool KDReports::XmlElementHandler::paragraphMargin ( qreal &  left,
qreal &  top,
qreal &  right,
qreal &  bottom,
const QDomElement &  xmlElement 
)
virtual

Called after parsing a "paragraph-margins". Returning false skips the paragraph margin.

Definition at line 181 of file KDReportsXmlElementHandler.cpp.

◆ setErrorDetails()

void KDReports::XmlElementHandler::setErrorDetails ( const KDReports::ErrorDetails details)

When parsing the XML code, errors may be reported by setting an ErrorDetail using this method. Parsing will be stopped, and the error reported back to the user.

Definition at line 198 of file KDReportsXmlElementHandler.cpp.

◆ startCell()

bool KDReports::XmlElementHandler::startCell ( KDReports::Cell cell,
QDomElement &  xmlElement 
)
virtual

Called after parsing a "cell" element inside a table, but before parsing the cell contents. Returning false makes the cell empty.

Definition at line 108 of file KDReportsXmlElementHandler.cpp.

◆ startFooter()

bool KDReports::XmlElementHandler::startFooter ( KDReports::Footer footer,
QDomElement &  xmlElement 
)
virtual

Called after parsing "footer" and its attributes, but before parsing its contents. Returning false skips this footer.

Definition at line 67 of file KDReportsXmlElementHandler.cpp.

◆ startHeader()

bool KDReports::XmlElementHandler::startHeader ( KDReports::Header header,
QDomElement &  xmlElement 
)
virtual

Called after parsing "header" and its attributes, but before parsing its contents. Returning false skips this header.

Definition at line 54 of file KDReportsXmlElementHandler.cpp.

◆ startReport()

bool KDReports::XmlElementHandler::startReport ( KDReports::Report report,
QDomElement &  xmlElement 
)
virtual

Called after parsing "report" and its attributes. Returning false aborts the loading of the report.

Definition at line 47 of file KDReportsXmlElementHandler.cpp.

◆ startTableElement()

bool KDReports::XmlElementHandler::startTableElement ( KDReports::TableElement tableElement,
QDomElement &  xmlElement 
)
virtual

Called after parsing "table" (without a model) and its attributes, but before parsing the cells in the table. Changes to those attributes must be done on tableElement.

As a special case, changes to the alignment for block elements must be done using xmlElement.setAttribute(). Returning false skips the whole table.

Definition at line 94 of file KDReportsXmlElementHandler.cpp.

◆ tabs()

bool KDReports::XmlElementHandler::tabs ( QList< QTextOption::Tab > &  tabs,
const QDomElement &  xmlElement 
)
virtual

Called after parsing a "tabs" Returning false skips tabs

Definition at line 191 of file KDReportsXmlElementHandler.cpp.

◆ textElement()

bool KDReports::XmlElementHandler::textElement ( KDReports::TextElement textElement,
QDomElement &  xmlElement 
)
virtual

Called after parsing "text", its attributes and the text content. Changes to those attributes must be done on textElement.

As a special case, changes to the alignment and paragraph-background for block elements must done using xmlElement.setAttribute(), since they are not properties of KDReports::TextElement.

Definition at line 80 of file KDReportsXmlElementHandler.cpp.

◆ variable()

bool KDReports::XmlElementHandler::variable ( KDReports::VariableType type,
QDomElement &  xmlElement 
)
virtual

Called after parsing "variable".

Definition at line 174 of file KDReportsXmlElementHandler.cpp.

◆ vspace()

bool KDReports::XmlElementHandler::vspace ( int &  size,
QDomElement &  xmlElement 
)
virtual

Called after parsing "vspace" Can be used to modify vertical space size Returning false skip the vertical space

Definition at line 167 of file KDReportsXmlElementHandler.cpp.


The documentation for this class was generated from the following files:

© 2007-2021 Klarälvdalens Datakonsult AB (KDAB)
"The Qt, C++ and OpenGL Experts"
https://www.kdab.com/
https://www.kdab.com/development-resources/qt-tools/kd-reports/
Generated on Sat Jan 8 2022 02:38:32 for KD Reports API Documentation by doxygen 1.8.17