Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Générer un PDF comprenant un rapport créé dans Outils / Paramétrage Documents

0000002294     -      01/09/2016

Il est possible, au départ d'un site web ASP.net connecté à un Mercator Majuro, de produire un PDF correspondant à un rapport créé dans "Outils / Paramétrage Documents".

Cela se fait en utilisant cette méthode de MercatorUi.Reporting.ReportingStatic : 

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

Les paramètres à passer à cette méthode sont :

  • l'ID du rapport : valeur trouvée dans la colonne ID de la table DOCUM
  • Une liste de OutputDescriptors permettant de spécifier un export au format PDF
  • Une liste de MercatorSqlParams : cette liste doit contenir tous les paramètres SQL à passer à la requête définie dans le rapport. Il faut tenir compte du fait que par défaut, aucun paramètre n'est transmis par cette méthode. Il faut donc mettre dans cette liste :
    • Les paramètres SQL correspondant aux valeurs des champs de la fiche signalétique en cours qui sont nécessaires pour cette requête
    • Les paramètres SQL correspondant aux constantes habituellement saisies par l'utilisateur (@CONST_1, @DATE_1, ...)

L'exemple repris ci-dessous génère un PDF à partir d'un document pour le quel S_ID et S_MODELE ainsi que CONST1 doivent être passés.

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));