using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorController;
namespace MercatorUi.Reporting
{
public static class Script
{
public static void Exec()
{
// Sélection des dates
DateTime[] Dates = MercatorUi.Dialogs.AskDates("Veuillez sélectionner les dates ?");
if ((Dates != null) && (Dates[1] != new DateTime(1900, 1, 1)))
{
// Sélection des données
string ReqSql = "select id_cli, cli.c_nom, c_adresse, c_codep, c_ville, " +
" sum(tot_bas_fb) as tot_ca, count(pieds_v.id) as nombre, " +
" cast(@Date_1 as DateTime) as Date_1, Cast(@Date_2 as DateTime) as Date_2 " +
" from pieds_v inner join cli on pieds_v.ID_CLI = cli.C_ID " +
" where (date >= @Date_1) and(date <= @Date_2) " +
" and(type = 1) " +
" group by id_cli, cli.c_nom, c_adresse, c_codep, c_ville, c_id " +
" order by cli.c_nom ";
DataSet ds = Api.Zselect(Api.RepData, ReqSql,
new MercatorSqlParam("@Date_1", Dates[0], SqlDbType.DateTime),
new MercatorSqlParam("@Date_2", Dates[1], SqlDbType.DateTime));
//string reportFileName = Globals.MainDir + "RapportTest.repx";
string reportFileName = @"<MainDir\RapportTest.repx"; // database
MercatorUi.Reporting.ReportingStatic.FillDataset(ds, "CliRep");
if (Api.Answer("Modifier le layout ?"))
{
// Création / Modification du rapport
string reportLayout = MercatorUi.Reporting.ReportingStatic.Reporting.EditLayout(Api.JustStem(reportFileName), Api.FileToStr(reportFileName, Encoding.UTF8), ds);
Api.StrToFile(reportLayout, reportFileName, Encoding.UTF8);
}
// Aperçu du rapport
List<MercatorUi.Reporting.OutputDescriptor> listOutputDescriptors = new List<MercatorUi.Reporting.OutputDescriptor>();
listOutputDescriptors.Add(new MercatorUi.Reporting.OutputDescriptorPreview());
MercatorUi.Reporting.ReportingStatic.Reporting.RunReport("CliRep", reportFileName, ds, listOutputDescriptors);
}
}
}
}