Genereer een PDF van een rapport, dat gemaakt is in Tools-Parametrering documenten

0000002294     -      01-09-2016

Het is mogelijk om vanuit een ASP.NET site die gekoppeld is met Mercator Majuro een PDF te genereren die gecreëerd werd in "Tools - Parametrering documenten".

Dit kan gedaan worden door deze methode uit MercatorUi.Reporting.ReportingStatic te gebruiken:

public static void RunReportFromDocum(string id_docum, List<MercatorUi.Reporting.OutputDescriptor> listOutputDescriptors, List<MercatorSqlParam> listSqlParams)

De parameters die meegegeven worden aan deze method zijn:

  • het id van het rapport: de gevonden waarde in de kolom ID van de tabel DOCUM
  • een lijst van het type OutputDescriptors die ons toelaat om het export-formaat te bepalen
  • een lijst van het type MercatorSqlParams: deze lijst moet alle SQL-parameters bevatten die worden meegegeven worden in de query van het rapport. Houd er rekening mee dat er standaard geen parameters meegegeven worden met deze methode. Daarom is het noodzakelijk dat deze zich in de lijst bevinden.
    • De SQL-parameters die overeenkomen met velden uit het huidige informatiebestand die nodig zijn voor deze query.
    • De SQL-parameters die overeenkomen met de gebruikelijke constanten, ingevoerd door de gebruiker (@CONST_1, @DATE_1,...)

Het voorbeeld hieronder genereert een PDF vanuit een rapport waarin S_ID, S_MODELE en CONST_1 meegegeven worden als parameters.

Zoom
string pdf = Server.MapPath(Request.ApplicationPath + @"\Pdf\" + MercatorApi.Api.NewId() + ".pdf");

List<MercatorSqlParam> lp = new List<MercatorSqlParam>();
lp.Add(new MercatorSqlParam("@const_1", n));
lp.Add(new MercatorSqlParam("@s_id", s_id, System.Data.SqlDbType.Char));
lp.Add(new MercatorSqlParam("@s_modele", s_modele, System.Data.SqlDbType.Char));

List<MercatorUi.Reporting.OutputDescriptor> listOutputDescriptors = new List<MercatorUi.Reporting.OutputDescriptor>();
listOutputDescriptors.Add(new MercatorUi.Reporting.OutputDescriptorExport(MercatorUi.Reporting.ExportReportEnum.PDF, pdf, MercatorUi.Reporting.ExportOpenAfterEnum.No));

Api.LastError = "";
MercatorUi.Reporting.ReportingStatic.RunReportFromDocum("B714041B3E", listOutputDescriptors, lp);
if (!System.IO.File.Exists(pdf))
{
    if (!string.IsNullOrEmpty(Api.LastError))
        Response.Write(pdf + " : " + Api.LastError);
    else
        Response.Write("Impossible to create " + pdf + " !");
    Response.End();
}

Response.Redirect("pdf/" + Api.JustFName(pdf));