diff --git a/TestDevExpress/Components/App.razor b/TestDevExpress/Components/App.razor index 770ce23d..d2f845f6 100644 --- a/TestDevExpress/Components/App.razor +++ b/TestDevExpress/Components/App.razor @@ -9,8 +9,8 @@ - @DxResourceManager.RegisterScripts() @DxResourceManager.RegisterTheme(Themes.Fluent) + @DxResourceManager.RegisterScripts((config) => config.Register(new DxResource("/customization.js", 900))) diff --git a/TestDevExpress/Components/Layout/NavMenu.razor b/TestDevExpress/Components/Layout/NavMenu.razor index 0efb774c..b702cb77 100644 --- a/TestDevExpress/Components/Layout/NavMenu.razor +++ b/TestDevExpress/Components/Layout/NavMenu.razor @@ -36,6 +36,11 @@ Design + diff --git a/TestDevExpress/Components/Pages/ReportDesign.razor b/TestDevExpress/Components/Pages/ReportDesign.razor index 35da2a9f..222a3803 100644 --- a/TestDevExpress/Components/Pages/ReportDesign.razor +++ b/TestDevExpress/Components/Pages/ReportDesign.razor @@ -9,7 +9,10 @@ - + + diff --git a/TestDevExpress/Components/Pages/TestReportViewer.razor b/TestDevExpress/Components/Pages/TestReportViewer.razor new file mode 100644 index 00000000..3e9535d1 --- /dev/null +++ b/TestDevExpress/Components/Pages/TestReportViewer.razor @@ -0,0 +1,22 @@ +@page "/TestViewer" +@rendermode InteractiveServer + +@using DevExpress.Blazor.Reporting +@using DevExpress.XtraReports.UI; +@using TestDevExpress.Components.Reports + +

ReportViewer

