KD Reports API Documentation
2.2
|
#include <KDReportsReport.h>
Public Types | |
enum | ReportMode { WordProcessing = 0 , SpreadSheet = 1 } |
enum | TableBreakingPageOrder { DownThenRight , RightThenDown } |
using | WatermarkFunction = std::function< void(QPainter &, int)> |
Signals | |
void | printingProgress (int pageIndex) |
Public Member Functions | |
Report (QObject *parent=nullptr) | |
~Report () override | |
void | addElement (const Element &element, Qt::AlignmentFlag horizontalAlignment=Qt::AlignLeft, const QColor &backgroundColor=QColor()) |
void | addFragment (const QTextDocumentFragment &fragment) |
void | addInlineElement (const Element &element) |
void | addPageBreak () |
void | addVerticalSpacing (qreal space) |
QString | anchorAt (int pageNumber, QPoint pos) const |
void | associateImageValue (const QString &id, const QImage &value) |
void | associateImageValue (const QString &id, const QPixmap &value) |
void | associateModel (const QString &modelKey, QAbstractItemModel *model) |
void | associateTextValue (const QString &id, const QString &value) |
QList< KDReports::AutoTableElement * > | autoTableElements () const |
void | beginEdit () |
qreal | bottomPageMargins () const |
int | currentPosition () const |
QFont | defaultFont () const |
QString | documentName () const |
void | dump () const |
void | endEdit () |
bool | exportToFile (const QString &fileName, QWidget *parent=nullptr) |
bool | exportToHtml (const QString &fileName) |
bool | exportToImage (QSize size, const QString &fileName, const char *format) |
int | firstPageNumber () const |
qreal | fontScalingFactor () const |
Footer & | footer (HeaderLocations hl=AllPages) |
qreal | footerBodySpacing () const |
KDReports::HeaderLocations | footerLocation (KDReports::Footer *footer) const |
void | getMargins (qreal *top, qreal *left, qreal *bottom, qreal *right) const |
Header & | header (HeaderLocations hl=AllPages) |
qreal | headerBodySpacing () const |
KDReports::HeaderLocations | headerLocation (Header *header) const |
bool | isTableBreakingEnabled () const |
qreal | leftPageMargins () const |
bool | loadFromXML (const QDomDocument &doc, ErrorDetails *details=nullptr) |
bool | loadFromXML (QIODevice *iodevice, ErrorDetails *details=nullptr) |
MainTable * | mainTable () const |
QTextDocument * | mainTextDocument () const |
int | maximumNumberOfPagesForHorizontalScaling () const |
int | maximumNumberOfPagesForVerticalScaling () const |
int | numberOfPages () const |
QPageLayout::Orientation | pageOrientation () const |
QPageSize | pageSize () const |
void | paintPage (int pageNumber, QPainter &painter) |
QSizeF | paperSize () const |
bool | print (QPrinter *printer, QWidget *parent=nullptr) |
bool | printWithDialog (QWidget *parent) |
void | regenerateAutoTableForModel (QAbstractItemModel *model) |
void | regenerateAutoTables () |
ReportMode | reportMode () const |
qreal | rightPageMargins () const |
void | scaleTo (int numPagesHorizontally, int numPagesVertically) |
Ensure that the report fits into a number of pages. More... | |
void | setBottomPageMargin (qreal bottom) |
void | setCurrentRow (const QAbstractItemModel *model, int row) |
void | setDefaultFont (const QFont &font) |
void | setDocumentName (const QString &name) |
void | setFirstPageNumber (int num) |
void | setFixedRowHeight (qreal mm) |
void | setFontScalingFactor (qreal factor) |
Scale the fonts in the document by a given factor. More... | |
void | setFooterBodySpacing (qreal spacing) |
void | setFooterLocation (HeaderLocations hl, Footer *footer) |
void | setHeaderBodySpacing (qreal spacing) |
void | setHeaderLocation (HeaderLocations hl, Header *header) |
void | setLeftPageMargin (qreal left) |
void | setMargins (qreal top, qreal left, qreal bottom, qreal right) |
void | setPageOrientation (QPageLayout::Orientation orientation) |
void | setPageSize (const QPageSize &size) |
void | setPageSize (QPageSize::PageSizeId size) |
void | setPaperSize (QSizeF paperSize, QPrinter::Unit unit) |
void | setParagraphMargins (qreal left, qreal top, qreal right, qreal bottom) |
void | setProgressDialogEnabled (bool enable) |
void | setReportMode (ReportMode reportMode) |
void | setRightPageMargin (qreal right) |
void | setTableBreakingPageOrder (TableBreakingPageOrder pageOrder) |
void | setTabPositions (const QList< QTextOption::Tab > &tabs) |
void | setTopPageMargin (qreal top) |
void | setWatermarkFunction (WatermarkFunction function) |
void | setWatermarkImage (const QImage &image) |
void | setWatermarkPixmap (const QPixmap &pixmap, bool autoGrayOut=true) |
void | setWatermarkText (const QString &text, int rotation=0, const QColor &color=QColor(204, 204, 204), const QFont &font=QFont(QStringLiteral("Helvetica"), 48)) |
void | setWidthForEndlessPrinter (qreal widthMM) |
void | setXmlElementHandler (KDReports::XmlElementHandler *handler) |
TableBreakingPageOrder | tableBreakingPageOrder () const |
qreal | topPageMargins () const |
QColor | watermarkColor () const |
QFont | watermarkFont () const |
WatermarkFunction | watermarkFunction () const |
QImage | watermarkImage () const |
QPixmap | watermarkPixmap () const |
int | watermarkRotation () const |
QString | watermarkText () const |
Static Public Member Functions | |
static QTextOption::Tab | middleAlignedTab () |
static qreal | mmToPixels (qreal mm) |
static QTextOption::Tab | rightAlignedTab () |
Properties | |
QString | documentName |
The Report class represents a report.
Initially the report is empty. Content can be added to the report using the addElement API, or using loadFromXML to load an equivalent definition from an XML file.
The report can then be previewed with PreviewDialog, printed, exported to PDF, or exported to an image.
Definition at line 78 of file KDReportsReport.h.
using KDReports::Report::WatermarkFunction = std::function<void(QPainter &, int)> |
Definition at line 792 of file KDReportsReport.h.
Enumerator | |
---|---|
WordProcessing | |
SpreadSheet |
Definition at line 94 of file KDReportsReport.h.
Enumerator | |
---|---|
DownThenRight | |
RightThenDown |
Definition at line 628 of file KDReportsReport.h.
|
explicit |
Constructs a report.
parent | optional parent object, for memory management |
Definition at line 440 of file KDReportsReport.cpp.
References setPageSize().
|
override |
Destroys the report.
Definition at line 447 of file KDReportsReport.cpp.
void KDReports::Report::addElement | ( | const Element & | element, |
Qt::AlignmentFlag | horizontalAlignment = Qt::AlignLeft , |
||
const QColor & | backgroundColor = QColor() |
||
) |
Adds an element to the report, creating a new paragraph for it. You can specify the alignment of that paragraph.
An element defines what is added to the report. The report does not store the element, though. For this reason, any changes to the element after insertion will have no effect on the report. Set all settings in the element before calling addElement.
element | the definition of what to add to the report |
horizontalAlignment | the alignment of the paragraph created for this element |
backgroundColor | the background color of the paragraph created for this element The difference with Element::setBackground is that it affects the whole paragraph, including any inline elements as well as the unused area up to the right margin of the page. |
Definition at line 461 of file KDReportsReport.cpp.
void KDReports::Report::addFragment | ( | const QTextDocumentFragment & | fragment | ) |
Adds a piece of formatted text from a QTextDocument. This method is an optimization for the case where the initial text is in a QTextDocument (e.g. in a QTextEdit). In general you probably want to use addElement(HtmlElement()) instead.
Definition at line 971 of file KDReportsReport.cpp.
void KDReports::Report::addInlineElement | ( | const Element & | element | ) |
Adds an element to the report, next to the previous element, in the same paragraph.
An element defines what is added to the report. The report does not store the element, though. For this reason, any changes to the element after insertion will have no effect on the report. Set all settings in the element before calling addInlineElement.
Definition at line 451 of file KDReportsReport.cpp.
void KDReports::Report::addPageBreak | ( | ) |
Adds a page break to the report. The next element added to the report will be at the top of a page.
Note that you cannot call addPageBreak twice in a row, it will only insert one page break. To get a completely empty page you need to insert an empty text element between both calls to addPageBreak.
Also note that exporting to an image, or using an endless printer, will remove all page breaks in the report.
Definition at line 943 of file KDReportsReport.cpp.
void KDReports::Report::addVerticalSpacing | ( | qreal | space | ) |
Adds vertical spacing between paragraphs. Make sure to call addElement after that, not addInlineElement.
space | the space in millimeters |
Definition at line 471 of file KDReportsReport.cpp.
QString KDReports::Report::anchorAt | ( | int | pageNumber, |
QPoint | pos | ||
) | const |
Returns the target of the anchor at position pos, or an empty string if no anchor exists at that position.
pageNumber | The page on which the mouse is, starting at 0 |
pos | The position of the mouse, in pixels |
Definition at line 863 of file KDReportsReport.cpp.
void KDReports::Report::associateImageValue | ( | const QString & | id, |
const QImage & | value | ||
) |
Associate an image with the id of an image element. This is only used if the report description is going to be loaded from an XML file, using loadFromXML. This method needs to be called before loadFromXML is called.
id | the id of the image element, specified using id="foo" in the XML. |
value | the pixmap to use in the report. If associateImageValue was already called with the id id , the new value replaces the old one. |
This overload is especially useful in threads.
Definition at line 961 of file KDReportsReport.cpp.
void KDReports::Report::associateImageValue | ( | const QString & | id, |
const QPixmap & | value | ||
) |
Associate a pixmap with the id of an image element.
id | the id of the image element, specified using id="foo" in the XML, or using ImageElement::setId(). |
value | the pixmap to use in the report. If associateImageValue was already called with the id id , the new value replaces the old one. |
Definition at line 956 of file KDReportsReport.cpp.
void KDReports::Report::associateModel | ( | const QString & | modelKey, |
QAbstractItemModel * | model | ||
) |
Associates a model with a model key. This is only used if the report description is going to be loaded from an XML file, using loadFromXML. This method needs to be called before loadFromXML is called.
Definition at line 842 of file KDReportsReport.cpp.
void KDReports::Report::associateTextValue | ( | const QString & | id, |
const QString & | value | ||
) |
Associate a text string with the id of a text or html element.
id | the id of the text or html element, specified using id="foo" in the XML, or using TextElement::setId(). |
value | the text for this element, which will appear in the report. The value can include newlines. If associateTextValue was already called with the id id , the new value replaces the old one. |
Definition at line 948 of file KDReportsReport.cpp.
QList< KDReports::AutoTableElement * > KDReports::Report::autoTableElements | ( | ) | const |
Returns a list of the auto-table elements that were used to create this report. You wouldn't normally need this method; this is only to be able to change some settings like showing table headers or table borders at runtime.
Note: use mainTable() instead, in spreadsheet mode
Definition at line 1075 of file KDReportsReport.cpp.
void KDReports::Report::beginEdit | ( | ) |
Indicates that the elements are about to be added to the report. This makes report generation much faster, since the report doesn't have to be relayouted until endEdit() is called. It is possible to nest calls to beginEdit()/endEdit(), in which case only the topmost pair of calls will have an effect.
Definition at line 853 of file KDReportsReport.cpp.
qreal KDReports::Report::bottomPageMargins | ( | ) | const |
int KDReports::Report::currentPosition | ( | ) | const |
Definition at line 1170 of file KDReportsReport.cpp.
QFont KDReports::Report::defaultFont | ( | ) | const |
Definition at line 982 of file KDReportsReport.cpp.
QString KDReports::Report::documentName | ( | ) | const |
void KDReports::Report::dump | ( | ) | const |
Definition at line 655 of file KDReportsReport.cpp.
void KDReports::Report::endEdit | ( | ) |
Indicates that the end of a block of editing operations. It is possible to call beginEdit()/endEdit() again afterwards, for another block of editing operations.
Definition at line 858 of file KDReportsReport.cpp.
bool KDReports::Report::exportToFile | ( | const QString & | fileName, |
QWidget * | parent = nullptr |
||
) |
Export the whole report to a PS or PDF file. If the file name has the suffix ".ps" then PostScript is automatically selected as output format. If the file name has the ".pdf" suffix PDF is generated.
parent | the parent widget for the progress dialog that appears when printing (see setProgressDialogEnabled()) |
Definition at line 713 of file KDReportsReport.cpp.
bool KDReports::Report::exportToHtml | ( | const QString & | fileName | ) |
Export the whole report to HTML. Note that HTML export does not include headers and footers, nor watermark.
Images are saved into separate files.
Definition at line 724 of file KDReportsReport.cpp.
bool KDReports::Report::exportToImage | ( | QSize | size, |
const QString & | fileName, | ||
const char * | format | ||
) |
Export the whole report to an image file.
size | the size of the image in pixels |
fileName | the name of the image file |
format | the format of the image, for instance: BMP, JPG, PNG. |
Definition at line 736 of file KDReportsReport.cpp.
References KDReports::mmToPixels().
int KDReports::Report::firstPageNumber | ( | ) | const |
Definition at line 1180 of file KDReportsReport.cpp.
qreal KDReports::Report::fontScalingFactor | ( | ) | const |
Definition at line 1034 of file KDReportsReport.cpp.
KDReports::Header & KDReports::Report::footer | ( | HeaderLocations | hl = AllPages | ) |
Specify the contents of the footer by calling Footer::addElement.
Definition at line 785 of file KDReportsReport.cpp.
qreal KDReports::Report::footerBodySpacing | ( | ) | const |
Definition at line 1004 of file KDReportsReport.cpp.
KDReports::HeaderLocations KDReports::Report::footerLocation | ( | KDReports::Footer * | footer | ) | const |
Definition at line 1165 of file KDReportsReport.cpp.
void KDReports::Report::getMargins | ( | qreal * | top, |
qreal * | left, | ||
qreal * | bottom, | ||
qreal * | right | ||
) | const |
Definition at line 570 of file KDReportsReport.cpp.
KDReports::Header & KDReports::Report::header | ( | HeaderLocations | hl = AllPages | ) |
Returns a reference to a header object. Calling this method makes the report have a header on the specified pages.
Calling the method with different sets of intersecting flags leads to undefined behavior. For instance header(EvenPages|FirstPage) and header(OddPages) is fine, but header(EvenPages|FirstPage) and header(FirstPage) leads to two headers being defined for the first page, anyone of the two could be picked. Calling the method with the same set multiple times, for instance header(EvenPages|FirstPage), is ok though: the same header instance will be returned every time.
Note that all headers will occupy the same height: the height of the tallest header.
Specify the contents of the header by calling Header::addElement.
Definition at line 770 of file KDReportsReport.cpp.
qreal KDReports::Report::headerBodySpacing | ( | ) | const |
Definition at line 993 of file KDReportsReport.cpp.
KDReports::HeaderLocations KDReports::Report::headerLocation | ( | KDReports::Header * | header | ) | const |
Definition at line 1160 of file KDReportsReport.cpp.
bool KDReports::Report::isTableBreakingEnabled | ( | ) | const |
Definition at line 1039 of file KDReportsReport.cpp.
qreal KDReports::Report::leftPageMargins | ( | ) | const |
bool KDReports::Report::loadFromXML | ( | const QDomDocument & | doc, |
ErrorDetails * | details = nullptr |
||
) |
This is an overloaded member function, provided for convenience. With this method you can modify the QDomDocument before giving it to KDReports.
Note: if the QDomDocument is simply created with a file or QIODevice as argument, it will ignore whitespace-only nodes like <text> </text>. The other loadFromXML takes care of this, while this overload requires that the QDomDocument has been properly set up.
Definition at line 835 of file KDReportsReport.cpp.
References KDReports::XmlParser::processDocument().
bool KDReports::Report::loadFromXML | ( | QIODevice * | iodevice, |
ErrorDetails * | details = nullptr |
||
) |
Loads a report definition from an XML document. Notice that if the report definition contains Chart or Table elements, you need to call associate for each such element. iodevice needs to be open and readable. If you have any chart or table elements in your report, you must associate the models using associateModel() first, otherwise these elements will stay empty.
Definition at line 805 of file KDReportsReport.cpp.
References KDReports::ErrorDetails::setColumn(), KDReports::ErrorDetails::setDriverMessage(), and KDReports::ErrorDetails::setLine().
KDReports::MainTable * KDReports::Report::mainTable | ( | ) | const |
Spreadsheet mode: returns the main table of the report.
Definition at line 1136 of file KDReportsReport.cpp.
QTextDocument * KDReports::Report::mainTextDocument | ( | ) | const |
Returns the QTextDocument that contains the main part of the report, assuming reportMode() is WordProcessing. Note that this does not include any headers or footers, nor watermark.
This method can be used to display the report in a readonly QTextEdit or in a QTextBrowser.
Modifying this QTextDocument will lead to undefined behaviour in KDReports. Returns nullptr if reportMode() is set to SpreadSheet.
Definition at line 870 of file KDReportsReport.cpp.
int KDReports::Report::maximumNumberOfPagesForHorizontalScaling | ( | ) | const |
Definition at line 1014 of file KDReportsReport.cpp.
int KDReports::Report::maximumNumberOfPagesForVerticalScaling | ( | ) | const |
Definition at line 1019 of file KDReportsReport.cpp.
|
static |
Returns a tab position that is always center-aligned to the middle of the paper. This is convenient for having left-aligned, center-aligned (and potentially right-aligned) text on the same line.
Definition at line 1151 of file KDReportsReport.cpp.
|
static |
mmToPixels converts a distance in millimeters, to pixels, for drawing in the watermarkFunction.
mm | distance in millimeters |
Definition at line 800 of file KDReportsReport.cpp.
References KDReports::mmToPixels().
int KDReports::Report::numberOfPages | ( | ) | const |
Definition at line 649 of file KDReportsReport.cpp.
Referenced by KDReports::variableValue().
QPageLayout::Orientation KDReports::Report::pageOrientation | ( | ) | const |
Definition at line 554 of file KDReportsReport.cpp.
QPageSize KDReports::Report::pageSize | ( | ) | const |
Definition at line 527 of file KDReportsReport.cpp.
void KDReports::Report::paintPage | ( | int | pageNumber, |
QPainter & | painter | ||
) |
Paints a given page of the report into the painter. Note that this method can be used for printing and for on-screen rendering so it doesn't fill the background with white, the caller has do to that.
pageNumber | the page to paint, starting at 0 |
painter | the QPainter to paint into |
Definition at line 644 of file KDReportsReport.cpp.
QSizeF KDReports::Report::paperSize | ( | ) | const |
Definition at line 966 of file KDReportsReport.cpp.
bool KDReports::Report::print | ( | QPrinter * | printer, |
QWidget * | parent = nullptr |
||
) |
Print directly using the setup values from a preexisting QPrinter object. Notice that this will only change settings like page sizes or orientation temporarily, during this particular print operation. After the operation, these values will be reset to their previous values.
Returns false if cancelled (not possible yet).
printer | the printer to use for printing |
parent | the parent widget for the progress dialog that appears when printing (see setProgressDialogEnabled()) |
Definition at line 686 of file KDReportsReport.cpp.
References KDReports::pixelsToPointsMultiplier().
|
signal |
Emitted during printWithDialog(), print() or exportToFile()
the | page number, starting at 0 For the page count, see numberOfPages(). |
bool KDReports::Report::printWithDialog | ( | QWidget * | parent | ) |
Show the print dialog to let the user choose a printer, and print.
parent | the parent widget for the print dialog, and for the progress dialog that appears when printing (see setProgressDialogEnabled()) |
Definition at line 670 of file KDReportsReport.cpp.
void KDReports::Report::regenerateAutoTableForModel | ( | QAbstractItemModel * | model | ) |
Regenerate the contents of a single auto table. This can be useful if the data in this specific model changes frequently, to save time compared to recreating the full report.
Definition at line 1069 of file KDReportsReport.cpp.
void KDReports::Report::regenerateAutoTables | ( | ) |
Regenerate the contents of auto tables. This can be useful if the data in the item model changes frequently, to save time compared to recreating the full report.
Definition at line 1063 of file KDReportsReport.cpp.
KDReports::Report::ReportMode KDReports::Report::reportMode | ( | ) | const |
Returns the mode set with setReportMode();
Definition at line 1131 of file KDReportsReport.cpp.
|
static |
Returns a tab position that is always right-aligned to the right edge of the paper. This is convenient for having left-aligned and right-aligned text on the same line.
Definition at line 1142 of file KDReportsReport.cpp.
qreal KDReports::Report::rightPageMargins | ( | ) | const |
void KDReports::Report::scaleTo | ( | int | numPagesHorizontally, |
int | numPagesVertically | ||
) |
Ensure that the report fits into a number of pages.
By default tables are layouted so that all columns fit into the page width, but for large tables this can wrap the text too much. This method allows to scale the report so that it fits into a number of pages horizontally and vertically. For instance, 3 pages horizontally means that tables columns can span over 3 pages, arranged side by side. This is a maximum number of pages; if the table is really small it will still occupy only a single page.
Scaling also means that the font sizes can be reduced (similar to what setFontScalingFactor does) so that the report fits into the number of pages specified by this method.
numPagesHorizontally | number of pages in the horizontal direction, 1 for no table breaking in the horizontal direction. |
numPagesVertically | number of pages in the vertical direction, 0 for no limit |
Definition at line 1009 of file KDReportsReport.cpp.
void KDReports::Report::setBottomPageMargin | ( | qreal | bottom | ) |
Sets the bottom page margins in mm. The default margin is 20 mm.
Definition at line 617 of file KDReportsReport.cpp.
void KDReports::Report::setCurrentRow | ( | const QAbstractItemModel * | model, |
int | row | ||
) |
Sets the current row for the given model. When this value is set, it overrides the values of the 'row' attributes within XML tags
Definition at line 1087 of file KDReportsReport.cpp.
void KDReports::Report::setDefaultFont | ( | const QFont & | font | ) |
Sets the default font used for text in this report.
Definition at line 976 of file KDReportsReport.cpp.
void KDReports::Report::setDocumentName | ( | const QString & | name | ) |
Sets the name of the report. This is used for QPrinter::setDocName(), which gives a name to the print job.
Definition at line 1093 of file KDReportsReport.cpp.
void KDReports::Report::setFirstPageNumber | ( | int | num | ) |
Sets the number of the first page, so that the variable PageNumber starts at another value than 1. This is useful when splitting a large report into smaller documents.
Definition at line 1175 of file KDReportsReport.cpp.
void KDReports::Report::setFixedRowHeight | ( | qreal | mm | ) |
Sets a fixed row height. Only available in spreadsheet mode. The main use case is printing of fixed size labels.
Definition at line 1024 of file KDReportsReport.cpp.
References KDReports::mmToPixels().
void KDReports::Report::setFontScalingFactor | ( | qreal | factor | ) |
Scale the fonts in the document by a given factor.
Scale all the fonts used in the main part of the report (not headers and footers) by the given amount. Therefore setFontScalingFactor(1.0) is a no-op.
Definition at line 1029 of file KDReportsReport.cpp.
void KDReports::Report::setFooterBodySpacing | ( | qreal | spacing | ) |
Sets the margin between the footer and the body of the report, in mm. This margin is 0 by default, i.e. the footer starts immediately under the body.
Definition at line 998 of file KDReportsReport.cpp.
void KDReports::Report::setFooterLocation | ( | HeaderLocations | hl, |
Footer * | footer | ||
) |
void KDReports::Report::setHeaderBodySpacing | ( | qreal | spacing | ) |
Sets the margin between the header and the body of the report, in mm. This margin is 0 by default, i.e. the body starts immediately under the header.
Definition at line 987 of file KDReportsReport.cpp.
void KDReports::Report::setHeaderLocation | ( | HeaderLocations | hl, |
Header * | header | ||
) |
void KDReports::Report::setLeftPageMargin | ( | qreal | left | ) |
Sets the left page margins in mm. The default margin is 20 mm.
Definition at line 578 of file KDReportsReport.cpp.
void KDReports::Report::setMargins | ( | qreal | top, |
qreal | left, | ||
qreal | bottom, | ||
qreal | right | ||
) |
Sets the page margins in mm. The default margins are 20 mm.
Definition at line 559 of file KDReportsReport.cpp.
void KDReports::Report::setPageOrientation | ( | QPageLayout::Orientation | orientation | ) |
Sets the orientation, QPageLayout::Portrait or QPageLayout::Landscape.
Definition at line 547 of file KDReportsReport.cpp.
void KDReports::Report::setPageSize | ( | const QPageSize & | size | ) |
Sets the page size of the report. Example: setPageSize(QPageSize::A4) or setPageSize(QPageSize::Letter); Note that for performance reasons, it is recommended to do this after adding all the elements to the report rather than before.
Definition at line 492 of file KDReportsReport.cpp.
void KDReports::Report::setPageSize | ( | QPageSize::PageSizeId | size | ) |
Sets the page size of the report. Example: setPageSize(QPageSize::A4) or setPageSize(QPageSize::Letter); Note that for performance reasons, it is recommended to do this after adding all the elements to the report rather than before.
Definition at line 487 of file KDReportsReport.cpp.
Referenced by Report().
void KDReports::Report::setPaperSize | ( | QSizeF | paperSize, |
QPrinter::Unit | unit | ||
) |
Sets a custom paper size for the report. Supported units are DevicePixel, Millimeter, Point and Inch.
Definition at line 499 of file KDReportsReport.cpp.
References KDReports::mmToPixels(), and qt_defaultDpi().
void KDReports::Report::setParagraphMargins | ( | qreal | left, |
qreal | top, | ||
qreal | right, | ||
qreal | bottom | ||
) |
Sets the paragraph margins for all paragraph elements to be created from now on. The default margins are 0,0,0,0.
Definition at line 1108 of file KDReportsReport.cpp.
void KDReports::Report::setProgressDialogEnabled | ( | bool | enable | ) |
Allows to disable the QProgressDialog when printing or exporting By default, printing from the main thread shows a QProgressDialog. This method allows to disable it, for instance when the application generates multiple documents and has its own progress dialog for the overall operation. Note the signal printingProgress for this purpose. This affects printWithDialog(), print(), and exportToFile().
enable | indicates whether to show the progress dialog |
Definition at line 665 of file KDReportsReport.cpp.
void KDReports::Report::setReportMode | ( | ReportMode | reportMode | ) |
Sets the main mode of the report: word-processing or spread-sheet (one large table). The word-processing mode is the most generic one, where text, images, tables etc. can be mixed into a single report. The spread-sheet mode is specific to "one large table", which gives additional features like table breaking over multiple pages horizontally. This is very similar to the difference between word processors and spreadsheets in most office suites.
A note about tables: in word-processing mode, the text of table cells can wrap, if the table is too wide for the page. In spread-sheet mode, table cells do not wrap. Instead, the font is adapted so that the table fits. In spread-sheet mode, the same font is used for all table cells, for layouting and performance reasons.
It is very important to set the mode of the report before doing anything else with the report.
Definition at line 1113 of file KDReportsReport.cpp.
void KDReports::Report::setRightPageMargin | ( | qreal | right | ) |
Sets the right page margins in mm. The default margin is 20 mm.
Definition at line 591 of file KDReportsReport.cpp.
void KDReports::Report::setTableBreakingPageOrder | ( | TableBreakingPageOrder | pageOrder | ) |
Sets the page order to use when breaking tables. This method is kept for compatibility, use mainTable()->setTableBreakingPageOrder() in new code, instead.
Definition at line 1044 of file KDReportsReport.cpp.
void KDReports::Report::setTabPositions | ( | const QList< QTextOption::Tab > & | tabs | ) |
Set the list of tabs (tabulations) to use when adding paragraph elements. Those tabs will be set for any paragraph element that is added from now on, until calling this method again.
This method allows to align numbers based on their decimal separator, for instance. Example:
Definition at line 1103 of file KDReportsReport.cpp.
void KDReports::Report::setTopPageMargin | ( | qreal | top | ) |
Sets the top page margins in mm. The default margin is 20 mm.
Definition at line 604 of file KDReportsReport.cpp.
void KDReports::Report::setWatermarkFunction | ( | WatermarkFunction | function | ) |
Sets a function to be called for painting the watermark with QPainter The page area to be painted is defined by (0,0) and paperSize(). To draw at an absolute position in millimeters, use mmToPixels() for conversion. The arguments to the function are: QPainter *painter, int pageNumber
Definition at line 933 of file KDReportsReport.cpp.
void KDReports::Report::setWatermarkImage | ( | const QImage & | image | ) |
Same as setWatermarkPixmap but with a QImage. Especially useful in threads.
Definition at line 923 of file KDReportsReport.cpp.
void KDReports::Report::setWatermarkPixmap | ( | const QPixmap & | pixmap, |
bool | autoGrayOut = true |
||
) |
Sets the pixmap to be used as a watermark. By default, the image will be "grayed out" much like QIcon does for disabled pixmaps. If you do not want this behavior, set autoGrayOut to false. However, you need to ensure then that the image does prevent the legibility of the report. The pixmap will not be scaled, it will be centered on the page. You can set both a watermark text and a watermark image, but the two will overwrite each other so this is not recommended.
Definition at line 907 of file KDReportsReport.cpp.
void KDReports::Report::setWatermarkText | ( | const QString & | text, |
int | rotation = 0 , |
||
const QColor & | color = QColor(204, 204, 204) , |
||
const QFont & | font = QFont(QStringLiteral("Helvetica"), 48) |
||
) |
Sets the text to be used as a watermark. By default, the text will be displayed with 0 degrees rotation, in a light gray, in a 48pt Helvetica font, centered on the page. You can set both a watermark text and a watermark image, but the two will overwrite each other so this is not recommended. Also notice that if you choose a watermark color that is too dark, this will make the reports less legible.
Definition at line 879 of file KDReportsReport.cpp.
void KDReports::Report::setWidthForEndlessPrinter | ( | qreal | widthMM | ) |
Set a custom page size for an endless printer. The page width is known, the document is laid out without pagination within that width. The page height is set automatically so that the entire document fits within one page.
When calling setWidthForEndlessPrinter you don't have to call setPageSize or setOrientation.
Call setWidthForEndlessPrinter(0) to reset to normal (pagesize-dependent) behavior.
NOTE: with Qt-4.3, this feature only works reliably on Unix, using Qt compiled with CUPS support. With Qt-4.4, there is no such limitation and this feature should work everywhere.
Definition at line 630 of file KDReportsReport.cpp.
References KDReports::mmToPixels().
void KDReports::Report::setXmlElementHandler | ( | KDReports::XmlElementHandler * | handler | ) |
Sets an xml element handler. The report does not take ownership of the xml element handler.
If you want it to be deleted with the report, derive from both QObject and XmlElementHandler and give the report as parent QObject.
Definition at line 1082 of file KDReportsReport.cpp.
KDReports::Report::TableBreakingPageOrder KDReports::Report::tableBreakingPageOrder | ( | ) | const |
Definition at line 1053 of file KDReportsReport.cpp.
qreal KDReports::Report::topPageMargins | ( | ) | const |
QColor KDReports::Report::watermarkColor | ( | ) | const |
Definition at line 897 of file KDReportsReport.cpp.
QFont KDReports::Report::watermarkFont | ( | ) | const |
Definition at line 902 of file KDReportsReport.cpp.
KDReports::Report::WatermarkFunction KDReports::Report::watermarkFunction | ( | ) | const |
Definition at line 938 of file KDReportsReport.cpp.
QImage KDReports::Report::watermarkImage | ( | ) | const |
Definition at line 928 of file KDReportsReport.cpp.
QPixmap KDReports::Report::watermarkPixmap | ( | ) | const |
Definition at line 918 of file KDReportsReport.cpp.
int KDReports::Report::watermarkRotation | ( | ) | const |
Definition at line 892 of file KDReportsReport.cpp.
QString KDReports::Report::watermarkText | ( | ) | const |
Definition at line 887 of file KDReportsReport.cpp.
|
readwrite |
Definition at line 47 of file KDReportsReport.h.