U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

Filter de waardes die worden weergegeven in de vervolgkeuzelijsten van de rapportage

0000003090     -      18-07-2022

De code onderaan laat ons zien hoe men kan bepalen welke waarden worden weergegeven in een vervolgkeuzelijst in de rapportage (zoals deze):

ReportingComboDataTableUpdate_nl

De Main customizer implementeert de interface IReportingComboDataTableUpdater die methode ReportingComboDataTableUpdate oproept dat volgende parameters ontvangt:

  • een tabel van dataRows die overeenkomen met de records uit de DOCUM tabel voor de geselecteerde documenten. Dit identificeert de rapport(en) die uitgevoerd worden.
  • de SQL parameter die zal uitgevoerd worden.
  • de dataTable die overeenkomt met de SQL parameter, die op deze manier kan gewijzigd worden.

Deze code vereist Mercator versie 10.10 of later.

In dit voorbeeld wordt een magazijn lijn verwijderd.

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

 

Opmerking: na het aanpassen van de customizer moet men Mercator herstarten.