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

Hoe informatie van een document afdrukken op een artikellabel, waaruit de labels worden afgedrukt.

0000002305     -      09-05-2016

Artikel etiketten kunnen geprint worden vanaf de artikelfiche of vanuit een document uit het commercieel beheer. Als deze tweede mogelijkheid gebruikt wordt, vraagt men vaak of dit label informatie moet dragen van het origineel document (journaal, nr,..)

Dit kan gedaan worden met behulp van de rapport-customizer in de instellingen van het etiket. (Niet in de rapport-editor, maar in het menu via "Tools / Parametrering documenten".) In ons voorbeeld, zullen we een extra datatable meegeven aan het rapport, genaamd Pieds en deze bevat 2 kolommen: journal en piece. De customizer impementeert de interface MercatorUi.ICustomizers.IDataSetForReportUpdater, dit geeft ons de kans om eenvoudig een datatable toe te voegen aan de dataset die wordt doorgegeven aan de rapport-editor.

De code voor deze customizer is:

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorController;
using System.Windows.Forms;

namespace MercatorUi.Reporting
{
    public class Customizer : MercatorUi.ICustomizers.IDataSetForReportUpdater
    {

        public void DataSetForReportUpdate(DataSet ds, MercatorUi.Reporting.CustomizerInfo customizerInfo)
        {
            DataTable dt = new DataTable("Pieds");
            dt.Columns.Add("journal", typeof(string));
            dt.Columns.Add("piece", typeof(Int64));
            dt.Rows.Add(dt.NewRow());
            ds.Tables.Add(dt);
            Form f = MercatorUi.Globals.Main.WonTopForm();
            if ((f != null) && (f is MercatorUi.Forms.Billing.BillingForm))
            {
                MercatorUi.Forms.Billing.BillingForm billingForm = (MercatorUi.Forms.Billing.BillingForm)f;
                Api.DataRowMerge(dt.Rows[0], billingForm.BillingEngine.PIEDS, true);
            }
        }
    }
}

Hier zien we in de code een correct beheer in het geval waarin een etiket wordt afgedrukt buiten een document. (ljjn begint met if). In dit geval zal de informatie in de toegevoegde tabel leeg zijn. (DBNull)

Het voorbeeld etiket kan gevonden worden in de Statx-fiche, deze is beschikbaar in onderstaand zip-bestand.



Te laden : 0000002305.zip (7 Kb - 06-03-2014)