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

Filtrer les valeurs affichées dans les déroulants du reporting

0000003090     -      18/07/2022

Le code montré ci-dessus permet de modifier les valeurs affichées dans les déroulants du reporting, comme par exemple, celles-ci : 

Ce customizer Main implémente l'interface IReportingComboDataTableUpdater qui requiert la méthode ReportingComboDataTableUpdate recevant ces paramètres :

  • un tableau de dataRows correspondant aux enregistrements de la table DOCUM pour le ou les documents sélectionnés. Ceci permet d'identifier le ou les rapports en cours d'exécution.
  • le paramètre SQL qui va être traité.
  • la dataTable correspondant à ce paramètre SQL, qui peut donc être modifiée ici.

Ce code exige une version de Mercator 10.10 ou ultérieure. 

Dans l'exemple ci-dessous, une ligne correspondant à un dépôt est simplement retirée.

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Linq;
using MercatorApi;
using MercatorExtensions;
using MercatorUi;
using MercatorDatabase;

namespace Main
{
    public class Customizer : MercatorUi.ICustomizers.IReportingComboDataTableUpdater
    {
        public void ReportingComboDataTableUpdate(DataRow[] documRows, string paramName, DataTable dataTable)
        {
            if (paramName.Equals("@depot_id1", StringComparison.InvariantCultureIgnoreCase) || paramName.Equals("@depot_id2", StringComparison.InvariantCultureIgnoreCase))
            {
                DataRow drToRemove = dataTable.RowsEnumerable().FirstOrDefault(dr => dr["nom"].ToString().Contains("Steinfort"));
                if (drToRemove != null)
                    dataTable.Rows.Remove(drToRemove);
            }
        }
    }
}

 

Note : après modification de ce customizer, il faut redémarrer Mercator.