Kexi/Plugins/Reports: Difference between revisions
No edit summary |
|||
(11 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Kexi implements its own QPainter-based render for printing reports and exporting to HTML, ODF and PDF focuments. Report Designer is based on Qt Graphics View framework. For historic and architectural reasons it does not use Calligra's Flake framework. The report document format is serialized to an XML representation and is modeled after the ODF. | Kexi implements its own QPainter-based render for printing reports and exporting to HTML, ODF and PDF focuments. Report Designer is based on Qt Graphics View framework. For historic and architectural reasons it does not use Calligra's Flake framework. The report document format is serialized to an XML representation and is modeled after the ODF. | ||
Subpages: | |||
*[[Kexi/Junior_Jobs#Reports|Junior Jobs]] (in progress) | |||
*[[/Fileformat/|File format]] (mostly done) | |||
*[[/Harmonizing with forms/]] (mostly done) | |||
*[[/Object tree/]] (in progress) | |||
*[[/Format property/]] (unassigned) | |||
*[[/CLI Export//]] | |||
Elements: | |||
*[[/Barcode/|Barcodes]] (unassigned) | |||
*[[/Report hyperlinks/|Hyperlinks]] (unassigned) | |||
__TOC__ | __TOC__ | ||
==Todo List== | ==Todo List== | ||
*<s>Fix javascript kross plugin, or disable as it seems buggy, qtscript is ok. | *<s>Fix javascript kross plugin, or disable as it seems buggy, qtscript is ok. Now loads qtscript if available and javascript is selected - 3-Jul-2010</s> | ||
*<s>KWord Export</s> | *<s>KWord Export</s> | ||
*<s>KSpread Export</s> | *<s>KSpread Export</s> | ||
**Make row colour the same as section background | **<s>Make row colour the same as section background</s> | ||
*Add more script events, such as on_load, to complement on_render. | *Add more script events, such as on_load, to complement on_render. https://invent.kde.org/office/kexi/-/issues/135 | ||
**http://office.microsoft.com/en-us/access-help/order-of-events-for-database-objects-HP005186761.aspx | **http://office.microsoft.com/en-us/access-help/order-of-events-for-database-objects-HP005186761.aspx | ||
*<s>Properly sync size/pos properties between the editor and the item</s> | *<s>Properly sync size/pos properties between the editor and the item</s> | ||
*<s>Make report entities (label/field etc) plugins, so its easier to add new ones ?</s> | *<s>Make report entities (label/field etc) plugins, so its easier to add new ones ?</s> | ||
*Maybe use flakes, or create a report 'shape' that can be embedded elsewhere | *Maybe use flakes, or create a report 'shape' that can be embedded elsewhere -- https://invent.kde.org/office/kexi/-/issues/134 | ||
*Add more math functions | *Add more math functions | ||
*Undo/Redo support | *Undo/Redo support -- https://invent.kde.org/office/kexi/-/issues/133 | ||
*<s>Dynamically adjust page margins when page units are changed</s> | *<s>Dynamically adjust page margins when page units are changed</s> | ||
*Clean up the mess that is the [[/Barcode/|barcode]] generators! | *Clean up the mess that is the [[/Barcode/|barcode]] generators! https://invent.kde.org/office/kexi/-/issues/118 | ||
*Custom page sizes | *<s>Custom page sizes</s> | ||
*<s>When pasting items, dont allow to go below bottom of section</s> | *<s>When pasting items, dont allow to go below bottom of section</s> | ||
*<s>Page number/total</s> | *<s>Page number/total</s> | ||
Line 44: | Line 53: | ||
*GUI Designer | *GUI Designer | ||
*User Scripting | *User Scripting | ||
**Javascript | **<strike>Javascript</strike> | ||
**Python | **Python | ||
**Events | **Events | ||
***Report OnOpen | ***Report OnOpen | ||
Line 52: | Line 60: | ||
***Report OnComplete | ***Report OnComplete | ||
***Section OnRender | ***Section OnRender | ||
* | *Elements (simple): | ||
**Label | **Label | ||
**Field | **Field | ||
Line 61: | Line 69: | ||
***Dynamic | ***Dynamic | ||
**Checkbox | **Checkbox | ||
**Barcode | **Barcode | ||
***3of9 | ***3of9 barcode | ||
***3of9+ | ***3of9+ barcode | ||
***128 | ***128 barcode | ||
***upc-a | ***upc-a barcode | ||
***upc-e | ***upc-e barcode | ||
***ean13 | ***ean13 barcode | ||
***ean8 | ***ean8 barcode | ||
**Charts | **Charts | ||
**Maps (experimental) | |||
**Web browser (experimental) | |||
***with linked child/master fields | ***with linked child/master fields | ||
*Grouping/Sorting | *Grouping/Sorting |
Latest revision as of 14:48, 13 April 2023
Kexi implements its own QPainter-based render for printing reports and exporting to HTML, ODF and PDF focuments. Report Designer is based on Qt Graphics View framework. For historic and architectural reasons it does not use Calligra's Flake framework. The report document format is serialized to an XML representation and is modeled after the ODF.
Subpages:
- Junior Jobs (in progress)
- File format (mostly done)
- Harmonizing with forms (mostly done)
- Object tree (in progress)
- Format property (unassigned)
- CLI Export
Elements:
- Barcodes (unassigned)
- Hyperlinks (unassigned)
Todo List
Fix javascript kross plugin, or disable as it seems buggy, qtscript is ok. Now loads qtscript if available and javascript is selected - 3-Jul-2010KWord ExportKSpread ExportMake row colour the same as section background
- Add more script events, such as on_load, to complement on_render. https://invent.kde.org/office/kexi/-/issues/135
Properly sync size/pos properties between the editor and the itemMake report entities (label/field etc) plugins, so its easier to add new ones ?- Maybe use flakes, or create a report 'shape' that can be embedded elsewhere -- https://invent.kde.org/office/kexi/-/issues/134
- Add more math functions
- Undo/Redo support -- https://invent.kde.org/office/kexi/-/issues/133
Dynamically adjust page margins when page units are changed- Clean up the mess that is the barcode generators! https://invent.kde.org/office/kexi/-/issues/118
Custom page sizesWhen pasting items, dont allow to go below bottom of sectionPage number/totalHTML Export (maybe link in with webforms)--Fix to use KIO instead of QFile etc to allow saving to remote dirAllow functions defined in external scripts to be called, or add a 'modules' plugin as a place for user defined functions.Speed up background drawing - seems more dependant on gfx driver.... raster engine is faster than intel! Dont use antialisaing, or do use raster is the answerSorting and Grouping for the datasource in KoReportData- Use ODF text paragraphs for label text and allow ODF text for report values --jstaniek 13:54, 6 February 2010 (PST)
- we could paint whatever ODF allows for a paragraph; for now some ODF attributes map exactly to QFont attrs
- this is handled in KoCharacterStyle::saveOdf(KoGenStyle &style)
- but at gui level editing is the problem: (we will need support in forms to enter the data, as well as support in report designer, to enter the static label text in ODF format)
- Future Item Plugins
- Table Item
- Sub Report
- Add "Visible" bool property to any report elements including sections (Jstaniek 09:10, 27 April 2011 (UTC))
- compare to MSA Visible property; MSA's DisplayWhen is irrelevant as it applies to forms
- Add 'totals caching' feature
- if the data source has not changed, do not require to render all the pages in advance, and just render pages on demand
- some assumptions needed: data can be modified accessed with Kexi or with Kexi-compatible means, so on modification, tables that are used as data source are marked as dirty
- Optionally support report snapshots: render the reports to QPicture and store it via data stream to a database
Features
- GUI Designer
- User Scripting
Javascript- Python
- Events
- Report OnOpen
- Report OnNewPage
- Report OnComplete
- Section OnRender
- Elements (simple):
- Label
- Field
- Text
- Line
- Image
- Static
- Dynamic
- Checkbox
- Barcode
- 3of9 barcode
- 3of9+ barcode
- 128 barcode
- upc-a barcode
- upc-e barcode
- ean13 barcode
- ean8 barcode
- Charts
- Maps (experimental)
- Web browser (experimental)
- with linked child/master fields
- Grouping/Sorting
- Group headers/footers
- Menu actions
- Auto report: Create Tab (Actually, report wizard)
- Auto tabular report: Report Tab, Context menu in Project Navigator for Tables, Queries, Forms, Reports (single shot)
- Auto columnar report: Report Tab, Context menu in Project Navigator for Tables, Queries, Forms, Reports (single shot)
- Auto flowing report: Report Tab, Context menu in Project Navigator for Tables, Queries, Forms, Reports (single shot)
Links
- Compare with MSA properties for compatibility: http://msdn.microsoft.com/en-us/library/ff841525.aspx