Parameterinstelling voor tabbladen op maat in het Mercatorlint

0000001812     -      14-10-2016

In Mercator kunnen in het Mercatorlint bijkomende tabbladen worden toegevoegd rechts van de standaard tabbladen "Commercieel beheer", "Boekhouding" en "C.R.M.". Deze tabbladen moeten worden gerealiseerd via een .net-programmering, en dus moeten ze gematerialiseerd worden in assemblies. Een bijkomend tabblad moet overeenkomen met een klasse van het basistype Mercator.RibbonCustomContainer, waarvan de definitie voorkomt in Mercator.exe. Deze klasse bevat met name de nodige tools voor een tweerichtingscommunicatie met Mercator.

De onderstaande voorbeelden zijn opgesteld in C#, maar u kunt ook elke andere .net-taal gebruiken.


1. Creatie van een assembly met één of meer tabbladen op maat

Hiervoor gebruikt u best een versie van Visual Studio en initialiseert u een nieuw project van het type "Windows Control Library". In dit project moet u een verwijzing naar Mercator.exe toevoegen.

Vervolgens moet u de automatisch gegenereerde code in de basisklasse (doorgaans UserControl1.cs) wijzigen en vervangen:

public partial class UserControl1: UserControl

vervangen door

public partial class UserControl1: Mercator.RibbonCustomContainer.

Nu kunt u het tabblad in alle vrijheid opbouwen door onder andere bedieningselementen (knoppen, labels, images ...) te plaatsen op de ruimte die overeenkomt met userControl.

De klasse Mercator.RibbonCustomContainer heeft de volgende eigenschappen:

  • IdUser (read-only): identificatiecode van de actieve Mercatorgebruiker,
  • Language (read-only): de taal van de actieve Mercatorgebruiker,
  • PanelText (read-write): de titel van het tabblad -> verplicht in te vullen, het tabblad moet een naam hebben,
  • RepData (read-only): de DATA-directory van Mercator (dit laat rechtstreeks gebruik van Zselect toe),
  • TypeDb (read-only): het type databank: DBF of SQL.

De klasse Mercator.RibbonCustomContainer bevat de volgende methode:

  • DoCmd: mogelijkheid om eender welk uit te voeren script in het Visual FoxPro-gedeelte van Mercator in te voeren. Voorbeeld: DoCmd("stop('Hello')");

De klasse Mercator.RibbonCustomContainer biedt de mogelijkheid om te reageren op deze event:

  • RibbonCustomCreated: de creatie van het tabblad op maat is beëindigd;
  • RibbonCustomDestroy: het tabblad zal vernietigd worden (ideaal om de door het tabblad gebruikte resources vrij te laten);
  • RibbonCustomMessage: ontvangst van een bericht (tekenreeks) verzonden door het Visual FoxPro-gedeelte van Mercator (zie de procedure yMessageToCustomribbon).

De onderstaande voorbeelden laten zien hoe u verschillende tabbladen op maat kunt realiseren.

Opmerkingen

  • Uw tabblad moet idealiter 59 pixels hoog zijn.


  • yMessageToCustomribbon verstuurt de tekenreeks naar alle tabbladen op maat. Deze tekenreeks is beschikbaar in de eigenschap RibbonCustomMessage van Mercator.RibbonCustomMessageArgs. U moet een parsing van deze tekenreeks schrijven als u wilt dat ze uiteindelijk maar door één enkel tabblad wordt gebruikt. Bijvoorbeeld:

    private void MyUserControl1_RibbonCustomMessage(object sender, Mercator.RibbonCustomMessageArgs e)

               string msg = e.RibbonCustomMessage; 
               if ((msg.Length > 3) && (msg.Substring(0, 3) == "001")) 
               { 
                          // traitement du message 
                          ...
               }
    }

 


 

2. Installatie van de bijkomende tabbladen

Om een tabblad te installeren, raden we u aan (maar dat is niet verplicht) om de DLL-bestanden die bij de in punt 1 gecreëerde assemblies horen, in de hoofddirectory van Mercator te plaatsen. Daarna verloopt de installatie voor de actuele gebruiker via het menu "Lint / Personaliseren / Op maat" (voor de parameterinstelling van de tabbladen op maat). In het dialoogvenster dat nu verschijnt, hoeft u enkel via drag&drop één of meer assemblies naar het blauwe gedeelte te slepen. Deze assemblies worden aldus in dit scherm geïnstalleerd. Bij de installatie wordt standaard de eerste klasse overgenomen die in de assembly wordt gevonden. Indien een zelfde assembly meerdere tabbladklassen bevat, kunt u van klasse veranderen door eerst te klikken op het pijltje rechts en vervolgens in het rolmenu de gewenste klasse te selecteren.

Opgelet: als een assembly geen enkele klasse van het type Mercator.RibbonCustomContainer bevat, wordt deze niet geïnstalleerd.

Om een assembly uit de lijst te verwijderen, hoeft u enkel te klikken op het pijltje rechts en vervolgens in het rolmenu "Schrappen" te selecteren.

De volgorde van de assemblies kan makkelijk worden gewijzigd door de regels gewoon te verplaatsen. De volgorde van de regels zal ook de volgorde van de tabbladen bepalen.

 


 

Opmerkingen

  • Er is geen mogelijkheid (en die zal er ook in de toekomst niet zijn) om op deze manier aanpassingen aan te brengen aan de standaardtabbladen van Mercator: "Commercieel beheer", "Boekhouding" en "C.R.M.".


  • De tabbladen op maat worden in aanmerking genomen zodra de tabbladparameters zijn opgeslagen die werden ingesteld via de tab "Lint" van de fiche "Gebruiker".