Dit programma staat ons toe om het standaard depot, in het artikelen informatiebestand, aan te passen onder het visualisatie rooster van de stockranges (tailles en kleuren). Hij is gebouwd op een SigStock customizer die MercatorUi.ICustomizers.IFormLoadCustomizer en MercatorUi.ICustomizers.IFormClosedCustomizer interfaces implementeert en die het AfterRead evenement opereert om de overgang van bestand naar bestand te detecteren.
De lijn "gamDispo.ComboBoxDepots.SelectedIndex = 1;" maakt het mogelijk om de tweede ingang van de drop down te selecteren (die dus minstens uit twee elementen moet bestaan)
De code ziet er dus uit als volgt:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Windows.Forms;
namespace SigStock
{
public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer, MercatorUi.ICustomizers.IFormClosedCustomizer
{
public void FormLoadCustomize(Form form)
{
MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)form;
MercatorUi.Forms.Sig.SigGrids.Gam gamDispo = (MercatorUi.Forms.Sig.SigGrids.Gam)sigForm.MovableControls["4AA0BAC1D3"];
gamDispo.AssociatedPanelCreated += gamDispo_AssociatedPanelCreated;
gamDispo.AfterRead += gamDispo_AfterRead;
}
public void FormClosedCustomize(Form form)
{
MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)form;
MercatorUi.Forms.Sig.SigGrids.Gam gamDispo = (MercatorUi.Forms.Sig.SigGrids.Gam)sigForm.MovableControls["4AA0BAC1D3"];
gamDispo.AssociatedPanelCreated -= gamDispo_AssociatedPanelCreated;
gamDispo.AfterRead -= gamDispo_AfterRead;
}
void gamDispo_AssociatedPanelCreated(object sender, MercatorUi.MovableControls.MovableGrid.AssociatedPanelCreatedEventArgs e)
{
// voor de eerste initialisatie van het raster
gamDispo_AfterRead(sender, EventArgs.Empty);
}
void gamDispo_AfterRead(object sender, EventArgs e)
{
// bij het verplaatsen van het ene bestand naar het andere
MercatorUi.Forms.Sig.SigGrids.Gam gamDispo = (MercatorUi.Forms.Sig.SigGrids.Gam)sender;
if (gamDispo.ComboBoxDepots != null)
gamDispo.ComboBoxDepots.SelectedIndex = 1;
}
}
}
Merk op dat het wordt uitgeoefend in sigForm.MovableControls[id] en niet in sigForm.FindMovableControlsByType. Een conventionele lijst artikelen bevat normaal twee objecten van het MercatorUi.Forms.Sig.SigGrids.Gam type (één voor de prijs en één voor de beschikbare hoeveelheid) en het gevaar bestaat om de code toe te passen aan de prijslijst. De ID (4AA0BAC1D3) moet dan ook vervangen worden met de waarde die u vind in uw scherminstellingen.