Algemene informatie over de customizers

0000001921     -      20-10-2017

De customizers zijn .net-assemblies die op basis van hun naam door Mercator worden herkend en verwerkt tijdens de uitvoering. Daarbij gaat het om de volgende assemblies:

  • AskDossiers: dossierselectiescherm (beheer van meerdere dossiers)
  • HistCli: klantenhistoriek van het menu "Vensters"
  • HistFou: leveranciershistoriek van het menu "Vensters"
  • HistProd: productiehistoriek van het menu "Vensters"
  • HistCpta: boekhoudingshistoriek van het menu "Vensters"
  • HistSer: serienummerhistoriek van het menu "Vensters"
  • HistRef: referentiehistoriek van het menu "Vensters" 
  • HistTransf: magazijnoverdrachtenhistoriek van het menu "Vensters"
  • CliActions, FouActions, StockActions ...: historiek van de CRM-acties (via het menu dat overeenstemt met het actieve informatiebestand)
  • BrowseInSigCli, BrowseInSigStock, BrowseInSigFou ... : bladerlijst met de informatiebestandfiches op basis van het informatiebestand
  • BrowseKeySearchCli, BrowseKeySearchStock, BrowseKeySearchFou ... : bladerlijst met de informatiebestandfiches op basis van een zoekopdracht op trefwoord - voor alle informatiebestanden
  • BrowseFilterSearchCli, BrowseFilterSearchStock, BrowseFilterSearchFou ... : bladerlijst met de informatiebestandfiches op basis van een zoekopdracht met meerdere criteria - voor alle informatiebestanden
  • SigCli, SigFou, SigStock ... : informatiebestandscherm en informatiebestandhulpklasse - voor alle informatiebestanden
  • Param: Mercator-parameterscherm,  behalve
    • ParamCodaModesForm
    • ParamIdentifForm
    • ParamIsArubaForm
    • ParamLotsFormulasForm
    • ParamOptionsForm
    • ParamRisForm
  • Main: acties tijdens diverse Mercator-event

Een customizer moet een namenruimte omvatten gelijk aan de tekenreeks vermeld in vet in de onderstaande lijst.
Opgelet: de namenruimte is hoofdlettergevoelig.

Een customizer moet moet een klasse omvatten met als naam Customizer.
Opgelet: de klassenaam is hoofdlettergevoelig.

Een customizer kan andere klassen en/of namenruimtes omvatten.

Een customizer kan één of meer interfaces implementeren.


Minimumvoorbeeld van customizer AskDossiers, die de interface MercatorUi.ICustomizers.IStringUpdater implementeert.

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using MercatorUi;

namespace AskDossiers
{
     public class Customizer : MercatorUi.ICustomizers. IStringUpdater
    {

         public string StringUpdate( string ReqSql)
        {
             return ReqSql;
        }
    }
}

In dit voorbeeld is de methode StringUpdate enkel nodig om te beantwoorden aan de vereisten van de interface IStringUpdater.

 


De C#-codes die overeenstemmen met customizers, kunnen rechtstreeks in de SQL-database worden opgeslagen (tabel ASSEMBLIES). Daartoe hoeft u enkel de knoppen "Database openen" en "Opslaan in database" te gebruiken.
Dit systeem heeft de volgende voordelen:

  • Het aantal DLL-bestanden in de hoofddirectory van Mercator wordt beperkt.
  • Het aantal bestanden dat wordt geopend als bestand op een gedeeld volume, wordt beperkt (geen client/servertoegang).
  • De code kan rechtstreeks vanuit Mercator gewijzigd en opnieuw gecompileerd worden zonder dat het programma opnieuw moet worden opgestart.

Om die redenen raadt Mercator aan om alle geïnstalleerde customizers op te slaan in de database.

Om een customizer uit de database te schrappen, hoeft u deze enkel te openen met de knop "Database openen" en vervolgens de knop "Schrappen uit database" te gebruiken.

Opmerkingen

  • Het opslaan in de database geldt enkel voor de C#-code en is beperkt tot de customizers.
  • Een code die opgeslagen werd in de database, is herkenbaar aan dit symbool in de naam van het overeenstemmende tabblad: CustomizerInAssemblies

 

Deze customizers zijn echte toegangspunten tot de kern van Mercator. De meeste interfaces die gebruikt kunnen worden in deze customizers, verwijzen immers naar methodes die een venster als parameter krijgen. Op basis van deze parameter zal het dan ook mogelijk zijn om bijzonder ruim en gevarieerd te reageren:

  • de openbare eigenschappen van dit venster wijzigen;
  • event gelinkt aan dit venster toevoegen;
  • de openbare eigenschappen van de openbare objecten in dit venster wijzigen;
  • event gelinkt aan de openbare objecten in dit venster toevoegen;
  • eender welke openbare methode kunnen oproepen.

 

Zie ook deze belangrijke informatie.