Files
MoonPro.net/MapoDb/reportExporter.cs
Samuele Locatelli 32fb68fa68 CodeMaid:
- Cleanup codice area MapoDb
2022-12-21 15:11:04 +01:00

130 lines
3.6 KiB
C#

using Microsoft.Reporting.WinForms;
using SteamWare;
using System;
using System.Data;
/// <summary>
/// Classe che restituisce uno stream ed i dati accessori per reinviare un report in pdf
/// </summary>
public class reportExporter
{
#region Public Fields
/// <summary>
/// encoding dei dati
/// </summary>
public string encoding;
/// <summary>
/// nome estensione
/// </summary>
public string fileNameExtension;
/// <summary>
/// mimeType del report
/// </summary>
public string mimeType;
/// <summary>
/// steam di bytes del report
/// </summary>
public byte[] renderedBytes;
#endregion Public Fields
#region Public Constructors
/// <summary>
/// metodo protected
/// </summary>
public reportExporter()
{
}
#endregion Public Constructors
#region Public Methods
/// <summary>
/// renderizza il report in pdf
/// </summary>
/// <param name="tipoReport">report ammessi: RichiestaIntervento</param>
/// <param name="parametro">idx della richiesta (numIntMtz)</param>
/// <returns></returns>
public void popolaPdfStream(reportRichiesto tipoReport, string parametro)
{
LocalReport report = new LocalReport();
devInfoParam deviceInfo = new devInfoParam("PDF", "21cm", "29.7cm", "0.2cm", "0.2cm", "0.2cm", "0.2cm");
switch (tipoReport)
{
case reportRichiesto.SchedaODL:
report.ReportPath = @".\Reports\Donati_ODL.rdlc";
report.DataSources.Add(new ReportDataSource("MoonPro", caricaDati(tipoReport, parametro))); // OCCHIO!!! va messa sorgente dati CORRETTA
deviceInfo = new devInfoParam("PDF", "29.7cm", "21cm", "0.2cm", "0.2cm", "0.2cm", "0.2cm");
break;
default:
break;
}
createPdfStream(report, deviceInfo.xmlParam);
}
#endregion Public Methods
#region Private Methods
/// <summary>
/// carica i dati richiesti dal report dalla StoredProcedure (filtrando quindi...)
/// </summary>
/// <param name="tipoReport">report ammessi: RichiestaIntervento</param>
/// <param name="idxObj">num int mtz</param>
/// <returns>tabella dati</returns>
private DataTable caricaDati(reportRichiesto tipoReport, string idxObj)
{
// calcolo idxODL
int idxOdl = 0;
try
{
idxOdl = Convert.ToInt32(idxObj);
}
catch
{ }
DataTable tab = new DataTable();
MapoDb.DataLayer DataLayerObj = new MapoDb.DataLayer();
switch (tipoReport)
{
case reportRichiesto.SchedaODL:
tab = (DataTable)DataLayerObj.taODL.getByIdx(idxOdl, false);
break;
//case reportRichiesto.RichiestaIntervento:
// tab = (DataTable)TA_app.obj.taInterventiMtz.getByIdx(Convert.ToInt32(idxObj));
// break;
//default:
// break;
}
return tab;
}
/// <summary>
/// crea il vero e proprio stream pdf
/// </summary>
/// <param name="report"></param>
/// <param name="deviceInfo"></param>
private void createPdfStream(LocalReport report, string deviceInfo)
{
// export in PDF
string reportType = "PDF";
Warning[] warnings;
string[] streams;
renderedBytes = report.Render(
reportType,
deviceInfo,
out mimeType,
out encoding,
out fileNameExtension,
out streams,
out warnings);
}
#endregion Private Methods
}