You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
3.9 KiB

@page "/Reporting/Reporting"
@page "/Reporting/Reporting/{ReportNr}"
@inherits Admin.ListBase;
@inject Blazored.SessionStorage.ISessionStorageService sessionStorage
@using Microsoft.AspNetCore.Hosting;
@using System.IO;
@using System.Data;
@using FastReport
@using FastReport.Web
@using FastReport.Web.Blazor.Components
@using BWPMModels;
@using Syncfusion.Blazor.Spinner
<div id="container">
<WebReportContainer WebReport="@UserWebReport" />
<SfSpinner @bind-Visible="@Spinnervisible">
</SfSpinner>
</div>
@emsg;
@code {
[Parameter]
public string ReportNr { get; set; }
public string emsg { get; set; } = "";
private IHostingEnvironment Environment;
private bool Spinnervisible { get; set; } = true;
public string ReportName { get; set; }
public DataSet DataSet { get; set; } = new DataSet();
public WebReport UserWebReport { get; set; } = new WebReport();
public Report Report { get; set; } = new Report();
string guserid = "";
string sql = "";
private Firma _firma { get; set; } = new BWPMModels.Firma();
public List<BWPMModels.Firma> Firmendaten { get; set; }
protected override async Task OnAfterRenderAsync(bool firstRender)
{
Spinnervisible = false;
}
protected override async Task OnParametersSetAsync()
{
string paramtyp1 = "";
string paramtyp2 = "";
string paramtyp3 = "";
Helper.dbhelper dbh = new Helper.dbhelper();
string reportdir = dbh.Get_Option(28);
reportdir += "/";
dbh.Get_Tabledata("Select * from Report where id=" + ReportNr.ToString(), false, true);
@*reportdir = "Reports/";*@
try
{
Report = Report.FromFile(reportdir + dbh.dsdaten.Tables[0].Rows[0]["reportfile"]);
}
catch (Exception e)
{
emsg=e.Message;
return;
}
paramtyp1 = dbh.dsdaten.Tables[0].Rows[0]["paramtype1"].ToString();
paramtyp2 = dbh.dsdaten.Tables[0].Rows[0]["paramtype2"].ToString();
paramtyp3 = dbh.dsdaten.Tables[0].Rows[0]["paramtype3"].ToString();
sql = dbh.dsdaten.Tables[0].Rows[0]["sql"].ToString();
switch (paramtyp1)
{
case "%firmaID%":
Firmendaten = BlazorApp.Controller.FirmaController.GetByUserID(userid);
_firma = Firmendaten.First<BWPMModels.Firma>();
sql = sql.Replace("%firmaid%", _firma.ID.ToString());
break;
default:
break;
};
dbh.dsdaten.Tables.Clear();
DataSet.Tables.Clear();
DataSet.Tables.Add(dbh.Get_Tabledata(sql, false, true).Copy());
Report.SetParameterValue("Parcours", dbh.Get_Option(2));
Report.SetParameterValue("Spruch", dbh.Get_Option(3));
Report.SetParameterValue("URL", dbh.Get_Option(27));
Report.RegisterData(DataSet);
Report.GetDataSource("Daten").Enabled = true;
UserWebReport.Report = Report;
UserWebReport.Report.Refresh();
Spinnervisible = false;
}
protected override async Task OnInitializedAsync()
{
try
{
userid = await sessionStorage.GetItemAsync<string>("UserID");
if (userid == null)
{
var authState = await authenticationStateTask;
var userId = authState.User.Claims.FirstOrDefault().Value;
var user = authState.User;
if (user.Identity.IsAuthenticated)
{
await sessionStorage.SetItemAsync("UserID", userId);
userid = userId;
}
else
{
await sessionStorage.SetItemAsync("UserID", userId);
userid = userId;
}
}
UserWebReport = new WebReport();
}
catch (Exception e)
{ emsg = e.Message.ToString(); };
}
}