RDL Project Release 4 and 4.1 Notes
These release notes specify the major differences between release 3 and release 4.1 of the RDL Project. If you want a more general overview you should visit www.fyireporting.com or the online help system.
Licensing
The fyiReporting Software RDL Project 4 is released under the terms of the Apache License, Version 2.0. This license allows you to use the RDL Project 4 libraries and programs in either open source or commercial applications as long as you credit fyiReporting Software, LLC.Credits
Special thanks to Peter Rohner, Gil Little, Adam Minchenton, Wayne Pease, James Dixon for significant changes and improvements across a range of features including charting and view support.Report Runtime
- Runtime Rendering
- New renderer for RTF files. Only relatively simple reports that contain tables, matrixes, charts, images, textboxes supported. Absolute positioning isn't supported (ie lists, rectangles, multiple report items in the body, header and footer).
- New renderer for TIF files. Thanks to samuelchoi on the forum for this code. The renderer is capable of producing either black and white TIFs or full color. A type of "tif" results in color; "tifbw" results in black and white. There is a significant size difference between the two. In a small 3 page report the color tif was 20 times larger than the black and white tif. Blame me (not Samuel) since I added the color support.
- New renderer for Excel 2007 file format (extension xlsx). (Sorry, no support for earlier versions.) Renderer support only table, matrix and Textbox report items at this time. A new workbook sheet is created for each Table and Matrix in the report. Lists are converted to tabular format when rendered (ie Textbox positioning is lost).
- Silverlight Viewer To try it, start an ASP web server using the AspExample (of the install) or the ReportServer (of the zipped source) directory and bring up the SilverlightTest.aspx page.
- Charts
- Support for Scatter and Bubble types
- New chart type of map. Only two (very rough) maps currently provided: usa_map and world_map. The implementation is expandable to any map with the addition of an xml file describing the map. Tools/Options Maps panel allow you to define to the designer what the available map subtypes are available. At runtime the subtype is appended to the suffix ".xml" and searched for in the directory of the report engine. Map charts expect that the data expression will return a color to fill a polygon that corresponds to the series value. For example, the series value of USA might map to the polygon(s) associated with the United States in the world_map.xml file. I plan to refine the maps for the final build. The way ToolTip works with maps is still experimental (ie text likely to change). See Bin\Example\ChartMap.rdl and ChartWorldMap.rdl for examples.
- Charting optionally uses EMF graphics instead of bitmaps throughout the engine. To enable this feature double click on a chart in the designer and enable vector graphics. Some of the benefits when using this capability:
- Zoom in up to 6200% when viewing PDF’s and the document quality is still perfectly resolved
- PDF file size for a complicated report (14 pages of multi series, multi style, dual axis, charts) reduced from 6Mb to 85Kb but with much better Quality!
- Greyscale printouts now clearly identify different grey shades where previously they all seemed to blend into the one or two shades of grey.
- Charts Static series support as well as dynamic determination of horizontal or vertical text depending on text size when no Style is specified.
- Charts/Images now use high definition JPEG encoding
- ToolTips on data points in graphs. There is a new ToolTips element that controls whether ToolTips on data items will be shown. The graph must also use RenderAsVector for ToolTips to work. The RdlViewer and PDF renderers support this.
- Custom color is now supported on graphs.
- RdlViewer Enhancements
- A new selection tool for the viewer is added along with copy support. In the designer when previewing a report clicking on Selection Tool (+) puts viewer into selection mode. The user can then use a selection rectangle to select report items and use Edit/Copy to place contents into clipboard. If a single report item is an image or chart then an Image is placed on the clipboard; otherwise the text of the report items is placed on the clipboard. Copied text is created as tab and newline delimited. This is determined by the following simple logic: if a report item has same y coordinate then place tab before it other wise use newline. HTML formatted text is stripped of all formatting when copied onto clipboard. Note: the entire text of a report item is selected: this is NOT textual selection. To add this to your application take a look at the RdlReader sample application. Primarily what you need to do is provide some UI that toggles selection mode and allows the user to do the copy.
- Introduction of an optional wait dialog that lets user know report is being built.
- When Ctrl is pressed with mousewheel the report viewer control will zoom the report. Works like IE ctrl + mousewheel support zooming in increments of 10%.
- New event triggered when subreport needs to retrieve data. RdlTests has example.
this.rdlViewer.SubreportDataRetrieval +=new EventHandler
(rdlViewer_SubreportDataRetrieval); void rdlViewer_SubreportDataRetrieval(object sender, SubreportDataRetrievalEventArgs e) { int ids = 0; foreach (fyiReporting.RDL.DataSet ds in e.Report.DataSets) ids++; MessageBox.Show(string.Format(""Subreport Data Retrieval: {0} datasets"", ids)); } - HTML Format Support
- Runtime Format HTML <hr /> support
- HTML Format <expr>=Fields!col1.Value</expr> support in html formatted expressions; One potential use is as a simple way to create formatted letters while embedding expressions (mail merge). For example: <b>Company:</b> <expr>=Fields!CompanyName.Value</expr><br> Contact: <expr>=Fields!ContactName.Value</expr><hr/> and to show the total <expr>=Count(Fields!ContactName.Value)</expr> <br>
- Support repeat for background images. Thanks to Duc Phan for the PDF version of this code which I adapted to work with the RdlViewer and designer.
- ASP PassPhrase property added to RdlReport. Used for decrypting shared datasources. Set this property prior to setting the report.
- rdlcmd /u parameter added for setting of User!UserID
- New Grid Reportitem added. A grid is a table that isn't tied to a dataset. The implementation is based on Table but an underlying row of data is always generated. You get multiple rows in the grid by defining multiple TableRows. Header and Footer rows are also supported.
-
Enhancement that allows Code block to reference properties. Donated by solidstore from the forum. For example:
Public Function GetLang() as String Return Report.User.Language End Function
Warning: this change can cause a VB compilation error if you have CodeModules defined that can't be located.
Report Designer
- Added ReportItem name drop down list to property sheet
- SQL editor supports resizing table/view list; both in New Report and DataSet SQL editing
- Some interprocess communication (ipc) capabilities added. Current use is to open files in the existing running designer instead of starting up a new instance of the program (as was previously done).
- Support for shared datasources in DataSet dialog (e.g. editting SQL and loading data)
- fx in toolbar when clicked will bring up Edit Expressiong dialog
- Add highlighting when mouse enters the fx botton on the toolbar (clicking brings up expression editor).
- Right mouse support on current designer tab with "Save", "Close", "Close All But This" menu items
- Mousewheel will now work when mouse over control even if control doesn't have focus. This support is only in the designer. If you want your application to work this way, look in the rdldesigner.cs for PreFilterMessage support.
Bug fixes
Many bugs have been fixed in all parts of the product. Below are some of the more significant bug fixes.- PDF doesn't handle text with embedded newlines correctly
- Globals!ExecutionTime.Value pasted in not Globals!ExecutionTime in designer.
- Pasting in new reportitem sometimes generates duplicate name; names not case insensitive
- Nullable datetime parsing
- Added IsNumeric() function-- thanks to Gareth Marshall
- Text with many blank spaces may misformat during PDF generation
- Missing Dispose when using dialogs in designer (thanks to Lionel Cuir of Aulofee for pointing this out)
- =1=2-- doesn't parse but should return a boolean
- Exception when Code element contains braces {}
- Normalize SQL names should handle _ and # special characters better
- In Designer fix innconsistencies between property sheets and tool bar values when changed
- Bug Charts don't show in Firefox browser from ASP server
- HTML generation of CSS sizes should remove blanks. Thanks to dbeaugez on the forum for this fix.
- Textbox formatted with "html" containing character codes > 128 don't display properly. Thanks to Hugo Ferreira for pointing this problem out to me.
- Parser problem with handling '.' notation after a Fields array reference. For example: =IIf(Parameters!pSortOrder.Value = "0", lds(Parameters!pSortOn.Value).Value, 0) Thanks to solidstore on the forum for reporting this problem.
- drilldown failing; thanks to dbeaugez on the forum for finding this problem
- In designer: Globals!PageNumber.Value changed to Globals!PageNumber (thanks to geezzeer on the forum for reporting a number of incompatibilities with designer RDL syntax generation and MS reporting services usage)
- HTML formatting: Code donated by jonh of forum. HTML Comments won't be rendered to the report with this fix. Also fix for multiple support.
- RdlViewer problem when trying to pass '&' character in a parameter value. The fix requires you to substitute & in place of any '&' you want. Thanks to khgamester of forum for reporting this.
- New report dialog. Tables not always sorted; problems when table not qualified by table schema with SQL Server.
- Null object exception occasionally when changing text color property in dialog (thanks to kobruleht for reporting)
- Thanks to kobruleht for reporting the following bugs: Edit Expression dialog doesn't handle Esc key. Exception saving report to HTML when Rectangle embedded in TableCell. Change to designer to do Application.Exit instead of Environment.Exit.
- Thanks to alekti for reporting and fixing a CSS style error with tables and matrixes
- String(int, string) VB method missing
- Fixed by Aleksey: Numbers Conversion fix
- Mid with two arguments gets parser error. e.g. =Mid("test",2,Len("Test")-1)
- CustomReportItem doesn't render correctly in pdf
- Designer Width, PageWidth properties don't update the scrollable region of the design surface
- Improved error message when CustomReportItem implementation of GetCustomReportItemXml is incorrect. See http://fyireporting.com/forum/viewtopic.php?p=2522#2522
- CustomReportItem applying changes even when Cancel button hit. http://fyireporting.com/forum/viewtopic.php?p=2521#2521
- =Count() > 0 causes index out of bounds during parse.
- scrolling via down arrow (change from scroll via mousewheel); when zoomed doesn't scroll to end
- Fixes to mht renderer. See http://fyireporting.com/forum/viewtopic.php?p=2523
- Exception when closing RdlViewer window when height or width of window < 0 see http://fyireporting.com/forum/viewtopic.php?t=820
fyiReporting Software, LLC