Deze programmatie toont hoe je gepersonaliseerde kolommen kan toeveogen in de standaardexport van informatiebestanden. Dit wordt gedaan via het event ExportingFields beschikbaar in de klasse MercatorUi.Sig.Sig. In dit voorbeeld, voegen we 3 kolommen toe in de export van het artikel-informatiebestand.
De code gebruikt de interface ISigCreated en gaat als volgt:
using System;
using System.Collections.Generic;
using System.Text;
using MercatorApi;
namespace SigStock
{
public class Customizer : MercatorUi.ICustomizers.ISigCreated
{
public void SigCreated(MercatorUi.Sig.Sig Sig)
{
Sig.ExportingFields += new MercatorUi.Sig.Sig.ExportingFieldsEventHandler(Sig_ExportingFields);
}
void Sig_ExportingFields(object sender, MercatorUi.Sig.Sig.ExportingFieldsEventArgs e)
{
e.NodesToAdd.Add(new MercatorUi.Forms.Sig.SigClasses.ExportFieldNode("CA 30 derniers jours", "(select sum(tot_net_ht) from lignes_v inner join pieds_v on (pieds_v.id=lignes_v.id) and (pieds_v.journal=lignes_v.journal) and (pieds_v.piece=lignes_v.piece) where (lignes_v.id_article=s_id) and (pieds_v.type=1) and (pieds_v.date>=dbo.ADD_DATE(getdate(),-30))) as tot_ven", MercatorUi.Forms.Sig.SigClasses.ExportFieldNodeIconEnum.Float));
e.NodesToAdd.Add(new MercatorUi.Forms.Sig.SigClasses.ExportFieldNode("Nom fourn. principal", "(select dbo.XNOM('FOU',id_fou) from artfou where (id_art=s_id) and (principal=1)) as fou_princ", MercatorUi.Forms.Sig.SigClasses.ExportFieldNodeIconEnum.String));
e.NodesToAdd.Add(new MercatorUi.Forms.Sig.SigClasses.ExportFieldNode("Cpte général vente", "(select dbo.XNOM('GEN',s_comptev)) as s_comptev_nom", MercatorUi.Forms.Sig.SigClasses.ExportFieldNodeIconEnum.String));
}
}
}
De constructor van ExportFieldNode verwacht 3 parameters:
- De omschrijving van het knooppunt in het dialoogvenster (het is essentieel dat deze naam uniek is onder alle knooppunten die weergegeven worden in het dialoogvenster))
- De SQL-expressie die uiteindelijk zal worden toegevoegd aan de SQL-query uitgevoerd door Mercator met het oog om de export uit te voeren. Idealiter kan deze SQL-expressie verwijzen naar een scalar-functie. Alle velden van de tabel uit het informatiebestand (in dit voorbeeld STOCK) zijn bruikbaar als parameters.
- Het type icoon dat weergegeven moet worden in het dialoogvenster.