+ + + + + + + + +Download PDF + + + + + diff --git a/TestDevExpress/Components/Pages/TestReportViewer.razor.cs b/TestDevExpress/Components/Pages/TestReportViewer.razor.cs new file mode 100644 index 00000000..c3f018d1 --- /dev/null +++ b/TestDevExpress/Components/Pages/TestReportViewer.razor.cs @@ -0,0 +1,100 @@ +using DevExpress.Blazor.Reporting; +using DevExpress.DataAccess; +using DevExpress.DataAccess.Json; +using DevExpress.DataAccess.ObjectBinding; +using DevExpress.Drawing.Internal.Fonts.Interop; +using DevExpress.Security; +using DevExpress.XtraPrinting.Native.Properties; +using DevExpress.XtraReports; +using DevExpress.XtraReports.Parameters; +using DevExpress.XtraReports.Services; +using DevExpress.XtraReports.UI; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.WebUtilities; +using System; +using System.Security.Cryptography; +using TestDevExpress.Components.Reports; + +namespace TestDevExpress.Components.Pages +{ + public partial class TestReportViewer + { + + #region Protected Methods + + private string pdfUrl + { + get => $"download-offer?id={oID}"; + } + private int oID = 0; + protected override void OnInitialized() + { + // calcolo i parametri x IMG e Json da conf + string apiUrl = _config.GetValue("ServerConf:ApiBaseUrl") ?? "https://iis01.egalware.com/lux/srv/api"; + string imgUrl = _config.GetValue("ServerConf:ImageUrl") ?? "image"; + string dataUrl = _config.GetValue("ServerConf:DataUrl") ?? "report/offert/"; + + string imgFullUrl = $"{apiUrl}/{imgUrl}/"; + string dataFullUrl = $"{apiUrl}/{dataUrl}"; + + //cerco id da URL x offerta da mostrare + var uri = NavManager.ToAbsoluteUri(NavManager.Uri); + //if (QueryHelpers.ParseQuery(uri.Query).TryGetValue("OfferId", out var offerId)) + //{ + // int.TryParse(offerId, out oID); + // currReport = new OfferReport(dataFullUrl, oID); + // currReport.Parameters["pImgPath"].Value = imgFullUrl; + //} + + // Costruzione report viewer con import report + if (QueryHelpers.ParseQuery(uri.Query).TryGetValue("OfferId", out var offerId)) + { + int.TryParse(offerId, out oID); + Report = reportProvider.GetReport("TestReport1?URL=" + dataFullUrl + "?pOfferId=" + offerId + "&pImgPath=" + imgFullUrl, null); + var ds = CreateDataSourceFromWeb(oID, dataFullUrl); + ds.Fill(); + Report.DataSource = ds; + Report.DataMember = ""; + Report.Parameters["pImgPath"].Value = imgFullUrl; + } + } + + public JsonDataSource CreateDataSourceFromWeb(int oID, string dataFullUrl) + { + // Create a new JSON source. + var jsonSource = new UriJsonSource() + { + Uri = new Uri(dataFullUrl) + }; + jsonSource.PathParameters.Add(new PathParameter("OfferId", typeof(int), oID)); + // Assign the JSON source to the data source. + var datasource = new JsonDataSource() + { + JsonSource = jsonSource + }; + return datasource; + } + #endregion Protected Methods + + #region Private Fields + + private OfferReport currReport = new(); + private DxReportViewer? reportViewer; + private XtraReport Report = new XtraReport1(); + + #endregion Private Fields + + #region Private Properties + + [Inject] + private IConfiguration _config { get; set; } = null!; + + [Inject] + private NavigationManager NavManager { get; set; } = null!; + + [Inject] + public IReportProvider reportProvider { get; set; } + + #endregion Private Properties + } +} \ No newline at end of file diff --git a/TestDevExpress/Components/Reports/OfferReport.Designer.cs b/TestDevExpress/Components/Reports/OfferReport.Designer.cs index 279d9dec..5dc84490 100644 --- a/TestDevExpress/Components/Reports/OfferReport.Designer.cs +++ b/TestDevExpress/Components/Reports/OfferReport.Designer.cs @@ -131,7 +131,6 @@ this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel(); this.TopMargin = new DevExpress.XtraReports.UI.TopMarginBand(); this.BottomMargin = new DevExpress.XtraReports.UI.BottomMarginBand(); - this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand(); this.xrPictureBox2 = new DevExpress.XtraReports.UI.XRPictureBox(); this.xrLabel21 = new DevExpress.XtraReports.UI.XRLabel(); this.xrLabel24 = new DevExpress.XtraReports.UI.XRLabel(); @@ -159,6 +158,8 @@ this.xrLabel26 = new DevExpress.XtraReports.UI.XRLabel(); this.xrLabel25 = new DevExpress.XtraReports.UI.XRLabel(); this.PageFooter = new DevExpress.XtraReports.UI.PageFooterBand(); + this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand(); + this.GroupHeader2 = new DevExpress.XtraReports.UI.GroupHeaderBand(); ((System.ComponentModel.ISupportInitialize)(this)).BeginInit(); // // Detail @@ -166,15 +167,7 @@ this.Detail.BackColor = System.Drawing.Color.Azure; this.Detail.Borders = DevExpress.XtraPrinting.BorderSide.Bottom; this.Detail.BorderWidth = 2F; - this.Detail.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { - this.xrLabel15, - this.xrLabel14, - this.xrLabel13, - this.xrLabel12, - this.xrLabel11, - this.xrLabel1}); - this.Detail.HeightF = 44.79168F; - this.Detail.KeepTogetherWithDetailReports = true; + this.Detail.HeightF = 6.25F; this.Detail.Name = "Detail"; this.Detail.Padding = new DevExpress.XtraPrinting.PaddingInfo(0F, 0F, 0F, 0F, 100F); this.Detail.StylePriority.UseBackColor = false; @@ -184,13 +177,15 @@ // // xrLabel15 // + this.xrLabel15.BackColor = System.Drawing.Color.LightCyan; this.xrLabel15.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Bottom))); this.xrLabel15.Font = new DevExpress.Drawing.DXFont("Times New Roman", 14F, DevExpress.Drawing.DXFontStyle.Bold); - this.xrLabel15.LocationFloat = new DevExpress.Utils.PointFloat(616.4581F, 10.00004F); + this.xrLabel15.LocationFloat = new DevExpress.Utils.PointFloat(616.4585F, 9.999974F); this.xrLabel15.Multiline = true; this.xrLabel15.Name = "xrLabel15"; this.xrLabel15.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); this.xrLabel15.SizeF = new System.Drawing.SizeF(113.5417F, 34.79164F); + this.xrLabel15.StylePriority.UseBackColor = false; this.xrLabel15.StylePriority.UseBorders = false; this.xrLabel15.StylePriority.UseFont = false; this.xrLabel15.StylePriority.UseTextAlignment = false; @@ -199,13 +194,15 @@ // // xrLabel14 // + this.xrLabel14.BackColor = System.Drawing.Color.LightCyan; this.xrLabel14.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Bottom))); this.xrLabel14.Font = new DevExpress.Drawing.DXFont("Times New Roman", 14F, DevExpress.Drawing.DXFontStyle.Bold); - this.xrLabel14.LocationFloat = new DevExpress.Utils.PointFloat(480.0001F, 10.00004F); + this.xrLabel14.LocationFloat = new DevExpress.Utils.PointFloat(480.0005F, 9.999974F); this.xrLabel14.Multiline = true; this.xrLabel14.Name = "xrLabel14"; this.xrLabel14.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); this.xrLabel14.SizeF = new System.Drawing.SizeF(136.4581F, 34.79164F); + this.xrLabel14.StylePriority.UseBackColor = false; this.xrLabel14.StylePriority.UseBorders = false; this.xrLabel14.StylePriority.UseFont = false; this.xrLabel14.StylePriority.UseTextAlignment = false; @@ -214,13 +211,15 @@ // // xrLabel13 // + this.xrLabel13.BackColor = System.Drawing.Color.LightCyan; this.xrLabel13.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Bottom))); this.xrLabel13.Font = new DevExpress.Drawing.DXFont("Times New Roman", 14F, DevExpress.Drawing.DXFontStyle.Bold); - this.xrLabel13.LocationFloat = new DevExpress.Utils.PointFloat(413.3331F, 10.00004F); + this.xrLabel13.LocationFloat = new DevExpress.Utils.PointFloat(413.3335F, 9.999974F); this.xrLabel13.Multiline = true; this.xrLabel13.Name = "xrLabel13"; this.xrLabel13.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); this.xrLabel13.SizeF = new System.Drawing.SizeF(66.66693F, 34.79164F); + this.xrLabel13.StylePriority.UseBackColor = false; this.xrLabel13.StylePriority.UseBorders = false; this.xrLabel13.StylePriority.UseFont = false; this.xrLabel13.StylePriority.UseTextAlignment = false; @@ -229,13 +228,15 @@ // // xrLabel12 // + this.xrLabel12.BackColor = System.Drawing.Color.LightCyan; this.xrLabel12.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Bottom))); this.xrLabel12.Font = new DevExpress.Drawing.DXFont("Times New Roman", 14F, DevExpress.Drawing.DXFontStyle.Bold); - this.xrLabel12.LocationFloat = new DevExpress.Utils.PointFloat(151.0417F, 10.00004F); + this.xrLabel12.LocationFloat = new DevExpress.Utils.PointFloat(151.0421F, 9.999974F); this.xrLabel12.Multiline = true; this.xrLabel12.Name = "xrLabel12"; this.xrLabel12.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); this.xrLabel12.SizeF = new System.Drawing.SizeF(262.2914F, 34.79164F); + this.xrLabel12.StylePriority.UseBackColor = false; this.xrLabel12.StylePriority.UseBorders = false; this.xrLabel12.StylePriority.UseFont = false; this.xrLabel12.StylePriority.UseTextAlignment = false; @@ -244,13 +245,15 @@ // // xrLabel11 // + this.xrLabel11.BackColor = System.Drawing.Color.LightCyan; this.xrLabel11.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Bottom))); this.xrLabel11.Font = new DevExpress.Drawing.DXFont("Times New Roman", 14F, DevExpress.Drawing.DXFontStyle.Bold); - this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(32.29167F, 10.00004F); + this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(32.29202F, 9.999974F); this.xrLabel11.Multiline = true; this.xrLabel11.Name = "xrLabel11"; this.xrLabel11.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); this.xrLabel11.SizeF = new System.Drawing.SizeF(118.75F, 34.79164F); + this.xrLabel11.StylePriority.UseBackColor = false; this.xrLabel11.StylePriority.UseBorders = false; this.xrLabel11.StylePriority.UseFont = false; this.xrLabel11.StylePriority.UseTextAlignment = false; @@ -259,13 +262,15 @@ // // xrLabel1 // + this.xrLabel1.BackColor = System.Drawing.Color.LightCyan; this.xrLabel1.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Bottom))); this.xrLabel1.Font = new DevExpress.Drawing.DXFont("Times New Roman", 14F, DevExpress.Drawing.DXFontStyle.Bold); - this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 10.00004F); + this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(0.0003496806F, 9.999974F); this.xrLabel1.Multiline = true; this.xrLabel1.Name = "xrLabel1"; this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); this.xrLabel1.SizeF = new System.Drawing.SizeF(32.29167F, 34.79164F); + this.xrLabel1.StylePriority.UseBackColor = false; this.xrLabel1.StylePriority.UseBorders = false; this.xrLabel1.StylePriority.UseFont = false; this.xrLabel1.StylePriority.UseTextAlignment = false; @@ -353,23 +358,6 @@ this.BottomMargin.Padding = new DevExpress.XtraPrinting.PaddingInfo(0F, 0F, 0F, 0F, 100F); this.BottomMargin.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; // - // GroupHeader1 - // - this.GroupHeader1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { - this.xrPictureBox2, - this.xrLabel21, - this.xrLabel24, - this.xrLabel23, - this.xrLabel22, - this.xrLabel20, - this.xrLabel19, - this.xrLabel18, - this.xrLabel16, - this.xrLabel10, - this.xrLabel4}); - this.GroupHeader1.HeightF = 170.7084F; - this.GroupHeader1.Name = "GroupHeader1"; - // // xrPictureBox2 // this.xrPictureBox2.ImageUrl = "https://iis01.egalware.com/Lux/srv/api/image/empty"; @@ -392,7 +380,7 @@ // this.xrLabel24.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[dealerNav].[lastName]")}); - this.xrLabel24.LocationFloat = new DevExpress.Utils.PointFloat(569.9999F, 135.4583F); + this.xrLabel24.LocationFloat = new DevExpress.Utils.PointFloat(569.9998F, 135.4583F); this.xrLabel24.Multiline = true; this.xrLabel24.Name = "xrLabel24"; this.xrLabel24.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); @@ -429,7 +417,7 @@ // this.xrLabel20.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[customerNav].[lastName]")}); - this.xrLabel20.LocationFloat = new DevExpress.Utils.PointFloat(89.9999F, 135.4583F); + this.xrLabel20.LocationFloat = new DevExpress.Utils.PointFloat(89.99986F, 135.4583F); this.xrLabel20.Multiline = true; this.xrLabel20.Name = "xrLabel20"; this.xrLabel20.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); @@ -451,7 +439,7 @@ // this.xrLabel18.Borders = DevExpress.XtraPrinting.BorderSide.None; this.xrLabel18.Font = new DevExpress.Drawing.DXFont("Times New Roman", 9.75F, DevExpress.Drawing.DXFontStyle.Bold); - this.xrLabel18.LocationFloat = new DevExpress.Utils.PointFloat(1.041667F, 112.4583F); + this.xrLabel18.LocationFloat = new DevExpress.Utils.PointFloat(1.041635F, 112.4583F); this.xrLabel18.Multiline = true; this.xrLabel18.Name = "xrLabel18"; this.xrLabel18.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); @@ -479,7 +467,7 @@ // this.xrLabel10.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "?pOfferId")}); - this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(298.1249F, 48.20834F); + this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(298.1249F, 48.20833F); this.xrLabel10.Multiline = true; this.xrLabel10.Name = "xrLabel10"; this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); @@ -492,7 +480,7 @@ // this.xrLabel4.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[offerCode]")}); - this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(178.125F, 48.20834F); + this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(178.125F, 48.20833F); this.xrLabel4.Multiline = true; this.xrLabel4.Name = "xrLabel4"; this.xrLabel4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); @@ -751,16 +739,47 @@ this.PageFooter.HeightF = 49.5835F; this.PageFooter.Name = "PageFooter"; // + // ReportHeader + // + this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.xrLabel4, + this.xrLabel21, + this.xrLabel24, + this.xrLabel23, + this.xrLabel22, + this.xrLabel20, + this.xrLabel19, + this.xrLabel18, + this.xrLabel16, + this.xrLabel10, + this.xrPictureBox2}); + this.ReportHeader.HeightF = 158.4583F; + this.ReportHeader.Name = "ReportHeader"; + // + // GroupHeader2 + // + this.GroupHeader2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.xrLabel1, + this.xrLabel14, + this.xrLabel13, + this.xrLabel12, + this.xrLabel11, + this.xrLabel15}); + this.GroupHeader2.HeightF = 52.58338F; + this.GroupHeader2.Name = "GroupHeader2"; + this.GroupHeader2.RepeatEveryPage = true; + // // OfferReport // this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { this.Detail, this.TopMargin, this.BottomMargin, - this.GroupHeader1, this.DetailReport, this.ReportFooter, - this.PageFooter}); + this.PageFooter, + this.ReportHeader, + this.GroupHeader2}); this.ComponentStorage.AddRange(new System.ComponentModel.IComponent[] { this.jsonDataSource1}); this.DataSource = this.jsonDataSource1; @@ -781,7 +800,6 @@ private DevExpress.XtraReports.UI.DetailBand Detail; private DevExpress.XtraReports.UI.TopMarginBand TopMargin; private DevExpress.XtraReports.UI.BottomMarginBand BottomMargin; - private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader1; private DevExpress.XtraReports.Parameters.Parameter pOfferId; private DevExpress.DataAccess.Json.JsonDataSource jsonDataSource1; private DevExpress.XtraReports.UI.XRLabel xrLabel9; @@ -820,5 +838,7 @@ private DevExpress.XtraReports.UI.XRPictureBox xrPictureBox2; private DevExpress.XtraReports.UI.XRLabel xrLabel28; private DevExpress.XtraReports.UI.XRLabel xrLabel3; + private DevExpress.XtraReports.UI.ReportHeaderBand ReportHeader; + private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader2; } } diff --git a/TestDevExpress/Components/Reports/OfferReport.cs b/TestDevExpress/Components/Reports/OfferReport.cs index b6bf1a49..86dc3dba 100644 --- a/TestDevExpress/Components/Reports/OfferReport.cs +++ b/TestDevExpress/Components/Reports/OfferReport.cs @@ -20,7 +20,7 @@ namespace TestDevExpress.Components.Reports public OfferReport(string baseUrl, int offerID) { InitializeComponent(); - Parameters["pImgPath"].Value = baseUrl; + //Parameters["pImgPath"].Value = baseUrl; Parameters["pOfferId"].Value = offerID; _offerId = offerID; _basePath = baseUrl; diff --git a/TestDevExpress/Components/Reports/XtraReport1.Designer.cs b/TestDevExpress/Components/Reports/XtraReport1.Designer.cs new file mode 100644 index 00000000..e8bbc1d6 --- /dev/null +++ b/TestDevExpress/Components/Reports/XtraReport1.Designer.cs @@ -0,0 +1,544 @@ +namespace TestDevExpress.Components.Reports +{ + partial class XtraReport1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode1 = new DevExpress.DataAccess.Json.JsonSchemaNode("root", true); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode2 = new DevExpress.DataAccess.Json.JsonSchemaNode("offerID", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode3 = new DevExpress.DataAccess.Json.JsonSchemaNode("envir", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode4 = new DevExpress.DataAccess.Json.JsonSchemaNode("refYear", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode5 = new DevExpress.DataAccess.Json.JsonSchemaNode("refNum", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode6 = new DevExpress.DataAccess.Json.JsonSchemaNode("refRev", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode7 = new DevExpress.DataAccess.Json.JsonSchemaNode("offerCode", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode8 = new DevExpress.DataAccess.Json.JsonSchemaNode("description", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode9 = new DevExpress.DataAccess.Json.JsonSchemaNode("customerID", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode10 = new DevExpress.DataAccess.Json.JsonSchemaNode("dealerID", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode11 = new DevExpress.DataAccess.Json.JsonSchemaNode("dictPresel", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode12 = new DevExpress.DataAccess.Json.JsonSchemaNode("dictParameter", true); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode13 = new DevExpress.DataAccess.Json.JsonSchemaNode("validUntil", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode14 = new DevExpress.DataAccess.Json.JsonSchemaNode("inserted", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode15 = new DevExpress.DataAccess.Json.JsonSchemaNode("modified", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode16 = new DevExpress.DataAccess.Json.JsonSchemaNode("dueDateReq", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode17 = new DevExpress.DataAccess.Json.JsonSchemaNode("dueDateProm", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode18 = new DevExpress.DataAccess.Json.JsonSchemaNode("consNote", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode19 = new DevExpress.DataAccess.Json.JsonSchemaNode("offertState", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode20 = new DevExpress.DataAccess.Json.JsonSchemaNode("discount", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode21 = new DevExpress.DataAccess.Json.JsonSchemaNode("numItems", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode22 = new DevExpress.DataAccess.Json.JsonSchemaNode("numProdItems", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode23 = new DevExpress.DataAccess.Json.JsonSchemaNode("numRows", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode24 = new DevExpress.DataAccess.Json.JsonSchemaNode("totalCost", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode25 = new DevExpress.DataAccess.Json.JsonSchemaNode("totalPrice", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode26 = new DevExpress.DataAccess.Json.JsonSchemaNode("maxDiscount", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode27 = new DevExpress.DataAccess.Json.JsonSchemaNode("customerNav", true); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode28 = new DevExpress.DataAccess.Json.JsonSchemaNode("customerID", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode29 = new DevExpress.DataAccess.Json.JsonSchemaNode("companyName", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode30 = new DevExpress.DataAccess.Json.JsonSchemaNode("firstName", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode31 = new DevExpress.DataAccess.Json.JsonSchemaNode("lastName", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode32 = new DevExpress.DataAccess.Json.JsonSchemaNode("vat", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode33 = new DevExpress.DataAccess.Json.JsonSchemaNode("dealerNav", true); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode34 = new DevExpress.DataAccess.Json.JsonSchemaNode("dealerID", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode35 = new DevExpress.DataAccess.Json.JsonSchemaNode("companyName", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode36 = new DevExpress.DataAccess.Json.JsonSchemaNode("firstName", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode37 = new DevExpress.DataAccess.Json.JsonSchemaNode("lastName", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode38 = new DevExpress.DataAccess.Json.JsonSchemaNode("vat", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode39 = new DevExpress.DataAccess.Json.JsonSchemaNode("offerRowNav", true, DevExpress.DataAccess.Json.JsonNodeType.Array); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode40 = new DevExpress.DataAccess.Json.JsonSchemaNode("offerRowID", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode41 = new DevExpress.DataAccess.Json.JsonSchemaNode("offerID", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode42 = new DevExpress.DataAccess.Json.JsonSchemaNode("rowNum", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode43 = new DevExpress.DataAccess.Json.JsonSchemaNode("envir", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode44 = new DevExpress.DataAccess.Json.JsonSchemaNode("offerRowUID", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode45 = new DevExpress.DataAccess.Json.JsonSchemaNode("offerRowDtx", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode46 = new DevExpress.DataAccess.Json.JsonSchemaNode("sellingItemID", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode47 = new DevExpress.DataAccess.Json.JsonSchemaNode("isNote", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode48 = new DevExpress.DataAccess.Json.JsonSchemaNode("templateRowID", true, DevExpress.DataAccess.Json.JsonNodeType.Property); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode49 = new DevExpress.DataAccess.Json.JsonSchemaNode("calcEnabled", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode50 = new DevExpress.DataAccess.Json.JsonSchemaNode("hasFile", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode51 = new DevExpress.DataAccess.Json.JsonSchemaNode("imgType", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode52 = new DevExpress.DataAccess.Json.JsonSchemaNode("imgUID", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode53 = new DevExpress.DataAccess.Json.JsonSchemaNode("imgUrl", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode54 = new DevExpress.DataAccess.Json.JsonSchemaNode("qty", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode55 = new DevExpress.DataAccess.Json.JsonSchemaNode("bomCost", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode56 = new DevExpress.DataAccess.Json.JsonSchemaNode("bomPrice", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode57 = new DevExpress.DataAccess.Json.JsonSchemaNode("stepCost", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode58 = new DevExpress.DataAccess.Json.JsonSchemaNode("stepPrice", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode59 = new DevExpress.DataAccess.Json.JsonSchemaNode("stepLeadTime", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode60 = new DevExpress.DataAccess.Json.JsonSchemaNode("stepFlowTime", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode61 = new DevExpress.DataAccess.Json.JsonSchemaNode("unitCost", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode62 = new DevExpress.DataAccess.Json.JsonSchemaNode("unitPrice", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode63 = new DevExpress.DataAccess.Json.JsonSchemaNode("maxDiscount", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode64 = new DevExpress.DataAccess.Json.JsonSchemaNode("totalCost", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode65 = new DevExpress.DataAccess.Json.JsonSchemaNode("totalPrice", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode66 = new DevExpress.DataAccess.Json.JsonSchemaNode("serStruct", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode67 = new DevExpress.DataAccess.Json.JsonSchemaNode("fileResource", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode68 = new DevExpress.DataAccess.Json.JsonSchemaNode("fileName", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode69 = new DevExpress.DataAccess.Json.JsonSchemaNode("fileSize", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode70 = new DevExpress.DataAccess.Json.JsonSchemaNode("itemBOM", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode71 = new DevExpress.DataAccess.Json.JsonSchemaNode("itemJCD", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode72 = new DevExpress.DataAccess.Json.JsonSchemaNode("itemTags", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode73 = new DevExpress.DataAccess.Json.JsonSchemaNode("prodItemQty", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode74 = new DevExpress.DataAccess.Json.JsonSchemaNode("prodItemQtyTot", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode75 = new DevExpress.DataAccess.Json.JsonSchemaNode("jobID", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode76 = new DevExpress.DataAccess.Json.JsonSchemaNode("itemSteps", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode77 = new DevExpress.DataAccess.Json.JsonSchemaNode("bomOk", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode78 = new DevExpress.DataAccess.Json.JsonSchemaNode("itemOk", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode79 = new DevExpress.DataAccess.Json.JsonSchemaNode("note", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode80 = new DevExpress.DataAccess.Json.JsonSchemaNode("inserted", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode81 = new DevExpress.DataAccess.Json.JsonSchemaNode("modified", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode82 = new DevExpress.DataAccess.Json.JsonSchemaNode("awaitBom", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode83 = new DevExpress.DataAccess.Json.JsonSchemaNode("awaitPrice", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode84 = new DevExpress.DataAccess.Json.JsonSchemaNode("dictPendPresRaw", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode85 = new DevExpress.DataAccess.Json.JsonSchemaNode("hasPendReq", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode86 = new DevExpress.DataAccess.Json.JsonSchemaNode("dictPendingPresel", true); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode87 = new DevExpress.DataAccess.Json.JsonSchemaNode("offerNav", true, DevExpress.DataAccess.Json.JsonNodeType.Property); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode88 = new DevExpress.DataAccess.Json.JsonSchemaNode("templateRowNav", true, DevExpress.DataAccess.Json.JsonNodeType.Property); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode89 = new DevExpress.DataAccess.Json.JsonSchemaNode("sellingItemNav", true); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode90 = new DevExpress.DataAccess.Json.JsonSchemaNode("sellingItemID", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode91 = new DevExpress.DataAccess.Json.JsonSchemaNode("envir", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode92 = new DevExpress.DataAccess.Json.JsonSchemaNode("isService", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode93 = new DevExpress.DataAccess.Json.JsonSchemaNode("sourceType", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode94 = new DevExpress.DataAccess.Json.JsonSchemaNode("jobID", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode95 = new DevExpress.DataAccess.Json.JsonSchemaNode("itemCode", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode96 = new DevExpress.DataAccess.Json.JsonSchemaNode("extItemCode", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode97 = new DevExpress.DataAccess.Json.JsonSchemaNode("supplCode", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode98 = new DevExpress.DataAccess.Json.JsonSchemaNode("description", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode99 = new DevExpress.DataAccess.Json.JsonSchemaNode("cost", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode100 = new DevExpress.DataAccess.Json.JsonSchemaNode("margin", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode101 = new DevExpress.DataAccess.Json.JsonSchemaNode("um", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode102 = new DevExpress.DataAccess.Json.JsonSchemaNode("serStruct", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode103 = new DevExpress.DataAccess.Json.JsonSchemaNode("itemSteps", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode104 = new DevExpress.DataAccess.Json.JsonSchemaNode("imgType", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode105 = new DevExpress.DataAccess.Json.JsonSchemaNode("imgUID", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode106 = new DevExpress.DataAccess.Json.JsonSchemaNode("calcEnabled", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode107 = new DevExpress.DataAccess.Json.JsonSchemaNode("imgUrl", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode108 = new DevExpress.DataAccess.Json.JsonSchemaNode("fileName", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(string)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode109 = new DevExpress.DataAccess.Json.JsonSchemaNode("isProtected", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode110 = new DevExpress.DataAccess.Json.JsonSchemaNode("hasBOM", true, DevExpress.DataAccess.Json.JsonNodeType.Property, typeof(System.Nullable)); + DevExpress.DataAccess.Json.JsonSchemaNode jsonSchemaNode111 = new DevExpress.DataAccess.Json.JsonSchemaNode("jobNav", true, DevExpress.DataAccess.Json.JsonNodeType.Property); + this.jsonDataSource1 = new DevExpress.DataAccess.Json.JsonDataSource(this.components); + this.Detail = new DevExpress.XtraReports.UI.DetailBand(); + this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel(); + this.TopMargin = new DevExpress.XtraReports.UI.TopMarginBand(); + this.BottomMargin = new DevExpress.XtraReports.UI.BottomMarginBand(); + this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel(); + this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand(); + this.Detail1 = new DevExpress.XtraReports.UI.DetailBand(); + this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrPictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox(); + this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel14 = new DevExpress.XtraReports.UI.XRLabel(); + this.pImgPath = new DevExpress.XtraReports.Parameters.Parameter(); + this.GroupHeader2 = new DevExpress.XtraReports.UI.GroupHeaderBand(); + this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand(); + ((System.ComponentModel.ISupportInitialize)(this)).BeginInit(); + // + // jsonDataSource1 + // + this.jsonDataSource1.ConnectionName = "JsonConnection"; + this.jsonDataSource1.Name = "jsonDataSource1"; + jsonSchemaNode27.Nodes.Add(jsonSchemaNode28); + jsonSchemaNode27.Nodes.Add(jsonSchemaNode29); + jsonSchemaNode27.Nodes.Add(jsonSchemaNode30); + jsonSchemaNode27.Nodes.Add(jsonSchemaNode31); + jsonSchemaNode27.Nodes.Add(jsonSchemaNode32); + jsonSchemaNode33.Nodes.Add(jsonSchemaNode34); + jsonSchemaNode33.Nodes.Add(jsonSchemaNode35); + jsonSchemaNode33.Nodes.Add(jsonSchemaNode36); + jsonSchemaNode33.Nodes.Add(jsonSchemaNode37); + jsonSchemaNode33.Nodes.Add(jsonSchemaNode38); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode90); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode91); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode92); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode93); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode94); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode95); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode96); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode97); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode98); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode99); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode100); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode101); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode102); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode103); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode104); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode105); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode106); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode107); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode108); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode109); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode110); + jsonSchemaNode89.Nodes.Add(jsonSchemaNode111); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode40); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode41); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode42); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode43); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode44); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode45); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode46); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode47); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode48); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode49); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode50); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode51); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode52); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode53); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode54); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode55); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode56); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode57); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode58); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode59); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode60); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode61); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode62); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode63); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode64); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode65); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode66); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode67); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode68); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode69); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode70); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode71); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode72); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode73); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode74); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode75); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode76); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode77); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode78); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode79); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode80); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode81); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode82); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode83); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode84); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode85); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode86); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode87); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode88); + jsonSchemaNode39.Nodes.Add(jsonSchemaNode89); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode2); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode3); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode4); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode5); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode6); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode7); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode8); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode9); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode10); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode11); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode12); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode13); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode14); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode15); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode16); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode17); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode18); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode19); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode20); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode21); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode22); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode23); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode24); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode25); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode26); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode27); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode33); + jsonSchemaNode1.Nodes.Add(jsonSchemaNode39); + this.jsonDataSource1.Schema = jsonSchemaNode1; + // + // Detail + // + this.Detail.HeightF = 62.50002F; + this.Detail.Name = "Detail"; + this.Detail.Padding = new DevExpress.XtraPrinting.PaddingInfo(0F, 0F, 0F, 0F, 100F); + this.Detail.SortFields.AddRange(new DevExpress.XtraReports.UI.GroupField[] { + new DevExpress.XtraReports.UI.GroupField("numRows", DevExpress.XtraReports.UI.XRColumnSortOrder.Ascending)}); + this.Detail.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; + // + // xrLabel9 + // + this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(550F, 22.50001F); + this.xrLabel9.Multiline = true; + this.xrLabel9.Name = "xrLabel9"; + this.xrLabel9.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); + this.xrLabel9.SizeF = new System.Drawing.SizeF(100F, 23F); + this.xrLabel9.Text = "Totale"; + // + // xrLabel8 + // + this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(450F, 22.50001F); + this.xrLabel8.Multiline = true; + this.xrLabel8.Name = "xrLabel8"; + this.xrLabel8.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); + this.xrLabel8.SizeF = new System.Drawing.SizeF(100F, 23F); + this.xrLabel8.Text = "Unitario"; + // + // xrLabel7 + // + this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(350F, 22.50001F); + this.xrLabel7.Multiline = true; + this.xrLabel7.Name = "xrLabel7"; + this.xrLabel7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); + this.xrLabel7.SizeF = new System.Drawing.SizeF(100F, 23F); + this.xrLabel7.Text = "Qty"; + // + // xrLabel6 + // + this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(169.7917F, 22.50001F); + this.xrLabel6.Multiline = true; + this.xrLabel6.Name = "xrLabel6"; + this.xrLabel6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); + this.xrLabel6.SizeF = new System.Drawing.SizeF(180.2083F, 23F); + this.xrLabel6.Text = "Descrizione"; + // + // TopMargin + // + this.TopMargin.Name = "TopMargin"; + this.TopMargin.Padding = new DevExpress.XtraPrinting.PaddingInfo(0F, 0F, 0F, 0F, 100F); + this.TopMargin.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; + // + // BottomMargin + // + this.BottomMargin.Name = "BottomMargin"; + this.BottomMargin.Padding = new DevExpress.XtraPrinting.PaddingInfo(0F, 0F, 0F, 0F, 100F); + this.BottomMargin.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; + // + // xrLabel12 + // + this.xrLabel12.LocationFloat = new DevExpress.Utils.PointFloat(348.9583F, 34.12498F); + this.xrLabel12.Multiline = true; + this.xrLabel12.Name = "xrLabel12"; + this.xrLabel12.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); + this.xrLabel12.SizeF = new System.Drawing.SizeF(100F, 23F); + this.xrLabel12.Text = "Parametro:"; + // + // xrLabel11 + // + this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(148.9583F, 34.12498F); + this.xrLabel11.Multiline = true; + this.xrLabel11.Name = "xrLabel11"; + this.xrLabel11.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); + this.xrLabel11.SizeF = new System.Drawing.SizeF(100F, 23F); + this.xrLabel11.Text = "OfferID:"; + // + // xrLabel10 + // + this.xrLabel10.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { + new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "?pOfferId")}); + this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(550F, 34.12498F); + this.xrLabel10.Multiline = true; + this.xrLabel10.Name = "xrLabel10"; + this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); + this.xrLabel10.SizeF = new System.Drawing.SizeF(100F, 23F); + this.xrLabel10.Text = "xrLabel10"; + this.xrLabel10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight; + // + // xrLabel1 + // + this.xrLabel1.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { + new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[offerID]")}); + this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(248.9583F, 34.12498F); + this.xrLabel1.Multiline = true; + this.xrLabel1.Name = "xrLabel1"; + this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); + this.xrLabel1.SizeF = new System.Drawing.SizeF(100F, 23F); + this.xrLabel1.Text = "xrLabel1"; + // + // DetailReport + // + this.DetailReport.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { + this.Detail1}); + this.DetailReport.DataMember = "offerRowNav"; + this.DetailReport.DataSource = this.jsonDataSource1; + this.DetailReport.Level = 0; + this.DetailReport.Name = "DetailReport"; + // + // Detail1 + // + this.Detail1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.xrLabel5, + this.xrPictureBox1, + this.xrLabel3, + this.xrLabel2, + this.xrLabel4, + this.xrLabel14}); + this.Detail1.HeightF = 115.625F; + this.Detail1.Name = "Detail1"; + this.Detail1.SortFields.AddRange(new DevExpress.XtraReports.UI.GroupField[] { + new DevExpress.XtraReports.UI.GroupField("rowNum", DevExpress.XtraReports.UI.XRColumnSortOrder.Ascending)}); + // + // xrLabel5 + // + this.xrLabel5.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { + new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[rowNum]")}); + this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); + this.xrLabel5.Multiline = true; + this.xrLabel5.Name = "xrLabel5"; + this.xrLabel5.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); + this.xrLabel5.SizeF = new System.Drawing.SizeF(69.79166F, 23F); + this.xrLabel5.Text = "xrLabel5"; + // + // xrPictureBox1 + // + this.xrPictureBox1.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { + new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "ImageUrl", "?pImgPath+ [imgUrl]")}); + this.xrPictureBox1.LocationFloat = new DevExpress.Utils.PointFloat(69.79166F, 0F); + this.xrPictureBox1.Name = "xrPictureBox1"; + this.xrPictureBox1.SizeF = new System.Drawing.SizeF(100F, 100F); + this.xrPictureBox1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage; + // + // xrLabel3 + // + this.xrLabel3.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { + new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[offerRowNav].[note]")}); + this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(169.7917F, 0F); + this.xrLabel3.Multiline = true; + this.xrLabel3.Name = "xrLabel3"; + this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); + this.xrLabel3.SizeF = new System.Drawing.SizeF(180.2083F, 23F); + this.xrLabel3.Text = "xrLabel3"; + // + // xrLabel2 + // + this.xrLabel2.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { + new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[offerRowNav].[qty]")}); + this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(350F, 0F); + this.xrLabel2.Multiline = true; + this.xrLabel2.Name = "xrLabel2"; + this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); + this.xrLabel2.SizeF = new System.Drawing.SizeF(100F, 23F); + this.xrLabel2.Text = "xrLabel2"; + this.xrLabel2.TextFormatString = "{0:N0}"; + // + // xrLabel4 + // + this.xrLabel4.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { + new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[offerRowNav].[unitCost]")}); + this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(450F, 0F); + this.xrLabel4.Multiline = true; + this.xrLabel4.Name = "xrLabel4"; + this.xrLabel4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); + this.xrLabel4.SizeF = new System.Drawing.SizeF(100F, 23F); + this.xrLabel4.Text = "xrLabel4"; + this.xrLabel4.TextFormatString = "{0:C2}"; + // + // xrLabel14 + // + this.xrLabel14.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { + new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[offerRowNav].[totalCost]")}); + this.xrLabel14.LocationFloat = new DevExpress.Utils.PointFloat(550F, 0F); + this.xrLabel14.Multiline = true; + this.xrLabel14.Name = "xrLabel14"; + this.xrLabel14.Padding = new DevExpress.XtraPrinting.PaddingInfo(2F, 2F, 0F, 0F, 100F); + this.xrLabel14.SizeF = new System.Drawing.SizeF(100F, 23F); + this.xrLabel14.Text = "xrLabel14"; + this.xrLabel14.TextFormatString = "{0:C2}"; + // + // pImgPath + // + this.pImgPath.Description = "Path base x immagini"; + this.pImgPath.Name = "pImgPath"; + this.pImgPath.ValueInfo = "https://iis01.egalware.com/Lux/srv/api/window/svgfile/"; + this.pImgPath.Visible = false; + // + // GroupHeader2 + // + this.GroupHeader2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.xrLabel6, + this.xrLabel8, + this.xrLabel7, + this.xrLabel9}); + this.GroupHeader2.HeightF = 65.625F; + this.GroupHeader2.Name = "GroupHeader2"; + this.GroupHeader2.RepeatEveryPage = true; + // + // ReportHeader + // + this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.xrLabel11, + this.xrLabel12, + this.xrLabel1, + this.xrLabel10}); + this.ReportHeader.Name = "ReportHeader"; + // + // XtraReport1 + // + this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { + this.Detail, + this.TopMargin, + this.BottomMargin, + this.DetailReport, + this.GroupHeader2, + this.ReportHeader}); + this.ComponentStorage.AddRange(new System.ComponentModel.IComponent[] { + this.jsonDataSource1}); + this.DataSource = this.jsonDataSource1; + this.Parameters.AddRange(new DevExpress.XtraReports.Parameters.Parameter[] { + this.pImgPath}); + this.Version = "25.2"; + ((System.ComponentModel.ISupportInitialize)(this)).EndInit(); + + } + + #endregion + + private DevExpress.XtraReports.UI.DetailBand Detail; + private DevExpress.XtraReports.UI.TopMarginBand TopMargin; + private DevExpress.XtraReports.UI.BottomMarginBand BottomMargin; + private DevExpress.DataAccess.Json.JsonDataSource jsonDataSource1; + private DevExpress.XtraReports.UI.XRLabel xrLabel1; + private DevExpress.XtraReports.UI.XRLabel xrLabel9; + private DevExpress.XtraReports.UI.XRLabel xrLabel8; + private DevExpress.XtraReports.UI.XRLabel xrLabel7; + private DevExpress.XtraReports.UI.XRLabel xrLabel6; + private DevExpress.XtraReports.UI.XRLabel xrLabel11; + private DevExpress.XtraReports.UI.XRLabel xrLabel10; + private DevExpress.XtraReports.UI.XRLabel xrLabel12; + private DevExpress.XtraReports.UI.DetailReportBand DetailReport; + private DevExpress.XtraReports.UI.DetailBand Detail1; + private DevExpress.XtraReports.UI.XRLabel xrLabel3; + private DevExpress.XtraReports.UI.XRLabel xrLabel2; + private DevExpress.XtraReports.UI.XRLabel xrLabel4; + private DevExpress.XtraReports.UI.XRLabel xrLabel14; + private DevExpress.XtraReports.UI.XRLabel xrLabel5; + private DevExpress.XtraReports.UI.XRPictureBox xrPictureBox1; + private DevExpress.XtraReports.Parameters.Parameter pImgPath; + private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader2; + private DevExpress.XtraReports.UI.ReportHeaderBand ReportHeader; + } +} diff --git a/TestDevExpress/Components/Reports/XtraReport1.cs b/TestDevExpress/Components/Reports/XtraReport1.cs new file mode 100644 index 00000000..9a17b0b7 --- /dev/null +++ b/TestDevExpress/Components/Reports/XtraReport1.cs @@ -0,0 +1,16 @@ +using DevExpress.XtraReports.UI; +using System; +using System.Collections; +using System.ComponentModel; +using System.Drawing; + +namespace TestDevExpress.Components.Reports +{ + public partial class XtraReport1 : DevExpress.XtraReports.UI.XtraReport + { + public XtraReport1() + { + InitializeComponent(); + } + } +} diff --git a/TestDevExpress/Program.cs b/TestDevExpress/Program.cs index b25aaf5c..b20edb57 100644 --- a/TestDevExpress/Program.cs +++ b/TestDevExpress/Program.cs @@ -31,7 +31,7 @@ builder.WebHost.UseStaticWebAssets(); builder.Services.AddScoped(); -builder.Services.AddScoped(); +//builder.Services.AddScoped(); var app = builder.Build(); diff --git a/TestDevExpress/Reports/TestReport1.repx b/TestDevExpress/Reports/TestReport1.repx index 86842fd6..b0b61ed9 100644 --- a/TestDevExpress/Reports/TestReport1.repx +++ b/TestDevExpress/Reports/TestReport1.repx @@ -1,173 +1,172 @@  - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - - + + - + - + - - + + - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + \ No newline at end of file diff --git a/TestDevExpress/Services/TestMyReportProvider.cs b/TestDevExpress/Services/TestMyReportProvider.cs new file mode 100644 index 00000000..ccdf07ab --- /dev/null +++ b/TestDevExpress/Services/TestMyReportProvider.cs @@ -0,0 +1,63 @@ +using DevExpress.Blazor.Reporting; +using DevExpress.DataAccess; +using DevExpress.DataAccess.Json; +using DevExpress.Drawing.Internal.Fonts.Interop; +using DevExpress.Security; +using DevExpress.XtraPrinting.Native.Properties; +using DevExpress.XtraReports; +using DevExpress.XtraReports.Services; +using DevExpress.XtraReports.UI; +using DevExpress.XtraReports.Web.ReportDesigner.Native; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.WebUtilities; +using System; +using System.Web; +using TestDevExpress.Components.Reports; + +public class TestMyReportProvider : IReportProvider +{ + public XtraReport GetReport(string id, ReportProviderContext context) + { + // Parse the string with the report name and parameter values. + string[] parts = id.Split('?'); + string reportName = parts[0]; + string parametersQueryString = parts.Length > 1 ? parts[2] : String.Empty; + var par = parametersQueryString.Split('&'); + List valueParList = new(); + for (int i = 0; i < par.Length; i++) + { + valueParList.Add(par[i].Split('=')[1]); + } + //var parameters = HttpUtility.ParseQueryString(parametersQueryString); + string urlImg = valueParList[1]; + string url = parts[1].Split('=')[1] + "/" + valueParList[0]; + // Create a report instance. + XtraReport report = null; + if (reportName == "TestReport1") + report = new XtraReport1(); + else + { + throw new DevExpress.XtraReports.Web.ClientControls.FaultException( + string.Format("Could not find report '{0}'.", reportName) + ); + } + string reportFolder = "Reports"; + if (Directory.EnumerateFiles(reportFolder). + Select(Path.GetFileNameWithoutExtension).Contains(reportName)) + { + byte[] reportBytes = File.ReadAllBytes(Path.Combine(reportFolder, reportName + ".repx")); + using (MemoryStream ms = new MemoryStream(reportBytes)) + report = XtraReport.FromXmlStream(ms); + } + //report.Parameters["pOfferId"].Value = valueParList[0]; + //report.Parameters["pImgPath"].Value = valueParList[1]; + //var jsonDataSource = report.DataSource as JsonDataSource; + //if (jsonDataSource != null) + //{ + // jsonDataSource.JsonSource = new UriJsonSource(new Uri(url)); + // jsonDataSource.ConnectionName = null; + // //RequestParameters = false; + //} + return report; + } +} \ No newline at end of file diff --git a/TestDevExpress/TestDevExpress.csproj b/TestDevExpress/TestDevExpress.csproj index 5cbbe528..31164256 100644 --- a/TestDevExpress/TestDevExpress.csproj +++ b/TestDevExpress/TestDevExpress.csproj @@ -6,6 +6,14 @@ enable + + + + + + + + diff --git a/TestDevExpress/compilerconfig.json b/TestDevExpress/compilerconfig.json new file mode 100644 index 00000000..7a6146ab --- /dev/null +++ b/TestDevExpress/compilerconfig.json @@ -0,0 +1,6 @@ +[ + { + "outputFile": "wwwroot/customization.es5.js", + "inputFile": "wwwroot/customization.js" + } +] \ No newline at end of file diff --git a/TestDevExpress/compilerconfig.json.defaults b/TestDevExpress/compilerconfig.json.defaults new file mode 100644 index 00000000..a5a10c08 --- /dev/null +++ b/TestDevExpress/compilerconfig.json.defaults @@ -0,0 +1,59 @@ +{ + "compilers": { + "less": { + "autoPrefix": "", + "cssComb": "none", + "ieCompat": true, + "math": null, + "strictMath": false, + "strictUnits": false, + "relativeUrls": true, + "rootPath": "", + "sourceMapRoot": "", + "sourceMapBasePath": "", + "sourceMap": false + }, + "sass": { + "autoPrefix": "", + "loadPaths": "", + "style": "expanded", + "relativeUrls": true, + "sourceMap": false + }, + "stylus": { + "sourceMap": false + }, + "babel": { + "sourceMap": false + }, + "coffeescript": { + "bare": false, + "runtimeMode": "node", + "sourceMap": false + }, + "handlebars": { + "root": "", + "noBOM": false, + "name": "", + "namespace": "", + "knownHelpersOnly": false, + "forcePartial": false, + "knownHelpers": [], + "commonjs": "", + "amd": false, + "sourceMap": false + } + }, + "minifiers": { + "css": { + "enabled": true, + "termSemicolons": true, + "gzip": false + }, + "javascript": { + "enabled": true, + "termSemicolons": true, + "gzip": false + } + } +} \ No newline at end of file diff --git a/TestDevExpress/wwwroot/customization.es5.js b/TestDevExpress/wwwroot/customization.es5.js new file mode 100644 index 00000000..a4bfbeb8 --- /dev/null +++ b/TestDevExpress/wwwroot/customization.es5.js @@ -0,0 +1,29 @@ +"use strict"; + +window.DesignerCustomization = { + onCustomizeActions: function onCustomizeActions(s, e) { + var NewReportViaWizard = e.GetById(DevExpress.Reporting.Designer.Actions.ActionId.NewReportViaWizard); + if (NewReportViaWizard) NewReportViaWizard.visible = false; + + var ReportWizard = e.GetById(DevExpress.Reporting.Designer.Actions.ActionId.ReportWizard); + if (ReportWizard) ReportWizard.visible = false; + } + +}; + +window.ReportingDesignerCustomization = { + RemoveAppearanceSection: function RemoveAppearanceSection(s, e) { + var group = e.dx.Reporting.Designer.Widgets.groups["Design"]; + group.info.splice(0, group.info.length); + } +}; + +window.ViewerCustomization = { + onCustomizeElements: function onCustomizeElements(s, e) { + // NAsconde tutta la Tab Panel + //var panelPart = e.GetById(DevExpress.Reporting.Viewer.PreviewElements.RightPanel); + //var index = e.Elements.indexOf(panelPart); + //e.Elements.splice(index, 1); + } +}; + diff --git a/TestDevExpress/wwwroot/customization.es5.min.js b/TestDevExpress/wwwroot/customization.es5.min.js new file mode 100644 index 00000000..20ed35f1 --- /dev/null +++ b/TestDevExpress/wwwroot/customization.es5.min.js @@ -0,0 +1 @@ +"use strict";window.DesignerCustomization={onCustomizeActions:function(n,t){var r=t.GetById(DevExpress.Reporting.Designer.Actions.ActionId.NewReportViaWizard),i;r&&(r.visible=!1);i=t.GetById(DevExpress.Reporting.Designer.Actions.ActionId.ReportWizard);i&&(i.visible=!1)}};window.ReportingDesignerCustomization={RemoveAppearanceSection:function(n,t){var i=t.dx.Reporting.Designer.Widgets.groups.Design;i.info.splice(0,i.info.length)}};window.ViewerCustomization={onCustomizeElements:function(){}}; \ No newline at end of file diff --git a/TestDevExpress/wwwroot/customization.js b/TestDevExpress/wwwroot/customization.js new file mode 100644 index 00000000..626dfb52 --- /dev/null +++ b/TestDevExpress/wwwroot/customization.js @@ -0,0 +1,28 @@ +window.DesignerCustomization = { + onCustomizeActions(s, e) { + var NewReportViaWizard = e.GetById(DevExpress.Reporting.Designer.Actions.ActionId.NewReportViaWizard); + if (NewReportViaWizard) + NewReportViaWizard.visible = false; + + var ReportWizard = e.GetById(DevExpress.Reporting.Designer.Actions.ActionId.ReportWizard); + if (ReportWizard) + ReportWizard.visible = false; + } + +} + +window.ReportingDesignerCustomization = { + RemoveAppearanceSection: function (s, e) { + var group = e.dx.Reporting.Designer.Widgets.groups["Design"]; + group.info.splice(0, group.info.length); + } +} + +window.ViewerCustomization = { + onCustomizeElements: function (s, e) { + // NAsconde tutta la Tab Panel + //var panelPart = e.GetById(DevExpress.Reporting.Viewer.PreviewElements.RightPanel); + //var index = e.Elements.indexOf(panelPart); + //e.Elements.splice(index, 1); + } +} \ No newline at end of file