Standaard over tien rekeningen beschikken die gekoppeld zijn aan een leverancier bij het ingeven van aankoopboekingen

0000002135     -      24-09-2025

Voor deze programmering moeten er 10 velden worden toegevoegd waarin de rekeningen die standaard aan elke leverancier gekoppeld zijn, kunnen worden ingegeven. Bij het boeken van aankopen in de boekhouding krijgt de gebruiker vervolgens standaard de lijst van zijn rekeningen indien hij 0 (nul) + enter ingeeft in de kolom van de rekening.

Om deze configuratie te implementeren, moeten eerst de velden F_ID_GEN0 tot F_ID_GEN9 van het type char(10) worden toegevoegd in de tabel FOU. Het is mogelijk om minder velden toe te voegen. Deze velden stemmen overeen met gekruiste links tussen informatiebestanden

alter table FOU add F_ID_GEN0 char(10) not null default '', 
F_ID_GEN1 char(10) not null default '',
F_ID_GEN2 char(10) not null default '',
F_ID_GEN3 char(10) not null default '',
F_ID_GEN4 char(10) not null default '',
F_ID_GEN5 char(10) not null default '',
F_ID_GEN6 char(10) not null default '',
F_ID_GEN7 char(10) not null default '',
F_ID_GEN8 char(10) not null default '',
F_ID_GEN9 char(10) not null default ''

Via de configuratie van het informatiebestand voegt u vervolgens tekstvakken toe die aan deze velden gekoppeld zijn. (Cfr. 'Tools / Schermen bestanden / Parametrering / Leveranciers')

Deze tekstvakken geven de gebruiker de kans om in de fiche van elke leverancier tot 10 algemene rekeningen in te geven. Deze ingave wordt door Mercator gevalideerd (het is onmogelijk om een onbestaande rekening in te geven).

Vervolgens moet u deze code, die de interface MercatorUi.ICustomizers.ISigCreated gebruikt, in een customizer SigGen plaatsen. Deze customizer gebruikt het BeforeSearch-event.

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Windows.Forms;
// <CompileWithRoslyn />

namespace SigGen
{
    public class Customizer : MercatorUi.ICustomizers.ISigCreated
    {
        public void SigCreated(MercatorUi.Sig.Sig sig)
        {
            sig.BeforeSearch += Sig_BeforeSearch;
        }

        void Sig_BeforeSearch(object sender, MercatorUi.Sig.SigClasses.BeforeSearchEventArgs e)
        {
            Form form = Globals.Main.WonTopForm();
            if ((form == null) || !(form is MercatorUi.Forms.Booking.BookingForm bookingForm)) // u bevindt zich niet in een boekingsscherm
                return;
            if (bookingForm.BookingEngine == null) // u bevindt zich in een boeking maar wel in configuratiemodus
                return;
            if (bookingForm.BookingEngine.Type != 2) // u bevindt zich niet in een aankoopboeking
                return;
            if (e.Key != "0") // de gebruiker heeft geen 0 ingegeven: hij wil dus een gewone zoekopdracht
                return;
            if (bookingForm.BookingEngine.PiedsCRecord.SUPPLIER == "") // de leverancier werd niet geselecteerd
                return;
            
            StringBuilder sb = new StringBuilder();
            bool premier_fait = false;
            // er wordt rekening gehouden met het veld f_comptea van de huidige leverancier
            if (bookingForm.BookingEngine.FouRecord.F_COMPTEA != "")
            {
                sb.AppendFormat("(g_id='{0}')", bookingForm.BookingEngine.FouRecord.F_COMPTEA);
                premier_fait = true;
            }
            // er wordt rekening gehouden met de velden f_id_gen0 tot f_id_gen9 van de huidige leverancier
            for (int i_gen = 0; i_gen <= 9; i_gen++)
            {
                if (bookingForm.BookingEngine.FOU.Table.Columns.Contains("f_id_gen" + i_gen) && (bookingForm.BookingEngine.FOU["f_id_gen" + i_gen].ToString() != ""))
                {
                    if (premier_fait)
                        sb.Append(" or ");
                    sb.AppendFormat("(g_id='{0}')", bookingForm.BookingEngine.FOU["f_id_gen" + i_gen]);
                    premier_fait = true;
                }
            }
            e.DesiredWhereClause = sb.ToString();
        }
    }
}


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)