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

Decodeer een barcode in de documenten van het Commercieel beheer met lijnen, de transfers tussen depots en de inventarissen

0000003004     -      15-01-2021

MercatorPenguin en MercatorPenguinServer 2.9.5 of hoger staan een voorbewerking toe op alle zoeksleutels die worden uitgevoerd vanuit een EditEntry, waardoor een zoekopdracht in een bestand mogelijk is. Dit gebeurt via een customizer van het bestand die is gekoppeld aan het bestand waarin wordt gezocht. (Bijvoorbeeld, voor een zoekopdracht van artikels, SigStock). Gebruik hiervoor het event PenguinServerDecodingSearchKey, die opgaand van de zoekopdracht wordt gegenereerd. In het bijzonder kunt u hiermee de eerdere zoeksleutel wijzigen. Deze nieuwe waarde wordt afgaand door het zoekalgoritme gebruikt alsof de gebruiker deze sleutel rechtstreeks had ingevoerd.

De eventArgs van dit event heeft deze eigenschappen:

  • Key : de zoeksleutel. Deze eigenschap kan worden bewerkt.
  • Context : informatie om de context van de zoekopdracht te identificeren
    • Voor een verkoop : <BillingV><Id>...</Id><Journal>...</Journal><Piece>...</Piece><Type>...</Type><IdUser>...</IdUser></BillingV>
    • Voor een aankoop : <BillingA><Id>...</Id><Journal>...</Journal><Piece>...</Piece><Type>...</Type><IdUser>...</IdUser></BillingA>
    • Voor een transfer tussen depots : <Transfer><Id>...</Id><Piece>...</Piece><Type>...</Type><IdUser>...</IdUser></Transfer>
    • Voor een inventaris : <Inventory><Id>...</Id><Piece>...</Piece><Type>...</Type><IdUser>...</IdUser></Inventory>
    • In alle andere gevallen : Other
  • BillingEngine : alleen voor verkopen en aankopen. Null in alle andere gevallen.
  • DecimalChar : het decimaalteken in de mobiele applicatie.
  • ExtraInfo : een Dictionnary <string, object> gebruikt om informatie in de huidige lijn terug te sturen. De sleutel moet overeenkomen met een kolom in de tabel van de lijnen. De informatie die hier wordt doorgegeven, heeft altijd voorrang op die welke MercatorPenguinServer standaard zou hebben bepaald. (Het systeem genereert een uitzondering als een poging wordt gedaan om een niet-geautoriseerde kolom op deze manier te wijzigen.)

Hiervoor is versie 10.8.81 of hoger van MercatorUi.dll vereist.


Het onderstaande voorbeeld van customizer laat zien hoe u een gestructureerde barcode als volgt splitst :

  • de artikelcode (of een zoeksleutel om dit artikel te vinden)
  • @ gebruikt als scheidingsteken
  • de eenheidsprijs van het artikel
Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Linq;
using MercatorApi;
using MercatorExtensions;
using MercatorUi;
using MercatorDatabase;

namespace SigStock
{
    public class Customizer : MercatorUi.ICustomizers.ISigCreated
    {

        public void SigCreated(MercatorUi.Sig.Sig Sig)
        {
            Sig.PenguinServerDecodingSearchKey += Sig_PenguinServerDecodingSearchKey;
        }

        void Sig_PenguinServerDecodingSearchKey(object sender, MercatorUi.Sig.Sig.PenguinServerDecodingSearchKeyEventArgs e)
        {
            if ((e.BillingEngine != null) && (e.BillingEngine.Journal == "Brou") && e.Key.Contains("@") && (e.Key.Split('@').Length == 2))
            {
                e.ExtraInfo.Add("PU", e.Key.Split('@')[1].Replace(".", e.DecimalChar).Replace(",", e.DecimalChar));
                e.Key = e.Key.Split('@')[0];
            }
        }
    }
}