#include <KDReportsXmlElementHandler.h>
Public Member Functions | |
virtual bool | startReport (KDReports::Report &report, QDomElement &xmlElement) |
virtual bool | startHeader (KDReports::Header &header, QDomElement &xmlElement) |
virtual void | endHeader (KDReports::Header &header, const QDomElement &xmlElement) |
virtual bool | startFooter (KDReports::Footer &footer, QDomElement &xmlElement) |
virtual void | endFooter (KDReports::Footer &footer, const QDomElement &xmlElement) |
virtual bool | textElement (KDReports::TextElement &textElement, QDomElement &xmlElement) |
virtual bool | htmlElement (KDReports::HtmlElement &htmlElement, QDomElement &xmlElement) |
virtual bool | startTableElement (KDReports::TableElement &tableElement, QDomElement &xmlElement) |
virtual bool | endTableElement (KDReports::TableElement &tableElement, QDomElement &xmlElement) |
virtual bool | startCell (KDReports::Cell &cell, QDomElement &xmlElement) |
virtual bool | endCell (KDReports::Cell &cell, QDomElement &xmlElement) |
virtual bool | autoTableElement (KDReports::AutoTableElement &tableElement, QDomElement &xmlElement) |
virtual bool | chartElement (KDReports::ChartElement &chartElement, QDomElement &xmlElement) |
virtual bool | imageElement (KDReports::ImageElement &imageElement, QDomElement &xmlElement) |
virtual bool | pageBreak (QDomElement &xmlElement) |
virtual void | customElement (const QDomElement &xmlElement) |
virtual void | endReport (KDReports::Report &report, const QDomElement &xmlElement) |
KDReports::ErrorDetails | errorDetails () |
void | setErrorDetails (const KDReports::ErrorDetails &details) |
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 );
|
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()
.
|
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()
.
|
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.
|
virtual |
Called after parsing each "cell" element inside a table and its contents. Returning false makes the cell empty.
|
virtual |
Called after parsing "footer" and its contents.
|
virtual |
Called after parsing "header" and its contents.
|
virtual |
Called at the end of the parsing of the whole report. The "report" element is passed again here.
|
virtual |
Called after parsing a "table" (without a model) and its cells. Returning false skips the whole table.
KDReports::ErrorDetails KDReports::XmlElementHandler::errorDetails | ( | ) |
|
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.
|
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()
.
|
virtual |
Called after parsing "page-break". Can be used to skip the page break depending on some condition.
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.
|
virtual |
Called after parsing a "cell" element inside a table, but before parsing the cell contents. Returning false makes the cell empty.
|
virtual |
Called after parsing "footer" and its attributes, but before parsing its contents. Returning false skips this footer.
|
virtual |
Called after parsing "header" and its attributes, but before parsing its contents. Returning false skips this header.
|
virtual |
Called after parsing "report" and its attributes. Returning false aborts the loading of the report.
|
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.
|
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.