Le customizer dont le code est repris ci-dessous montre comment importer des colonnes supplémentaires via le terminal PTFILE. Dans ce fichier Excel, une colonne NUM_SERIE a été ajoutée afin d'importer son contenu dans la colonne de même nom des lignes d'un document d'achat.
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 BarcodeTerm
{
public class Customizer : MercatorUi.ICustomizers.IBarcodeTermCreated, MercatorUi.ICustomizers.IBarcodeTermClosed
{
public void BarcodeTermCreated(MercatorUi.BarcodeTerm.BarcodeTerm barcodeTerm)
{
if (barcodeTerm is MercatorUi.BarcodeTerm.BarcodeTermPTFILE)
barcodeTerm.AfterInsert += BarcodeTermPTFILE_AfterInsert;
}
public void BarcodeTermClosed(MercatorUi.BarcodeTerm.BarcodeTerm barcodeTerm)
{
if (barcodeTerm is MercatorUi.BarcodeTerm.BarcodeTermPTFILE)
barcodeTerm.AfterInsert -= BarcodeTermPTFILE_AfterInsert;
}
private void BarcodeTermPTFILE_AfterInsert(object sender, MercatorUi.BarcodeTerm.BarcodeTerm.AfterInsertEventArgs e)
{
if ((e.ContextForm is MercatorUi.Forms.Billing.BillingForm billingForm) && (billingForm.BillingEngine.TypeVA == MercatorUi.Engine.Gescom.Billing.TypeVAEnum.A)
&& e.CurrentBarCode.Table.Columns.Contains("num_serie") && !string.IsNullOrWhiteSpace(e.CurrentBarCode["num_serie"].ToString()))
{
e.DataRowWhereInserted["num_serie"] = e.CurrentBarCode["num_serie"];
}
}
}
}
L'ajout ou la modification de ce code requiert un redémarrage de Mercator.
Voir aussi cette page.