Voeg extra kolommen toe van eerdere documenten bij het importscherm van Peppol

0000003377     -      13-11-2025

Tijdens de Peppol-import in het commercieel beheer toont Mercator in het linkerdeel van het scherm de lijst met bestellingen en leveringen voor de geselecteerde leverancier. Standaard bevat deze weergave:

  • Journaal en nummer
  • Datum
  • Referentie

Onderstaande code toont hoe u één of meerdere extra kolommen kunt toevoegen. Het voorbeeld gebruikt een kolom genaamd CUSTOM_COL uit de tabel PIEDS_A. De implementatie gebeurt in de vorm van een customizer voor Gescom.

Via de interface IStringUpdater wordt de SQL-query met ID EINVOICE_IMPORT_PREVIOUS_DOC aangepast.

De aanpassingen in het scherm zelf worden uitgevoerd via IDialogLoadCustomizer.

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

// <CompileWithRoslyn />

namespace Gescom
{
    public class Customizer : MercatorUi.ICustomizers.IStringUpdater, MercatorUi.ICustomizers.IDialogLoadCustomizer
    {
        public string StringUpdate(string stringToModify)
        {
            string id = Api.StrExtract(stringToModify, "<ID>", "</ID>");
            if (id == "EINVOICE_IMPORT_PREVIOUS_DOC")
                stringToModify = stringToModify.Replace(",pieds_a.reference,", ",pieds_a.reference,pieds_a.custom_col,");
            return stringToModify;
        }

        public void DialogLoadCustomize(System.Windows.Forms.Form form)
        {
            if (form is MercatorUi.Forms.Gescom.GescomDialogs.GescomAskEinvoiceImport gescomAskEinvoiceImport)
            {
                gescomAskEinvoiceImport.CustomColumnsPreviousDocDescriptors.Add(
                    new MercatorUi.Forms.Gescom.GescomDialogs.GescomAskEinvoiceImport.CustomColumnsPreviousDocDescriptor
                    {
                        Source = "custom_col",
                        Width = 50,
                        HeaderText = "Custom Col."
                    });

                gescomAskEinvoiceImport.PreviousDoc.Columns[2].Width.Absolute -= 50; // Verklein de kolom "Referentie" met 50 px
                gescomAskEinvoiceImport.SplitterDistance = 600; // Vergroot het linkerdeel van het scherm
            }
        }
    }
}

 

Dezelfde werkwijze kan ook worden gebruikt om numerieke kolommen toe te voegen, bijvoorbeeld de totalen van documenten. Toch wordt aanbevolen om met tekstkolommen te werken. Bijvoorbeeld:

Zoom
stringToModify = stringToModify.Replace(",pieds_a.reference,", ",pieds_a.reference,ltrim(dbo.transform(pieds_a.tot_bas_dv,'999 999.99')) as tot_htva,");


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)