From b653314c6665de3f572e8ab3f7e3fc348fc4d80f Mon Sep 17 00:00:00 2001 From: FastReports-bot Date: Mon, 8 Apr 2024 20:13:31 +0300 Subject: [PATCH] * sync 4/8/2024 version: 2024.2.0 --- .../Console apps/PdfExport/PdfExport.csproj | 14 +++++ .../Console apps/PdfExport/PdfExport.sln | 25 ++++++++ .../Console apps/PdfExport/Program.cs | 57 +++++++++++++++++++ .../FastReport.OpenSource.MVC.6.0.csproj | 2 +- .../FastReport.OpenSource.MVC.DataBase.csproj | 2 +- .../FastReport.OpenSource.React.csproj | 2 +- .../FastReport.OpenSource.Vue.csproj | 2 +- ...t.OpenSource.Angular.OnlineDesigner.csproj | 2 +- .../FastReport.OpenSource.Angular.csproj | 2 +- Extras/Core/FastReport.Data/Avalonia.props | 26 --------- .../FastReport.Avalonia.Data.Cassandra.csproj | 12 ---- .../FastReport.WPF.Data.Cassandra.csproj | 12 ---- ...FastReport.Avalonia.Data.ClickHouse.csproj | 12 ---- .../FastReport.WPF.Data.ClickHouse.csproj | 12 ---- .../FastReport.Avalonia.Data.Couchbase.csproj | 12 ---- .../FastReport.WPF.Data.Couchbase.csproj | 13 ----- ...tReport.Avalonia.Data.ElasticSearch.csproj | 12 ---- .../FastReport.WPF.Data.ElasticSearch.csproj | 12 ---- .../FastReport.Avalonia.Data.Excel.csproj | 12 ---- .../FastReport.WPF.Data.Excel.csproj | 12 ---- .../FastReport.Avalonia.Data.Firebird.csproj | 12 ---- .../FastReport.WPF.Data.Firebird.csproj | 12 ---- .../FastReport.Avalonia.Data.Json.csproj | 16 ------ .../FastReport.WPF.Data.Json.csproj | 20 ------- .../FastReport.Avalonia.Data.Linter.csproj | 12 ---- .../FastReport.WPF.Data.Linter.csproj | 12 ---- .../FastReport.Avalonia.Data.MongoDB.csproj | 12 ---- .../FastReport.WPF.Data.MongoDB.csproj | 12 ---- .../FastReport.Avalonia.Data.MySql.csproj | 12 ---- .../FastReport.WPF.Data.MySql.csproj | 12 ---- .../FastReport.Avalonia.Data.Odbc.csproj | 12 ---- ...tReport.Avalonia.Data.OracleODPCore.csproj | 12 ---- .../FastReport.WPF.Data.OracleODPCore.csproj | 12 ---- .../FastReport.Avalonia.Data.Postgres.csproj | 12 ---- .../FastReport.WPF.Data.Postgres.csproj | 12 ---- .../PostgresConnectionEditor.cs | 4 +- .../FastReport.Avalonia.Data.RavenDB.csproj | 12 ---- .../FastReport.WPF.Data.RavenDB.csproj | 12 ---- .../FastReport.Avalonia.Data.SQLite.csproj | 12 ---- .../FastReport.WPF.Data.SQLite.csproj | 12 ---- .../SQLiteConnectionEditor.cs | 2 +- Extras/Core/FastReport.Data/WPF.props | 35 ------------ FastReport.Base/ContainerObject.cs | 9 +-- FastReport.Base/Functions/StdFunctions.cs | 17 ++++++ FastReport.Base/Hyperlink.cs | 13 ++++- FastReport.Base/LineObject.cs | 12 ++-- FastReport.Base/Report.cs | 14 +++++ .../FastReport.Compat.csproj | 16 +++++- .../Application/WebReportHtml.Backend.cs | 2 +- .../FastReport.OpenSource.Web.csproj | 10 +++- .../Resources/angle-double-left.svg | 5 +- .../Resources/angle-double-right.svg | 5 +- FastReport.Core.Web/Resources/angle-left.svg | 4 +- FastReport.Core.Web/Resources/angle-right.svg | 4 +- .../Resources/button-active.svg | 5 +- FastReport.Core.Web/Resources/button.svg | 4 +- FastReport.Core.Web/Resources/caret-down.svg | 3 +- FastReport.Core.Web/Resources/caret-right.svg | 3 +- FastReport.Core.Web/Resources/close.svg | 5 +- FastReport.Core.Web/Resources/date-picker.svg | 4 +- .../Resources/default-custom-button.svg | 4 +- FastReport.Core.Web/Resources/file.svg | 3 +- FastReport.Core.Web/Resources/magnifier.svg | 4 +- .../Resources/notification-bell.svg | 5 +- FastReport.Core.Web/Resources/print.svg | 4 +- FastReport.Core.Web/Resources/reload.svg | 4 +- FastReport.Core.Web/Resources/save.svg | 4 +- .../Resources/select-arrow.svg | 4 +- FastReport.Core.Web/Resources/settings.svg | 5 +- FastReport.Core.Web/Resources/slash.svg | 4 +- FastReport.Core.Web/Resources/spinner.svg | 3 +- .../ExportSettings/DocxExportSettings.cs | 11 ++-- FastReport.Core.Web/Templates/main.cs | 10 ++-- FastReport.Core.Web/Templates/outline.cs | 10 ++-- FastReport.Core.Web/Templates/style.cs | 35 ++++++------ FastReport.Core.Web/Templates/tabs.cs | 2 +- FastReport.Core.Web/Templates/toolbar.cs | 46 +++++++-------- .../FastReport.OpenSource.csproj | 8 +-- FastReport/Resources/en.xml | 3 + Localization/Russian.frl | 3 + UsedPackages.version | 27 ++++----- 81 files changed, 277 insertions(+), 593 deletions(-) create mode 100644 Demos/OpenSource/Console apps/PdfExport/PdfExport.csproj create mode 100644 Demos/OpenSource/Console apps/PdfExport/PdfExport.sln create mode 100644 Demos/OpenSource/Console apps/PdfExport/Program.cs delete mode 100644 Extras/Core/FastReport.Data/Avalonia.props delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.Cassandra/FastReport.Avalonia.Data.Cassandra.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.Cassandra/FastReport.WPF.Data.Cassandra.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.ClickHouse/FastReport.Avalonia.Data.ClickHouse.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.ClickHouse/FastReport.WPF.Data.ClickHouse.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.Couchbase/FastReport.Avalonia.Data.Couchbase.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.Couchbase/FastReport.WPF.Data.Couchbase.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.ElasticSearch/FastReport.Avalonia.Data.ElasticSearch.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.ElasticSearch/FastReport.WPF.Data.ElasticSearch.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.Excel/FastReport.Avalonia.Data.Excel.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.Excel/FastReport.WPF.Data.Excel.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.Firebird/FastReport.Avalonia.Data.Firebird.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.Firebird/FastReport.WPF.Data.Firebird.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.Json/FastReport.Avalonia.Data.Json.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.Json/FastReport.WPF.Data.Json.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.Linter/FastReport.Avalonia.Data.Linter.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.Linter/FastReport.WPF.Data.Linter.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.MongoDB/FastReport.Avalonia.Data.MongoDB.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.MongoDB/FastReport.WPF.Data.MongoDB.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.MySql/FastReport.Avalonia.Data.MySql.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.MySql/FastReport.WPF.Data.MySql.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.Odbc/FastReport.Avalonia.Data.Odbc.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.OracleODPCore/FastReport.Avalonia.Data.OracleODPCore.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.OracleODPCore/FastReport.WPF.Data.OracleODPCore.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.Postgres/FastReport.Avalonia.Data.Postgres.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.Postgres/FastReport.WPF.Data.Postgres.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.RavenDB/FastReport.Avalonia.Data.RavenDB.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.RavenDB/FastReport.WPF.Data.RavenDB.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.SQLite/FastReport.Avalonia.Data.SQLite.csproj delete mode 100644 Extras/Core/FastReport.Data/FastReport.Data.SQLite/FastReport.WPF.Data.SQLite.csproj delete mode 100644 Extras/Core/FastReport.Data/WPF.props diff --git a/Demos/OpenSource/Console apps/PdfExport/PdfExport.csproj b/Demos/OpenSource/Console apps/PdfExport/PdfExport.csproj new file mode 100644 index 00000000..10943c2c --- /dev/null +++ b/Demos/OpenSource/Console apps/PdfExport/PdfExport.csproj @@ -0,0 +1,14 @@ + + + + Exe + net6.0 + + + + + + + + + diff --git a/Demos/OpenSource/Console apps/PdfExport/PdfExport.sln b/Demos/OpenSource/Console apps/PdfExport/PdfExport.sln new file mode 100644 index 00000000..d39e47d4 --- /dev/null +++ b/Demos/OpenSource/Console apps/PdfExport/PdfExport.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.421 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PdfExport", "PdfExport.csproj", "{380E2489-623D-4E0F-9E98-253FC2147DD6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {380E2489-623D-4E0F-9E98-253FC2147DD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {380E2489-623D-4E0F-9E98-253FC2147DD6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {380E2489-623D-4E0F-9E98-253FC2147DD6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {380E2489-623D-4E0F-9E98-253FC2147DD6}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {64D0A985-754A-496D-A0AE-9A9D86DEA92D} + EndGlobalSection +EndGlobal diff --git a/Demos/OpenSource/Console apps/PdfExport/Program.cs b/Demos/OpenSource/Console apps/PdfExport/Program.cs new file mode 100644 index 00000000..296ce2c7 --- /dev/null +++ b/Demos/OpenSource/Console apps/PdfExport/Program.cs @@ -0,0 +1,57 @@ +using FastReport; +using FastReport.Export.PdfSimple; +using FastReport.Utils; +using System; +using System.Data; +using System.Diagnostics; +using System.IO; + +namespace PdfExport +{ + class Program + { + static void Main(string[] args) + { + string reportsFolder = FindReportsFolder(); + + Report report = new Report(); + report.Load(Path.Combine(reportsFolder, "Simple List.frx")); + + DataSet data = new DataSet(); + data.ReadXml(Path.Combine(reportsFolder, "nwind.xml")); + + report.RegisterData(data, "NorthWind"); + + report.Prepare(); + + PDFSimpleExport pdfExport = new PDFSimpleExport(); + + pdfExport.Export(report, "Simple List.pdf"); + + + } + + + public static string FindReportsFolder() + { + string FReportsFolder = ""; + string thisFolder = Config.ApplicationFolder; + + for (int i = 0; i < 7; i++) + { + string dir = Path.Combine(thisFolder, "Reports"); + if (Directory.Exists(dir)) + { + string rep_dir = Path.GetFullPath(dir); + if (System.IO.File.Exists(Path.Combine(rep_dir, "reports.xml"))) + { + FReportsFolder = rep_dir; + break; + } + } + thisFolder = Path.Combine(thisFolder, @".."); + } + return FReportsFolder; + } + } +} diff --git a/Demos/OpenSource/MVC/FastReport.OpenSource.MVC.6.0/FastReport.OpenSource.MVC.6.0.csproj b/Demos/OpenSource/MVC/FastReport.OpenSource.MVC.6.0/FastReport.OpenSource.MVC.6.0.csproj index 982315bc..033325c9 100644 --- a/Demos/OpenSource/MVC/FastReport.OpenSource.MVC.6.0/FastReport.OpenSource.MVC.6.0.csproj +++ b/Demos/OpenSource/MVC/FastReport.OpenSource.MVC.6.0/FastReport.OpenSource.MVC.6.0.csproj @@ -10,7 +10,7 @@ - + diff --git a/Demos/OpenSource/MVC/FastReport.OpenSource.MVC.DataBase/FastReport.OpenSource.MVC.DataBase.csproj b/Demos/OpenSource/MVC/FastReport.OpenSource.MVC.DataBase/FastReport.OpenSource.MVC.DataBase.csproj index 141d3796..ef1dad97 100644 --- a/Demos/OpenSource/MVC/FastReport.OpenSource.MVC.DataBase/FastReport.OpenSource.MVC.DataBase.csproj +++ b/Demos/OpenSource/MVC/FastReport.OpenSource.MVC.DataBase/FastReport.OpenSource.MVC.DataBase.csproj @@ -10,7 +10,7 @@ - + diff --git a/Demos/OpenSource/SPA/FastReport.Core.React/FastReport.OpenSource.React.csproj b/Demos/OpenSource/SPA/FastReport.Core.React/FastReport.OpenSource.React.csproj index b99a3306..e25c83e4 100644 --- a/Demos/OpenSource/SPA/FastReport.Core.React/FastReport.OpenSource.React.csproj +++ b/Demos/OpenSource/SPA/FastReport.Core.React/FastReport.OpenSource.React.csproj @@ -17,7 +17,7 @@ - + diff --git a/Demos/OpenSource/SPA/FastReport.Core.Vue/FastReport.OpenSource.Vue.csproj b/Demos/OpenSource/SPA/FastReport.Core.Vue/FastReport.OpenSource.Vue.csproj index efbacaee..9e48dfa5 100644 --- a/Demos/OpenSource/SPA/FastReport.Core.Vue/FastReport.OpenSource.Vue.csproj +++ b/Demos/OpenSource/SPA/FastReport.Core.Vue/FastReport.OpenSource.Vue.csproj @@ -9,7 +9,7 @@ - + diff --git a/Demos/OpenSource/SPA/FastReport.OpenSource.Angular.OnlineDesigner/FastReport.OpenSource.Angular.OnlineDesigner.csproj b/Demos/OpenSource/SPA/FastReport.OpenSource.Angular.OnlineDesigner/FastReport.OpenSource.Angular.OnlineDesigner.csproj index 5451be65..e51ebaf7 100644 --- a/Demos/OpenSource/SPA/FastReport.OpenSource.Angular.OnlineDesigner/FastReport.OpenSource.Angular.OnlineDesigner.csproj +++ b/Demos/OpenSource/SPA/FastReport.OpenSource.Angular.OnlineDesigner/FastReport.OpenSource.Angular.OnlineDesigner.csproj @@ -13,7 +13,7 @@ - + diff --git a/Demos/OpenSource/SPA/FastReport.OpenSource.Angular/FastReport.OpenSource.Angular.csproj b/Demos/OpenSource/SPA/FastReport.OpenSource.Angular/FastReport.OpenSource.Angular.csproj index b5842f60..6f6b86e5 100644 --- a/Demos/OpenSource/SPA/FastReport.OpenSource.Angular/FastReport.OpenSource.Angular.csproj +++ b/Demos/OpenSource/SPA/FastReport.OpenSource.Angular/FastReport.OpenSource.Angular.csproj @@ -13,7 +13,7 @@ - + diff --git a/Extras/Core/FastReport.Data/Avalonia.props b/Extras/Core/FastReport.Data/Avalonia.props deleted file mode 100644 index b9437052..00000000 --- a/Extras/Core/FastReport.Data/Avalonia.props +++ /dev/null @@ -1,26 +0,0 @@ - - - - https://www.fast-report.com/en/product/fast-report-avalonia/license - Debug;Release; - - - - - - ..\..\..\..\FastReport.Avalonia\FastReport.Avalonia.csproj - FastReport.Avalonia - - ..\..\..\..\FastReport.Forms.Avalonia\FastReport.Forms.Avalonia.csproj - FastReport.Forms.Avalonia - - - - - - - - - - - \ No newline at end of file diff --git a/Extras/Core/FastReport.Data/FastReport.Data.Cassandra/FastReport.Avalonia.Data.Cassandra.csproj b/Extras/Core/FastReport.Data/FastReport.Data.Cassandra/FastReport.Avalonia.Data.Cassandra.csproj deleted file mode 100644 index 1f05f8e7..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.Cassandra/FastReport.Avalonia.Data.Cassandra.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.Cassandra/FastReport.WPF.Data.Cassandra.csproj b/Extras/Core/FastReport.Data/FastReport.Data.Cassandra/FastReport.WPF.Data.Cassandra.csproj deleted file mode 100644 index 1d5dc461..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.Cassandra/FastReport.WPF.Data.Cassandra.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - $(NetFrameworkMinimum);net6.0-windows7.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.ClickHouse/FastReport.Avalonia.Data.ClickHouse.csproj b/Extras/Core/FastReport.Data/FastReport.Data.ClickHouse/FastReport.Avalonia.Data.ClickHouse.csproj deleted file mode 100644 index 1f05f8e7..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.ClickHouse/FastReport.Avalonia.Data.ClickHouse.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.ClickHouse/FastReport.WPF.Data.ClickHouse.csproj b/Extras/Core/FastReport.Data/FastReport.Data.ClickHouse/FastReport.WPF.Data.ClickHouse.csproj deleted file mode 100644 index a4f4a1d4..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.ClickHouse/FastReport.WPF.Data.ClickHouse.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net472;net6.0-windows7.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.Couchbase/FastReport.Avalonia.Data.Couchbase.csproj b/Extras/Core/FastReport.Data/FastReport.Data.Couchbase/FastReport.Avalonia.Data.Couchbase.csproj deleted file mode 100644 index 129e5b8b..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.Couchbase/FastReport.Avalonia.Data.Couchbase.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.Couchbase/FastReport.WPF.Data.Couchbase.csproj b/Extras/Core/FastReport.Data/FastReport.Data.Couchbase/FastReport.WPF.Data.Couchbase.csproj deleted file mode 100644 index 1274c9da..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.Couchbase/FastReport.WPF.Data.Couchbase.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - $(NetFrameworkMinimum);net6.0-windows7.0 - - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.ElasticSearch/FastReport.Avalonia.Data.ElasticSearch.csproj b/Extras/Core/FastReport.Data/FastReport.Data.ElasticSearch/FastReport.Avalonia.Data.ElasticSearch.csproj deleted file mode 100644 index 3e398e89..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.ElasticSearch/FastReport.Avalonia.Data.ElasticSearch.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.ElasticSearch/FastReport.WPF.Data.ElasticSearch.csproj b/Extras/Core/FastReport.Data/FastReport.Data.ElasticSearch/FastReport.WPF.Data.ElasticSearch.csproj deleted file mode 100644 index 1d5dc461..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.ElasticSearch/FastReport.WPF.Data.ElasticSearch.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - $(NetFrameworkMinimum);net6.0-windows7.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.Excel/FastReport.Avalonia.Data.Excel.csproj b/Extras/Core/FastReport.Data/FastReport.Data.Excel/FastReport.Avalonia.Data.Excel.csproj deleted file mode 100644 index 1f05f8e7..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.Excel/FastReport.Avalonia.Data.Excel.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.Excel/FastReport.WPF.Data.Excel.csproj b/Extras/Core/FastReport.Data/FastReport.Data.Excel/FastReport.WPF.Data.Excel.csproj deleted file mode 100644 index 1d5dc461..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.Excel/FastReport.WPF.Data.Excel.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - $(NetFrameworkMinimum);net6.0-windows7.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.Firebird/FastReport.Avalonia.Data.Firebird.csproj b/Extras/Core/FastReport.Data/FastReport.Data.Firebird/FastReport.Avalonia.Data.Firebird.csproj deleted file mode 100644 index 3e398e89..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.Firebird/FastReport.Avalonia.Data.Firebird.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.Firebird/FastReport.WPF.Data.Firebird.csproj b/Extras/Core/FastReport.Data/FastReport.Data.Firebird/FastReport.WPF.Data.Firebird.csproj deleted file mode 100644 index 1d5dc461..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.Firebird/FastReport.WPF.Data.Firebird.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - $(NetFrameworkMinimum);net6.0-windows7.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.Json/FastReport.Avalonia.Data.Json.csproj b/Extras/Core/FastReport.Data/FastReport.Data.Json/FastReport.Avalonia.Data.Json.csproj deleted file mode 100644 index 36a1ef63..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.Json/FastReport.Avalonia.Data.Json.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - net6.0 - - - - - - - FRCORE; - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.Json/FastReport.WPF.Data.Json.csproj b/Extras/Core/FastReport.Data/FastReport.Data.Json/FastReport.WPF.Data.Json.csproj deleted file mode 100644 index bc36a9e7..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.Json/FastReport.WPF.Data.Json.csproj +++ /dev/null @@ -1,20 +0,0 @@ - - - $(NetFrameworkMinimum);net6.0-windows7.0 - - - - - - - FRCORE; - - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.Linter/FastReport.Avalonia.Data.Linter.csproj b/Extras/Core/FastReport.Data/FastReport.Data.Linter/FastReport.Avalonia.Data.Linter.csproj deleted file mode 100644 index 3e398e89..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.Linter/FastReport.Avalonia.Data.Linter.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.Linter/FastReport.WPF.Data.Linter.csproj b/Extras/Core/FastReport.Data/FastReport.Data.Linter/FastReport.WPF.Data.Linter.csproj deleted file mode 100644 index 1d5dc461..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.Linter/FastReport.WPF.Data.Linter.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - $(NetFrameworkMinimum);net6.0-windows7.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.MongoDB/FastReport.Avalonia.Data.MongoDB.csproj b/Extras/Core/FastReport.Data/FastReport.Data.MongoDB/FastReport.Avalonia.Data.MongoDB.csproj deleted file mode 100644 index 3e398e89..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.MongoDB/FastReport.Avalonia.Data.MongoDB.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.MongoDB/FastReport.WPF.Data.MongoDB.csproj b/Extras/Core/FastReport.Data/FastReport.Data.MongoDB/FastReport.WPF.Data.MongoDB.csproj deleted file mode 100644 index 1d5dc461..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.MongoDB/FastReport.WPF.Data.MongoDB.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - $(NetFrameworkMinimum);net6.0-windows7.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.MySql/FastReport.Avalonia.Data.MySql.csproj b/Extras/Core/FastReport.Data/FastReport.Data.MySql/FastReport.Avalonia.Data.MySql.csproj deleted file mode 100644 index 1f05f8e7..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.MySql/FastReport.Avalonia.Data.MySql.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.MySql/FastReport.WPF.Data.MySql.csproj b/Extras/Core/FastReport.Data/FastReport.Data.MySql/FastReport.WPF.Data.MySql.csproj deleted file mode 100644 index 1d5dc461..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.MySql/FastReport.WPF.Data.MySql.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - $(NetFrameworkMinimum);net6.0-windows7.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.Odbc/FastReport.Avalonia.Data.Odbc.csproj b/Extras/Core/FastReport.Data/FastReport.Data.Odbc/FastReport.Avalonia.Data.Odbc.csproj deleted file mode 100644 index c3418810..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.Odbc/FastReport.Avalonia.Data.Odbc.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.OracleODPCore/FastReport.Avalonia.Data.OracleODPCore.csproj b/Extras/Core/FastReport.Data/FastReport.Data.OracleODPCore/FastReport.Avalonia.Data.OracleODPCore.csproj deleted file mode 100644 index d416e900..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.OracleODPCore/FastReport.Avalonia.Data.OracleODPCore.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.OracleODPCore/FastReport.WPF.Data.OracleODPCore.csproj b/Extras/Core/FastReport.Data/FastReport.Data.OracleODPCore/FastReport.WPF.Data.OracleODPCore.csproj deleted file mode 100644 index 1d5dc461..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.OracleODPCore/FastReport.WPF.Data.OracleODPCore.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - $(NetFrameworkMinimum);net6.0-windows7.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.Postgres/FastReport.Avalonia.Data.Postgres.csproj b/Extras/Core/FastReport.Data/FastReport.Data.Postgres/FastReport.Avalonia.Data.Postgres.csproj deleted file mode 100644 index bca893fb..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.Postgres/FastReport.Avalonia.Data.Postgres.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.Postgres/FastReport.WPF.Data.Postgres.csproj b/Extras/Core/FastReport.Data/FastReport.Data.Postgres/FastReport.WPF.Data.Postgres.csproj deleted file mode 100644 index 1d5dc461..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.Postgres/FastReport.WPF.Data.Postgres.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - $(NetFrameworkMinimum);net6.0-windows7.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.Postgres/PostgresConnectionEditor.cs b/Extras/Core/FastReport.Data/FastReport.Data.Postgres/PostgresConnectionEditor.cs index e9d862da..2fd5f7ab 100644 --- a/Extras/Core/FastReport.Data/FastReport.Data.Postgres/PostgresConnectionEditor.cs +++ b/Extras/Core/FastReport.Data/FastReport.Data.Postgres/PostgresConnectionEditor.cs @@ -58,10 +58,12 @@ private void Localize() lblServer.Text = res.Get("Server"); lblUserName.Text = res.Get("UserName"); lblPassword.Text = res.Get("Password"); - gbDatabase.Text = res.Get("Database"); lblDatabase.Text = res.Get("DatabaseName"); btnAdvanced.Text = Res.Get("Buttons,Advanced"); + + MyRes resPostgres = new MyRes("ConnectionEditors,Postgres"); + enableSystemSchemasCb.Text = resPostgres.Get("EnableSystemSchemas"); } protected override string GetConnectionString() diff --git a/Extras/Core/FastReport.Data/FastReport.Data.RavenDB/FastReport.Avalonia.Data.RavenDB.csproj b/Extras/Core/FastReport.Data/FastReport.Data.RavenDB/FastReport.Avalonia.Data.RavenDB.csproj deleted file mode 100644 index d416e900..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.RavenDB/FastReport.Avalonia.Data.RavenDB.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.RavenDB/FastReport.WPF.Data.RavenDB.csproj b/Extras/Core/FastReport.Data/FastReport.Data.RavenDB/FastReport.WPF.Data.RavenDB.csproj deleted file mode 100644 index 1d5dc461..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.RavenDB/FastReport.WPF.Data.RavenDB.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - $(NetFrameworkMinimum);net6.0-windows7.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.SQLite/FastReport.Avalonia.Data.SQLite.csproj b/Extras/Core/FastReport.Data/FastReport.Data.SQLite/FastReport.Avalonia.Data.SQLite.csproj deleted file mode 100644 index d416e900..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.SQLite/FastReport.Avalonia.Data.SQLite.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.SQLite/FastReport.WPF.Data.SQLite.csproj b/Extras/Core/FastReport.Data/FastReport.Data.SQLite/FastReport.WPF.Data.SQLite.csproj deleted file mode 100644 index 1d5dc461..00000000 --- a/Extras/Core/FastReport.Data/FastReport.Data.SQLite/FastReport.WPF.Data.SQLite.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - $(NetFrameworkMinimum);net6.0-windows7.0 - - - - - - - - - diff --git a/Extras/Core/FastReport.Data/FastReport.Data.SQLite/SQLiteConnectionEditor.cs b/Extras/Core/FastReport.Data/FastReport.Data.SQLite/SQLiteConnectionEditor.cs index 908cc7f9..60d33504 100644 --- a/Extras/Core/FastReport.Data/FastReport.Data.SQLite/SQLiteConnectionEditor.cs +++ b/Extras/Core/FastReport.Data/FastReport.Data.SQLite/SQLiteConnectionEditor.cs @@ -83,7 +83,7 @@ private void btBrowse_Click(object sender, EventArgs e) { using (OpenFileDialog dlg = new OpenFileDialog()) { - dlg.Filter = "*.db|*.db|*.db3|*.db3|*.*|*.*"; + dlg.Filter = "*.db;*.db3|*.db;*.db3|*.*|*.*"; if (dlg.ShowDialog() == DialogResult.OK) tbDataSource.Text = dlg.FileName; } diff --git a/Extras/Core/FastReport.Data/WPF.props b/Extras/Core/FastReport.Data/WPF.props deleted file mode 100644 index bb5e5076..00000000 --- a/Extras/Core/FastReport.Data/WPF.props +++ /dev/null @@ -1,35 +0,0 @@ - - - - false - https://www.fast-report.com/en/product/fast-report-wpf/license - Debug;Release; - - - - - - ..\..\..\..\FastReport.WPF\FastReport.WPF.csproj - FastReport.WPF.Demo - - ..\..\..\..\FastReport.Forms.WPF\FastReport.Forms.WPF.csproj - FastReport.Forms.WPF.Demo - - - - - - - - - - - - compile - - - compile - - - - \ No newline at end of file diff --git a/FastReport.Base/ContainerObject.cs b/FastReport.Base/ContainerObject.cs index 32191b12..8c086d36 100644 --- a/FastReport.Base/ContainerObject.cs +++ b/FastReport.Base/ContainerObject.cs @@ -309,18 +309,15 @@ public override float CalcHeight() obj.Dock = saveDock; } - if ((CanGrow && maxHeight > Height) || (CanShrink && maxHeight < Height)) - Height = maxHeight; - // perform grow to bottom foreach (ReportComponentBase obj in Objects) { - if (obj.GrowToBottom || obj.Bottom > Height) - obj.Height = Height - obj.Top; + if (obj.GrowToBottom || obj.Bottom > maxHeight) + obj.Height = maxHeight - obj.Top; } OnAfterLayout(EventArgs.Empty); - return Height; + return maxHeight; } /// diff --git a/FastReport.Base/Functions/StdFunctions.cs b/FastReport.Base/Functions/StdFunctions.cs index ddf71048..481e93e0 100644 --- a/FastReport.Base/Functions/StdFunctions.cs +++ b/FastReport.Base/Functions/StdFunctions.cs @@ -309,6 +309,22 @@ public static string Substring(string s, int startIndex, int length) return ""; } + /// + /// Returns "true" if a specified pattern occurs within this source string, else returns "false". + /// + /// The original string. + /// Substring looking for. + /// true if the pattern parameter occurs within this source string, or if value is the empty string; otherwise, false + public static bool Contains(string s, string value) + { + if (s != null && value != null && s.Contains(value)) + { + return true; + } + + return false; + } + /// /// Removes all occurrences of white space characters from the beginning and end of the original string. /// @@ -1257,6 +1273,7 @@ internal static void Register() Type str = typeof(StdFunctions); RegisteredObjects.InternalAddFunction(str.GetMethod("Asc"), "Text"); RegisteredObjects.InternalAddFunction(str.GetMethod("Chr"), "Text"); + RegisteredObjects.InternalAddFunction(str.GetMethod("Contains"), "Text"); RegisteredObjects.InternalAddFunction(str.GetMethod("Insert"), "Text"); RegisteredObjects.InternalAddFunction(str.GetMethod("Length"), "Text"); RegisteredObjects.InternalAddFunction(str.GetMethod("LowerCase"), "Text"); diff --git a/FastReport.Base/Hyperlink.cs b/FastReport.Base/Hyperlink.cs index 6b3c4e01..43d11514 100644 --- a/FastReport.Base/Hyperlink.cs +++ b/FastReport.Base/Hyperlink.cs @@ -4,6 +4,7 @@ using FastReport.Utils; using FastReport.Data; using System.Drawing.Design; +using System.Text.RegularExpressions; namespace FastReport { @@ -108,7 +109,17 @@ public string Expression public string Value { get { return value; } - set { this.value = value; } + set + { + if (!Regex.IsMatch(value, "(javascript)|(<\\s*script\\s*>)", RegexOptions.IgnoreCase)) + { + this.value = value; + } + else + { + this.value = ""; + } + } } /// diff --git a/FastReport.Base/LineObject.cs b/FastReport.Base/LineObject.cs index 27094e59..f94faffe 100644 --- a/FastReport.Base/LineObject.cs +++ b/FastReport.Base/LineObject.cs @@ -112,20 +112,18 @@ public override void Draw(FRPaintEventArgs e) DrawUtils.SetPenDashPatternOrStyle(DashPattern, pen, Border); - float width = Width; - float height = Height; if (!Diagonal) { - if (Math.Abs(width) > Math.Abs(height)) - height = 0; + if (Math.Abs(Width) > Math.Abs(Height)) + Height = 0; else - width = 0; + Width = 0; } float x1 = AbsLeft * e.ScaleX; float y1 = AbsTop * e.ScaleY; - float x2 = (AbsLeft + width) * e.ScaleX; - float y2 = (AbsTop + height) * e.ScaleY; + float x2 = (AbsLeft + Width) * e.ScaleX; + float y2 = (AbsTop + Height) * e.ScaleY; if (StartCap.Style == CapStyle.None && EndCap.Style == CapStyle.None) { diff --git a/FastReport.Base/Report.cs b/FastReport.Base/Report.cs index ad9c05b4..c0551a37 100644 --- a/FastReport.Base/Report.cs +++ b/FastReport.Base/Report.cs @@ -2702,6 +2702,20 @@ public void PreparePage(ReportPage page) } } + /// + /// Prepare page + /// + /// + /// Flag indicating whether the page is a detail page. + public void PreparePage(ReportPage page, bool isDetailPage) + { + bool pageVisible = page.Visible; + if (isDetailPage) + page.Visible = true; + PreparePage(page); + page.Visible = pageVisible; + } + /// /// Exports a report. Report should be prepared using the method. /// diff --git a/FastReport.Compat/FastReport.Compat/FastReport.Compat.csproj b/FastReport.Compat/FastReport.Compat/FastReport.Compat.csproj index 5c9c8861..5f0e079b 100644 --- a/FastReport.Compat/FastReport.Compat/FastReport.Compat.csproj +++ b/FastReport.Compat/FastReport.Compat/FastReport.Compat.csproj @@ -1,17 +1,23 @@  - net462;net6.0;net6.0-windows7.0 + net462;net6.0 false + - true - false + + $(TargetFrameworks);net6.0-windows7.0 true + + true + false + + @@ -27,6 +33,10 @@ + + true + + WindowsForms/%(RecursiveDir)%(Filename)%(Extension) diff --git a/FastReport.Core.Web/Application/WebReportHtml.Backend.cs b/FastReport.Core.Web/Application/WebReportHtml.Backend.cs index cf0afad7..87c5279f 100644 --- a/FastReport.Core.Web/Application/WebReportHtml.Backend.cs +++ b/FastReport.Core.Web/Application/WebReportHtml.Backend.cs @@ -415,7 +415,7 @@ private void DoDetailedPage(string objectName, string paramName, string paramVal PreparedPages oldPreparedPages = currentReport.PreparedPages; PreparedPages pages = new PreparedPages(currentReport); currentReport.SetPreparedPages(pages); - currentReport.PreparePage(reportPage); + currentReport.PreparePage(reportPage, true); Report tabReport = new Report(); tabReport.SetPreparedPages(currentReport.PreparedPages); Tabs.Add(new ReportTab() diff --git a/FastReport.Core.Web/FastReport.OpenSource.Web.csproj b/FastReport.Core.Web/FastReport.OpenSource.Web.csproj index 37197b9c..766d3826 100644 --- a/FastReport.Core.Web/FastReport.OpenSource.Web.csproj +++ b/FastReport.Core.Web/FastReport.OpenSource.Web.csproj @@ -18,14 +18,18 @@ true true - + + + $(TargetFrameworks);net6.0-windows + + ../FastReport.OpenSource.snk - FastReport Open Source provides a free report generator for .NET/.NET Core/.NET Framework. You can use the FastReport Open Source in MVC, Web API, console applications. - FastReport is written in C# and it is compatible with .NET Standard 2.0 and higher. Extendable FastReport architecture allows creating your own objects, export filters, wizards, and DB engines. + FastReport Open Source provides a free report generator for .NET/.NET Framework. You can use the FastReport Open Source in MVC, Web API, console applications. + FastReport is written in C# and it is compatible with .NET Framework 4.6.2, .NET 6 and higher. Extendable FastReport architecture allows creating your own objects, export filters, wizards, and DB engines. FastReport Open Source can save documents in HTML, BMP, PNG, JPEG, GIF, TIFF, EMF. PDF export is available as a plugin. https://github.com/FastReports/FastReport diff --git a/FastReport.Core.Web/Resources/angle-double-left.svg b/FastReport.Core.Web/Resources/angle-double-left.svg index d20861fe..fe9ac39c 100644 --- a/FastReport.Core.Web/Resources/angle-double-left.svg +++ b/FastReport.Core.Web/Resources/angle-double-left.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/angle-double-right.svg b/FastReport.Core.Web/Resources/angle-double-right.svg index 6f1402bd..2f60b269 100644 --- a/FastReport.Core.Web/Resources/angle-double-right.svg +++ b/FastReport.Core.Web/Resources/angle-double-right.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/angle-left.svg b/FastReport.Core.Web/Resources/angle-left.svg index 95b612b2..f2500c9d 100644 --- a/FastReport.Core.Web/Resources/angle-left.svg +++ b/FastReport.Core.Web/Resources/angle-left.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/angle-right.svg b/FastReport.Core.Web/Resources/angle-right.svg index 931ba2f6..c11a0842 100644 --- a/FastReport.Core.Web/Resources/angle-right.svg +++ b/FastReport.Core.Web/Resources/angle-right.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/button-active.svg b/FastReport.Core.Web/Resources/button-active.svg index 57cd14cd..c40f547e 100644 --- a/FastReport.Core.Web/Resources/button-active.svg +++ b/FastReport.Core.Web/Resources/button-active.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/button.svg b/FastReport.Core.Web/Resources/button.svg index 02036760..3e188023 100644 --- a/FastReport.Core.Web/Resources/button.svg +++ b/FastReport.Core.Web/Resources/button.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/caret-down.svg b/FastReport.Core.Web/Resources/caret-down.svg index d11cf041..0fb34405 100644 --- a/FastReport.Core.Web/Resources/caret-down.svg +++ b/FastReport.Core.Web/Resources/caret-down.svg @@ -1,2 +1 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/caret-right.svg b/FastReport.Core.Web/Resources/caret-right.svg index 39410a97..476a5b85 100644 --- a/FastReport.Core.Web/Resources/caret-right.svg +++ b/FastReport.Core.Web/Resources/caret-right.svg @@ -1,2 +1 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/close.svg b/FastReport.Core.Web/Resources/close.svg index 6716ee0d..5695c507 100644 --- a/FastReport.Core.Web/Resources/close.svg +++ b/FastReport.Core.Web/Resources/close.svg @@ -1,4 +1 @@ - - - - \ No newline at end of file + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/date-picker.svg b/FastReport.Core.Web/Resources/date-picker.svg index 7db94396..03602f21 100644 --- a/FastReport.Core.Web/Resources/date-picker.svg +++ b/FastReport.Core.Web/Resources/date-picker.svg @@ -1,3 +1 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/default-custom-button.svg b/FastReport.Core.Web/Resources/default-custom-button.svg index 7d4a1d19..c65fde8a 100644 --- a/FastReport.Core.Web/Resources/default-custom-button.svg +++ b/FastReport.Core.Web/Resources/default-custom-button.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/file.svg b/FastReport.Core.Web/Resources/file.svg index 03bb7a84..e48a5099 100644 --- a/FastReport.Core.Web/Resources/file.svg +++ b/FastReport.Core.Web/Resources/file.svg @@ -1,2 +1 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/magnifier.svg b/FastReport.Core.Web/Resources/magnifier.svg index 6ffbf3d3..1e70f3fa 100644 --- a/FastReport.Core.Web/Resources/magnifier.svg +++ b/FastReport.Core.Web/Resources/magnifier.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/notification-bell.svg b/FastReport.Core.Web/Resources/notification-bell.svg index 770d3e08..62c7d503 100644 --- a/FastReport.Core.Web/Resources/notification-bell.svg +++ b/FastReport.Core.Web/Resources/notification-bell.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/print.svg b/FastReport.Core.Web/Resources/print.svg index 82376249..92aed4f7 100644 --- a/FastReport.Core.Web/Resources/print.svg +++ b/FastReport.Core.Web/Resources/print.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/reload.svg b/FastReport.Core.Web/Resources/reload.svg index fc9a15cd..3a80d1c9 100644 --- a/FastReport.Core.Web/Resources/reload.svg +++ b/FastReport.Core.Web/Resources/reload.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/save.svg b/FastReport.Core.Web/Resources/save.svg index c72f6f1a..a314170b 100644 --- a/FastReport.Core.Web/Resources/save.svg +++ b/FastReport.Core.Web/Resources/save.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/select-arrow.svg b/FastReport.Core.Web/Resources/select-arrow.svg index 2864ad56..eab2bcb8 100644 --- a/FastReport.Core.Web/Resources/select-arrow.svg +++ b/FastReport.Core.Web/Resources/select-arrow.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/settings.svg b/FastReport.Core.Web/Resources/settings.svg index f586a674..d0938f65 100644 --- a/FastReport.Core.Web/Resources/settings.svg +++ b/FastReport.Core.Web/Resources/settings.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/slash.svg b/FastReport.Core.Web/Resources/slash.svg index 414d3963..3459e774 100644 --- a/FastReport.Core.Web/Resources/slash.svg +++ b/FastReport.Core.Web/Resources/slash.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/FastReport.Core.Web/Resources/spinner.svg b/FastReport.Core.Web/Resources/spinner.svg index 102b22f3..5e444555 100644 --- a/FastReport.Core.Web/Resources/spinner.svg +++ b/FastReport.Core.Web/Resources/spinner.svg @@ -1,2 +1 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/FastReport.Core.Web/Templates/ExportSettings/DocxExportSettings.cs b/FastReport.Core.Web/Templates/ExportSettings/DocxExportSettings.cs index 4e0b6503..17332bd1 100644 --- a/FastReport.Core.Web/Templates/ExportSettings/DocxExportSettings.cs +++ b/FastReport.Core.Web/Templates/ExportSettings/DocxExportSettings.cs @@ -86,7 +86,7 @@ internal string template_DocxExportSettings() {template_modalcontainerscript} //DOCXEXPORT// var DocxButtons; -var DocxRowHeights = '&RowHeightIs=Exactly&MatrixBased=false'; +var DocxRowHeights = '&RowHeight=Exactly'; var DocxOnRenderMode = '&PrintFit=layers'; var DocxWysiwyg = false; var DocxPrintOptimized = false; @@ -98,12 +98,15 @@ function OnInputClickDOCX() {{ function DocxRowHeightsFunc(select) {{ const DocxRowHeightsChange = select.querySelector(`option[value='${{select.value}}']`) - DocxRowHeights = '&RowHeightIs=' + DocxRowHeightsChange.value + '&MatrixBased=false'; + DocxRowHeights = '&RowHeight=' + DocxRowHeightsChange.value; }} + function DocxOnRenderModeFunc(select) {{ - const DocxOnRenderModeChange = select.querySelector(`option[value='${{select.value}}']`) - DocxOnRenderMode = '&PrintFit=' + DocxOnRenderModeChange.value; + const DocxOnRenderModeChange = select.querySelector(`option[value='${{select.value}}']`); + const matrixBasedValue = DocxOnRenderModeChange.value === ""table"" ? ""true"" : ""false""; + DocxOnRenderMode = '&PrintFit=' + DocxOnRenderModeChange.value + '&MatrixBased=' + matrixBasedValue; }} + function DOCXExport() {{ {validation} diff --git a/FastReport.Core.Web/Templates/main.cs b/FastReport.Core.Web/Templates/main.cs index 2f3a2ad2..413a727c 100644 --- a/FastReport.Core.Web/Templates/main.cs +++ b/FastReport.Core.Web/Templates/main.cs @@ -1,6 +1,5 @@ -using FastReport.Web.Infrastructure; - -using System.Net; +using System; +using FastReport.Web.Infrastructure; namespace FastReport.Web { @@ -8,11 +7,12 @@ partial class WebReport { string template_FR => $"fr{ID}"; internal string template_ROUTE_BASE_PATH => WebUtils.ToUrl(FastReportGlobal.FastReportOptions.RoutePathBaseRoot, FastReportGlobal.FastReportOptions.RouteBasePath); - string template_resource_url(string resourceName, string contentType) => $"{template_ROUTE_BASE_PATH}/resources.getResource?resourceName={WebUtility.UrlEncode(resourceName)}&contentType={WebUtility.UrlEncode(contentType)}"; internal string template_export_url(string exportFormat) => $"{template_ROUTE_BASE_PATH}/preview.exportReport?reportId={ID}&exportFormat={exportFormat}"; internal string templte_email_export_url => $"{template_ROUTE_BASE_PATH}/preview.sendEmail?reportId={ID}"; internal string template_print_url(string printMode) => $"{template_ROUTE_BASE_PATH}/preview.printReport?reportId={ID}&printMode={printMode}"; //string template_TOOLBAR_HEIGHT_FACTOR => 40px * ToolbarHeight; + internal string GetResource(string resourceName) => ResourceLoader.GetContent(resourceName); + internal string GerResourceBase64(string resourceName) => Convert.ToBase64String(ResourceLoader.GetBytes(resourceName)); string template_render(bool renderBody) { @@ -33,7 +33,7 @@ string template_render(bool renderBody) {template_script()}
- + {GetResource("spinner.svg")}
{template_toolbar(renderBody)} diff --git a/FastReport.Core.Web/Templates/outline.cs b/FastReport.Core.Web/Templates/outline.cs index 3b2d5b1e..be7f3f42 100644 --- a/FastReport.Core.Web/Templates/outline.cs +++ b/FastReport.Core.Web/Templates/outline.cs @@ -39,9 +39,7 @@ void BuildOutline(StringBuilder sb, XmlItem xml, bool top) { for (int i = 0; i < xml.Count; i++) { - var opened = false; - if (top && xml.Count == 1) // open if there is only one node on top - opened = true; + var opened = top && xml.Count == 1; var styleShow = opened ? @"style=""display:none""" : @"style=""display:block"""; var styleHide = opened ? @"style=""display:block""" : @"style=""display:none"""; @@ -56,8 +54,8 @@ void BuildOutline(StringBuilder sb, XmlItem xml, bool top) string caret; if (hasChildren) { - caret = $@""; - caret += $@""; + caret = $@""; + caret += $@""; } else { @@ -66,7 +64,7 @@ void BuildOutline(StringBuilder sb, XmlItem xml, bool top) sb.Append($@"
"); sb.Append(caret); - sb.Append($@""); + sb.Append($@""); sb.Append($@"{HttpUtility.HtmlEncode(text)}"); sb.Append($@"
"); diff --git a/FastReport.Core.Web/Templates/style.cs b/FastReport.Core.Web/Templates/style.cs index 604b1949..db147858 100644 --- a/FastReport.Core.Web/Templates/style.cs +++ b/FastReport.Core.Web/Templates/style.cs @@ -116,13 +116,16 @@ string template_style() => $@" border-radius:{Toolbar.ToolbarRoundness}px; background-color: #00000000; position: relative; + align-items: center; + display: flex; }} .{template_FR}-toolbar-item:hover {{ background-color: {ColorTranslator.ToHtml(Toolbar.Color)}; }} -.{template_FR}-toolbar-item > img {{ + +.{template_FR}-toolbar-item > svg {{ height: calc({Toolbar.Height}px * 0.5); padding-top: calc({Toolbar.Height}px * 0.15); padding-bottom: calc({Toolbar.Height}px * 0.15); @@ -133,10 +136,9 @@ string template_style() => $@" filter:invert({Toolbar.ColorIcon}); margin-left: 10px; margin-right: 10px; - margin-top: 5px; }} -.{template_FR}-toolbar-item:hover > img {{ +.{template_FR}-toolbar-item:hover > svg {{ opacity: 0.5; }} @@ -144,7 +146,7 @@ string template_style() => $@" background-color: transparent; }} -.{template_FR}-toolbar-notbutton:hover > img {{ +.{template_FR}-toolbar-notbutton:hover > svg {{ opacity: 1; }} @@ -354,7 +356,7 @@ TOOLBAR DROPDOWN font: {Toolbar.Exports.UserFontSettingsStyle} 12px {Toolbar.Exports.UserFontSettingsFamily}; font-size: 11px; overflow: hidden; - background: #ffffff url(/_fr/resources.getResource?resourceName=select-arrow.svg&contentType=image%2Fsvg%2Bxml) no-repeat; + background: #ffffff url('data:image/svg+xml;base64,{GerResourceBase64("select-arrow.svg")}') no-repeat; background-position: calc(100% - 10px) center; -moz-appearance:none; /* Firefox */ -webkit-appearance:none; /* Safari and Chrome */ @@ -514,7 +516,7 @@ @keyframes shake {{ }} .{template_FR}-container .activeButton {{ - background: url(/_fr/resources.getResource?resourceName=button-active.svg&contentType=image%2Fsvg%2Bxml) no-repeat; + background: url('data:image/svg+xml;base64,{GerResourceBase64("button-active.svg")}') no-repeat; background-position: 0px center; vertical-align: middle; }} @@ -587,19 +589,18 @@ @keyframes shake {{ TOOLBAR NAVIGATION *************************/ -.{template_FR}-toolbar-narrow > img {{ +.{template_FR}-toolbar-narrow > svg {{ transform: rotate({Toolbar.ToolbarNarrow}deg); padding-left: 0px; padding-right: 0px; height: calc({Toolbar.Height}px * 0.35); padding-top: 9px; - margin: 5px 10px 0px; }} .{template_FR}-toolbar-slash{{ }} -.{template_FR}-toolbar-slash > img {{ +.{template_FR}-toolbar-slash > svg {{ margin-left: 0px; margin-right: 0px; height: calc({Toolbar.Height}px * 0.35); @@ -647,7 +648,7 @@ TOOLBAR NAVIGATION z-index: 10; }} -.{template_FR}-spinner img {{ +.{template_FR}-spinner svg {{ width: 90px; height: 90px; left: calc(50%-50px); @@ -736,7 +737,7 @@ TOOLBAR NAVIGATION margin-right: 6px; }} -.{template_FR}-tabs .{template_FR}-tab-close img{{ +.{template_FR}-tabs .{template_FR}-tab-close svg{{ border-radius: 10px; }} @@ -752,20 +753,20 @@ TOOLBAR NAVIGATION cursor: default; }} -.{template_FR}-tabs .{template_FR}-tab a img {{ +.{template_FR}-tabs .{template_FR}-tab a svg {{ height: 13px; opacity: 0; }} -.{template_FR}-tabs .{template_FR}-tab.active a img {{ +.{template_FR}-tabs .{template_FR}-tab.active a svg {{ opacity: 0.5; }} -.{template_FR}-tabs .{template_FR}-tab:hover a img {{ +.{template_FR}-tabs .{template_FR}-tab:hover a svg {{ opacity: 0.5; }} -.{template_FR}-tabs .{template_FR}-tab a img:hover {{ +.{template_FR}-tabs .{template_FR}-tab a svg:hover {{ opacity: 1; background-color: #f1f1f1; cursor: pointer; @@ -783,7 +784,7 @@ TOOLBAR NAVIGATION opacity: 0.5; }} .datetimepicker > input[type=""date""]{{ - background: url(""{template_resource_url("date-picker.svg", "image/svg+xml")}"") no-repeat; + background: url('data:image/svg+xml;base64,{GerResourceBase64("date-picker.svg")}') no-repeat; background-size: 10px; background-position: right 5px center; background-origin: content-box, content-box; @@ -944,7 +945,7 @@ EMAIL EXPORT overflow: hidden; -moz-appearance:none; /* Firefox */ -webkit-appearance:none; /* Safari and Chrome */ - background: #ffffff url(/_fr/resources.getResource?resourceName=select-arrow.svg&contentType=image%2Fsvg%2Bxml) no-repeat; + background: #ffffff url('data:image/svg+xml;base64,{GerResourceBase64("select-arrow.svg")}') no-repeat; background-position: calc(100% - 10px) center; margin - left: 10px; width: 244px; diff --git a/FastReport.Core.Web/Templates/tabs.cs b/FastReport.Core.Web/Templates/tabs.cs index e879ba08..10a02bdd 100644 --- a/FastReport.Core.Web/Templates/tabs.cs +++ b/FastReport.Core.Web/Templates/tabs.cs @@ -38,7 +38,7 @@ string template_tabs() if (tab.Closeable) sb.Append($@" - + {GetResource("close.svg")} "); sb.Append(""); diff --git a/FastReport.Core.Web/Templates/toolbar.cs b/FastReport.Core.Web/Templates/toolbar.cs index 781cc888..1911b128 100644 --- a/FastReport.Core.Web/Templates/toolbar.cs +++ b/FastReport.Core.Web/Templates/toolbar.cs @@ -19,40 +19,40 @@ string template_toolbar(bool renderBody) var showRefreshButton = Toolbar.ShowRefreshButton && !Report.IsLoadPrepared; var localization = new ToolbarLocalization(Res); var exports = Toolbar.Exports; - var toolbarExportItem = $@"
- + var toolbarExportItem = $@"
+ {GetResource("save.svg")}
" + (exports.ShowPreparedReport ? $@"{localization.preparedTxt}" : "") #if !OPENSOURCE + (exports.ShowPdfExport ? $@"{localization.pdfTxt}":"") - + (exports.EnableSettings && exports.ShowPdfExport ? $@"" : "") + + (exports.EnableSettings && exports.ShowPdfExport ? $@"" : "") + (exports.ShowExcel2007Export ? $@"{localization.excel2007Txt}" : "") - + (exports.EnableSettings && exports.ShowExcel2007Export ? $@"" : "") + + (exports.EnableSettings && exports.ShowExcel2007Export ? $@"" : "") + (exports.ShowWord2007Export ? $@"{localization.word2007Txt}" : "") - + (exports.EnableSettings && exports.ShowWord2007Export ? $@"" : "") + + (exports.EnableSettings && exports.ShowWord2007Export ? $@"" : "") + (exports.ShowPowerPoint2007Export ? $@"{localization.powerPoint2007Txt}" : "") - + (exports.EnableSettings && exports.ShowPowerPoint2007Export ? $@"" : "") + + (exports.EnableSettings && exports.ShowPowerPoint2007Export ? $@"" : "") + (exports.ShowTextExport ? $@"{localization.textTxt}" : "") + (exports.ShowRtfExport ? $@"{localization.rtfTxt}" : "") - + (exports.EnableSettings && exports.ShowRtfExport ? $@"" : "") + + (exports.EnableSettings && exports.ShowRtfExport ? $@"" : "") + (exports.ShowXpsExport ? $@"{localization.xpsTxt}" : "") + (exports.ShowOdsExport ? $@"{localization.odsTxt}" : "") - + (exports.EnableSettings && exports.ShowOdsExport ? $@"" : "") + + (exports.EnableSettings && exports.ShowOdsExport ? $@"" : "") + (exports.ShowOdtExport ? $@"{localization.odtTxt}" : "") - + (exports.EnableSettings && exports.ShowOdtExport ? $@"" : "") + + (exports.EnableSettings && exports.ShowOdtExport ? $@"" : "") + (exports.ShowXmlExcelExport ? $@"{localization.xmlTxt}" : "") - + (exports.EnableSettings && exports.ShowXmlExcelExport ? $@"" : "") + + (exports.EnableSettings && exports.ShowXmlExcelExport ? $@"" : "") + (exports.ShowDbfExport ? $@"{localization.dbfTxt}" : "") + (exports.ShowCsvExport ? $@"{localization.csvTxt}" : "") + (exports.ShowSvgExport ? $@"{localization.svgTxt}" : "") - + (exports.EnableSettings && exports.ShowSvgExport? $@"" : "") + + (exports.EnableSettings && exports.ShowSvgExport? $@"" : "") + (exports.ShowMhtExport ? $@"{localization.mhtTxt}" : "") + (exports.ShowExcel97Export ? $@"{localization.excel97Txt}" : "") + (exports.ShowEmailExport ? $@"{localization.emailTxt}" : "") + (exports.ShowHpglExport ? $@"{localization.hpglTxt}" : "") + (exports.ShowHTMLExport ? $@"{localization.htmlTxt}" : "") - + (exports.EnableSettings && exports.ShowHTMLExport ? $@"" : "") - //(exports.ShowImageExport? $@"{localization.imageTxt}" : "") + (exports.EnableSettings && exports.ShowImageExport ? $@"" : "") + + + (exports.EnableSettings && exports.ShowHTMLExport ? $@"" : "") + //(exports.ShowImageExport? $@"{localization.imageTxt}" : "") + (exports.EnableSettings && exports.ShowImageExport ? $@"" : "") + + (exports.ShowJsonExport ? $@"{localization.jsonTxt}" : "") + (exports.ShowDxfExport ? $@"{localization.dxfTxt}" : "") + (exports.ShowLaTeXExport ? $@"{localization.latexTxt}" : "") @@ -63,8 +63,8 @@ string template_toolbar(bool renderBody) #endif + "
" ; - var toolbarPrintItem = $@"
- + var toolbarPrintItem = $@"
+ {GetResource("print.svg")}
" + (Toolbar.PrintInHtml ? $@"{localization.printFromBrowserTxt} @@ -87,7 +87,7 @@ string template_toolbar(bool renderBody)
{(showRefreshButton ? $@"
- + {GetResource("reload.svg")}
" : "")} {(exports.Show ? $"{toolbarExportItem}" : "")} @@ -95,8 +95,8 @@ string template_toolbar(bool renderBody) {(Toolbar.ShowPrint ? $"{toolbarPrintItem}" : "")} -{(Toolbar.ShowZoomButton ? $@"
- +{(Toolbar.ShowZoomButton ? $@" @@ -109,11 +109,11 @@ string template_toolbar(bool renderBody)
" : "")}" + $@" {(Toolbar.ShowFirstButton ? $@"
- + {GetResource("angle-double-left.svg")}
" : "")} {(Toolbar.ShowPrevButton ? $@"
- + {GetResource("angle-left.svg")}
" : "")}
@@ -121,7 +121,7 @@ string template_toolbar(bool renderBody)
- + {GetResource("slash.svg")}
@@ -129,11 +129,11 @@ string template_toolbar(bool renderBody)
{(Toolbar.ShowNextButton ? $@"
- + {GetResource("angle-right.svg")}
" : "")} {(Toolbar.ShowLastButton ? $@"
- + {GetResource("angle-double-right.svg")}
" : "")} {customButtons}
diff --git a/FastReport.OpenSource/FastReport.OpenSource.csproj b/FastReport.OpenSource/FastReport.OpenSource.csproj index 78081f32..7be01e8f 100644 --- a/FastReport.OpenSource/FastReport.OpenSource.csproj +++ b/FastReport.OpenSource/FastReport.OpenSource.csproj @@ -4,9 +4,9 @@ net6.0 9.0 - + - $(TargetFrameworks);net462 + $(TargetFrameworks);net462;net6.0-windows @@ -30,8 +30,8 @@ FastReport FastReport - FastReport Open Source provides a free report generator for .NET/.NET Core/.NET Framework. You can use the FastReport Open Source in MVC, Web API, console applications. - FastReport is written in C# and it is compatible with .NET Standard 2.0 and higher. Extendable FastReport architecture allows creating your own objects, export filters, wizards, and DB engines. + FastReport Open Source provides a free report generator for .NET/.NET Framework. You can use the FastReport Open Source in MVC, Web API, console applications. + FastReport is written in C# and it is compatible with .NET Framework 4.6.2, .NET 6 and higher. Extendable FastReport architecture allows creating your own objects, export filters, wizards, and DB engines. - FastReport is a band-oriented report generator. There are 13 types of bands available: Report Title, Report Summary, Page Header, Page Footer, Column Header, Column Footer, Data Header, Data, Data Footer, Group Header, Group Footer, Child, and Overlay. In addition, sub-reports are fully supported. - A wide range of band types allows creating any kind of report: list, master-detail, group, multi-column, master-detail-detail and many more. - Wide range of available report objects: text, picture, line, shape, barcode, matrix, table, checkbox. diff --git a/FastReport/Resources/en.xml b/FastReport/Resources/en.xml index 1d968074..3c1025ee 100644 --- a/FastReport/Resources/en.xml +++ b/FastReport/Resources/en.xml @@ -2491,6 +2491,9 @@ + + + diff --git a/Localization/Russian.frl b/Localization/Russian.frl index 482e0caa..e87b1675 100644 --- a/Localization/Russian.frl +++ b/Localization/Russian.frl @@ -2290,6 +2290,9 @@ + + + diff --git a/UsedPackages.version b/UsedPackages.version index ebdafb95..10d0c7b4 100644 --- a/UsedPackages.version +++ b/UsedPackages.version @@ -2,19 +2,16 @@ - + - 2024.1.9 - 2024.1.9 - 2024.1.9 - 2024.1.9 + 2024.2.0 2.88.6 2.88.6 [11.0.6,) - 2024.1.9 + 2024.2.0 [4.0.1,) [4.0.1,) @@ -24,18 +21,14 @@ 4.7.0 - + - - - 2024.1.9 - - 2024.1.9 - - 2024.1.7 - - 2024.1.7 - + + + 2024.2.0 + + 2024.2.0 + \ No newline at end of file