Files
lux/TestDevExpress/Components/Pages/ReportViewer.razor.cs
T
2026-04-01 09:01:55 +02:00

82 lines
3.1 KiB
C#

using DevExpress.Blazor.Reporting;
using DevExpress.DataAccess;
using DevExpress.DataAccess.Json;
using DevExpress.XtraReports.UI;
using Microsoft.AspNetCore.Components;
using TestDevExpress.Components.Reports;
namespace TestDevExpress.Components.Pages
{
public partial class ReportViewer
{
// Recupera il parametro "id" dalla Query String (?id=7)
[SupplyParameterFromQuery(Name = "id")]
public int? OfferId { get; set; }
// Variabile che conterrà l'istanza del report DevExpress
public XtraReport OfferReportInstance { get; set; }
private DxReportViewer? reportViewer;
private TestReport Report = new TestReport();
private OffertReport offertReport = new();
//private int IDOffert = 10283;
protected override void OnInitialized()
{
// Create a new JSON source.
var jsonSource = new UriJsonSource()
{
Uri = new Uri(@"https://iis01.egalware.com/Lux/SRV/api/Report/Offert")
};
// Create the "id" path parameters that are appended to the JSON URI
jsonSource.PathParameters.AddRange(new[] {
new PathParameter("id", typeof(int), new Expression("?ID"))
});
// Assign the JSON source to the data source.
var datasource = new JsonDataSource()
{
JsonSource = jsonSource
};
offertReport.DataSource = datasource;
//// Imposta il parametro PRIMA che il viewer renderizzi
//Report.Parameters["orderID"].Value = IDOffert;
//Report.Parameters["orderID"].Visible = false;
}
protected override void OnParametersSet()
{
base.OnParametersSet();
// Inizializza la classe del tuo report (creata con il designer DevExpress)
OfferReportInstance = new TestReport();
// Verifica se il parametro è stato passato nell'URL
if (OfferId.HasValue)
{
// Cerca il parametro all'interno del report DevExpress (assicurati che il nome corrisponda)
var parametroDx = OfferReportInstance.Parameters["offerID"];
if (parametroDx != null)
{
// Assegna il valore recuperato dall'URL
parametroDx.Value = OfferId.Value;
// (Opzionale) Nascondi il parametro nell'interfaccia utente se non vuoi che l'utente lo modifichi
parametroDx.Visible = false;
}
}
else
{
// Cerca il parametro all'interno del report DevExpress (assicurati che il nome corrisponda)
var parametroDx = OfferReportInstance.Parameters["offerID"];
if (parametroDx != null)
{
// Assegna il valore recuperato dall'URL
parametroDx.Value = 7;
// (Opzionale) Nascondi il parametro nell'interfaccia utente se non vuoi che l'utente lo modifichi
parametroDx.Visible = false;
}
}
}
}
}