7a2ea69fcd
git-svn-id: https://keyhammer.ath.cx/svn/WebGIM/trunk@30 3e04ef4b-3b25-4b6c-be27-bb5389ca777b
105 lines
3.4 KiB
C#
105 lines
3.4 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Data;
|
|
using System.Text;
|
|
using System.Drawing.Imaging;
|
|
using System.Drawing.Printing;
|
|
using System.Collections.Generic;
|
|
using System.Windows.Forms;
|
|
using Microsoft.Reporting.WinForms;
|
|
using System.Configuration;
|
|
using SteamWare;
|
|
|
|
/// <summary>
|
|
/// Classe che restituisce uno stream ed i dati accessori per reinviare un report in pdf
|
|
/// </summary>
|
|
public class reportExporter
|
|
{
|
|
/// <summary>
|
|
/// mimeType del report
|
|
/// </summary>
|
|
public string mimeType;
|
|
/// <summary>
|
|
/// encoding dei dati
|
|
/// </summary>
|
|
public string encoding;
|
|
/// <summary>
|
|
/// nome estensione
|
|
/// </summary>
|
|
public string fileNameExtension;
|
|
/// <summary>
|
|
/// steam di bytes del report
|
|
/// </summary>
|
|
public byte[] renderedBytes;
|
|
/// <summary>
|
|
/// metodo protected
|
|
/// </summary>
|
|
public reportExporter()
|
|
{
|
|
}
|
|
/// <summary>
|
|
/// carica i dati richiesti dal report dalla StoredProcedure (filtrando quindi...)
|
|
/// </summary>
|
|
/// <param name="idxObj"></param>
|
|
/// <returns></returns>
|
|
private DataTable caricaDati(reportRichiesto tipoReport, string idxObj)
|
|
{
|
|
DataTable tab = new DataTable();
|
|
switch (tipoReport)
|
|
{
|
|
case reportRichiesto.RichiestaIntervento:
|
|
tab = (DataTable)TA_app.obj.taInterventiMtz.getByIdx(Convert.ToInt32(idxObj));
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return tab;
|
|
}
|
|
/// <summary>
|
|
/// renderizza il report in pdf
|
|
/// </summary>
|
|
/// <param name="tipoReport"></param>
|
|
/// <param name="parametro"></param>
|
|
/// <returns></returns>
|
|
public void popolaPdfStream(reportRichiesto tipoReport, string parametro)
|
|
{
|
|
LocalReport report = new LocalReport();
|
|
string deviceInfo = "";
|
|
switch (tipoReport)
|
|
{
|
|
case reportRichiesto.RichiestaIntervento:
|
|
report.ReportPath = @".\RichiestaIntervento.rdlc";
|
|
report.DataSources.Add(new ReportDataSource("WebGIM", caricaDati(tipoReport, parametro))); // OCCHIO!!! va messa sorgente dati CORRETTA
|
|
deviceInfo = "<DeviceInfo>" +
|
|
" <OutputFormat>PDF</OutputFormat>" +
|
|
" <PageWidth>21cm</PageWidth>" +
|
|
" <PageHeight>29.7cm</PageHeight>" +
|
|
" <MarginTop>0.2cm</MarginTop>" +
|
|
" <MarginLeft>0.2cm</MarginLeft>" +
|
|
" <MarginRight>0.2cm</MarginRight>" +
|
|
" <MarginBottom>0.2cm</MarginBottom>" +
|
|
"</DeviceInfo>";
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
#if false
|
|
// setting parametro...
|
|
ReportParameter[] idxObj = { new ReportParameter("numIntMtz", parametro) };
|
|
report.SetParameters(idxObj);
|
|
#endif
|
|
// 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);
|
|
}
|
|
}
|