Release-Notes.md
... ...
@@ -16,7 +16,7 @@
16 16
|11189|API|Feature| Addition of commentary to Izenda serialization.|
17 17
|21937|Dashboards|Feature| Dash2.0 - Adding support for Fusion Report Cache timestamp to appear on report tiles in new Dashboard.|
18 18
|22505|Instant Reports|Feature| Dash2.0 - Ability added to easily set default category in Dash2.0 in code. Settings in file: "Resources/components/dashboards/module-definition.js" // dashboard config object: angular.module('izendaDashboard').constant('izendaDashboardConfig', { showDashboardToolbar: true, defaultDashboardCategory: 'Filters', defaultDashboardName: 'dashboard Autocomplete Filter' });|
19
-|22537|API|Feature| Refactored Datatable class to increase performance on larger data sets. Implemented setting AdHocSettings.ClearManagedMemoryOnRender, this false by default. When set to true .NET Garbage Collector is explicitly called. To take full advantage of these changes in the Datatable class custom formats can be updated to use the following: 1) Replace IFormatter with BaseFormatter 2) Replace all DataTable occurrences with AdHocDataTable 3) Add override key words to the methods, so: - "public Type GetOutputDataType" -> "public override Type GetOutputDataType" - "public object Format" -> "public override object Format" Example below: Original: class CustomDateFormatter : IFormatter, IExcelFormatter { public string GetExcelCellClass { get { return "xls-text"; } } public Type GetOutputDataType(DataTable table, int columnNumber, ReportOutputOptions reportOutputOptions, Field field) { return typeof(string); } public object Format(DataTable table, int rowNumber, int columnNumber, Field field, DataTable originalTable, Field nameField) { var value = table.Rows[rowNumber][columnNumber]; if (value == null || value == DBNull.Value) return ""; return string.Format("{0:dd MMM yyyy}", value); } } Updated: class CustomDateFormatter : BaseFormatter, IExcelFormatter { public string GetExcelCellClass { get { return "xls-text"; } } public override Type GetOutputDataType(AdHocDataTable table, int columnNumber, ReportOutputOptions reportOutputOptions, Field field) { return typeof(string); } public override object Format(AdHocDataTable table, int rowNumber, int columnNumber, Field field, AdHocDataTable originalTable, Field nameField) { var value = table.Rows[rowNumber][columnNumber]; if (value == null || value == DBNull.Value) return ""; return string.Format("{0:dd MMM yyyy}", value); } } All previous implementations of IFormat will still work, but will not take advantage of the optimizations in the new Datatable implementation.|
19
+|22537|API|Feature| Refactored Datatable class to increase performance on larger data sets. Implemented setting AdHocSettings.ClearManagedMemoryOnRender, this false by default. When set to true .NET Garbage Collector is explicitly called. To take full advantage of these changes in the Datatable class custom formats can be updated to use the following: **1) Replace IFormatter with BaseFormatter** **2) Replace all DataTable occurrences with AdHocDataTable** **3) Add override key words to the methods, so**: - _"public Type GetOutputDataType" -> "public override Type GetOutputDataType" - "public object Format" -> "public override object Format" Example below: Original: class CustomDateFormatter : IFormatter, IExcelFormatter { public string GetExcelCellClass { get { return "xls-text"; } } public Type GetOutputDataType(DataTable table, int columnNumber, ReportOutputOptions reportOutputOptions, Field field) { return typeof(string); } public object Format(DataTable table, int rowNumber, int columnNumber, Field field, DataTable originalTable, Field nameField) { var value = table.Rows[rowNumber][columnNumber]; if (value == null || value == DBNull.Value) return ""; return string.Format("{0:dd MMM yyyy}", value); } } Updated: class CustomDateFormatter : BaseFormatter, IExcelFormatter { public string GetExcelCellClass { get { return "xls-text"; } } public override Type GetOutputDataType(AdHocDataTable table, int columnNumber, ReportOutputOptions reportOutputOptions, Field field) { return typeof(string); } public override object Format(AdHocDataTable table, int rowNumber, int columnNumber, Field field, AdHocDataTable originalTable, Field nameField) { var value = table.Rows[rowNumber][columnNumber]; if (value == null || value == DBNull.Value) return ""; return string.Format("{0:dd MMM yyyy}", value); } }_ _**All previous implementations of IFormat will still work, but will not take advantage of the optimizations in the new Datatable implementation**_.|
20 20
|22749|Report Design|Feature| Cell Highlight - 'High' 'Medium' and 'Low' strings can no longer be used to address the upper, middle, and lower thirds of a range in highlighting or value range aliasing. You can use "x% to y%" range syntax to establish custom proportional ranges instead. High, Medium and Low will now function properly as strings.|
21 21
|23025|Instant Reports|Logging|Feature: IR2.0 (BETA) - Support for Filter Regex added to IR2.0.|
22 22
|23039|Scheduler|Logging|Feature: Scheduling - Added ability of configure local SMTP port. Add this method to customadhocconfig: public static System.Net.IPEndPoint BindIPEndPoint(System.Net.ServicePoint servicePoint, System.Net.IPEndPoint remoteEndPoint, int retryCount) { return new System.Net.IPEndPoint(System.Net.IPAddress.Parse("192.168.0.61"), 6666); } Add this setting to InitializeReporting: AdHocSettings.SmtpClientBindIPEndPointDelegate = BindIPEndPoint;|