تهیه گزارش در Blazor Wasm با استیمول ریپورت
نویسنده: ع ابراهیمی
تاریخ: ۱۴۰۰/۰۲/۱۸ ۱۶:۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
Install-Package Stimulsoft.Reports.Blazor -Version 2021.2.4
[HttpGet]
[Route("GetReportFile/{fileName}")]
public async Task<IActionResult> GetReportFile(string fileName)
{
var rootPath = _webHostEnverioment.WebRootFileProvider.GetDirectoryContents("/")
.FirstOrDefault(x => x.Name == "Reports")?.PhysicalPath;
var path = Path.Combine(rootPath!, fileName);
var bytes = await System.IO.File.ReadAllBytesAsync(path);
return Ok(bytes);
} @page "/"
@using Stimulsoft.Base
@using Stimulsoft.Report
@using Stimulsoft.Report.Blazor
@inject HttpClient Http
<StiBlazorViewer Report="@report" />
@code
{
private StiReport report;
protected override async Task OnInitializedAsync()
{
//Create empty report object
report = new StiReport();
//Load report template
// var reportBytes = await Http.GetByteArrayAsync("Reports/Report.mrt");
report.RegBusinessObject("MyList", GetBusinessObject());
var uri = $"/api/Report/GetReportFile/Report.mrt";
var reportFile=await Http.GetFromJsonAsync<byte[]>(uri);
// var reportFile = await Http.GetByteArrayAsync("Report.mrt");
report.Load(reportFile);
await report.Dictionary.SynchronizeAsync();
}
public class BusinessEntity
{
public string Name { get; set; }
public string Alias { get; set; }
public BusinessEntity(string name, string alias)
{
Name = name;
Alias = alias;
}
}
private System.Collections.ArrayList GetBusinessObject()
{
var list = new System.Collections.ArrayList();
list.Add(new BusinessEntity("ali", "alias1"));
list.Add(new BusinessEntity("reza", "alias2"));
return list;
}
} using Microsoft.AspNetCore.Mvc;
namespace BlazorWasmShowBinaryFiles.Server.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class ReportsController : ControllerBase
{
[HttpGet("[action]")]
public IActionResult GetReportFile()
{
return File(virtualPath: "~/app_data/Report.mrt",
contentType: "application/octet-stream",
fileDownloadName: "Report.mrt");
}
}
}