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

Reporting: hoe gegevens uit een klantenfiche te halen op basis van een rapport dat gebaseerd is op de artikels

0000002394     -      26-07-2025

Dit voorbeeld toont hoe, vertrekkend uit een basisrapport van de artikels, u informatie ophaalt uit de huidige klantenfiche.

Concreet zou de gebruiker graag een overzicht van de artikels met betrekking tot de huidige klantenfiche willen. Het is ook noodzakelijk om rekening te houden van de filter die geplaatst is op de artikels.

De “Module” property van het rapport wordt geïnitialiseerd naar “artikels”. De SQL-query ziet er als volgt uit:

select cli.C_NOM, s_modele, s_cle1, s_cle2, s_prix_ht
        from STOCK
            inner join tarcli on stock.s_id = tarcli.ar_ref
            inner join CLI on tarcli.ID_CLI = cli.C_ID
        where FILTRE_STOCK and cli.C_ID = '%C_ID%'

De code hieronder haalt de ID op van de huidige klantenfiche. Het voorbeeld voorziet dat Mercator meerdere klantenfiches zal openen. In ons voorbeeld behandeld hij (willekeurig) de eerst gevonden fiche.

Deze code moet in de “Customizer” property geïmplementeerd worden van het rapport (volgens hetzelfde principe als dit voorbeeld).

Zoom
using System.Windows.Forms;
using MercatorApi;
using System.Linq;

namespace MercatorUi.Reporting
{
    public class Customizer : ICustomizers.IStringUpdater
    {
        public string StringUpdate(string reqSql)
        {
            string c_id;
            Forms.Sig.SigForm sigForm = Application.OpenForms.OfType<Forms.Sig.SigForm>().FirstOrDefault(f => f.Sig.Module == Sig._SigEnum.CLI);
            if (sigForm != null)
                c_id = sigForm.DataSourceRow["c_id"].ToString();
            else
                c_id = "??????????";

            return reqSql.Replace("%C_ID%", Api.UnquoteSql(c_id));
        }
    }
}


Functionele cookies: Cookies die nodig zijn voor het gebruik van de website en voorkeurscookies. Ze bevatten geen persoonsgegevens. (Meer informatie)

Analytische cookies: Verzamelen van statistieken met betrekking tot het gedrag van internetgebruikers. (Meer informatie)

Marketingcookies: Om bezoekers op verschillende websites te volgen voor advertentiedoeleinden. (Meer informatie)